psexec生成的RemCom木马分析
psexec介绍
impacket 是用于处理网络协议的Python类的集合,该集合包含了渗透测试中常见的工具种类,包括远程命令执行、信息收集、票据传递、凭据获取、中间人攻击测试等。
工具描述详见https://www.secureauth.com/labs/open-source-tools/impacket/
psexec.py 是impacket套件中进行远程连接,执行shell命令,并返回处理输出结果的命令行工具。
原理:通过smb协议上传一个服务程序(RemCom)到C:\Windows(ADMIN$)目录下,服务程序通过管道进行后续命令执行的输入输出
1 | |
语法:
1 | |
例如:
脚本默认的编码是utf-8,而window操作系统默认编码格式是gbk,所以防止出现乱码可以使用 -codec gbk
从上图可以看到脚本上传了 xQlLMMCc.exe文件,这个文件就是RemCom开源木马,主要负责创建管道,执行shell命令。在命令执行完成后(exit),该文件以及相应服务就会被删除
Remcom木马分析
从流量中捕获的文件被设备标记为黑客工具,分析时使用IDA进行分析,并未分析源码
| 文件名 | ViSbRFqi.exe |
|---|---|
| 大小 | 56320 字节 |
| MD5 | 6983F7001DE10F4D19FC2D794C3EB534 |
| SHA1 | 23873BF2670CF64C2440058130548D4E4DA412DD |
| CRC32 | 1263E86C |

样本未加壳,编写语言为C++,编译时间2012年8月9日
使用IDA pro进行静态反编译
样本运行后先提升自身为管理员权限,然后创建服务“RemComSvc”,服务主线程实现木马主体功能,服务停止后删除创建的服务,清除入侵痕迹

木马的主体功能在服务主线程中执行,先将服务设置为执行状态,然后开启服务功能线程

通信线程池用于处理传入的RemCom.exe请求,即执行主控端shell命令行,“RemComSvc”服务停止后,删除这个服务


创建一个命名的双通管道,名字是\.\pipe\RemCom_communicaton,等待客户端连接

读取管道中的客户端请求,创建进程执行客户端命令,并将执行结果写入管道


样本关联拓线
经过流量分析,发现RemCom文件是由另一个svchost.exe挖矿病毒产生的
有关代码如下
