将Python远控隐藏在文档图片中的行动分析
图 2‑1 此次攻击活动的ATT&CK映射图谱
具体的ATT&CK技术行为描述如下表所示:
3.1 样本标签
3.2 样本运行流程
当恶意文档中的宏代码运行后,存在两个自动执行函数,在不同状态下触发执行。一个是当文档状态处于打开时触发执行,通过创建目录、拷贝、另存ZIP格式、解压等操作获取嵌入图片中的Python编写的远控木马;另一个是当文档状态处于关闭时执行,调用shell以隐藏窗口的方式执行bat远控启动脚本,进而运行远控木马脚本,该脚本主要功能为释放vbs脚本文件(内容为调用bat远控启动脚本),并以该脚本为载体创建计划任务,同时建立循环加载配置文件与C2建立连接,获取指令,执行对应操作。
图 3‑1 宏代码创建和释放的相关文件
图 3‑2 样本运行流程
3.3 恶意文档分析
样本为一个具有恶意宏代码的Word文档,从内容上看,是以SOCAR公司的名义伪造的一份“关于分析用催化剂的出口”的文档,同时利用模糊效果和提示信息的手段,诱骗目标通过点击“启动宏”按钮的方式可查看文档详细内容。SOCAR是阿塞拜疆共和国国家石油公司的简称,结合文档内容,判断这是一起针对阿塞拜疆共和国国家石油公司员工的恶意文档投递活动。
图 3‑3 文档内容
通过提取文档中的宏代码分析,主要有两个触发操作的函数“Document_Open()”和“Document_Close()”,同时该宏代码存在大量混淆,具体是将“rqxjx”、“RXQYE”、“_RXQYE_20210329_092748_rqxjx_”字符大量嵌入到自定义变量和函数中,能够在一定程度上规避反病毒软件和干扰分析工作。
图 3‑4 自动执行的相关函数
图 3‑5 混淆的宏代码
解混淆后,从Document_Open()函数中可以看到其中定义了一些文件路径变量,通过MyFunc23函数解密相关路径,依据这些变量创建相应目录和文件,同时提取恶意文档中利用隐写术保存于图片中的远控木马相关文件。
图 3‑6 Document_Open函数内容
表3‑2 变量信息
图 3‑7 Python编写的远控相关文件
Document_Close函数功能为以隐藏方式运行远控木马启动脚本,脚本文件即为“C:\Users\MA\AppData\Roaming\nettools48\”目录下的runner.bat文件。该脚本文件初始设置了一定时间的延迟,而后运行当前文件夹下的远控木马脚本“vabsheche.py”。
图 3‑8 运行远控木马启动脚本
脚本内容如下:
远控木马脚本内容主要分为三部分:
3.4 释放的远控木马分析
第一部分定义了多个系统判断函数,包括Windows、Linux和Mac OS X,同时读取C2地址配置文件,获取对应域名和端口。从系统判断函数上看,虽然本次发现的脚本中只调用了Windows系统判断函数,且后续内容只能在Windows系统上执行,但是不排除攻击者后期会开发针对Linux和Mac OS X系统的脚本。
图 3‑9 远控脚本第一部分内容
第二部分定义一个task_registration函数,主要功能为将启动脚本runner.bat的路径写入vbs脚本中,实现vbs脚本调用运行远控,而vbs的调用,是通过调用schtasks命令创建计划任务,实现每三十分钟运行一次vbs脚本。最后以Windows系统判断函数运行结果来触发task_registration函数。
图 3‑10 远控脚本第二部分内容
最后一部分功能是C2命令处理过程,具体如下:通过同目录下的证书文件“cert.pem”结合前期获取的域名和端口,同C2建立连接,获取C2返回信息。
图 3‑11 连接C2代码
在整体代码上添加了循环和容错处理,如果连接成功,则解析C2返回的信息,依据特定数据,执行不同的指令操作;连接失败,则延迟120秒,继续尝试连接C2,持续运行此过程。远控木马C2地址:pook.mywire.org 端口:220。
表3‑3 远控木马指令表
由于该远控木马是用Python编写,对应文件具备脚本文件特性,其实质文件格式为文本文件,相较于PE文件,这种文件格式在一定程度上能够降低被反病毒软件查杀的可能性,同时结合远控木马VT检测结果,安天CERT认为这种脚本形式的远控木马将会更加频繁的被攻击者使用,甚至结合混淆编码进行使用。