对某单位的 APT 攻击样本分析

释放双眼,带上耳机,听听看~!
作者:SungLin@知道创宇404实验室时间:2019年7月30日原文链接:https://paper.seebug.org/1011/一.恶意邮件样本的信息与背景在六月份的某单位HW行动中,知道创宇HW安全团队通过创宇云图APT威胁感知系统并结合腾讯御点终端安全管理系统成功处置了一起APT攻击事

作者:SungLin@知道创宇404实验室

时间:2019年7月30日

原文链接:https://paper.seebug.org/1011/

一.恶意邮件样本的信息与背景

在六月份的某单位HW行动中,知道创宇HW安全团队通过创宇云图APT威胁感知系统并结合腾讯御点终端安全管理系统成功处置了一起APT攻击事件。

7月份对同一样本的补充截图如下:undefined

在本次APT攻击中,攻击者通过发送鱼叉式钓鱼邮件,配合社会工程学手段诱导用户运行宏代码,进而下载尾部带有恶意payload压缩包的可执行文件。通过层层释放最终运行可窃取受害人员各类机密信息、维持权限、接收远端控制的木马。

文档打开后,会诱导用户需要开启宏才能查看被模糊的图片,一旦用户点击开启宏,恶意样本将会在用户电脑上运行、潜伏、收集相应的信息、等待攻击者的进一步指令。

undefined

该APT样本整体运行流程图如下:

undefined

二.宏病毒文档的提取与调试

使用OfficeMalScanner解压Office文档并提取文档所带的vba宏代码,打开Office文档启用宏后,采用快捷键Alt+F11开启宏代码的动态调试。该宏代码作为实施攻击的入口,实现了恶意样本的下载和执行。本章也将分析下载和执行的整体流程。

解压该Office文档后,宏代码被封装在xl文件夹下的vbaProject.bin文件中。

 undefined

使用OfficeMalScanner这个工具的命令info从vbaProject.bin中提取宏代码,提取完后可以知道有6个宏代码,其中fdrhfaz2osd是主要的宏代码:

undefined

动态调试分析宏代码,首先宏代码传入两个值u和f,分别是请求的url和写入的filepath。

undefined通过调用WinHttp.WinHttpRequest模块的方法Get请求来获取Response并写入到文件gc43d4unx.exe中。

undefined

最后通过调用WScript.Shell来启动程序gc43d4unx.exe。

undefined

三.gc43d4unx.exe释放pkk.exe等文件并执行

程序gc43d4unx.exe在文件的末尾存放了一个RAR的压缩文件,gc43d4unx.exe程序通过解压缩后在用户Temp目录下的29317159文件夹释放了49个文件,并以pkk.exe xfj=eaa命令继续执行恶意样本。

压缩文件在gc43d4unx.exe中的分布情况。

undefined

gc43d4unx.exe主要逻辑在对话框的回调函数sub_419B4E中,识别Rar!的头部标识

undefined

解压缩到映射的内存文件中,然后再挨着写到各个文件中

undefined

在用户Temp目录下的29317159文件夹生成隐藏文件

undefined

最后通过SHELL32.ShellExecuteExW执行qwb.vbs代码,qwb.vbs则会使用WshShell.Run运行pkk.exe xfj=eaa。

undefinedundefinedundefined

四.PayLoad之pkk.exe运行分析

pkk.exe是个名为AutoIt v3的脚本软件,可以加载自定义脚本。主要是就是通过定义DllStruct,然后再通过DllCall来调用函数。qwb.vbs运行代码为WshShell.Run”pkk.exe xfj=eaa”,通过pkk.exe加载一个叫xfj=eaa的二进制文件。

软件先判断载入的是不是DLL,xfj=eaa是个编码后的脚本,判断后程序将会尝试解码。

undefined

解码成功后,将解码数据写入一个临时文件中,软件将会重新创建一个进程来重新加载脚本。

undefined

解码后的Autolt脚本,代码被混淆了。

undefined

根据混淆的脚本,只是函数名混淆,而且脚本只是一个纯文本代码,通过重写此脚本后,可以看到基本还原的Autolt脚本代码了。

undefined

Autolt软件解析完脚本后根据字符串功能通过分发函数来执行相应的函数。

undefinedundefined

五.PayLoad之Autolt脚本分析

Autolt脚本包含的功能有:检测运行环境、修改注册表、解密最终的.net木马并运行。

通过检测进程名、设备是否有D盘等操作实现反虚拟机检测

undefined

注册表禁用UAC策略函数

undefined

注册表禁用任务管理器函数

undefined

注册表开启自启函数,AuEx和ExE_c的值分别是xfj=eaa、pkk.exe。

undefined

解密.net木马:

读取K3ys这个键值和mmm.ini文件中[Data]段到[eData],将此数据进行字符替换正则匹配。

undefinedundefined

载入Advapi32.dll,将K3ys键值进行Hash计算获取到真正的key,后再调用CryptDecrypt函数解密,利用ollydbg动态调试dump出解密数据,解密后的数据就是一个PE结构的程序,用IDA分析程序后,为.NET程序,这个.NET程序就是最后核心木马了,Autolt脚本后续将此PE结构加载进去,创建线程去单独运行此程序。

undefined

六..NET木马分析

木马主要功能进行了敏感信息收集,敏感信息收集完后会判断目标主机是否符合收集目标,以判断6个人名为主,符合本机收集目标,将会通过smtp或者ftp服务器上传文件,并且也通过web服务和c&c进行信息交流等。

木马程序的基本信息:

用.net反编译工具dnSpy打开此程序,程序入口处就是在类afg.agu,此木马经我判定进行了控制流扁平化和字符串加密的混淆方式,采用工具de4dot无法进行反混淆。

undefined

字符串的解密:

如下图所示,经过字符串加密后静态分析已经无法分析到字符串,而且可以看出控制流进行了扁平化的处理,加密字符串的入口函数为。

undefined

字符串的加密方式主要是通过传入加密的索引,通过固定值的替换与拆分计算后找到对应存储在uint型数组对象\u2009的加密Data、key、IV,\u2009数组对象大概有1047个字符串加密数组,字符串加密采用AES,模式为CBC。

编写python脚本进行了字符串解密,解密后的效果如下所示:

undefined

字符串解密核心算法如下:

undefined

入口处获取主机名进行判断是否包含以下6个主机名,攻击目标是否符合:

undefined

自我复制到C:\Users\l\AppData\Roaming\MyApp\MyApp.exe,设置为系统文件,并设置为无法删除的文件Zone.Identifier,在注册表设置为自启应用并且隐藏。

undefinedundefinedundefined

感谢前辈的指点,此处有错误,更正如下:定时请求 http://checkip.amazonaws.com/ 获取出口的IP。

undefined

httpweb服务器进行交互,进行信息的交流包括(”update”、”info”、”uninstall”、”cookies”、”screenshots”、”keylog”)。

undefined

DNS查询等:

undefined

进行ftp和smtp服务操作,并且绑定了一个邮箱地址 。

undefinedundefined

以下可能是此地址的密码:

undefined

收集信息如下:

系统信息
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通信信息

undefined

七.安全建议

强烈推荐采用知道创宇云图、腾讯御点等产品,提高企业安全保护,降低外部威胁水平。

知道创宇云图威胁监测系统系列产品,实时分析网络全流量,结合威胁情报数据及网络行为分析技术,深度检测所有可疑活动。文件检测采用全面沙箱分析,通过在沙箱(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

转载请注明来源

给TA买糖
共{{data.count}}人
人已赞赏
HackerNews

Apache Solr DataImportHandler远程代码执行漏洞(CVE-2019-0193) 分析

2019-8-14 3:52:56

HackerNews

APIs在证券行业应用中的时机已经成熟

2019-8-14 7:00:53

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索