林林总总,2022年中Konni组织针对东欧及东亚地区的攻击活动分析
概述
Konni是Cisco Talos于2017年披露的一个远控木马,最早的攻击活动开始于2014年,主要针对俄罗斯、韩国等地区进行攻击。2018年,Palo Alto发现Konni恶意软件与Nokki恶意软件存在部分关联,并观察到Nokki恶意软件仅被东亚APT组织Reaper(APT37、Group123、Scarcruft)使用。2019年起,国外安全研究员开始将Konni作为疑似具有东亚背景的APT组织进行报告和披露。
近日,安恒猎影实验室捕获到一批来自Konni APT组织的恶意样本,并根据该组织鲜明的流量特征、明确的攻击目的以及最后阶段的恶意负载关联到了其在2022年内的其他攻击样本。
按照针对地域,我们将样本区分为了针对韩国地区以及针对俄罗斯地区,在韩国地区提交的样本中,我们发现该组织开始针对加密货币行业,而在俄罗斯地区提交的样本中,恶意样本主要针对外交实体及相关人员,诱饵文件的话题围绕俄罗斯、韩国、朝鲜、美国等国家之间的外交关系。
按照是否获取到后续,我们将在如下流程图进行区分。根据流程图我们可以看出,该组织虽然在下发后续负载方面较为单一,但其初始加载方式十分多样化,给研究人员在未获取到后续的情况下溯源具体组织带来了一定干扰。
此外,我们在10月中旬捕获了该组织利用政治新闻话题传播恶意CHM文件,该组织疑似开始将目标转向东南亚地区国家。
在未获取到后续的样本中,也可以看出Konni组织多样化的攻击手法。
针对韩国地区
样本信息
文件名 | 보상명부.xlam |
Hash | cf5f18032667bfb4c7373191e7fb1fbf |
文件上次修改时间 | 2022-09-02 08:47:50 |
文件上传地 | KR |
详细分析
样本运行后加载宏代码,将自身复制到%Temp%目录下并重命名为{随机字符}.zip,随后解压ZIP文件到%Temp%目录,通过cmd expand指令加载rels.xml中的check.bat执行
解密后续所需API 函数名,并通过GetProcAddress()获取对应函数地址
获取当前运行的服务名(authtokenmgt)及DLL文件路径(C:\Windows\System32\authtokenmgt.dll),拼接出字符串(..\authtokenmgt.dat、..\authtokenmgt.ini)
读取配置文件(..\authtokenmgt.dat),其中前16字节为iv,后13字节为C2域名密文,服务名(authtokenmgt)的SHA256值作为key,进行解密。
若..\authtokenmgt.dat文件打开失败,则读取..\authtokenmgt.ini文件中的数据。(注:.ini文件是该组织在历史活动中较常使用的配置文件名,本次活动开始使用.dat后缀文件
通过命令cmd /c systeminfo获取系统信息保存至C:\Windows\Temp\目录下
通过命令cmd /c makecab压缩存放系统信息的文件Tmp{随机字符}.tmp
读取cabFile,加密并以POST方式上传至C2服务器rq7592.c1[.]biz/up.php?name={HostName}
若服务器返回“success!”,则通过命令cmd /c tasklist重复执行上述操作
继续与服务器通信,以GET方式请求rq7592.c1[.]biz/dn.php?name={HostName}&prefix=cc%20(0)
主指令 | 一级指令 | 二级指令 | 功能 |
cmd | pull | /f | 拷贝到Tmp目录上传 |
直接上传 | |||
put | 将下载文件移动至指定目录 | ||
chmd | 写数据到指定文件 | ||
> | 远程shell | ||
/user | /stext或> | 使用user权限执行后续并将结果保存至Tmp | |
使用user权限执行后续文件 | |||
/stext | 执行后续并将结果保存至Tmp |
样本二
样本信息
文件名 | 카뱅과손잡은코인원_비트독주체제무너뜨릴까 [위클리코인리뷰] – 이코노미스트.docx |
Hash | 00e6e9ed4666623860686c123ed334f0 |
文件上次修改时间 | 2022-09-27 13:29:28 UTC |
文件上传地 | KR |
样本以加密货币为相关主题针对韩国地区,这也是我们观察到Konni组织自2019年开始针对加密货币行业的后续活动之一。
相关分析
样本通过利用CVE-2017-0199漏洞注入远程模板文件,文件包含宏代码如下
即获取本机系统信息、机器名、IP、Mac地址上传至hxxp://word2022.c1[.]biz//index.php?os={}&name={}&ip=_{ip}_{macAddress}
针对俄罗斯地区
样本三
样本信息
文件名 | Hash |
письмо.zip | 24ef6a627d69f6bfe4b8325f74a8adba |
письмо … ..exe | 705c8d431b4b8fa834491ff6975a0532 |
письмо.pdf | 093878920b7a70b1c4dcb953362a319c |
письмо … ..exe为修改版的PDF查看程序SumatraPDF.exe,письмо.pdf为普通PDF文件,该文件使用一般的PDF查看器时显示为空,使用附带的修改版SumatraPDF.exe才能查看内容。诱饵文档内容仿冒韩国驻俄罗斯大使馆人员向特定人员咨询其对于朝鲜半岛政治局势的看法。
详细分析
该文件原始文件为SumatraPDF.exe,经过修改变成了能执行恶意功能的程序
修改后的样本入口点主要功能为:找到名为0xBEC以及0xBEE的资源文件,读取到内存中后与0xF3逐字节异或解密
然后创建p1.dll以及p2.dll,将解密后的资源写入文件,并加载两个dll
p1.dll使用UPX进行压缩,解压缩后DllMain函数如下,首先是创建一个线程,然后注册一个VEH函数,最后主动抛出异常
新创建线程功能与之前披露的Konni报告类似,主要为从资源中解密出一个压缩包,并通过CreateProcess执行该压缩包中的yup.bat文件
首先是判断异常的异常码,当异常码为0时(即后面主动抛出异常),修改主程序地址为0x47F5C4处的数值为0xCC即INT 3异常
当异常为STATUS_BREAKPOINT(0x80000003)并且EIP为0x47F5C4时,修改线程上下文的EAX为0x223E9F78,EIP为0x47F5C7并继续执行。该VEH函数目的为修改函数0x47F5C0运行时的EAX的值,但实际调试发现EAX在随后在0x47F5C7处被重新赋值了,推测此处可能为代码人员在异常处理中对EIP错误赋值,并且在实际调试过程中也未发现0x47F5C0函数被调用的情形
p2.dll流程与p1比较类似,首先创建一个线程,然后该线程注册一个VEH函数,最后主动抛出异常
VEH函数先判断异常码是否小于STATUS_BREAKPOINT(0x80000003)
小于并且为0的话修改程序偏移为0x4A113处的数值为0xCC(INT 3),与p1.dll中主动触发异常的操作相同
可以发现在修改代码上面有ReadFile操作,实际调试发现当打开PDF文件时就会调用此处读取文件
接下来为修改后的0xCC触发异常时的操作,先获取异常上下文Esp+0x10处的值,即调用完ReadFile函数后指向的缓冲区数据,然后比较数据起始字符是否为“%PDF-”,来判断是否打开的为PDF文件
当打开的为PDF文件时,遍历查找到“stream.)”的位置,然后对“stream”后面的数据进行逐字节异或解密,直到遇到“endstream”停止。“stream”以及”endstream”中的数据为PDF文件中存储的流数据
以上流程用于对打开的PDF文件进行监控,检查到文件中包含起始为“stream.)”的流数据再进行解密并继续执行,因此该SumatraPDF.exe只能用于显示特定的PDF文件。Konni组织开发此功能是为了让目标使用修改后的SumatraPDF.exe来触发恶意功能,同时可以更好的隐藏诱饵文件。
样本四
样本信息
文件名 | Паспорт.doc(护照) |
Hash | 66fba06e965f9a6ea192db7f452ea9b6 |
文件上传时间 | 2022-06-21 08:18:37 UTC |
相关分析
宏代码如下,执行label1中的指令并将诱饵文档中的字体颜色调整为黑色
Powershell解码后如下,从hxxp://687964.c1[.]biz/info.php?name={MachineName}&tp={OSVersion}获取mk.vbs
mk.vbs脚本内容如下,将Powershell指令隐藏在计划任务内每隔一小时执行一次
Powershell指令解码如下,从hxxp://968796.c1[.]biz/dn.php?name={MachineName}&prefix=qq&tp={OSVersion}下获取后续负载执行
样本五
样本信息
另一例通过宏代码释放VBS脚本加载Powershell指令获取后续负载的Konni样本信息如下
文件名 | Hash |
– | b06ab8e1e7c75d883ae2994644a9d9b3 |
Donbass.zip | f71631e9253193396ad897ae4c3ec623 |
donbass.ppam | dae0efd29230feab95f46ee20030a425 |
邮件正文显示,此次活动为,攻击者利用俄罗斯领事馆邮箱对俄罗斯其它外交邮箱进行的钓鱼邮件投递活动。
附件中PPT为英俄双语,主题是DPR外交部长会见朝鲜民主主义人民共和国大使,疑似针对俄罗斯外交部
相关分析
解密出的Powershell指令如下,与以往攻击手法保持一致,均为获取本机信息上传并下载后续,其中URL格式为hxxp://gg1593.c1[.]biz/dn.php?name={MachineName}&prefix=tt&tp={OSVersion}
样本六
样本信息
文件名 | Hash |
Визит делегации США.7z | de8cd8c065faf36f033437f335caf5ba |
Визит делегации США.scr | 28942e7704b629c63afefe23d38068f5 |
相关分析
该样本也具有较为鲜明的Konni RAT特征,此处不再详细分析
后续从837593.c1[.]biz/index.php?uid=558975&type=%d下载到本地的CAB文件及其他组件hash如下
样本七
样本信息
文件名 | Hash |
1.chm | 320d2e841d145f48f513eba516c1e796 |
文件运行后将加载JavaScript代码
- 删除%AppData%路径下的CCleaner.vbs以及%Temp%目录下的info.log文件
- 随后在二进制文件中查找“U2V0IHNo”字符串,读取该字符串之后的内容写入%Temp%\info.log
- 将info.log文件内容解码写入%AppData%\CCleaner.vbs
- 删除%Temp%\info.log文件
总结
本文总结了Konni APT在2022年攻击活动中使用到的一些攻击手法,除加载方式种类繁多之外,该组织在后续下发的组件还存在如下更新:
- RAT新增x86版本,疑似扩大攻击范围,提高与目标机器适配性
- 启用除INI后缀之外的配置文件,逃避行为检测
- 采用新的加密算法对C2配置文件、Windows API函数等进行加解密
- 不再以明文传输窃取数据,而是通过AES加密避免流量检测
- 通过修改合法软件SumatraPDF.exe,设置异常函数,以加载恶意代码
- 灵活应用VBscript、Powershell等脚本组成攻击链
目前安全数据部已具备相关威胁检测能力,对应产品已完成IoC情报的集成:
安恒产品已集成能力:
针对该事件中的最新IoC情报,以下产品的版本可自动完成更新,若无法自动更新则请联系技术人员手动更新:
(1)AiLPHA分析平台V5.0.0及以上版本
(2)AiNTA设备V1.2.2及以上版本
(3)AXDR平台V2.0.3及以上版本
(4)APT设备V2.0.67及以上版本
(5)EDR产品V2.0.17及以上版本
安恒云沙盒已集成了该事件中的样本特征。用户可通过云沙盒:https://ti.dbappsecurity.com.cn/sandbox,对可疑文件进行免费分析,并下载分析报告。