作者:SungLin@知道创宇404实验室
一.恶意邮件样本的信息与背景
在六月份的某单位HW行动中,知道创宇HW安全团队通过创宇云图APT威胁感知系统并结合腾讯御点终端安全管理系统成功处置了一起APT攻击事件。
7月份对同一样本的补充截图如下:
在本次APT攻击中,攻击者通过发送鱼叉式钓鱼邮件,配合社会工程学手段诱导用户运行宏代码,进而下载尾部带有恶意payload压缩包的可执行文件。通过层层释放最终运行可窃取受害人员各类机密信息、维持权限、接收远端控制的木马。
文档打开后,会诱导用户需要开启宏才能查看被模糊的图片,一旦用户点击开启宏,恶意样本将会在用户电脑上运行、潜伏、收集相应的信息、等待攻击者的进一步指令。
该APT样本整体运行流程图如下:
二.宏病毒文档的提取与调试
使用OfficeMalScanner解压Office文档并提取文档所带的vba宏代码,打开Office文档启用宏后,采用快捷键Alt+F11开启宏代码的动态调试。该宏代码作为实施攻击的入口,实现了恶意样本的下载和执行。本章也将分析下载和执行的整体流程。
解压该Office文档后,宏代码被封装在xl文件夹下的vbaProject.bin文件中。
使用OfficeMalScanner这个工具的命令info从vbaProject.bin中提取宏代码,提取完后可以知道有6个宏代码,其中fdrhfaz2osd是主要的宏代码:
动态调试分析宏代码,首先宏代码传入两个值u和f,分别是请求的url和写入的filepath。
通过调用WinHttp.WinHttpRequest模块的方法Get请求来获取Response并写入到文件gc43d4unx.exe中。
最后通过调用WScript.Shell来启动程序gc43d4unx.exe。
三.gc43d4unx.exe释放pkk.exe等文件并执行
程序gc43d4unx.exe在文件的末尾存放了一个RAR的压缩文件,gc43d4unx.exe程序通过解压缩后在用户Temp目录下的29317159文件夹释放了49个文件,并以pkk.exe xfj=eaa命令继续执行恶意样本。
压缩文件在gc43d4unx.exe中的分布情况。
gc43d4unx.exe主要逻辑在对话框的回调函数sub_419B4E中,识别Rar!的头部标识
解压缩到映射的内存文件中,然后再挨着写到各个文件中
在用户Temp目录下的29317159文件夹生成隐藏文件
最后通过SHELL32.ShellExecuteExW执行qwb.vbs代码,qwb.vbs则会使用WshShell.Run运行pkk.exe xfj=eaa。
四.PayLoad之pkk.exe运行分析
pkk.exe是个名为AutoIt v3的脚本软件,可以加载自定义脚本。主要是就是通过定义DllStruct,然后再通过DllCall来调用函数。qwb.vbs运行代码为WshShell.Run”pkk.exe xfj=eaa”,通过pkk.exe加载一个叫xfj=eaa的二进制文件。
软件先判断载入的是不是DLL,xfj=eaa是个编码后的脚本,判断后程序将会尝试解码。
解码成功后,将解码数据写入一个临时文件中,软件将会重新创建一个进程来重新加载脚本。
解码后的Autolt脚本,代码被混淆了。
根据混淆的脚本,只是函数名混淆,而且脚本只是一个纯文本代码,通过重写此脚本后,可以看到基本还原的Autolt脚本代码了。
Autolt软件解析完脚本后根据字符串功能通过分发函数来执行相应的函数。
五.PayLoad之Autolt脚本分析
Autolt脚本包含的功能有:检测运行环境、修改注册表、解密最终的.net木马并运行。
通过检测进程名、设备是否有D盘等操作实现反虚拟机检测
注册表禁用UAC策略函数
注册表禁用任务管理器函数
注册表开启自启函数,AuEx和ExE_c的值分别是xfj=eaa、pkk.exe。
解密.net木马:
读取K3ys这个键值和mmm.ini文件中[Data]段到[eData],将此数据进行字符替换正则匹配。
载入Advapi32.dll,将K3ys键值进行Hash计算获取到真正的key,后再调用CryptDecrypt函数解密,利用ollydbg动态调试dump出解密数据,解密后的数据就是一个PE结构的程序,用IDA分析程序后,为.NET程序,这个.NET程序就是最后核心木马了,Autolt脚本后续将此PE结构加载进去,创建线程去单独运行此程序。
六..NET木马分析
木马主要功能进行了敏感信息收集,敏感信息收集完后会判断目标主机是否符合收集目标,以判断6个人名为主,符合本机收集目标,将会通过smtp或者ftp服务器上传文件,并且也通过web服务和c&c进行信息交流等。
木马程序的基本信息:
用.net反编译工具dnSpy打开此程序,程序入口处就是在类afg.agu,此木马经我判定进行了控制流扁平化和字符串加密的混淆方式,采用工具de4dot无法进行反混淆。
字符串的解密:
如下图所示,经过字符串加密后静态分析已经无法分析到字符串,而且可以看出控制流进行了扁平化的处理,加密字符串的入口函数为<Module>.\u206E()。
字符串的加密方式主要是通过传入加密的索引,通过固定值的替换与拆分计算后找到对应存储在uint型数组对象\u2009的加密Data、key、IV,\u2009数组对象大概有1047个字符串加密数组,字符串加密采用AES,模式为CBC。
编写python脚本进行了字符串解密,解密后的效果如下所示:
字符串解密核心算法如下:
入口处获取主机名进行判断是否包含以下6个主机名,攻击目标是否符合:
自我复制到C:\Users\l\AppData\Roaming\MyApp\MyApp.exe,设置为系统文件,并设置为无法删除的文件Zone.Identifier,在注册表设置为自启应用并且隐藏。
感谢前辈的指点,此处有错误,更正如下:定时请求 http://checkip.amazonaws.com/ 获取出口的IP。
httpweb服务器进行交互,进行信息的交流包括(”update”、”info”、”uninstall”、”cookies”、”screenshots”、”keylog”)。
DNS查询等:
进行ftp和smtp服务操作,并且绑定了一个邮箱地址 。
以下可能是此地址的密码:
收集信息如下:
系统信息 | |
---|---|
ManagementObjectSearcher managementObjectSearcher = new ManagementObjectSearcher(“root\CIMV2”, “SELECT * FROM Win32_VideoController”) | |
managementObjectSearcher2 = new ManagementObjectSearcher(“SELECT * FROM Win32_Processor”); |
浏览器 | |
---|---|
CatalinaGroup\Citrio\User Data | liebao\User Data |
Fenrir Inc\Sleipnir5\setting\modules\ChromiumViewer | Yandex\YandexBrowser\User Data |
360Chrome\Chrome\User Data | Chedot\User Data |
Elements Browser\User Data | Epic Privacy Browser\User Data |
CocCoc\Browser\User Data | MapleStudio\ChromePlus\User Data |
Chromium\User Data | Torch\User Data |
Iridium\User Data | Comodo\Dragon\User Data |
7Star\7Star\User Data | Amigo\User Data |
BraveSoftware\Brave-Browser\User Data | CentBrowser\User Data |
Vivaldi\User Data | QIP Surf\User Data |
Kometa\User Data | Orbitum\User Data |
Sputnik\Sputnik\User Data | uCozMedia\Uran\User Data |
Coowon\Coowon\User Data |
ftp列表 | |
---|---|
\CoreFTP\sites.idx | \FTP Navigator\Ftplist.txt |
\SmartFTP\Client 2.0\Favorites\Quick Connect\ | |
\SmartFTP\Client 2.0\Favorites\Quick Connect*.xml | \Ipswitch\WS_FTP\Sites\ws_ftp.ini |
\cftp\Ftplist.txt | \FTPGetter\servers.xml |
\FTP Navigator\Ftplist.txt |
Mail列表 | |
---|---|
\VirtualStore\Program Files\Foxmail\mail\ | \Opera Mail\Opera Mail\wand.dat |
Software\IncrediMail\Identities\ |
注册表 | |
---|---|
“HKEY_CURRENT_USER\Software\FTPWare\COREFTP\Sites\” + str + “Host” | “HKEY_CURRENT_USERSoftwareFTPWareCOREFTPSites” + str + “Port” |
“HKEY_CURRENT_USERSoftwareFTPWareCOREFTPSites” + str + “User” | “HKEY_CURRENT_USERSoftwareFTPWareCOREFTPSites” + str + “PW” |
“HKEY_CURRENT_USERSoftwareFTPWareCOREFTPSites” + str + “Name” |
http通信信息
七.安全建议
强烈推荐采用知道创宇云图、腾讯御点等产品,提高企业安全保护,降低外部威胁水平。
知道创宇云图威胁监测系统系列产品,实时分析网络全流量,结合威胁情报数据及网络行为分析技术,深度检测所有可疑活动。文件检测采用全面沙箱分析,通过在沙箱(Sandbox)中运行(行为激活/内容“引爆”)各种文件,分析文件行为,识别出未知威胁。网络检测与文件检测同步进行,采用情报共享机制,构筑检测生态圈,准确、快速地掌握攻击链条,以便进一步采取相关措施,将APT(高级持续性威胁)攻击阻止在萌芽状态。
腾讯御点是腾讯出品、领先国际的企业级安全服务提供者。依托腾讯19年的安全经验积累,为企业级用户提供私有云防病毒和漏洞修复解决方案。御点具备终端杀毒统一管控、修复漏洞统一管控,以及策略管控等全方位的安全管理功能,可帮助企业管理者全面了解、管理企业内网安全状况、保护企业安全。
八.IOC信息
domain & IP:
animalrescueskyward.co.za mail.privateemail.com checkip.amazonaws.com 129.232.200.208:443 198.54.122.60 52.206.161.133 34.197.157.64 18.211.215.84 52.202.139.131 34.233.102.38 52.6.79.229
相关 hash:
7b478598b056d1f8e9f52f5ef1d147437b7f0da5
a73816ebcfc07d6da66de7c298a0912a3dd5d41a
b65884f1e833ea3eec8a8be4c7057a560da4511e
8827b2c1520fb41034d5171c5c4afd15158fd4a3
491b221f68013a2f7c354e4bb35c91fe45a1c0c0
本文由 Seebug Paper 发布,如需转载请注明来源。本文地址:https://paper.seebug.org/1011/