ICMP隧道简单实用,是一个比较特殊的协议。在一般通信协议里,如果两台设备要进行通信,肯定需要开放端口,而ICMP协议下就不需要。ping命令使用的就是ICMP协议,攻击者可以利用命令行得到比回复更多的ICMP请求。
在一些网络环境中,如果攻击者使用各类上层隧道(例如:HTTP隧道、DNS隧道、常规正/反向端口转发等)进行的操作都失败了,常常会通过ping命令访问远程计算机,尝试建立ICMP隧道,将TCP/UDP数据封装到ICMP的ping数据包中,从而穿过防火墙(防火墙一般不会屏蔽ping的数据包),实现不受限制的访问访问。本文将使用ptunnel和pingtunnel工具对内网穿透进行复现。
网络状况描述:攻击机可以访问跳板机,但是无法访问服务器。
一、使用ptunnel进行内网穿透
①服务器(172.20.10.131):
1. 开启防火墙禁止攻击机的tcp协议
iptables -A INPUT -p tcp -s 172.20.10.132 -j DROP
2.开启web服务
python3 -m http.server 80
②跳板机(172.20.30.130):
1.访问服务器正常
2.开启隧道 ./ptunnel
3.可ping
③攻击机(172.20.10.132):
-
可ping
-
无法访问资源
-
./ptunnel -p 跳板机地址 -lp 1080 -da 最终访问目标地址 -dp 80
连接隧道进行访问(访问本地的监听端口实则访问目标的指定端口)
二、使用pingtunnel进行内网穿透
工具下载链接:https://github.com/esrrhs/pingtunnel
1.环境:
①服务器(172.20.10.131):
②跳板机(172.20.10.130):
③攻击机(172.20.10.132):
无法访问web服务,但是可以ping。
2.复现过程
①跳板机开启代理服务
②攻击机进行连接建立隧道
③攻击机进行sock5代理配置
④linux利用隧道进行访问(不挂代理无法使用,使用代理正常访问)
⑤Windows利用SocksCap64进行代理
3.icmp效果
4.tcp效果
原文始发于微信公众号(Matrix1024):ICMP内网穿透复现
- 左青龙
- 微信扫一扫
-
- 右白虎
- 微信扫一扫
-
评论