APT组织KimSuky针对韩国攻击样本分析
2021-01-19 18:58:21 Author: mp.weixin.qq.com(查看原文) 阅读量:82 收藏

本文为看雪论坛优秀文章

看雪论坛作者ID:顾何

0x00 前言

在日常app.any.run的样本"蹲点"中,看到了这样一个样本:

可以看到样本是个exe,并且已经被打上了apt和kimsuky的标签。于是下载下来分析一下。

0x01 基本信息

样本hash

样本的hash为:35d60d2723c649c97b414b3cb701df1c
在VT上搜索该hash可以得到如下内容:
由于样本创建时间和提交到VT的时间很相近,可以推测攻击者在制作好该样本之后就马上进行了投递,且该样本并非攻击流程中的首个样本,而是制作好之后直接投放到提前已经搭建好的攻击流程中。

样本名称及图标

样本投递时名称如下:
베트남 녹지원 상춘재 행사 견적서.hwp.exe
样本名称是双后缀名称,第一个后缀用于迷惑用户,第二个后缀是样本的真实类型。
其中hwp是在韩国地区常用的一款office办公软件,类似于wps,所以该文档命名具有一定的欺骗性,伪装成了hwp文件,是一起针对韩国地区用户的攻击。
样本的诱饵图标如下:
如果用户计算机隐藏文件后缀,则会和普通的hwp文档显示完全相同。

编译器信息

使用exeinfo查看一下文件的编译器等信息

pdb路径

在IDA加载的时候我们可以的知该样本的pdb路径:
E:\pc\makeHwp\Bin\makeHwp.pdb

0x02 原始样本分析

样本winMain如下:

释放bat文件

样本执行后,会在temp目录下创建bat文件。
bat文件写入的内容如下:

可知bat的功能是删除原始的样本和自身。

释放同名的hwp文件

接着在当前目录创建并打开베트남 녹지원 상춘재 행사 견적서.hwp文件(中文系统导致乱码),起到迷惑用户的作用。

释放NewAct.dat文件

然后会尝试在%appdata%目录下创建NewAct.dat文件。
而该dat实际上是一个pe文件:

执行释放的dll

如果创建成功,则会通过regsvr32.exe来执行,由此可知该dat文件应该是一个dll。
这里的参数功能如下:
/u  注销服务器/i   调用DllInstall传递一个可选的[cmdline]; 当使用 /u 调用dll卸载/n  不调用DllRegisterServer; 此选项必须与 /i 一起使用/s  静默; 显示无消息框(在Windows XP 和Windows Vista中添加)
所以我们可以得知原始的PE实际上是一个Dropper,功能如下:
  1. 释放bat 用于删除Dropper以及自身(bat文件)
  2. 读取资源释放与Dropper同名的hwp文件并打开,迷惑用户
  3. 释放并执行一个dll文件,通过regsvr32.exe来执行
  4. 进程退出
综上所述,原始样本的执行流程应该如下:

0x03 释放dll分析

释放的dll依旧由vc编译:

首先查看dllInstal函数如下:

可以看到在dllInstall中,程序会尝试查找并删除当前目录下的.wsf文件。但是在本次的攻击中可以发现,并没有释放wsf文件,所以可以推测该文件应该是攻击者在测试代码时候用到的。
wsf文件删除了之后,会调用导出函数checkdrive。
checkdrive首先会检查后面会用到的API函数。
所有的API函数如下:
接下来,程序会判断当前的操作系统,根据32位和64位执行不同的操作:

如果当前运行环境为64位则会执行if之后的代码,根据代码可以得知,该段代码是从C2下载适用于64位操作系统的攻击组件。
通信的c2:antichrist[.]or[.]kr也硬编码到了代码中:
下载的组件应该是lyric64:
请求的路径为:
antichrist[.]or[.]kr/data/cheditor/dir1
通过http向C2发起请求,如果请求成功的话则会下载文件
下载成功之后程序会重新通过rundll32.exe来调用checkdrive函数。
如果当前运行的环境是32位操作系统,程序则会直接调用最下面的sub_10003163函数。
 
该函数的主要功能是将程序写入开机自启动,然后注入到指定的进程中:

设置开机自启动。
线程注入:
线程注入完成之后,程序将会运行DLLMain函数,阅读dllMain可以发现程序首先会通过sub_100011A9方法进行校验,判断当前的进程,第一个进程检查的值是byte_10019EB0,而我们可以看到,byte_10019EB0的值是在上面的dowhile循环中赋值的, 由byte_10016834决定。
byte_10016834是预定义好的,为fyqmpsfs/fyf,而根据循环很容易可以算出byte_10019EB0=explorer.exe
所以我们可以得知,dllInstall注入的进程是explorer.exe,程序在这里进行判断,如果当前的进程是explorer.exe说明注入成功,则执行后面的代码,创建一个名为<Papua gloria>的互斥体,如果互斥体创建成则会调用sub_1000300B8函数。
此外,如果第一次检查的时候,当前进名不是explorer.exe,程序则会检查进程是否为rundll32.exe,如果不是rundll32.exe,程序则会重新调用rundll32.exe,直接运行checkdrive函数。
然后程序还会判断当前进程是否为notepad.exe,如果是则退出,这里不明白攻击者为什么会这样写。 
接着看注入成功的情况:
首先还是会尝试获取一系列基本信息,如网卡,硬盘,当前系统时间等。
 
然后在%appdata%\Microsoft\Office下存放指定的文件:
关键的功能在_beginthreadex的sub_10002BE9函数中,包括上传、下载等,至此用户计算机就完全落入了攻击者手中,里面的内容还很多,想要详细分析的可以跟着这里调一下。 
该dll的执行流程大致如下:

0x04 流量分析

尝试对样本进行抓包:

可以看到虽然目前C2还存活,但是指定的路径已经404了。

0x05 关联分析

IOCs描述

接下来尝试提取样本的IOCs,根据国外大佬David Bianco提出的 Pyramid of Pain,描述了 IoC 之间的层级关系,如下图:
该金字塔图很好的描述了在攻击事件分析中,各类IOCs的提取难度和价值。

1. Hahs Values - 哈希值

也就是攻击中样本的hash值,这个hash包括原始样本的hash,释放文件的hash等。
比如在此次分析中
原始样本hash:35d60d2723c649c97b414b3cb701df1c
释放文件hash:e54b370d96ca0e2ecc083c2d42f05210
hash是一个样本最容易获取的值,但同时也可以看到,在金字塔中处于最下层,也就是最"没价值"的内容。
因为在这种定向攻击中,攻击者几乎不会同一个样本多次使用。且样本的hash非常容易更改,文件哪怕只更改了一个字节就会得到一个新的hash,所以攻击者也完全可以使用脚本在一个样本后面添加空字节,这样同一个样本,就很轻松的有了几十个,几百个hash值。
2. IP Address - IP地址
正常情况下,样本都会有通信ip,也就常说的C2,在本次分析的样本中,只有通信域名,没有ip,我们可以解析一下该域名,看看目前域名指向了哪个ip。
通过解析,我们可以知道该域名目前指向了一个韩国ip:114.207.244.99。
同样的,样本的通信ip也和好拿到,大多数情况下,通过沙箱就可以获取。
IP的价值比hash稍微大一些,但通常攻击者都会使用跳板、匿名网路等技术。样本通信的IP跟攻击者所在地也不一定有直接的联系。
3. Domain Names - 域名
此样本的通信域名是:antichrist[.]or[.]kr
域名和ip类似,但域名的申请相对来说要更复杂一些。
因为申请域名毕竟有成本在里面,还需要提供一些基本信息。且DNS解析的时间成本大多数时候攻击者也需要考虑进去,所以通常来讲,域名的价值比ip稍微高一些。
很多时候一些简单的样本里面只有通信ip,没有域名,这可能就是攻击者节约成本的一个方式。
4. Network/host Artifacts - 网络特征、主机特征
就比如样本在与C2通信时候的一些请求格式、请求路径、服务器返回格式、服务器存放的文件名等。
比如在本次样本中,我们看到在与服务器通信的时候,请求路径为:antichrist[.]or[.]kr/data/cheditor/dir1
那么对于本次攻击来讲,[hostname/data/cheditor/dir1] 就可以看做一条网络特征。
之前也分析了,ip和域名都靠不住,是很容易更改的特征,因为换ip、换域名对于攻击者来说都是比较简单的事情,但是与本地样本通信的服务端程序就没有那么容易更改。或者说攻击者更不愿意去更改。
对于此次分析的这个样本来看,下载路径也是很容易改变的。不容易改变的主要是样本和C2通信时候的一些特征,比如样本会收集本地的基础信息,然后通过GET/POST的方式上传到服务器,服务器接收了之后存入数据库。
5. Tools - 工具特征
在本次攻击中并没有发现攻击者使用开源的黑客工具。
只下载了名为Lyric的组件,但是在网上并没有找到相关的信息,所以也可以猜测是攻击者自己写的工具。
但是我们并没有大量的样本验证说KimSuky的很多样本都会使用Lyric组件,只能说以后遇到使用了Lyric组件的样本,有可能是属于KimSuky的。
之前网上曝光了APT34所使用的一系列工具,比如PoisonFrog和Glimpse,这种才属于Tools特征。
6. TTPS
ttps的全称是Tactics, Techniques, and Procedures (战术、技术、过程),是对攻击者攻击战术、攻击技术、攻击过程的描述,有时候也叫做行为库。ttps的提取非常复杂,需要大量的样本、经验和长时间的积累才能完成。
由于篇幅和本人功能有限,不能很好地把TTPS的概念及提取讲清楚,有兴趣的伙伴可以看看之前大佬发的关于TTPs的文章。

IOCs提取

根据金字塔以及分析到的内容,可以提取如下信息:

hash
原始样本hash:35d60d2723c649c97b414b3cb701df1c
释放文件hash:e54b370d96ca0e2ecc083c2d42f05210

IP Address
韩国:114.207.244.99

Domain Names
antichrist[.]or[.]kr(已经曝光)

Network/host Artifacts
hostname/data/cheditor/dir1

Tools:Lyric / Lyric64

TTPS

ttps提取涉及的指标非常多。在本样本中有pdb路径以及互斥体名称。

互斥体:Papua gloria

样本PDB:E:\pc\makeHwp\Bin\makeHwp.pdb

域名关联

根据提取到的内容我们分别尝试进行关联。
在VT上搜索相关的C2可以看到与该C2相关的文件一共有三个,其中前两个是本次样本中已经分析到的,还有最后一个是暂时未见的。
查看dc48.tmp,相关联的文件也如下:
这里已经形成闭环了,看起来没有更多有效的信息,可以尝试使用搜索引擎试试。
这里可以看到,根据Google反馈的结果,该域名应该是跟APT组织kimsuky相关。我们继续往下找。
在Twitter看到如下信息,基本可以确定是kimsuky。
这里还拿到了一个新的hash:2e5a70a1b4d7bd8b9a17e513efbe167d
继续检索,最后可以发现在ests的博客上将其定义为了KimSuky的Operation Blue Estimate。
在该次攻击中所使用的诱饵如下:
可以看到,样本全是双后缀以迷惑用户。集合之前伪装为韩国KakaoTalk apk以及新闻app的攻击,这种伪装也算是KimSuky的一个常用手法。
PDB关联

本次拿到的一系列样本中有两个样本的pdb都是:
E:\pc\makeHwp\Bin\makeHwp.pdb
所以尝试以makeHwp.pdb为关键字进行检索:
现在可以得知,makeHwp.pdb这个pdb文件名应该是KimSuky常用的,从19年4月份到20年2月份,都有包含该pdb的KimSuky样本。唯一不同的就是前面的路径不同,另一个路径如下:
E:\PC\EstService\Bin32\makeHwp.pdb
而E:\PC\EstService\Bin32\makeHwp.pdb是一个比较老的pdb路径了,最早追溯到19年1月份就已经在使用。
该路径关联的行动被命名为<眼镜蛇毒行动>和<假手术胶囊>。
这里也可以说明,KimSuky常会生成hwp文档作为诱饵进行样本斗投递,但是会根据伪装的内容不同而有着不同的路径。比如本次的根路径是makeHwp,可能代表是一个通用hwp制作的路径,而之前模仿estService的时候路径就是EstService,说明KimSuky会根据模仿目标的不同而改变到不同的路径下。

0x06 总结

总的来说,这个样本不算是很复杂,在后面关联的时候发现了不少相关的资料,在分析该样本的时候,也尝试将更多的时间和精力用于介绍除开样本本身的内容。由于此次攻击的时间发生时间还是比较靠前,所以梳理起来还是比较容易和直观。就当做是个学习积累的过程了,希望之后可以把攻击关联和攻击事件分析的更好。

0x07 参考链接

https://www.secpulse.com/archives/111108.html
https://blog.alyac.co.kr/2737
https://www.virustotal.com/gui/file/1050935f6acee3afda3876478718632b968c986eb9c59fc2e27599c1515515f5/details
https://detect-respond.blogspot.com/2013/03/the-pyramid-of-pain.html

- End -

看雪ID:顾何

https://bbs.pediy.com/user-home-757351.htm

  *本文由看雪论坛 顾何 原创,转载请注明来自看雪社区。

# 往期推荐

公众号ID:ikanxue
官方微博:看雪安全
商务合作:[email protected]

球分享

球点赞

球在看

点击“阅读原文”,了解更多!


文章来源: http://mp.weixin.qq.com/s?__biz=MjM5NTc2MDYxMw==&mid=2458380181&idx=1&sn=6b01c6b8940aad63868b8a5d02cb36b1&chksm=b180d71f86f75e09cc9100985f2feca879383009ccf6f8b4c6d7caa27d1d1d1cd34d490b7b6f#rd
如有侵权请联系:admin#unsafe.sh