psexec生成的RemCom木马分析

psexec介绍

impacket 是用于处理网络协议的Python类的集合,该集合包含了渗透测试中常见的工具种类,包括远程命令执行、信息收集、票据传递、凭据获取、中间人攻击测试等。

工具描述详见https://www.secureauth.com/labs/open-source-tools/impacket/

psexec.py 是impacket套件中进行远程连接,执行shell命令,并返回处理输出结果的命令行工具。

原理:通过smb协议上传一个服务程序(RemCom)到C:\Windows(ADMIN$)目录下,服务程序通过管道进行后续命令执行的输入输出

1
python psexec.py     //查看帮助
image-20220616150341207

语法:

1
python psexec.py  [[domain/]username[:password]@]<targetName or address>

例如:

image-20220616152838197

脚本默认的编码是utf-8,而window操作系统默认编码格式是gbk,所以防止出现乱码可以使用 -codec gbk

从上图可以看到脚本上传了 xQlLMMCc.exe文件,这个文件就是RemCom开源木马,主要负责创建管道,执行shell命令。在命令执行完成后(exit),该文件以及相应服务就会被删除

Remcom木马分析

从流量中捕获的文件被设备标记为黑客工具,分析时使用IDA进行分析,并未分析源码

文件名 ViSbRFqi.exe
大小 56320 字节
MD5 6983F7001DE10F4D19FC2D794C3EB534
SHA1 23873BF2670CF64C2440058130548D4E4DA412DD
CRC32 1263E86C

image-20220616161244191

样本未加壳,编写语言为C++,编译时间2012年8月9日

使用IDA pro进行静态反编译

样本运行后先提升自身为管理员权限,然后创建服务“RemComSvc”,服务主线程实现木马主体功能,服务停止后删除创建的服务,清除入侵痕迹

样本主体代码

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

服务主线程代码

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

主线程服务执行代码

清除服务代码

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

通信线程池代码

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

客户端请求处理代码

客户端命令执行代码

样本关联拓线

经过流量分析,发现RemCom文件是由另一个svchost.exe挖矿病毒产生的

有关代码如下

image-20220616164138234


psexec生成的RemCom木马分析
http://wangchenchina.github.io/2022/06/17/psexec生成的RemCom木马分析/
作者
Demo
发布于
2022年6月17日
许可协议