澳门新葡萄京所有网站 1

据 freebuf
报导,近日有软件安全研究人员发现了
PyPI 上存在 12
个恶意库,其中包含的恶意代码可以导致安全隐患,比如开启后门、盗取比特币等。

常年混迹网络安全圈,你可能对网络犯罪分子的一些攻击手法早已不陌生,比如他们为了拓展恶意软件的功能或是使其更难以被检测到,而将之与合法软件相结合使用。而最近
Cyberreason 的研究人员发现,许多 Windows
系统进程也会被攻击者们恶意劫持以用于达成他们的目标。

斯洛伐克国家安全局(NBU)在 PyPI(Python
的官方第三方软件存储库)中发现了十个恶意软件库。

澳门新葡萄京所有网站 2

在本文中,我们将介绍黑客团伙 TA505 于 2019 年 4
月对某金融机构进行的一场精心策划的攻击事件,它是一起具有强针对性的网络钓鱼。恶意软件的持久性可根据环境选择是否创建,攻击还利用到了一个称为
ServHelper 的复杂后门。

NBU
专家说,攻击者故意将软件包的名称拼写错误,使其看起来和真的一样,然后上传到 PyPI
中。例如使用“urlib”而不是“urllib”,这样类似的方式等。

据介绍,安全研究人员 Bertus 在对 PyPI
做安全扫描时发现了这些问题,他先后两次共发现了 12
个有问题的软件包,目前官方已经将它们都删除。

TA505 的关键特征

PyPI
存储库不执行任何类型的安全检查或审计,因此攻击者向其库上传新模块时并没有什么阻碍,但使用者稍不留神,就会将恶意库加载到其软件的安装脚本中。

12
个软件包都是先是复制流行软件包的代码创建新库,并取相似的名称。例如其中的
diango、djago、dajngo 与 djanga 包都模仿了 Django。之后主要在安装文件
setup.py 中加入恶意代码。setup.py 文件包含一组指令,Python
库安装程序(如”pip”)在 Python
项目中下载和设置新包时会自动执行这些指令。

· 目标明确——只针对企业内部少数特定账户的进行网络钓鱼。

专家说,目前发现恶意代码只收集受感染主机的信息,用户的用户名以及用户的计算机主机名。并已将这些恶意软件库全部下架。

这些问题类库增加了额外指令执行各种恶意操作,并且每个库的内容有所不同。它们将尝试收集受感染机器的环境数据,并添加到自动启动,同时开启一个反向
shell 后门,一旦启动,恶意攻击者就能远程登陆该机器,并获得全部权限。

· 恶意代码经过签名验证——这是为了避免被发现而采取的额外预防措施。

下面是十个已被删除的恶意软件库的信息:

澳门新葡萄京所有网站 3

· 精心策划——从攻击的时间点和恶意代码的签名可看出。

– acqusition (uploaded 2017-06-03 01:58:01, impersonates acquisition)
– apidev-coop (uploaded 2017-06-03 05:16:08, impersonates apidev-coop_cms)
– bzip (uploaded 2017-06-04 07:08:05, impersonates bz2file)
– crypt (uploaded 2017-06-03 08:03:14, impersonates crypto)
– django-server (uploaded 2017-06-02 08:22:23, impersonates django-server-guardian-api)
– pwd (uploaded 2017-06-02 13:12:33, impersonates pwdhash)
– setup-tools (uploaded 2017-06-02 08:54:44, impersonates setuptools)
– telnet (uploaded 2017-06-02 15:35:05, impersonates telnetsrvlib)
– urlib3 (uploaded 2017-06-02 07:09:29, impersonates urllib3)
– urllib (uploaded 2017-06-02 07:03:37, impersonates urllib3)

Bertus 前后两次发现了如下 12 个恶意软件包:

· 可选择的持久性机制——基于自动侦查选择是否自毁。

这种利用包存储库传播恶意软件库的行为不是第一次发生。最新的事件涉及到
Node.js 的 npm 存储库,其中有 38 个 JavaScript
模块被删除,有包含用于窃取环境变量的代码。

澳门新葡萄京所有网站 4

· 去除痕迹——使用自毁命令和销毁脚本来删除证据。

(文/开源中国)    

此外安全人员还指出了另一个恶意库
colourama,它会劫持了受感染用户的操作系统剪贴板,并每隔 500
毫秒扫描一个类似比特币地址的字符串,并将其替换为攻击者自己的比特币地址,这样感染用户在执行比特币的支付/转账操作的时候,比特币就会进入攻击者的账户。

· 多个 C2 域——以防被列入黑名单或无法连接。

澳门新葡萄京所有网站 5

· 集成了四个不同的 LOLBin ——表明攻击者仍在研究逃避检测手段。

上面是 setup.py
中插入的恶意行,请求一个地址,修改地址内容(base64加密):澳门新葡萄京所有网站 6

TA505 是一个臭名昭著的黑客组织,曾利用多个勒索软件,如 Dridex、Locky
等进行大规模的敲诈勒索活动。最近,TA505
又在北美、亚洲、非洲和南美等多个国家开展了有针对性的攻击行动,主要针对的是大型金融机构,目的是获取有价值的数据,以便日后加以利用。

最后复原的攻击载荷(Vbscript代码):

2019
年以来,可以很明显地发现,恶意软件使用最广泛、最有效的攻击载体仍然是电子邮件,此次行动也不例外。但这次目标机构只有少数账户收到了
TA505
的钓鱼邮件,说明攻击者有可能在行动的早期就进行了侦察工作来选择最佳目标。

澳门新葡萄京所有网站 7

恶意软件由 Sectigo RSA Code Signing CA
签名验证,这是为逃避检测而采取的额外预防措施。此外,恶意软件仅在攻击前几个小时才进行了签署。

上面代码显示,在注册表 CurrentVersionRun
开机启动项目增加自启动项目,并且增加了服务 BTCS
监控粘贴板并修改其中复制的类似比特币地址的字串。

但最不寻常一点是,在大多数情况下,恶意软件几乎都会试图获得持久性,而此次行动中的一些工具可依据其环境决定是否创建持久性。这些工具将收集关于目标机器的信息,并将其发送到远程
C2 服务器,再由 C2
决定是否设置持久性,这也是一种在较高等级的攻击行动中常用的技术。

不过据 PyPI 统计,由于及时发现和删除,只有 54
个用户下载了该软件包,攻击者的比特币账户也仅有 40 美元入账。

攻击者显然非常重视如何掩盖他们的踪迹,恶意软件除了收集信息之外,还能决定是否需要从受感染的电脑上删除证据,这说明攻击者的潜在目标是设置一个尽可能长时间不被发现的后门,以便后续更有效地窃取数据。

(文/开源中国)    

恶意软件广泛而多样地使用 LOLbin 和合法的本地 Windows OS
进程来执行恶意活动,比如 payload 的传递和 ServHelper
后门的实现。ServHelper 后门是一个相对较新的恶意软件家族,于 2018
年底被发现。Cybereason 研究人员在过去几个月就注意到了广泛使用 LOLbin
进行攻击的趋势。

在此次行动中,检测到的 ServHelper
后门又发生了新的变化,我们将在接下来对其做分析。

分析过程

澳门新葡萄京所有网站 8

图 1. 攻击流程图

第一阶段 : 获取访问权限

在此阶段,攻击者向目标发送钓鱼邮件。在大约一个小时的时间内,超过 80
个文件被发送到企业邮箱的 40 个帐户中。邮件包含带有恶意宏的 Microsoft
Excel 附件。文件打开时会被加载到 Microsoft Excel 中,并敦促用户启用宏。

澳门新葡萄京所有网站 9

图 2. 包含宏的恶意 .xls 文件

当受害者单击 Enable Content 按钮后,宏命令将被执行并调用 Windows OS 进程
msiexec.exe.。msiexec.exe 是 windows
installer,即一个用于安装、维护和删除软件的 Microsoft Windows
的软件组件和应用程序编程接口。宏命令将调用 msiexec.exe 连接到远程 C2
服务器并下载第一阶段 payload,并创建第二个 msiexec.exe 进程来执行
payload,之后进入攻击链的第二阶段。

澳门新葡萄京所有网站 10

图 3. 调用 msiexec.exe 与 C2 服务器通信。

与 C2 服务器建立 TCP 连接后,下载的 payload 名为
Alg,它是第二阶段使用的几个文件的 dropper。

澳门新葡萄京所有网站 11

图 4. 从 C2 服务器下载的恶意软件。

澳门新葡萄京所有网站 12

图 5. 恶意软件的渗透过程

第二阶段 : 部署后门

澳门新葡萄京所有网站 13

图 6. 第二阶段流程图

下载 Alg 后,它将作为带有 .tmp 扩展名的二进制文件加载到
msiexec.exe,此临时文件充当恶意软件的主
dropper,并在目标计算机上部署恶意软件。

.tmp 文件中有三个文件夹,分别包含两个模块 pegas.dll、nsExec.dll 以及
.nsi 脚本。

NSIS(Nullsoft 脚本安装系统)是为 Windows
创建安装程序的合法工具。这说明后缀为 .nsi
的脚本负责恶意软件安装分相关内容,由于其名称合法,能逃避检测。

澳门新葡萄京所有网站 14

图 7..tmp 临时文件中的内容

.nsi 脚本包含 .tmp 文件要执行的命令,能指示 .tmp 文件使用 nsExec.dll
模块中的函数 kest 来操作和执行 pegas.dll 模块。

澳门新葡萄京所有网站 15

图 8.NSIS 脚本

在由 msiexec.exe 加载执行后,.tmp
临时文件会创建几个附加文件,其中一个也是临时文件,将加载初始临时文件的内存映射中,但更重要的是它创建的两个模块
pegas.dll 和 nsExec.dll。

澳门新葡萄京所有网站 16

图 9. 恶意软件创建文件 nsexecl .dll

澳门新葡萄京所有网站 17

图 10. 恶意软件创建文件 pegas.dll

此外,它还使用 Windows 命令行创建一个 rundll32.exe 进程,以加载植入的
pegas .dll 模块并用函数 kest 执行它。

澳门新葡萄京所有网站 18

图 11.rundll32.exe 加载 pegas.dll 的执行命令

澳门新葡萄京所有网站 19

图 12. 恶意软件部署流程

模块的功能

· NSEXEC.DLL

nsExec.dll 模块是用 Nullsoft 创建的。nsExec.dll
将执行基于命令行的程序,在无需开启 DOSBox
的情况下捕获输出。这样攻击者在执行命令行并运行 rundll32.exe
进程时不会显示在受害者桌面上。从 Windows
命令行处执行命令能增加恶意软件的隐秘性。

· PEGAS.DLL

pegas.dll
是负责执行所有后门功能的核心模块,内容包括在目标计算机中执行侦察、信息窃取和其他后门功能。此外,该模块还负责与另一个
C2 服务器通信。

有趣的是,pegas.dll 实际上是由认证公司 Sectigo RSA Code Signing CA
签署并验证的。这并不常见,我们认为这也是高级威胁行为者的标志之一。该认证公司也因出现在上个月的Norsk
Hydro LockerGoga 勒索软件攻击事件而闻名。

使用此证书可使恶意软件具备大多数所没有的优势:合法性。” 已确认 ” 和 ”
已验证 ”
的恶意软件可能会缩小安全专家专家的调查范围。这表明开发此恶意软件的攻击者要比大多数恶意软件创作者要更先进。

澳门新葡萄京所有网站 20

图 13. 被滥用的证书

pegas.dll
利用了数种防御机制,它被加壳了两次,以确保难以逆向,此外,该模块仅在攻击发生前的几个小时才进行编译。尽管如此,Cybereason
防御平台还是收集了与该模块相关的所有数据。

澳门新葡萄京所有网站 21

图 14. 恶意软件两次加壳

rundll32.exe 从函数 kest 处执行模块
pegas.dll。此函数是恶意软件导出表中负责初始执行恶意代码的几个函数之一,导出表中的其他函数分别是
loer 和 tempora 。

澳门新葡萄京所有网站 22

图 15. 三个导出函数

这些函数代码和功能方面类似,kest 包含的所有变量也出现在 tempora
中。此外,kest 和 loer 共享函数 FUN_12345f08 ,这实际上是 loer
拥有的惟一功能。

澳门新葡萄京所有网站 23

图 16. 在 Ghidra 中导出函数伪代码

FUN_12345f08 是恶意软件最重要的函数之一,作者通过 kest 来执行
pegas.dll,以尽快利用 FUN_12345f08 。在 FUN_12345f08
中有一个新的威胁指标——域名为 joisff333.icu 的第二个 C2,可以从
rundll32.exe 进程中访问此域,此外还有一个名为 “enu.ps1”
的字符串,表示此恶意软件会用到 PowerShell。最后还会出现字符串
asfasga33fafafaaf,这似乎与互斥体 BaseNamedObjects Global
asfasga33fafafaaf 的创建有关。

澳门新葡萄京所有网站 24

图 17.Ghidra 中的 FUN_13246F08 伪代码

使用静态分析,可以从额外的指示字符串中看出恶意软件的一些特性,包括:网络功能、C2
命令、其他域和 PowerShell 执行活动。

澳门新葡萄京所有网站 25

图 18. 恶意软件的附加指示字符串

检索和信息收集

执行 rundll32.exe 后,将执行 PowerShell 脚本 enu.ps1,此脚本使用 Base64
编码,以避免被防病毒产品检测到。

澳门新葡萄京所有网站 26

图 19.enu.ps1 使用 Base64 进行模糊处理

在解码脚本时,可以很明显看到该脚本负责收集目标机器上的侦察工作,比如使用
WMI 查询来收集信息以确定用户是否是管理员。

澳门新葡萄京所有网站 27

图 20. 通过 WMI 查询进行内部侦察

ServHelper 后门会在目标机器上收集另外一些信息,其中就包括包括用户
SID。SID 为 S-1-5-32-544
则是内置管理员组的标识符,包括本地管理员以及所有本地和域管理员用户组。
收集这些信息表明了两件事 :
恶意软件作者针对的是组织而不是普通的家庭计算机用户,并且在组织中他们针对的是最高优先级的机器。

澳门新葡萄京所有网站 28

图 21. 搜索管理员用户

一旦恶意软件确认目标计算机是管理员组用户,它将用 WindowsIdentity
GetCurrent 方法来收集信息。

澳门新葡萄京所有网站 29

图 22. 继续搜索管理员用户并收集他们的信息

在恶意软件能够验证此用户是管理员之后,它会收集有关目标计算机的其他信息,并检索所有文件系统驱动器上的数据,包括虚拟驱动器。

图 23. 收集系统驱动器数据

脚本收集的最后一点信息是服务器的名称和计算机上本地组的名称,它使用
net.exe(一个合法的 Windows 操作系统进程)来收集此信息。

图 24. 对本地组管理员进行侦察

恶意软件部署的完整流程树显示了攻击周期四种不同的 LOLBin。从大量使用
LOLBin 的行为和经过签名和验证的模块 pegas.dll
中我们可以看出,恶意软件作者在竭尽全力逃避检测。

澳门新葡萄京所有网站 30

图 25. 进程树

第三阶段 : 动态 C2 服务器

部署之后,恶意软件从 rundll32.exe 连接到第二个 C2 域,通过多个 C2
域能确保至少有一个 C2 服务器可用来攻击,在于 pegas.dll 通信后,C2
服务器决定恶意软件执行的下一步骤。

第二个 C2
服务器根据在目标机器上收集的信息进行响应,从这也能看出恶意软件的复杂性,大多数恶意软件收集并发送数据到一个固定的
C2
服务器,无论信息如何,它的响应都是相同的,而这里采用了一种更动态的方法。

澳门新葡萄京所有网站 31

图 26. 恶意软件与其第二个 C2 服务器通信

与第二个 C2 服务器的交互

在与 C2
域通信的过程中,恶意软件能执行几个关键命令和活动,其中一些活动是我们在之前版本中观察到的。

滥用认证

以下从 msiexec.exe 中观察到的网络活动说明了恶意软件是如何利用 Sectigo
RSA Code Signing CA 的签名和验证证书进行传播的。

澳门新葡萄京所有网站 32

图 27. 滥用认证流量

执行侦察

shell 命令负责在目标机器上执行 net user /domain
命令。这个命令是一个远程控制命令,允许攻击者执行额外的侦察活动。

澳门新葡萄京所有网站 33

图 28. 执行 net user /domain 命令。

持久性机制

C2 服务器决定是否创建持久性,持久性由 persist
命令负责创建。这是恶意软件复杂度的另一个主要标志,因为恶意软件不会在每台目标计算机上创建持久性,而只会在特定的几台上创建持久性。

澳门新葡萄京所有网站 34

图 29. 持久性机制

在 C2 服务器发送 persist 命令后,恶意软件使用注册表创建持久性。它在 Run
下创建一个注册表项 Intel Protect,并将 pegas.dll 存储为值。

澳门新葡萄京所有网站 35

图 30. 持久性机制

内部侦察

恶意软件根据它从用户机器上收集的信息来改变自己的行为。此信息存储在数据包中,传递到
C2 域 HTTP Payload,/ URL:/jquery/jquery.php。

该信息分为四个硬编码参数 :

· Key:在恶意软件的每次迭代中保持相同的硬编码参数。

· Sysid:有关操作系统,Service Pack 和计算机名称的信息。

· Resp:有关用户是否在 Active Directory 中具有管理员组权限的信息。

· Misc:有关 PowerShell 文件的其他信息。这是最新的参数,仅在此版本的
ServHelper 中观察到,包括新加的侦察机制。

澳门新葡萄京所有网站 36

图 31. 用于向 C2 服务器交付信息的四个硬编码字符串

恶意软件对 C2
域响应的行为变化取决于受感染的机器是否是高优先级目标。当机器不是有价值的目标时,Resp
参数将填入 ” 指定的域不存在或无法联系 “。

澳门新葡萄京所有网站 37

图 32. 恶意软件将结果通知 C2 服务器 ( 没有 AD admin )

如果恶意软件识别出目标计算机是有价值的,它将在 Resp
参数中填上相关信息,其中包含计算机所具有的组和帐户的名称,例如
“Administrator” 以及用户名称。

澳门新葡萄京所有网站 38

图 33. 恶意软件将结果通知 C2 服务器 ( 有 AD admin )

与许多后门恶意软件类似,ServHelper
能够在休眠状态下静静的潜伏。这是一种众所周知的后门特性,可以让恶意软件在检测之下存活,并按攻击者规定时间进行攻击。ServHelper
使用 GetSystemTime 函数获取关于目标机器日期和时间。

澳门新葡萄京所有网站 39

图 34. 恶意软件的休眠功能

我们已知恶意软件包含几个与 ServHelper 相关联的命令,包括:

· loaddl:负责使用 rundll32.exe 进程下载和执行其他模块的命令。

· selfkill:负责自行终止和删除计算机中的恶意软件的命令。

连接 C2 服务器的流程下图所示。

澳门新葡萄京所有网站 40

图 35. 连接 C2 服务器的流程

结论

我们在对该恶意软件的分析过程中,发现了最新版本的 ServHelper
后门,以及用于部署后门的逃避检测技术,还重点介绍了恶意软件是如何使用合法的本机
Windows OS 进程来执行恶意活动、以在不被检测的情况下交付 payload
的过程,接着介绍了 ServHelper
后门是如何在不被注意的情况下操作和部署自身的,同时,我们还展示了这个后门的复杂程度,以及它是如何针对高价值机器的。

受感染的客户能够在造成任何损害之前遏制攻击的发生。前提是能控制
ServHelper 后门,终止 msiexe .exe 和
rundll32.exe,删除所有下载的文件,还要断掉到恶意 C2
域的连接,攻击才能停止。

识别此攻击的部分困难在于它的逃避机制。LOLBin
是具有欺骗性的,此外使用带有认证的签名和验证文件也会增加恶意软件逃避被检测到的可能性。

而对此次攻击中使用的工具和技术的分析表明,LOLBin
在逃避防病毒产品的检测上是多么有效,这也进一步证实了我们自 2018
年以来看到 LOLBin 越来越常被用于攻击的趋势,随着 2019 年的到来,LOLbin
的使用频率只会有增无减。

IoC

澳门新葡萄京所有网站 41