通过GitHub传播窃密木马的攻击活动分析

2024-03-29 1,003 0

1概览

近期,安天CERT监测到通过GitHub传播窃密木马的攻击活动。攻击者在其发布项目的环境依赖文件requirements.txt中添加恶意URL,以获取其恶意篡改的流行开源模块,从而在受害者电脑中植入窃密木马。

攻击者使用空格将恶意代码掩藏在该行代码的末尾,以避免被用户察觉;并使用多种手段对恶意代码进行混淆处理,以规避安全产品检测、阻碍安全人员分析。经过多层脚本载荷的传递后,将执行一种由Python编写的窃密木马。该窃密木马会在受害主机中窃取浏览器、社交平台、加密货币钱包、游戏客户端中的敏感信息,并针对目标路径中匹配关键词的文件夹及文件进行窃取,最终将窃密数据回传至C2服务器或上传至文件共享平台Gofile中。

在此次攻击活动中,攻击者在自己发布的项目中引入经过恶意篡改的流行开源模块,从而传播窃密木马。对流行的开源项目进行篡改,在其中添加恶意代码后重新打包并在发布的项目中进行恶意引用,已经成为一种攻击方式,用户很难察觉环境依赖文件中是否存在异常。用户在使用网络中非流行、未证实安全性的开源项目时也需保持警惕,以避免执行掩藏在其中的恶意代码。

2技术梳理

攻击者在GitHub中上传项目,并在环境依赖文件requirements.txt中添加恶意URL。当用户使用该项目时,需要根据该文件中的内容进行配置,从而下载执行经过攻击者恶意篡改的colorama模块。

攻击者添加的恶意代码用于从其服务器中获取“version”文件,该文件使用Fernet算法进行加解密,执行后获取“inj”文件并写入临时文件中;“inj”文件经过混淆处理,通过zlib对代码进行解压;解压后的代码用于获取最终的窃密木马,通过注册表实现持久化,并向C2服务器回传受害主机的用户名称、IP信息等基本数据。

该窃密木马会窃取指定浏览器、社交平台、加密货币钱包、游戏客户端中的敏感数据,并对目标路径中含有关键词的文件夹中的文件(最多7个)、以及含有关键词且大小小于500000字节(约488KiB)的文件进行窃取。完成窃密行为后,窃密木马通过HTTP POST方式将窃密数据回传至C2服务器中。当第一种回传方式出错时,该窃密木马会将窃取的数据上传至文件共享平台Gofile。

图 2‑1攻击流程图

3 关联分析

此次发现的恶意GitHub项目是“Discord-Token-Generator”,最早于2024年1月份创建。

图 3‑1恶意GitHub项目

该项目的环境依赖文件requirements.txt中包含一个托管colorama-0.4.6.tar.gz的URL。攻击者对域名进行了伪装,在流行开源模块colorama-0.4.6中添加了恶意代码,并进行重新打包。

图 3‑2恶意Github项目中的requirements.txt文件

根据requirements.txt文件中发现的恶意域名,目前在GitHub中有多个项目引用了经过攻击者恶意篡改的模块,相关账号可能都是由同一批攻击者所创建。

图 3‑3引用经过攻击者恶意篡改模块的相关GitHub项目

攻击者用于托管载荷的域名于2024年2月份注册,表明这是一起刚开始进行的攻击活动。

图 3‑4攻击者使用域名的注册时间

在多个恶意GitHub项目中存在攻击者修改requirements.txt文件的痕迹。分析时已无法获取到该URL中的colorama-0.4.3.tar.gz,不能判断该文件是否恶意。

图 3‑5攻击者修改requirements.txt的痕迹

此外,在窃密木马文件中存在多处葡萄牙语痕迹,表明攻击者可能位于葡语系国家或地区。

图 3‑6攻击者在窃密木马文件中使用葡萄牙语进行输出

窃密木马窃取文件的关键词列表中存在几处法语,表明攻击者可能更加针对法语用户。

图 3‑7窃密文件中的法语痕迹

4样本分析

4.1经过攻击者篡改的colorama模块

colorama是一个开源的Python模块,能够提供彩色的终端文本。攻击者在其__init__.py文件中,通过463个空格将恶意代码掩藏在第5行末尾,然后将篡改的colorama模块重新打包并托管于搭建的服务器中。由于__init__.py文件用于定义包的初始化代码,因此当用户导入该包时会自动执行其中的恶意代码。该恶意代码用于从攻击者服务器中接收“version”文件中的内容并执行。

图 4‑1攻击者掩藏的恶意代码

4.2version

“version”文件中的代码使用Fernet算法,通过攻击者自定义的密钥对代码进行解密,然后对解密的代码进行执行。

图 4‑2执行通过Fernet算法进行加解密的代码

解密后的代码访问指定的URL,将“inj”文件内容写入临时文件中,并通过python执行。

图 4‑3获取“inj”文件内容并执行

4.3inj

该文件是一个Python脚本,攻击者使用中文、日文对变量及函数等进行命名,并且对代码进行了混淆处理。

图 4‑4 inj文件内容

攻击者同样通过空格对关键代码进行掩藏,经解混淆处理后发现,该脚本的作用是使用zlib解压出下一阶段的代码并进行执行。

图 4‑5经过zlib压缩的代码

4.4经过zlib解压的代码

该代码使用Python编写,其作用是在%APPDATA、%LOCALAPPDATA%、%TEMP%中选取一个目录生成一个随机名称的文件,将从指定URL中获取的内容写入该文件中执行,通过注册表实现持久化,并向C2服务器回传受害主机的用户名称、IP信息等数据。

图 4‑6该代码的作用

4.5窃密木马

4.5.1窃密

经过以上多层载荷的传递,最终将执行一种使用Python编写的窃密木马。其窃密目标如下表所示。

表 4‑1窃密目标

浏览器

Opera

Chrome

Brave

Vivaldi

Edge

Yandex

Firefox

社交平台

Discord

Telegram

加密货币钱包

Atomic Wallet

Guarda

Zcash

Armory

Bytecoin

Exodus

Binance

Jaxx

Electrum

Coinomi

游戏客户端

Steam

Riot Client

该窃密木马也会对目标路径中含有关键词的文件夹中的文件(最多7个)、以及含有关键词且大小小于500000字节(约488KiB)的文件进行窃取。目标路径及关键词如下表所示。

表 4‑2目标路径及关键词

目标路径

桌面

下载

文档

最近使用的项目

关键词

passw

mdp

motdepasse

mot_de_passe

login

secret

bot

atomic

account

acount

paypal

banque

bot

metamask

wallet

crypto

exodus

ledger

trezor

hardware

cold

.dat

discord

2fa

code

memo

compte

to0k3en

backup

secret

seed

mnemonic

memoric

private

key

passphrase

pass

phrase

steal

bank

info

casino

prv

privé

prive

telegram

identifiant

personnel

trading

bitcoin

sauvegarde

funds

récupé

recup

note

4.5.2回传

该窃密木马通过HTTP POST将窃取的数据回传至C2服务器中。

图 4‑7 HTTP POST回传方式

当该回传方式出错时,该窃密木马会将窃取的数据上传至文件共享平台Gofile,并将上传后形成的下载链接记录在“loggrab”文件中回传至C2服务器。

图 4‑8将数据上传至Gofile

5 防护建议

5.1加强终端文件接收和执行防护

建议企业用户部署专业的终端安全防护产品,对本地新增和启动文件进行实时检测,并周期性进行网内病毒扫描。

6  IoCs

IoCs

96B4C32AFE965529510A6430C2A7AAD3

150B3626C85EC5AF88B86C0D0E24736B

6580C4990E1E56A7D31A36FF1A0502FA

DD9914573C751C4D8BE4BFE0519F9597

6573627FFC97CA6E82A238561C14A9E4

https[:]//files.pypihosted.org/packages/d8/53/6f443c9a4a8358a93a6792e2acffb9d9d5cb0a5cfd8802644b7b1c9a02e4/colorama-0.4.6.tar.gz

https[:]//pypihosted.org

162.248.100[.]217


4A评测 - 免责申明

本站提供的一切软件、教程和内容信息仅限用于学习和研究目的。

不得将上述内容用于商业或者非法用途,否则一切后果请用户自负。

本站信息来自网络,版权争议与本站无关。您必须在下载后的24个小时之内,从您的电脑或手机中彻底删除上述内容。

如果您喜欢该程序,请支持正版,购买注册,得到更好的正版服务。如有侵权请邮件与我们联系处理。敬请谅解!

程序来源网络,不确保不包含木马病毒等危险内容,请在确保安全的情况下或使用虚拟机使用。

侵权违规投诉邮箱:4ablog168#gmail.com(#换成@)

相关文章

webpack打包站点,js文件名批量获取思路
加密对抗靶场enctypt——labs通关
【论文速读】| 注意力是实现基于大语言模型的代码漏洞定位的关键
蓝队技术——Sysmon识别检测宏病毒
内网渗透学习|powershell上线cs
LLM attack中的API调用安全问题及靶场实践

发布评论