文档章节

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

 极客君
发布于 08/14 15:38
字数 2363
阅读 17
收藏 0

作者:SungLin@知道创宇404实验室
时间:2019年7月30日

原文链接

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

在六月份的某单位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

转载请注明出处

© 著作权归作者所有

粉丝 0
博文 7
码字总数 14904
作品 0
成都
私信 提问
APT-C-06组织在全球范围内首例使用“双杀”0day漏洞(CVE-2018-8174)发起的APT攻击分析及溯源

     报告更新相关时间节点   2018年4月18日,完成漏洞预警简报 2018年5月9日,形成综合分析报告   披露申明   本报告中出现的IOC(Indicators of Compromise,威胁指标),进一步...

FreeBuf
2018/05/12
0
0
如何利用开源威胁信息分析APT团伙

现在的黑客团伙越来越会玩了。 不久前,编辑在外网看到一则新闻:连接智利所有银行ATM基础设施的公司Redbanc在12月底遭受了计算机攻击,尽管新闻里没有提到是否带来损失,但听起来似乎就很可...

又田
02/01
0
0
为了干掉战斗民族,它使出了自爆的0day漏洞

曾经一奶同胞的铁哥们儿,如今却反目成仇! 俄罗斯和乌克兰都曾经是苏联的加盟国,自打2014年发生克里米亚危机后,这原本“哥俩好”的两国关系迅速降至冰点,双方曾一度剑拔弩张。 这不,直到...

周星恺
2018/12/08
0
0
APT-C-35组织(肚脑虫)的最新攻击活动分析

  背景   2017年3月,360追日团队发现了一类定向攻击的样本,确认是之前所未知的APT组织的攻击行动样本,目前可以追溯到的该组织至少在2016年4月便开始活动。追日团队将该攻击组织编号为...

FreeBuf
2018/07/30
0
0
MuddyWater组织疑似又开始活跃了

        APT组织“MuddyWater”的攻击活动最早出现于2017年,它多以间谍活动为目的,受害者主要分布在巴基斯坦、沙特阿拉伯、阿联酋和伊拉克等中东国家,攻击是通过Microsoft Office ...

嘶吼RoarTalk
2018/06/19
0
0

没有更多内容

加载失败,请刷新页面

加载更多

计算机实现原理专题--二进制减法器(二)

在计算机实现原理专题--二进制减法器(一)中说明了基本原理,现准备说明如何来实现。 首先第一步255-b运算相当于对b进行按位取反,因此可将8个非门组成如下图的形式: 由于每次做减法时,我...

FAT_mt
今天
5
0
好程序员大数据学习路线分享函数+map映射+元祖

好程序员大数据学习路线分享函数+map映射+元祖,大数据各个平台上的语言实现 hadoop 由java实现,2003年至今,三大块:数据处理,数据存储,数据计算 存储: hbase --> 数据成表 处理: hive --> 数...

好程序员官方
今天
7
0
tabel 中含有复选框的列 数据理解

1、el-ui中实现某一列为复选框 实现多选非常简单: 手动添加一个el-table-column,设type属性为selction即可; 2、@selection-change事件:选项发生勾选状态变化时触发该事件 <el-table @sel...

everthing
今天
6
0
【技术分享】TestFlight测试的流程文档

上架基本需求资料 1、苹果开发者账号(如还没账号先申请-苹果开发者账号申请教程) 2、开发好的APP 通过本篇教程,可以学习到ios证书申请和打包ipa上传到appstoreconnect.apple.com进行TestF...

qtb999
今天
10
0
再见 Spring Boot 1.X,Spring Boot 2.X 走向舞台中心

2019年8月6日,Spring 官方在其博客宣布,Spring Boot 1.x 停止维护,Spring Boot 1.x 生命周期正式结束。 其实早在2018年7月30号,Spring 官方就已经在博客进行过预告,Spring Boot 1.X 将维...

Java技术剑
今天
18
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部