前言
在某些渗透测试环境下,获得了一个主机的权限但是该主机没有访问外网的权限,对于这种较为严格的网络环境,第一时间想到的就是隧道技术。常见的隧道技术有SSH\DNS\ICMP\端口转发等,大多数端口都存在被禁用的可能,但是ICMP作为基础服务被禁用的可能性却极小,在常用协议都被禁用的情况下可以考虑使用ICMP隧道。
网络拓扑
内网主机10.10.10.0/24除了ICMP通讯不能主动访问外网任何资源,20.20.20.101为hack的ICMP隧道服务端。
准备工作
由于通过ICMP协议建立隧道,为了让隧道服务端能够处理收到的ICMP报文,需要禁用系统本身的ICMP响应机制,这里先关闭hack机器的ICMP响应机制
1 | echo 1 > /proc/sys/net/ipv4/icmp_echo_ignore_all |
Ptunnel的使用
安装需要的依赖包并编译Ptunnel
1 | # yum install libpcap libpcap-devel flex bison -y |
Ptunnel常用的参数
- -p 指定跳板机的IP
- -l 指定转发本地监听的端口
- -da 指定最终要访问的目标主机
- -dp 指定最终要访问目标主机的端口
PS:跳板机要有访问目标主机的权限!
在hack机器上开启ptunnel隧道监听
在client1连接跳板机20.20.20.101,访问client本地的8000端口,跳转到跳板机本地的22端口
查看本地已经监听8000端口
client1连接本地8000端口即可通过ICMP隧道连接到跳板机的22端口
也可以通过ssh over icmp隧道,建立socks代理访问外网