
Simulation de bout en bout d'une attaque par confusion de dépendances Python, escalade de privilèges sudo (CVE-2025-32463) et persistance basée sur un rootkit - avec analyse complète de la mémoire et du réseau.
Ce projet a été développé dans le cadre du cours Digitale Forensik à la Technische Hochschule Deggendorf.
Il illustre une enquête médico-légale complète et une simulation d'attaque impliquant :
Une attaque par confusion de dépendances Python utilisant un paquet PyPI malveillant
Une escalade de privilèges via une version vulnérable de sudo (CVE-2025-32463)
Le déploiement d'un beacon Sliver C2
Un rootkit personnalisé avec chargement de module noyau, hooking d'appels système et persistance basée sur udev
L'analyse complète des artefacts mémoire et réseau à l'aide d'outils comme Volatility, NetworkMiner et du reverse engineering manuel
Le dépôt contient des scripts, des instructions de configuration, des artefacts et des étapes d'analyse détaillées pour reproduire à la fois l'attaque et l'investigation médico-légale.
shell)
shell binary
CVE-2025-32463
Détails NVD
PoC Github
[!NOTE]
Vous devez installer une version vulnérable de sudo (avec support chroot—voirprivesc/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
# Génération d'artefacts
Tous les artefacts sont générés manuellement. Vous utiliserez deux machines :
- **Machine attaquante** (Kali Linux)
- **Machine développeur** (Ubuntu)
Nous produirons trois artefacts :
- **PCAP** (avant redémarrage)
- **Dump mémoire** (après redémarrage)
## Créer un dump mémoire
[Comment dumper la mémoire VirtualBox](https://www.ired.team/miscellaneous-reversing-forensics/dump-virtual-box-memory)
Sur le système hôte :```shell
vboxmanage list vms
"linux-root-kit_default_1752261916398_20346" {c2d4b5bc-d87f-4dcb-af01-85b78c163fef}
virtualboxvm --startvm "linux-root-kit_default_1752261916398_20346" --dbg
Aller à l'interface --> Debug Dans la console de débogage (VMMR0> prompt):```shell .pgmphystofile 'dumpmem_linux_root_kit'
## Préparer le dump réseau sur Ubuntu
Commencez avant de simuler le développeur. Le `! port 22` est utile pour ne pas journaliser la connexion ssh vagrant.```shell
sudo tcpdump -w output.pcap ! port 22
shell)vagrant up
Cela peut prendre un certain temps --> télécharge une VM entière construite avec Bento.
## 2. Une fois la VM démarrée, connectez-vous en SSH : ```shell
vagrant ssh
sudo bash /vagrant/privesc/setup.sh sudo apt install python3.12-venv
## 4. Construire le binaire du loader en espace utilisateur (shell) :