研究背景
2022年8月份国内发布了一份报告《南亚Patchwork APT组织新活动特点分析》,里面提及到存在针对国内的攻击痕迹,里面的样本当时都属于私有样本,外部无法获取,因此除了当事人谁都没有办法。直到2022年9月17日有人上传了其中一个样本,自己这才能亲自下载至本地进行分析积累点相关经验,有价值的样本获取不易得多多珍惜呢。
组织背景
Patchwork最早由国外安全厂商Norman披露并命名为Hangover,在2015年的攻击行动被国外安全厂商Cymmetria披露为Patchwork,2016年其他厂商后续披露了该组织的详细报告,在国内有“白象”称呼。其主要针对Windows系统进行攻击,同时也会针对Android、Mac OS系统进行攻击。以鱼叉攻击为主,以少量水坑攻击为辅,针对目标国家的政府、军事、电力、工业、外交和经济进行网络间谍活动。
分析过程比较简单,属于.net恶意文件,虽然初步分析时提示存在ConfuserEx保护,但是静态反编译后其实可读性很好并不需要去混淆,经过实际调试也未发现反调试反虚拟机机制,对于.net逆向分析来说简直就是阅读源码。样本的编译时间为2022-04-12 15:32:20(UTC+8),如果未被伪造的话至少是2022年4月份之后的攻击活动了,该木马经过base64解码后内存加载koi模块的Plugin_host.Program.Main方法执行,经过二进制代码比对发现属于基于开源远控GRAT2的木马。
前期调试中可单步调试解密完成后进入koi模块,然后解密C2配置后尝试以TLS1.2协议进行通信。
由于该类攻击活动C2存活时间肯定不长,因此无法得到响应,当第一次请求失败在RAT的其余逻辑中还会转而请求qq.com域名来测试当前网络连通性。
如果当前网络可连通,则拼接URL使用POST请求https://37.120.222.226/jquery.js地址,POST请求字段数据为data="JSI+JCUjQyEyIkdM",数据为随机产生。
上述连接成功后会请求https://37.120.222.226/contactus?OjRGNjwlOyFMQTwy,得到响应的数据格式,数据头部为0x0 - 0x6偏移,然后从0x6位置开始提取数据,后续的数据会进行base64解码获取对应的指令然后执行,如下会随机选择以下四种不同的URI请求地址。
请求失败还会判断文件C:\Users\onion\AppData\Local\Temp\UserCache是否存在,如果不存在则解密内嵌的数据拼接组合成地址https://api.github.com/repos/haituyanji/rug-sigma76/contents/rugs_user237,如下属于Patchwork组织创建的github账号与仓库,攻击者于2022年3月23日开始部署配置信息。
上述github仓库保存的数据解码后如下:
cnJUYmRNTTdROWJ4S2pBcTFaU3I4cnZQY044SjNnKzl1bGpGdzdKT3M2cz06VG01R1JFOUVTa05OVms1M1VqQktVRnBzWTNwT2FsSXdWakZvU0dOVk5BOk1UUkVOa000TVRKRk9UaEVNalJHUkRCRVJFRTRSalkzTnprM05rRXlOamhCUmtWRVJURkJOQTpUVWxKUWtscVFVNUNaMnR4YUd0cFJ6bDNNRUpCVVVWR1FVRlBRMEZST0VGTlNVbENRMmRMUTBGUlJVRnpaVVppTW5kWFlTdGhVRGxNWW5aUGRWVnhhekZ0YVd4VllXVjNOM0JZUTFkc1N6RjZZaTlUVWpWVlMzRjBLMjlOT0dORGNHVktWekpwTjBoRmEzVktOamxCVVZOb1NXeEdXbWM0YVV4ME1tVm1Na2hyVVdaak5rdDFVbmw1TWxGQlZucFJLMGRHYkd4a01XcHVZVVpKZGs5NWFtSXlVbEJ6YlZCbGJqUXhaMmMyVWt3d00yZGlNRFJyUjNCUVVYcE5iaTlrWkV0bVV6VlBSbFJHYTBjd1pISkJiWGczTmpSVFFsSlZTR1kwUld4TkwxRlFOMVpRZGtNNVVUaDNibko2ZURkbk5td3ZhMDlKUWtsNmVGbGFSemhMWjJobFpHeG1jV3d3VjNFcmVXWkZUMHhsVW5ScVMyWkdVV05ZZVV0eU5VNXpWVUp2ZEdnMFEwVjZZMVV2WjFsNVFsWjVaRTlpU0VkR2JtWjBPVFJxZUN0SWJ6Y3JlbUpJTDFnelZuZHROMHRMWWxSMVdVdFFaSEV3TDAwMVRtSlBjWFZOVW5OSFdVeHdjREUyYWpodVpYTk5ka2RYV21ST01ISjVZeloxTkRsc1NuZEpSRUZSUVVJ
拼接得到命令行后执行命令创建ADS隐藏文件,如下。
cmd.exe /c echo cnJUYmRNTTdROWJ4S2pBcTFaU3I4cnZQY044SjNnKzl1bGpGdzdKT3M2cz06VG01R1JFOUVTa05OVms1M1VqQktVRnBzWTNwT2FsSXdWakZvU0dOVk5BOk1UUkVOa000TVRKRk9UaEVNalJHUkRCRVJFRTRSalkzTnprM05rRXlOamhCUmtWRVJURkJOQTpUVWxKUWtscVFVNUNaMnR4YUd0cFJ6bDNNRUpCVVVWR1FVRlBRMEZST0VGTlNVbENRMmRMUTBGUlJVRnpaVVppTW5kWFlTdGhVRGxNWW5aUGRWVnhhekZ0YVd4VllXVjNOM0JZUTFkc1N6RjZZaTlUVWpWVlMzRjBLMjlOT0dORGNHVktWekpwTjBoRmEzVktOamxCVVZOb1NXeEdXbWM0YVV4ME1tVm1Na2hyVVdaak5rdDFVbmw1TWxGQlZucFJLMGRHYkd4a01XcHVZVVpKZGs5NWFtSXlVbEJ6YlZCbGJqUXhaMmMyVWt3d00yZGlNRFJyUjNCUVVYcE5iaTlrWkV0bVV6VlBSbFJHYTBjd1pISkJiWGczTmpSVFFsSlZTR1kwUld4TkwxRlFOMVpRZGtNNVVUaDNibko2ZURkbk5td3ZhMDlKUWtsNmVGbGFSemhMWjJobFpHeG1jV3d3VjNFcmVXWkZUMHhsVW5ScVMyWkdVV05ZZVV0eU5VNXpWVUp2ZEdnMFEwVjZZMVV2WjFsNVFsWjVaRTlpU0VkR2JtWjBPVFJxZUN0SWJ6Y3JlbUpJTDFnelZuZHROMHRMWWxSMVdVdFFaSEV3TDAwMVRtSlBjWFZOVW5OSFdVeHdjREUyYWpodVpYTk5ka2RYV21ST01ISjVZeloxTkRsc1NuZEpSRUZSUVVJ> C:\Users\onion\AppData\Local\Temp\UserCache:Zone.ldentifier
然后继续base64解码以下内容:
rrTbdMM7Q9bxKjAq1ZSr8rvPcN8J3g+9uljFw7JOs6s=:Tm5GRE9ESkNNVk53UjBKUFpsY3pOalIwVjFoSGNVNA:MTRENkM4MTJFOThEMjRGRDBEREE4RjY3Nzk3NkEyNjhBRkVERTFBNA:TUlJQklqQU5CZ2txaGtpRzl3MEJBUUVGQUFPQ0FROEFNSUlCQ2dLQ0FRRUFzZUZiMndXYSthUDlMYnZPdVVxazFtaWxVYWV3N3BYQ1dsSzF6Yi9TUjVVS3F0K29NOGNDcGVKVzJpN0hFa3VKNjlBUVNoSWxGWmc4aUx0MmVmMkhrUWZjNkt1Unl5MlFBVnpRK0dGbGxkMWpuYUZJdk95amIyUlBzbVBlbjQxZ2c2UkwwM2diMDRrR3BQUXpNbi9kZEtmUzVPRlRGa0cwZHJBbXg3NjRTQlJVSGY0RWxNL1FQN1ZQdkM5UTh3bnJ6eDdnNmwva09JQkl6eFlaRzhLZ2hlZGxmcWwwV3EreWZFT0xlUnRqS2ZGUWNYeUtyNU5zVUJvdGg0Q0V6Y1UvZ1l5QlZ5ZE9iSEdGbmZ0OTRqeCtIbzcremJIL1gzVndtN0tLYlR1WUtQZHEwL001TmJPcXVNUnNHWUxwcDE2ajhuZXNNdkdXWmROMHJ5YzZ1NDlsSndJREFRQUI
解密结果依然为先前的C2地址https://37.120.222.226/jquery.js,如下程序编写上存在一些小bug。
根据服务端下发的指令完成对应功能,指令列表如下:
命令 | 功能 |
no3ko5p | 获取当前屏幕截图 |
dworden | 文件下载 |
yuwpkli2o | 文件上传 |
detgc3wrd9r | 设置当前工作目录的路径 |
twmdsce | 设置睡眠时间 |
dwsesst | 客户端退出 |
s7wehrr52ll | 执行Shell命令 |
gqer313dcdr | 获取当前工作绝对路径 |
gierlstwf32 | 获取文件夹下文件信心 |
dqoirelst23 | 获取当前进程ID |
如下是发现的其余C2地址,也属于木马的控制端,可以成功与C2响应交互。
根据公开报告可知检测的话由于攻击阶段采用了内存执行的方式,本地已删除了解密后的文件,因此没有落地文件存在,因此需检测可疑进程来找到RAT木马。
参考链接
南亚 Patchwork APT 组织新活动特点分析
https://paper.seebug.org/1943/
https://s.threatbook.com/report/file/739fd36d15c1f22a4be251714b220d708e620c144b7ba43ad1e2ac1915b4d727
r3nhat/GRAT2: We developed GRAT2 Command & Control (C2) project for learning purpose.
https://github.com/r3nhat/GRAT2