利用ICMP隧道技术进行ICMP封装穿透防火墙
0x00 icmp隧道技术
ICMP隧道技术,又称Ping隧道技术,我们知道ping的协议就是icmp,当防火墙收到一个protocol为的包,那么默认是放行的。
0x01 利用原理与过程
我们利用ICMP隧道技术,就是通过ICMP爆头来隐藏数据,这样就可以光明正大的合法的传输数据。
在封装之前,我们可以ping或者用tracert判断目标网络是否阻塞了icmp protocol。
利用这一技术,需要有跳板机和客户机。
我们需要在跳板主机上面来建立后门,然后利用ping隧道来穿透未禁止icmp的各种防火墙。
切记:这种技术只用于特定结构的网络。
0x02 隧道实现
我们需要用到的就是ptunnel工具,读音:ping tunnel两部分,首先在bt5 kali默认都安装的

我们来建立icmp通道,随着建立随进行详细的讲解
1.保证2台主机处在同一个广播域当中或者都为外网状态。bt5为服务端 kali为客户端


2.在跳板主机启动ptunnel工具

3.在客户端配:
ptunnel -p 192.168.1.13 -lp 2012 -da 192.168.1.13 -dp 22

-p 接目的地址即跳板主机的地址
-lp 即localport 本地端口
-da 我们要连接的地址
-dp 他的端口
注意-da后面可以为另外一个主机,当我们在客户端连接本地2012端口时候,默认使用192.168.1.13连接-da后的主机并封装进icmp后返回客户端,当然-da后可以为任意其他主机。
这里我仅仅在1.13上面建立了ssh服务,当我们bt5 kali之间有FW的话,那么通过这个ping隧道即可穿透防火墙.
4.连接本地端口
ssh -p 2012 127.0.0.1
我们可以看到 此时已经成功连接ssh请求密码,并且2台机器的pingtunnel上面都有明显信息,而从右下角终端我们可以看到本机是没有开启ssh服务的,所以连 接的127.0.0.1并不是主机而是由bt5连接ssh主机的22号端口后封装进icmp并且返回到kali上面。


如上图,我们可以通过下列命令查看ssh服务状态
service ssh status
0x03FW穿越成功
至此,我们已经成功封装icmp并通过icmp隧道进行传输数据跨越防火墙了,假设我们网络是这样的:
[GW]----------[bt5]-----(FW)----[kali]
(其中FW:Firewall,GW:gatewey )
那么我们就需要用到ping隧道技术了。