Patchwork组织的活动样本分析与拓线
2022-11-19 23:12:7 Author: OnionSec(查看原文) 阅读量:18 收藏

研究背景

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


文章来源: http://mp.weixin.qq.com/s?__biz=MzUyMTUwMzI3Ng==&mid=2247484793&idx=1&sn=79f16cd9aaf0a059c3ab2115b691a31c&chksm=f9db523aceacdb2c997f389b772739c45b4d79c9fa7c467da2f4e502513f685780b1c2ec4fc8#rd
如有侵权请联系:admin#unsafe.sh