研究人员近日发现了一个新的Windows信息窃取木马,名为PyMICROPSIA。该木马与AridViper组织有关,该组织正在迅速发展以瞄准其他平台。AridViper是一个阿拉伯相关的APT组织,至2011年开始活跃于中东。研究人员之所以将其命名为PyMICROPSIA,是因为它是使用Python构建的。
下图1概述了PyMICROPSIA恶意程序家族的功能以及与以前的AridViper活动所观察到的相似之处。在研究PyMICROPSIA的功能时,研究人员发现了攻击者基础结构中托管的另外两个示例,这些示例在PyMICROPSIA部署期间下载并使用,其他示例提供了持久性和键盘记录功能。
PyMICROPSIA概述
在此文中,研究人员将详细介绍PyMICROPSIA的功能和目标,并分析其命令和控制(C2)实现。另外,研究人员还将重点介绍使研究人员将PyMICROPSIA归因于以前的AridViper活动的主要观察结果。
PyMICROPSIA分析
PyMICROPSIA具有一组丰富的信息窃取和控制功能,包括:
文件上传;
有效载荷下载和执行;
浏览器凭证窃取,清除浏览历史记录和配置文件;
截屏;
键盘记录;
压缩RAR文件以获取被盗信息;
收集进程信息并终止进程;
收集文件列表信息;
删除文件;
重新启动设备;
收集Outlook .ost文件,阻止并禁用Outlook进程;
删除、创建、压缩和泄漏文件和文件夹;
通过USB驱动器收集信息,包括文件渗透;
音频录音;
执行命令;
攻击细节
PyMICROPSIA是一个用Python构建的信息窃取木马,使用PyInstaller将其变成Windows可执行文件。
PyMICROPSIA中的PyInstaller字符串
它通过运行一个循环来实现其主要功能,在这个循环中,它初始化不同的线程并定期调用几个任务,其目的是收集信息并与C2操作员进行交互。
主代码循环
攻击者利用几个有趣的Python库来实现其目的,包括内置的Python库和特定的程序包。特定于信息窃取的库的示例包括:
PyAudio:用于窃听音频;
mss:用于屏幕截图;
用于窃听音频的PyAudio库
屏幕截图的mss库
预期Python内置库的使用有多种用途,例如与Windows进程,Windows注册表,网络,文件系统等进行交互。
Windows注册表交互
Windows进程交互
为了与Windows操作系统进行更具体的交互,它使用诸如以下的库:
WMI用于与Windows Management Instrumentation进行交互;
win32security和ntsecuritycon,用于与win32security API进行交互;
WMI用于USB交互
win32security和ntsecuritycon的使用
附录中对PyMICROPSIA的代码和功能进行了深入分析。
命令与控制
PyMICROPSIA实现了一个简单的基于HTTP POST的C2协议,根据所调用的功能,在通信期间使用不同的统一资源标识符(Uniform Resource Identifier, URI)路径和变量(实现的完整细节可以在附录中找到)。
下表总结了PyMICROPSIA中的URI路径和相应的功能:
配置文件夹和文件的主要用途
还需要注意的是,在所分析的PyMICROPSIA示例中,与C2相关的代码显示了多个代码分支,这些分支在处理响应时将永远不会执行,这可能是因为攻击者仍在积极地更新代码。基于可访问的代码段,下表总结了在计算机上执行的命令和操作:
可访问的C2命令和操作
AridViper是否正在开发新的攻击媒介?
PyMICROPSIA仅针对Windows操作系统设计,但代码包含了一些有趣的片段,用于检查其他操作系统,如“posix”或“darwin”。这是一个有趣的发现,因为我们以前没有见过AridViper针对这些操作系统,这可能代表了攻击者已经开始探索的一个新领域。
else: if os.name == 'posix' and sys.platform == 'darwin': PathName = os.getenv('HOME') + '/Library/Application Support/Google/Chrome/Default/' if os.path.isdir(PathName) == False: sys.exit(0) elif os.name == 'posix': PathName = os.getenv('HOME') + '/.config/google-chrome/Default/' if os.path.isdir(PathName) == False: sys.exit(0) return PathName
目前,找到的代码非常简单,并且可能是构建Python代码时复制和粘贴工作的一部分,但是无论如何,研究人员计划在研究新活动时将其保留在研究人员的监测范围内。
额外的载荷
在C2交互进程中,PyMICROPSIA将下载另外两个示例,并在受害人的系统上删除并执行这些示例,从而运行其他功能,这些有效载荷不是基于Python/PyInstaller的。
键盘记录功能
这是一个非常有趣的示例,因为键盘记录功能尚未作为PyMICROPSIA的一部分实现。相反,该示例将下载特定的有效载荷。有关如何下载有效载荷的详细信息,请参见附录中“文件下载函数”一节。
有效载荷以文件名“MetroIntelGenericUIFram.exe”下载,并具有以下SHA-256:
381b1efca980dd744cb8d36ad44783a35d01a321593a4f39a0cdae9c7eeac52f
该示例使用GetAsyncKeyState API方法实现键盘记录功能:
键盘记录程序GetAsyncKey()代码
它具有与主要PyMICROPSIA示例初始化的目录结构直接相关的硬编码配置,因此需要根据其进行编译。它需要在PyMICROPSIA创建的特定目录(“ModelsControllerLibb”)下运行,并将键盘信息存储在“HPFusionManagerDell”文件夹下。
硬编码的配置参数
键盘记录程序使用以下文件名结构和格式将信息放入HPFusionManagerDell目录中:
键盘记录程序输出文件格式
键盘记录程序文件的内容结构
持久性攻击
这个恶意软件示例的持久性攻击可以通过常规方法实现,如设置注册表项,这是作为Python代码的一部分,如下所示:
注册表项持久性攻击
然而,在这个实现中有一些关于持久性的有趣的事情。该示例从C2服务器下载另一个有效载荷(有关更多详细信息,请参见“文件下载功能”部分)。该有效载荷名为“SynLocSynMomentum.exe”,具有以下SHA-256:
9c32fdf5af8b86049abd92561b3d281cb9aebf57d2dfef8cc2da59df82dca753
该示例是用特定的参数执行的:
SynLocSynMomentum.exe ModelsControllerLibb ModelsControllerLib
它通过复制到启动菜单的快捷方式.lnk设置持久性,考虑到Python代码中已经呈现的功能数量,这段代码作为单独的有效载荷运行是令人吃惊的。
"C:\Windows\System32\cmd.exe" /c move "C:\Users\admin\AppData\Local\Temp\\ModelsControllerLib.lnk" "C:\Users\admin\AppData\Roaming\Microsoft\Windows\Start Menu\Programs\Startup\ModelsControllerLib.lnk"
与其他MICROPSIA活动的关系
研究人员是在调查最近与中东地区有关的MICROPSIA活动时发现了PyMICROPSIA,并且该恶意程序有多个方面的活动与AridViper有关,包括以下示例。
代码重叠
关于这个示例,首先引起研究人员注意的是C2的实现和功能,它们与已知的MICROPSIA示例非常相似,具体请参阅Radware和Check Point先前研究中关于C2的描述。
另外,在MICROPSIA示例中观察到的策略、技术和程序(TTP)之一是使用rar.exe压缩数据进行泄漏。在此版本中,rar.exe是从C2基础结构下载的,并与以前的示例中观察到的参数非常相似:
k24 = '"' + Wv + '\\*.dot' + '" ' k25 = '"' + Wv + '\\*.dotx' + '" ' AllFile = k1 + k2 + k3 + k4 + k5 + k6 + k7 + k8 + k9 + k11 + k12 + k13 + k14 + k15 + k16 + k17 + k18 + k19 + k20 + k21 + k22 + k23 + k24 + k25 AllFiles_Drvi = AllFile flTDType = AllFiles_Drvi te = file_D En_crpypt2 = 'a -r -ep1 -v2.5m -ta' + te + ' -hp' En = '4545933464930447517744759' mm = chick_Device_Name() + En nnWithoutdel = En_crpypt2 + mm subprocess.call('"' + Rar_File + '"' + ' ' + (nnWithoutdel + ' ' + '"' + Zip_File2 + '_NETWORKWTHDate"' + ' ' + flTDType), shell=True)
例如,查看最新的MICROPSIA示例如何使用rar.exe。
SHA-256:3c8979740d2f634ff2c0c0ab7adb78fe69d6d42307118d0bb934f03974deddac "C:\Program Files\WinRAR\Rar.exe" a -r -ep1 -v2500k -hpcec6b597e046386f74b807c60ada61a5_d01247a1eaf1c24ffbc851e883e67f9b -ta2020-10-21 "C:\ProgramData\commonlogfiles\LMth_C" "C:\Users\admin\*.xls" "C:\Users\admin\*.xlsx" "C:\Users\admin\*.doc" "C:\Users\admin\*.docx" "C:\Users\admin\*.csv" "C:\Users\admin\*.pdf" "C:\Users\admin\*.ppt" "C:\Users\admin\*.pptx" "C:\Users\admin\*.odt" "C:\Users\admin\*.mdb" "C:\Users\admin\*.accdb" "C:\Users\admin\*.accde" "C:\Users\admin\*.txt" "C:\Users\admin\*.rtf"
C2通信相似度
在多个MICROPSIA示例中观察到的URI路径结构与PyMICROPSIA示例中的URI路径结构相似。例如,如果研究人员查看同一个最近的MICROPSIA示例,则可以观察到URI路径的随机字符和结构。
主题使用
以前,研究人员在MICROPSIA中看到过涉及代码和C2实现的特定主题,例如《生活大爆炸》或《权力的游戏》,而这种新实现并没有什么不同,包括多次引用多个著名演员的名字,如图15和16所示,无论是代码变量还是所使用的基础结构。
MICROPSIA以引用代码中的主题而闻名,比如《生活大爆炸》和《权力的游戏》。上面提到的攻击者Fran Drescher似乎与之前对主题的观察相一致。
MICROPSIA以引用代码中的主题而闻名,比如《生活大爆炸》和《权力的游戏》。上面提到的演员基努·里维斯(Keanu Reeves)的引用似乎与以前对主题的观察一致。
另外,如“命令和控制”部分所述,C2操作包含许多迪士尼引用。
另一个有趣的细节是代码中存在阿拉伯注释:
Delete_Request_Error('لم يتم ضغط هذا الملف!!..')
这可能是一个假标志,但这是该恶意软件样本的另一个可能的区域属性链接。
总结
AridViper是一个长期活跃的攻击组织,该开发者正在继续开发新工具,比如PyMICROPSIA。 PyMICROPSIA与其他现有的AridViper开发的工具(如MICROPSIA)存在多处重叠。另外,根据研究人员对PyMICROPSIA的不同方面的分析,这个恶意软件的几个部分仍然没有被使用,这表明该开发者正在积极开发该恶意程序。
本文翻译自:https://unit42.paloaltonetworks.com/pymicropsia/如若转载,请注明原文地址: