概述
奇安信威胁情报中心在日常威胁发现过程中发现一个专门针对游戏公司、制药行业、区块链、互联网金融、企业财务、运维人员等目标的团伙,盗用了多个公司的白证书,样本大部分使用了VMP壳进行了保护,执行过程中会将带有签名的驱动样本加载入内核对三环的样本提供保护,攻击手法极为高超,具备0day/Nday攻击能力,样本由于带有白签名,全程免杀,较难发现。我们将该团伙对应的编号命名为APT-Q-29。
经过溯源我们发现该团伙的攻击活动最早可以追溯到2013年,受害者遍布全球,主要集中在东亚,东南亚、欧洲、北美,国外友商多次对其进行了曝光,但不清楚友商是为了提高知名度还是处于某些势力的指示,刻意在报告中基于意识形态和政治因素将其描绘成具有国家背景的民族黑客。根据我们掌握的数据,该团伙攻击目标不分敌我,下手不分轻重。我们更愿意将其称为“无国界黑客”,攻击维度之广、行为之猖狂出乎我们的预料。
与之前的文章类似,本文内容也仅仅是对APT-Q-29组织在过去一段时间内攻击手法做一个分享,不讨论受害单位,所涉及C2均已无法访问,也请各域管人员看到该报告后对可疑机器进行排查。
攻击流程
该团伙攻击具体流程如下:
攻击者在横向移动过程中抓到了域管的账号密码,所以有权限在受害者主机的C盘根目录释放经过修改的系统文件。
- | - | - |
---|---|---|
文件名 | MD5 | timestamp |
profapi.dll | fc5d4cc0dbee5b184438a7f5dc3a804a | 0xCA538C5D |
添加了一个导入函数
imseo21.ime则被攻击者放到了C:/Windows/system32目录下,实现远控功能,每当操作系统重启时会自动加载C盘根目录下的profapi.dll文件,而profapi.dll则会加载system32目录下imseo21.ime的导出函数Install,从而实现持久化。
- | - | - |
---|---|---|
文件名 | MD5 | Packer |
imseo21.ime | 52ced5aa64a999dbd68a3c2525102731 | VMProtect/Win64 |
imseo21.ime带有正常的数字签名并且加了VMP壳,签名如下:
去VMP混淆后,Install导出函数代码如下:
主要功能为注册系统服务,核心功能在ServiceMain函数中,会先释放名为autochk.sys的驱动并加载到内核中,
驱动签名如下:
之后从如下端口中选择一个与远程服务器发起连接
远控功能由Zxshell魔改而来,会先收集本机相关信息,之后等待执行命令,相关功能如下:
该模块导出函数功能如下:
- | - |
---|---|
导出函数 | 功能 |
Install | 安装服务 |
ServiceMain | 核心远控 |
UnloadPerfCounterTextStringsW | Return 0 |
PerfectWorld | Return 1 |
ProxyAPI | 管道通信,管道名称通过外部传参 |
ProxyDll | 注入到explorer.exe或svchost.exe中 |
UnloadPerfCounterTextStringsW | Return 0 |
释放的Rootkit驱动主要功能为,隐藏三环远控程序的端口和TCP连接,文件过滤对抗杀软扫描。
- | - | - |
---|---|---|
文件名 | MD5 | Packer |
Autochk.sys | 4ce0604a5bbccd5f8edde3d3a195f6a2 | VC |
Hook nisproxy驱动的IRP回调函数IRP_MJ_DEVICE_CONTROL,与从三环传来的数据进行比较,如果符合则将对应结构体置0,实现端口隐藏
Hook “ //Device//Tcp”驱动的IRP回调函数IRP_MJ_DEVICE_CONTROL,与从三环传来的数据进行比较,如果符合则将链表截断,实现TCP连接隐藏。
上述功能生效后,当在受害者机器上执行Netstat命令时无法看到三环远控样本对外的网络连接状态,以此来干扰现场排查人员。
除此之外Rootkit还Hook了“ [\\FileSystem\\Ntfs](file:///\FileSystem\Ntfs)”的IRP_MJ_CREATE回调函数。
如果有非系统进程尝试打开样本文件时,会将对应文件对象的文件名替换成系统文件名,以此来干扰杀软的扫描流程。 该组织常用的系统Dll劫持套件如下:
- | - |
---|---|
C:/ | C:/windows/system32/ |
profapi.dll | wlanseo.dll |
SSPICLI.dll | C_26849.nls |
profapi.dll | imseo21.ime |
Secur32.dll | imseo21.ime |
Secur32.dll | chrsben.dll |
除了系统dll劫持,攻击者还会通过执行Dropper的方式,来植入Zxshell
- | - | - |
---|---|---|
文件名 | MD5 | Packer |
Cs.exe | 2caf2f56a1f0dafd11abbc74dc113088 | VMProtect/win32 |
Dropper同样带有数字签名。
执行流程如下:
与上述不同的是,32位下的rootkit驱动对远控程序的保护更加恐怖,当试图复制恶意dll文件时会劫持文件句柄,使得复制出来的文件为系统文件,迷惑分析人员误认为是正常文件。
在对域管和域控植入后门时,使用的是另一套Dropper
- | - | - |
---|---|---|
MD5 | Packer | timestam |
352f920aad028394a50d291889df51ea | VC/Win64 | 08/14/2021 09:17:21 |
Dropper无壳无签名,功能较为简单,释放名为broker_{xxx}.amp文件并加载。
还能直接调用amp文件的导出函数ServiceMain并在其后接参数控制远控逻辑。
- | - | - | - |
---|---|---|---|
文件名 | MD5 | Packer | timestamp |
broker_23369.amp | 832bd69960770c053850de98387be50c | VC/Win64 | 08/14/2021 09:17:17 |
样本为该团伙新开发的轻量化的远控程序,基于字符串我们将其命名为Broker Rat,功能十分轻量化,免杀效果极好。默认情况下会将自身注册为服务,并重命名为NetProxiesSvc.dll
ServiceMain函数功能如下,分为参数启动和服务启动两种模式
连接远程服务器
样本功能较为简单,反弹shell、下载/上传功能、文件管理等。
溯源关联
通过奇安信大数据平台关联我们发现该团伙在2015-2018年间经常通过邮件、社交网络等方式向游戏公司、信息传媒、电商、博彩、财经等行业投递钓鱼样本,完整执行链如图:
所用的部分Doc诱饵整理如下,已做脱敏处理:
- |
---|
文件名 |
IOS高级软件工程师_XXX.docx |
苏黎世大学-XX-运营总监(经理).docx |
推广经理-XXX.doc |
XX投资股份有限公司资料文档.docx |
…… |
内容如下:
我们无法估计该团伙在8年间一共窃取了多少家企业的数字签名,但从所投递数以百计带有签名的样本来看,被盗签名的企业应该不少于两位数,大部分都是游戏行业。
在2021年下半年我们披露了《Operation EICAR (APT-Q-28):针对证券金融行业的定向猎杀活动》,经过奇安信大数据平台溯源发现,报告中一个攻击事件起源于游戏辅助,初始执行链与APT-Q-29所用的系统dll劫持套件相同,故两个组织正式合并,统称APT-Q-29。APT-Q-28的报告内容可以当作该团伙在横向移动过程中行为的补充,同时期该团伙还进行了针对MACOS平台的水坑攻击,鉴于友商之前已经披露,故本文不再赘述。
总结
目前,基于奇安信威胁情报中心的威胁情报数据的全线产品,包括奇安信威胁情报平台(TIP)、天擎、天眼高级威胁检测系统、奇安信NGSOC、奇安信态势感知等,都已经支持对此类攻击的精确检测。
IOC
MD5:
fc5d4cc0dbee5b184438a7f5dc3a804a
52ced5aa64a999dbd68a3c2525102731
4ce0604a5bbccd5f8edde3d3a195f6a2
2caf2f56a1f0dafd11abbc74dc113088
352f920aad028394a50d291889df51ea
832bd69960770c053850de98387be50c