BadPatch恶意活动再次浮出水面:发现新型Python恶意软件

前言

在我们通过各种来源持续进行威胁监控的过程中,FortiGuard Labs发现了一条安全研究员@h4ckak发表的推文,其内容涉及到可疑文件,该文件看起来像是APT活动中的诱饵文件。我们对其进行了更加深入的研究,发现该文件很可能是新型BadPatch恶意活动的一部分。BadPatch是指一系列恶意软件,在历史上某次恶意活动中集中使用,可能与2017年首次发现的加沙黑客组织相关联。根据我们发现的恶意软件的编译时间戳来判断,该组织自2012年以来,就持续参与针对中东地区的间谍活动。从2017年至今,BadPatch已经在将近两年的时间内脱离了我们的视野。

安全研究员Ring4sky的推文:

BadPatch恶意活动再次浮出水面:发现新型Python恶意软件

在本文中,我们对此次攻击中使用的新型恶意软件进行分析,根据在攻击代码中发现的字符串,我们将新型恶意软件命名为“B3hpy”(读作:bepai)。

UID使用“b3h”字符,版本号为“Py 0.1”:

BadPatch恶意活动再次浮出水面:发现新型Python恶意软件

该恶意软件是使用Python进行编译的恶意软件,由多个组件组成,可以从目标受害者的主机中窃取并渗透数据。我们还发现该恶意软件中存在特定的模式,并以此判断这个恶意软件可能与BadPatch相关。

攻击维度

上传到VirusTotal的攻击样本,是一个名为.scr的可执行文件(翻译:总理Mohammad Ishtayeh.scr)。尽管我们没有找到该文件的初始向量,但我们认为它是以恶意邮件的附件形式发送的,这一点与之前BadPatch此前的攻击过程一致。

该可执行文件属于SFX类型,其中包含两个文件。奇热影视

包含诱饵文件的SFX可执行文件:

BadPatch恶意活动再次浮出水面:发现新型Python恶意软件

在执行之后,该文件将打开decoy.doc文件,这个文件中包含的文本,似乎是从Sama News的新闻文章中提取的。

诱饵文件:

BadPatch恶意活动再次浮出水面:发现新型Python恶意软件

新闻站点,可能恶意Word文档从中复制了一些文本:

BadPatch恶意活动再次浮出水面:发现新型Python恶意软件

这个恶意文件还会执行d.exe,可执行文件仅在64位Windows计算机上有效。但是,我们相信也有32位版本的恶意可执行文件,同时还存在一些其他的组件,我们将在后文详细讨论。d.exe负责下载三个文件。

下载的其他文件:

BadPatch恶意活动再次浮出水面:发现新型Python恶意软件

值得关注的是,攻击者将其恶意软件文件托管在GitHub上。有一些文件是在两年前上传的,而其他文件是几天前上传的。但是,根据时间戳判断,攻击者在2017年就对这些文件进行了编译。这可能意味着,自2017年发现BadPatch以来,攻击者一直在利用这些恶意文件,并且直至今日。尽管我们在测试过程中所分析的样本未涵盖所有文件,但我们相信,攻击者如果想要执行,就可以下载并运行这些文件。

托管在GitHub上的组件文件(hxxps://github[.]com/jamelarebhi1980/FilesRep):KTV

BadPatch恶意活动再次浮出水面:发现新型Python恶意软件

随后,执行文件Bios.333(保存在C:ProgramDatadriverssn3337.exe)和Bios.111(保存在C:ProgramDatadriversBios.exe)。文件sn3337.exe的作用只是为Bios.exe文件设置自动启动的注册表项。

自动启动机制:

BadPatch恶意活动再次浮出水面:发现新型Python恶意软件

Bios.exe是32位Python 3编译的可执行文件。该文件使用PyInstaller编译,这个编译器会将Python语言的程序打包为独立的可执行文件。这意味着,无需在计算机上部署Python环境,就可以执行Python程序。该文件是主要的恶意软件组件,最初与命令和控制服务器(C2)进行通信,以下载和安装其他组件文件。1.txt文件中包含Base64编码的数据,这些数据在编码时指向GitHub上其副本(可用于更新恶意软件要使用的C2地址),以及C2服务器的地址。

1.txt包含C2地址:

BadPatch恶意活动再次浮出水面:发现新型Python恶意软件

转向使用Python编译的恶意软件

先前,有关BadPatch的报告中提到了使用C++、Delphi、Visual Basic和AutoIt编译的恶意软件。在这些恶意活动中,甚至还使用了Android恶意软件。

尽管发起BadPatch恶意活动的黑客组织使用了各种编译器,但他们在以前的攻击中使用的某些恶意软件中的代码逻辑与新的Python编译的恶意软件非常相似。

B3hpy恶意软件分析

为了提取和分析Python脚本及其使用的软件包,我们需要在PyInstaller中使用一个名为pyi-archive_viewer的工具。使用pyi-archive_viewer,我们可以提取主文件,在我们所分析的样例中,文件名称为“m6937.”。

pyi-archive_viewer显示包中包含的文件:

BadPatch恶意活动再次浮出水面:发现新型Python恶意软件

我们提取到的文件是.PYC文件,这是已经编译的Python代码。运行Python脚本(.PY)时,Python在运行脚本之前会将其编译为已经编译的字节码(.PYC)。为了反编译代码,我们可以使用称为uncompyle6的工具。

在反编译之后,我们看到实际的代码非常简单。

它首先创建两个文件。其中一个包含文本“b3h”,另一个包含网络适配器的MAC地址。

包含UID和MAC地址的文件:

BadPatch恶意活动再次浮出水面:发现新型Python恶意软件

然后,该恶意文件与C2进行初始通信,从1.txt文件中获取C2的地址。

所有C2通信都会以向路径/api/v1/url发送GET请求开始,该路径提供了将POST请求发送给C2时使用的参数名称列表。

向C2发送GET请求,以获取用于POST请求的参数名称:

BadPatch恶意活动再次浮出水面:发现新型Python恶意软件

值得关注的是,C2提供的参数名称是拉丁语的组合(将两个或三个拉丁语组合成一个词)。例如,“Fugiatodio”是“fugiat”和“dioo”的组合,翻译为“Shun hatred”。我们尝试从C2中搜索这些字符串,最终在GitHub上找到了一个有趣的文本文件,其中包含许多这样的字符串。但是,我们不知道这是巧合,还是攻击者确实复制并使用了这个文件。

在恶意软件发送到C2的初始信息中,包含主机的计算机名称、版本(可能是恶意软件版本“Py version 0.1”)、MAC地址、文本“Hi, Connect”以及UID “b3h”。恶意软件从C2获取参数,将POST请求发送到/api/v1/logs路径。

将包含主机信息的POST请求发送至C2:

BadPatch恶意活动再次浮出水面:发现新型Python恶意软件

然后,会遍历以下文件夹中的文件和目录,发送到C2:

%ProgramFiles%

%ProgramFiles (x86)%

%Windows%Microsoft.NETFramework

%Windows%Microsoft.NETFramework64

与C2的POST请求,其中包含特定文件夹中的文件列表:

BadPatch恶意活动再次浮出水面:发现新型Python恶意软件

在与C2进行初始通信之后,会通过连接到http://www.google.com来检查主机是否已经连接互联网。从逻辑上说,这一过程本应该放在与C2通信之前。

如果确认正常联网,将会尝试下载并执行其他恶意软件组件。

下载并执行组件文件:

BadPatch恶意活动再次浮出水面:发现新型Python恶意软件

其响应使用JSON格式,其中包含两部分数据:

“files”:标记,用于在下载组件之前向C2发送通知;

“data”:包含对象列表。

“data”键中包含一个对象列表,其中有6个属性:

“id”:组件的服务ID;

“name”:组件名称(存疑);

“enabled”:安装或删除组件;

“download”:下载组件的标志(存疑);

“url”:组件的下载URL,使用Base64编码;

“flag”:启动或停止组件。

该过程中下载的文件,预先以ZIP格式进行了压缩。

在撰写本文时,我们没有收到任何关于下载组件文件的响应。

C2没有发出下载响应:

BadPatch恶意活动再次浮出水面:发现新型Python恶意软件

但是,我们认为这些组件也同样可以从GitHub存储库中找到,其名称格式为“sp6937{component digit}.zip”。

对组件文件的分析

(1)sp69372.zip

该组件读取具有以下扩展名的文件列表:

BadPatch恶意活动再次浮出水面:发现新型Python恶意软件

按优先级的顺序列出文件,下面是按照优先级进行排序后的文件夹列表:

%HomePath%Desktop or %HomePath%/p>

%HomePath%Documents or %HomePath%/p>

Drives not starting with C:

Directories in C: drive other than the above mentioned

文件夹优先级:

BadPatch恶意活动再次浮出水面:发现新型Python恶意软件

然后,使用以下信息,通过SMTP,将收集到的数据发送给攻击者:

BadPatch恶意活动再次浮出水面:发现新型Python恶意软件

(2)sp69373.zip

该组件从攻击者指定的受害者计算机中窃取文件。它使用受害者主机的MAC地址,将POST请求发送到路径/devices/settings/all,以获取要窃取的文件列表(以及特定的文件路径、文件类型或文件名)。

提取特定文件:

BadPatch恶意活动再次浮出水面:发现新型Python恶意软件

然后,也使用上述SMTP信息,通过SMTP发送这些文件。

(3)sp69374.zip

该组件会捕获受害者计算机的屏幕截图,它首先捕获当前显示的屏幕截图,然后从包含特定文本的窗口中收集屏幕截图。其中的一些是与互联网浏览器、Facebook社交网站(也使用阿拉伯语)、即时消息服务Telegram和视频共享网站YouTube相关。

进行截图的窗口特定文本列表:

BadPatch恶意活动再次浮出水面:发现新型Python恶意软件

这一过程中,也使用上述SMTP信息,通过SMTP发送屏幕截图。

(4)sp69375.zip

该组件从最近打开的文件中获取具有以下扩展名的文件列表。

列出的文件扩展名:

BadPatch恶意活动再次浮出水面:发现新型Python恶意软件

通过遍历%AppData%MicrosoftWindowsRecent文件夹中的所有文件,并检查其目标路径是否包含上述扩展名来完成此操作。

这一过程中,也使用上述SMTP信息,通过SMTP发送文件列表。

(5)sp69376.zip

该组件从连接的USB驱动器中提取具有以下扩展名的文件:

BadPatch恶意活动再次浮出水面:发现新型Python恶意软件

然后,使用上述SMTP信息,通过SMTP发送这些文件。

(6)sp69377.zip

该组件会从Google Chrome的登录数据中窃取已经保存的用户密码。

BadPatch恶意活动再次浮出水面:发现新型Python恶意软件

这里也是用上述SMTP信息,通过SMTP发送窃取后的数据。

攻击目标国家分布

不出所料,受害者用户最为集中的地区是巴勒斯坦,如下图所示。值得注意的是,其中来自非中东地区国家的受害者用户非常少。但是,这些用户可能是研究人员的沙箱环境,或者是攻击者自行测试恶意软件。

按国家划分的BadPatch恶意活动受害者:

BadPatch恶意活动再次浮出水面:发现新型Python恶意软件

BadPatch是一个标签,用于标识一组使用Visual Basic(VB)、AutoIt和Android恶意软件编写的恶意程序,这一系列恶意软件在2017年首次被发现。根据我们的研究,考虑到恶意活动的性质、相关联的IP地址以及一些恶意软件组件,我们认为这一系列攻击可能与加沙的黑客组织有关。我们无法进一步找到与加沙黑客组织相关的更多证据,但目前可以提供证据表明“B3hpy”可能是BadPatch恶意活动的组成部分。

首先,我们观察C2地址。C2托管在tstapi[.]pal4u[.]net上。在上文中,提到tstapi[.]pal4u[.]net域名已经被用于托管BadPatch恶意软件,因此,这一新型恶意软件的幕后组织可能与2017年BadPatch恶意软件幕后的组织相同。此前,我们对BadPatch系列恶意软件曾经进行过分析,但此次发现的“B3hpy”具有与之类似的模式。

BadPatch恶意软件列表:

BadPatch恶意活动再次浮出水面:发现新型Python恶意软件

从数据泄露的方法来看,对比早期恶意活动中的恶意软件与本次分析的新型恶意软件,二者在收集的数据、SMTP凭证格式以及所请求的URL路径(获取/发送附加信息)方面都非常相似。另外,我们发现一些以前的样本将可执行文件与诱饵文档捆绑在一起,而这里的新型恶意软件也是如此。

总结

在这次恶意活动中,使用的恶意软件并不是非常复杂,并且与BadPatch非常相似。实际上,它看起来就像是曾经BadPatch在恶意活动中使用的恶意软件,只不过被移植到了另一种编程语言。至少,这证明了经典的攻击方法也是有几率能取得成功的。与此同时,还说明一些APT攻击者可能在今后会充分利用GitHub、Pastebin、云托管站点等免费服务。

Fortinet将所有B3hpy样本检测为Python/B3hpy.A!tr。FortiGuard Web过滤服务已经阻止与该恶意软件相关的所有URL。

威胁指标

C2服务器:

tstapi[.]pal4u[.]net

195[.]154[.]216[.]74

github[.]com/jamelarebhi1980/FilesRep

文件:

ae912cba54e7e8339f43530f70deb5ae1bcc780fdd4b80569cbe628509468de4 – .scr

85a1b924d766524f6760869e412b49d603cdf9975831e912463774913b6886ca – d.exe

ab08a5bdaeb122ad07f68ec747e4ee1681f7572ad69431d0a2038a6e2a6afce5 – Bios.111

9e64a490e5592b9d9064d018c559ae251e2ed757f0f2215aa4acbf4df183688a – Bios.333

fc0ac7f8d9346baf6e4e81d3a4d3bcb72bcd9e2269adfb36617bccd8a987a9e2 – Bios.exe

f0e3a5918ae76558b3a0ab50135403aadec88c55ffdc07624cbc5b8c2ba3669b – Reg.333

3dd6947dcb20e3c2fb5a54ed906ca51fab16563b207bd29cefd64d77d38ded66 – sp69372.exe

d97c841306828f9ebf6d7c0a69b33e82534f1ecf09554742a58f0d59d99b15af – sp69373.exe

75ce26405f46304abdca26e54bbd11506942a6f5bbd64c2974a68fd94087e814 – sp69374.exe

5badba04b373165ffe46b2f96b7f8a57ea352ba3800c34a535143b653fe2153f – sp69375.exe

a80e0118afe0dfba5c2802007041acacdce4222e03f8b64c0c3bd50ea6bf1032 – sp69376.exe

4d89147a7ac41b66aa037294ab96d83c5ce538a40b7c385461f0699e5859bc77 – sp69377.exe

文章知识点与官方知识档案匹配,可进一步学习相关知识Python入门技能树首页概览208576 人正在系统学习中

来源:systemino

声明:本站部分文章及图片转载于互联网,内容版权归原作者所有,如本站任何资料有侵权请您尽早请联系jinwei@zod.com.cn进行处理,非常感谢!

上一篇 2019年10月2日
下一篇 2019年10月2日

相关推荐