吾爱破解 - LCG - LSG |安卓破解|病毒分析|www.52pojie.cn

 找回密码
 注册[Register]

QQ登录

只需一步,快速开始

查看: 8473|回复: 14
收起左侧

[PC样本分析] plugx家族RAT样本分析

[复制链接]
yusakul 发表于 2020-12-16 16:06
使用论坛附件上传样本压缩包时必须使用压缩密码保护,压缩密码:52pojie,否则会导致论坛被杀毒软件等误报,论坛有权随时删除相关附件和帖子!
病毒分析分区附件样本、网址谨慎下载点击,可能对计算机产生破坏,仅供安全人员在法律允许范围内研究,禁止非法用途!
禁止求非法渗透测试、非法网络攻击、获取隐私等违法内容,即使对方是非法内容,也应向警方求助!
本帖最后由 yusakul 于 2020-12-24 13:13 编辑

一、样本概述

样本从海莲花服务器扒下来的(经提醒修改,原先错误归类为海莲花),wsc_proxy.exe执行后加载wsc.dll解密wsc.dump文件,得到攻击模块(dll),攻击模块注入自身到系统进程后连接远控服务器上线,接收执行远控功能。远控功能包括:管理系统、文件、屏幕、进程、服务、网络、远程shell、键盘记录等。

wsc_proxy.exe主要功能为:

  1. 携带小红伞签名的exe文件;

  2. 加载wsc.dll。

wsc.dll主要功能为:

  1. 解密并调用wsc.dump。

wsc.dump主要功能为:

  1. 注册自启服务;

  2. 注入自身到系统进程svchost、msiexec;

  3. 被注入进程连接cc,执行远控指令。

二、样本类型

样本为越南海莲花组织开发,plugx木马程序。未加壳,通过注册服务的方式进行权限维持,实现开机启动。

三、详细分析

3.1 执行释放

A、攻击组件由三个文件组成wsc_proxy.exe、wsc.dll、wsc.dump。

B、执行经过签名的合法程序wsc_proxy.exe,并恶意加载loader程序wsc.dll。

C、loader程序wsc.dll解密并解压缩payload文件。

D、解密的shellcode被注入到合法的系统进程中。

E、注入的Windows进程执行C2 /远控功能。

执行链

3.2 攻击细节

Payload启动并挂起系统信任的文件svchost.exe,将具有解密加载功能的函数注入到svchost进程,并在scvhost进程入口地址构造shellcode,唤醒scvhost进程执行shellcode,shellcode将跳转到解密加载函数,该函数解密wsc.dump文件并执行payload。

如上操作后,payload将运行在白名单进程中,达到隐藏自身的目的,后续注入挖空进程msiexec.exe的过程与之相同。

3.3 远控模块

远控功能包括:系统配置、文件管理、屏幕监视、进程管理、服务管理、远程shell、网络配置、注册表管理、数据库管理、键盘记录等。

分发命令 子命令 描述
Option 0x2000 锁屏
0x2001 直接关机
0x2002 重启动
0x2003 提示将关机
0x2005 弹出对话框

表一

分发命令 子命令 描述
Disk 0x3000 遍历磁盘
0x3001 查找文件
0x3002 递归查找文件
0x3004 读取文件
0x3007 写文件
0x300A 创建文件
0x300C 创建隐藏桌面,并创建进程
0x300D 文件操作(复制、移动、重命名)
0x300E 根据环境变量名获取路径

表2

分发命令 子命令 描述
Screen 0x4000 远程桌面
0x4100 截图

表3

分发命令 子命令 描述
Process 0x5000 创建进程
0x5001 枚举进程
0x5002 关闭进程

表4

分发命令 子命令 描述
Service 0x6000 查询服务配置
0x6001 修改服务配置
0x6002 启动服务
0x6003 控制服务
0x6004 删除服务

表5

分发命令 子命令 描述
Shell 0x7002 启动cmd

表6

分发命令 子命令 描述
Telnet 0x7100 启动Tlenet服务

表7

分发命令 子命令 描述
RegEdit 0x9000 枚举注册表键
0x9001 创建注册表键
0x9002 删除注册表键
0x9003 复制注册表键
0x9004 枚举键值
0x9005 设置键值
0x9006 删除键值
0x9007 读取键值

表8

分发命令 子命令 描述
Nethood 0xA000 枚举网络资源

表9

分发命令 子命令 描述
PortMap 0xB000 开启端口映射

表10

分发命令 子命令 描述
SQL 0xC000 获取数据库信息
0xC001 列出驱动程序说明s
0xC002 连接数据库

表11

分发命令 子命令 描述
Netstat 0xD000 获取TCP相关信息
0xD001 获取UDP相关信息
0xD002 设置TCP连接的状态

表12

分发命令 子命令 描述
KeyLog 0xE000 键盘记录

表12

分发命令 子命令 描述
ClipLog 0xF000 剪切板记录

表13

3.4 逆向细节

3.4.1 wsc_proxy.exe

wsc_proxy.exe文件数字签名为AVAST Software
s.r.o.,来自安全厂商AVAST。说明样本开发者拥有该安全厂商私有证书,利用证书将样本签名,达到免杀目的(可能是由于厂商的数字签名私钥泄露或被破解)。

wsc_proxy.exe数字签名

0x1 加载“解密dll”

wsc_proxy.exe为带签名的白名单程序,程序功能为:加载wsc.dll。

3.4.2 wsc.dll

0x1 构造shellcode

wsc.dll构造了一段shellcode调用wsc.dll导出函数sub_10001000,构造地址为wsc_proxy.exe加载自身完成时。sub_10001000为加载函数。

构造shellcode

Shellcode地址

执行流程

0x2加载wsc.dump

读取wsc.dump到内存,修改内存属性为可执行,跳转到目标wsc.dump地址执行。

文件路径

修改内存属性,跳转执行

3.4.3 wsc.dump

文件wsc.dump猜测为样本开发者从内存中dump函数指令得到二进制文件,跳转到文件首地址即可正常执行函数。

0x1 解密解压缩并执行payload

解密wsc.dump自带的加密数据,再次解压得到一个dll文件,在内存中展开PE文件并修复重定位。上述操作完毕后调用该payload(dll)。

在该片内存中标记“PLUG”。

解密算法

解压得到payload

3.4.4 payload

Payload每次启动将检查启动环境,并据此进行一些初始化操作。同时payload将根据启动参数执行不同的功能。

0x1 初始化

提升权限

2) 复制到指令目录

复制样本组件到路径"C:\ProgramData\Windows NT\accessories\

wsc_proxy.exe",文件属性为隐藏,再次启动wsc_proxy.exe。

0x2 注册自启服务:100进程

主要目的为注册自启服务,注册服务之前有检查权限和提升权限的操作。

提权

利用方法:COM提升名称(COM Elevation
Moniker)技术提升接口权限,ICMLuaUtil接口启动附带管理员权限进程wsc_proxy.exe进程,启动参数为100。

进程监控

注册服务

创建服务

注册表被添加的启动服务

0x3 注入、挖空svchost进程:200进程

该进程将查找系统文件svchost.exe,启动并挂起svchost,随后修改svchost进程内存,将一个功能为“解密、解压缩wsc.dll并加载payload”的函数写入到svchost进程内存,寻找入口地址OEP并在此构造shellcode跳转到解密解压缩函数。

恢复svchost主线程,执行解密解压缩操作,执行payload。

创建挂起进程:svchost

计算跳转

构建shellcode

0x4 svchost进程:201进程

创建内存映射,保存一些工具类函数,待后续使用。

保存跨进程访问的工具类函数

保存功能函数

磁盘管理

注册表操作

进程管理

枚举网络资源

获取网络状态

计算机设置

端口映射

服务管理

启动远程cmd

数据库操作

启动telnet服务

Hook键盘消息

保存键盘记录到本地

剪切板记录

创建、注入、挖空msiexec进程

操作过程与操作svchost相同,见下图。

上线、通讯

通讯线程为OlProcNotify,该线程能够使用三种协议尝试连接地址steam.dajuw.com,端口为443。

通信成功后发送附带加密key的加密报文,在接收处理循环中接收执行远控指令。

执行流程

上线协议

发送接收指令消息

接收消息、处理指令

4)插件管理器

远控服务器可以发送指令创建模块管理线程,线程名为:OlProcManager。该线程同样先使用指定的协议连接服务器,并进入入一个“发送-接收-处理”循环,遍历执行远控模块具有的功能(管理磁盘、文件、屏幕…)。

发送消息

接收指令循环

执行功能

0x5 msiexec进程:209进程

209进程同201进程将功能模块函数安装,并创建管道实现进程通讯。此外,209进程创建DoImpUserProc线程接收指令执行功能函数。

功能安装与管道通讯

执行功能

0x5 300进程

300进程操作:关闭并删除远控服务,清理远控留下的注册表痕迹,最后将远控程序和文件删除。

四、样本特征

暂不提供

免费评分

参与人数 21吾爱币 +21 热心值 +18 收起 理由
wkychen + 1 我很赞同!
hxtlcc + 1 热心回复!
hjhj525 + 1 + 1 我很赞同!
hextest + 1 + 1 我很赞同!
脱壳的龙虾 + 1 + 1 我很赞同!
7fMeteor + 1 我很赞同!
ruohuan232 + 1 + 1 热心回复!
清歡渡 + 1 + 1 我很赞同!
203502sd + 1 + 1 用心讨论,共获提升!
dtkevin + 1 我很赞同!
绫织梦 + 1 + 1 用心讨论,共获提升!
QRQ + 1 + 1 我很赞同!
MaoKing + 1 + 1 欢迎分析讨论交流,吾爱破解论坛有你更精彩!
dreakwl + 1 + 1 用心讨论,共获提升!
yangruiqi + 1 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!
gaosld + 1 + 1 热心回复!
alittlebear + 1 + 1 膜拜大佬!!
绝无神 + 1 + 1 我很赞同!
crazycannon + 1 + 1 谢谢@Thanks!
fengbolee + 1 + 1 用心讨论,共获提升!
a1142099496 + 2 + 1 感谢发布原创作品,吾爱破解论坛因你更精彩!

查看全部评分

发帖前要善用论坛搜索功能,那里可能会有你要找的答案或者已经有人发布过相同内容了,请勿重复发帖。

 楼主| yusakul 发表于 2020-12-21 10:59
Sam.777 发表于 2020-12-21 10:39
wsc_proxy.exe不是白程序吗,加载恶意dll

嗯 白的 自己用都可以
addqcx 发表于 2020-12-17 11:53
zsxm6865 发表于 2020-12-17 20:25
QRQ 发表于 2020-12-17 22:27
谢谢楼主分享吧
yangyuyinxiang 发表于 2020-12-18 19:20
感谢楼主的分享
Sam.777 发表于 2020-12-21 10:39
wsc_proxy.exe不是白程序吗,加载恶意dll
Karry1121 发表于 2020-12-24 09:34
感谢楼主 又学到新知识了
yangruiqi 发表于 2020-12-25 11:30
plugx,好厉害
20000721yy 发表于 2020-12-26 14:55
感谢楼主的分享
您需要登录后才可以回帖 登录 | 注册[Register]

本版积分规则 警告:本版块禁止灌水或回复与主题无关内容,违者重罚!

快速回复 收藏帖子 返回列表 搜索

RSS订阅|小黑屋|处罚记录|联系我们|吾爱破解 - LCG - LSG ( 京ICP备16042023号 | 京公网安备 11010502030087号 )

GMT+8, 2024-4-19 13:37

Powered by Discuz!

Copyright © 2001-2020, Tencent Cloud.

快速回复 返回顶部 返回列表