2022年底,Bitdefer的研究人员发现了针对哈萨克斯坦外事机构的针对性攻击。研究人员立刻对同类攻击展开监测,随后又发现了针对阿富汗的攻击。
攻击分析相关域名与IP地址没有公开披露的记录,且样本与已知的恶意软件也不存在相似之处。分析人员认为这是一个新的恶意软件家族,并将其命名为DownEx。
通过攻击的目标、冒充外交官的诱饵文档以及以数据窃取为主要意图,应该是国家支持的攻击组织在背后兴风作浪,但研究人员并未能对其进行归因。攻击者使用了在俄语国家非常流行的破解版Office2016(被称为SPecialisSTRePack或者RussianRePackbySPecialiST)。另外很不寻常的是,攻击者使用两种语言编写了同一个后门,此前在APT28编写Zebrocy时发现过。
初始访问研究人员预计攻击者使用社会工程学技术发送带有恶意Payload的鱼叉邮件,附件名为!。攻击者并没有使用双重扩展名,但使用Word文档的图标进行了伪装。
该可执行文件是一个Loader,执行后释放两个文件到本地并执行:
C:\Users\\Appdata\Local\Temp!
C:\ProgramData\Utility\log
释放的Word文档只是提供伪装,使后台执行的恶意脚本不被怀疑。而log文件则是内嵌VBScript代码的无扩展名HTA文件。
释放的Word文档
其整体的执行流程如下所示:
感染链
后续的Payload下载失败,研究人员未能获取后续恶意软件。失陷主机上的多个样本都是用来与CC服务器建立连接的,后续将一一进行介绍。
探测发现攻击者使用C/C++编写的工具来枚举网络上的各种资源。使用放置在C:\ProgramData\Programs的与,利用Win32API中网络相关的函数进行侦察。
命令与控制攻击者使用PyArmor对Python开发的后门进行混淆,阻止代码被研究人员进行逆向分析。Python脚本使用的DLL文件也受到Themida的保护,使用了包括操作码混淆在内的多种混淆技术。
通过坚持不懈的逆向分析,还是对其有所了解:
后门的基本流程
首先后门生成一个2048位的RSA公私钥对。
后门通过https[:]//net-certificate[.]services:443将公钥回传给CC服务器
_KAF:其中包含EmailID,可以标识特定电子邮件攻击行动的硬编码值
_PUB:为上一步中生成的公钥
_CR:脚本文件的SHA256哈希值
CC服务器回复客户端ID,留供后续使用
_KEY:解密TSK_BODY的AES密钥
_IV:解密TSK_BODY的AES初始化向量
_BODY:CBC模式下AES加密的Python代码。响应中总是会返回变量USR_KAR,似乎是客户身份ID
无限循环向CC服务器https[:]//:443/发起上述请求
CC服务器会返回要执行的任务在失陷主机上执行,主要包含:
TSK_BODY与TSK_IV:解密TSK_BODY所需的AES密钥与初始化向量
TSK_LINK:代表任务的唯一ID,似乎是全球所有受害者共用的。在野发现的最大任务ID是115880,研究人员认为攻击者向受害者发送了超过十万个任务
TSK_BODY:加密的Python代码
Python代码的形式为classAnumber,监控中发现了四个类型,当然应该还有更多的类型。
A3,上传特定扩展名的文件
扩展名的列表是硬编码的,有doc、docx、dot、dotx、xls、xlsx、ppt、pptx、odt、pdf、rtf、rar、jpg、jpeg、bmp、heic、tiff、tif可以只检索最近N天内修改过的文件会通过16MB的压缩文件进行数据泄露
A4,不仅上传文件还会将文件删除
上传并删除C:\ProgramData\Python\Lib\LOC\F中.py扩展名的文件上传并删除C:\Users\\AppData\Local\Diagnostics\\1cbe6654-466b-4d53-8303-2e86ab6db8a7中~tmp扩展名的文件
A6,只回传匹配的文件名但不回传文件本身
A7,上传失陷主机的屏幕截图
受害者完成任务后,会使用以下JSON结构与CC服务器进行通信:
SK_LINK:任务ID,由CC服务器指定
RESULT:使用AES加密与base64编码处理的任务执行结果
NAME_FILE:包含时间戳、任务ID与其他信息的数据,并且使用AES加密与base64编码处理
数据收集与泄露调查过程中,可以发现多个用C++编写的恶意样本。用于数据泄露的可执行文件存储在C:\ProgramData\Programs。
建立CC连接的方式
其中一个样本中包含PDB路径(C:\Projects\DOWN\Release\),因此将该恶意软件家族命名为DownEx。
样本间存在细微的差异,一些样本有许多调试字符串,有些样本则经过简单的异或加密。也有样本文件并不直接回传数据给CC服务器,而是利用另一个VBScript脚本(C:\ProgramData\Temp\)将数据回传到相同的CC服务器(84.32.188.123)。
执行后,DownEx就会开始递归解析本地驱动器与网络驱动器,收集以下扩展名的文件:
.doc、.docx、.rtf、.xlsx、.xls、.pdf、.ppt、.pptx、.~tm、.bmp、.rar、.jpg、.odt、.p12、.heic、.enc、.jpeg、.tiff、.tif、.zip、.crf、.enc、.cr、.lhz、.pem、.pgp、.sbx、.tlg
相关的文件会通过加密的ZIP压缩文件进行回传,每个ZIP压缩文件的大小为30MB。恶意软件通过http[:]//84.32.188[.]123/回传到CC服务器。
VBS脚本下载另一个脚本
调查过程中,研究人员发现了基于VBScript脚本开发的DownEx样本文件。其功能与C++版本的DownEx相同,且是一种无文件攻击。DownEx会在内存中执行,而不会存在落地的文件。VBScript版本的DownEx通过使用自定义的UserAgent发送给http[:]//206.166.251[.]216/进行回传。
总结DownEx恶意软件家族显示了现代网络攻击的复杂性,攻击者会不断寻找新的方法巩固攻击。为了阻止攻击,各种技术构建的纵深防御可以确实地帮助检测与预防攻击。




