PyMICROPSIA:AridViper开发的新型信息窃取木马
2020-12-28 12:40:00 Author: www.4hou.com(查看原文) 阅读量:213 收藏

Malware-r3d1.png

研究人员近日发现了一个新的Windows信息窃取木马,名为PyMICROPSIA。该木马与AridViper组织有关,该组织正在迅速发展以瞄准其他平台。AridViper是一个阿拉伯相关的APT组织,至2011年开始活跃于中东。研究人员之所以将其命名为PyMICROPSIA,是因为它是使用Python构建的。

下图1概述了PyMICROPSIA恶意程序家族的功能以及与以前的AridViper活动所观察到的相似之处。在研究PyMICROPSIA的功能时,研究人员发现了攻击者基础结构中托管的另外两个示例,这些示例在PyMICROPSIA部署期间下载并使用,其他示例提供了持久性和键盘记录功能。

2.png

PyMICROPSIA概述

在此文中,研究人员将详细介绍PyMICROPSIA的功能和目标,并分析其命令和控制(C2)实现。另外,研究人员还将重点介绍使研究人员将PyMICROPSIA归因于以前的AridViper活动的主要观察结果。

PyMICROPSIA分析

PyMICROPSIA具有一组丰富的信息窃取和控制功能,包括:

文件上传;

有效载荷下载和执行;

浏览器凭证窃取,清除浏览历史记录和配置文件;

截屏;

键盘记录;

压缩RAR文件以获取被盗信息;

收集进程信息并终止进程;

收集文件列表信息;

删除文件;

重新启动设备;

收集Outlook .ost文件,阻止并禁用Outlook进程;

删除、创建、压缩和泄漏文件和文件夹;

通过USB驱动器收集信息,包括文件渗透;

音频录音;

执行命令;

攻击细节

PyMICROPSIA是一个用Python构建的信息窃取木马,使用PyInstaller将其变成Windows可执行文件。

3.png

PyMICROPSIA中的PyInstaller字符串

它通过运行一个循环来实现其主要功能,在这个循环中,它初始化不同的线程并定期调用几个任务,其目的是收集信息并与C2操作员进行交互。

4.png

主代码循环

攻击者利用几个有趣的Python库来实现其目的,包括内置的Python库和特定的程序包。特定于信息窃取的库的示例包括:

PyAudio:用于窃听音频;

mss:用于屏幕截图;

5.png

用于窃听音频的PyAudio库

6.png

屏幕截图的mss库

预期Python内置库的使用有多种用途,例如与Windows进程,Windows注册表,网络,文件系统等进行交互。

7.png

Windows注册表交互

8.png

Windows进程交互

为了与Windows操作系统进行更具体的交互,它使用诸如以下的库:

WMI用于与Windows Management Instrumentation进行交互;

win32security和ntsecuritycon,用于与win32security API进行交互;

9.png

WMI用于USB交互

10.png

win32security和ntsecuritycon的使用

附录中对PyMICROPSIA的代码和功能进行了深入分析。

命令与控制

PyMICROPSIA实现了一个简单的基于HTTP POST的C2协议,根据所调用的功能,在通信期间使用不同的统一资源标识符(Uniform Resource Identifier, URI)路径和变量(实现的完整细节可以在附录中找到)。

下表总结了PyMICROPSIA中的URI路径和相应的功能:

11.png

配置文件夹和文件的主要用途

还需要注意的是,在所分析的PyMICROPSIA示例中,与C2相关的代码显示了多个代码分支,这些分支在处理响应时将永远不会执行,这可能是因为攻击者仍在积极地更新代码。基于可访问的代码段,下表总结了在计算机上执行的命令和操作:

12.png

可访问的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方法实现键盘记录功能:

14.png

键盘记录程序GetAsyncKey()代码

它具有与主要PyMICROPSIA示例初始化的目录结构直接相关的硬编码配置,因此需要根据其进行编译。它需要在PyMICROPSIA创建的特定目录(“ModelsControllerLibb”)下运行,并将键盘信息存储在“HPFusionManagerDell”文件夹下。

15.png

硬编码的配置参数

键盘记录程序使用以下文件名结构和格式将信息放入HPFusionManagerDell目录中:

16.png

键盘记录程序输出文件格式

17.png

键盘记录程序文件的内容结构

持久性攻击

这个恶意软件示例的持久性攻击可以通过常规方法实现,如设置注册表项,这是作为Python代码的一部分,如下所示:

18.png

注册表项持久性攻击

然而,在这个实现中有一些关于持久性的有趣的事情。该示例从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示例非常相似,具体请参阅RadwareCheck 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路径的随机字符和结构。

20.png

主题使用

以前,研究人员在MICROPSIA中看到过涉及代码和C2实现的特定主题,例如《生活大爆炸》或《权力的游戏》,而这种新实现并没有什么不同,包括多次引用多个著名演员的名字,如图15和16所示,无论是代码变量还是所使用的基础结构。

21.png

MICROPSIA以引用代码中的主题而闻名,比如《生活大爆炸》和《权力的游戏》。上面提到的攻击者Fran Drescher似乎与之前对主题的观察相一致。

22.png

MICROPSIA以引用代码中的主题而闻名,比如《生活大爆炸》和《权力的游戏》。上面提到的演员基努·里维斯(Keanu Reeves)的引用似乎与以前对主题的观察一致。

另外,如“命令和控制”部分所述,C2操作包含许多迪士尼引用。

另一个有趣的细节是代码中存在阿拉伯注释:

Delete_Request_Error('لم يتم ضغط هذا الملف!!..')

这可能是一个假标志,但这是该恶意软件样本的另一个可能的区域属性链接。

总结

AridViper是一个长期活跃的攻击组织,该开发者正在继续开发新工具,比如PyMICROPSIA。 PyMICROPSIA与其他现有的AridViper开发的工具(如MICROPSIA)存在多处重叠。另外,根据研究人员对PyMICROPSIA的不同方面的分析,这个恶意软件的几个部分仍然没有被使用,这表明该开发者正在积极开发该恶意程序。

本文翻译自:https://unit42.paloaltonetworks.com/pymicropsia/如若转载,请注明原文地址:


文章来源: https://www.4hou.com/posts/n7QW
如有侵权请联系:admin#unsafe.sh