Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2021-3156-Baron-Samedit — A simple Docker lab and Exploit setup for CVE-2021-3156 - "Baron Samedit". | Kitploit
도구/GitHubGitHub/theleopard65/cve-2021-3156-baron-samedit
Privilege EscalationContainer SecurityVulnerability AnalysisExploitationShellcodeLearning & EducationBinary ExploitationLabs & Practice

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
GitHub
theleopard65/cve-2021-3156-baron-samedit

CVE-2021-3156-Baron-Samedit

A simple Docker lab and Exploit setup for CVE-2021-3156 - "Baron Samedit".

저장소 보기
15개월 전아직 검토되지 않음

CVE-2021-3156 - "Baron Samedit" 실습 및 익스플로잇

이 저장소는 CVE-2021-3156을 이해하고 익스플로잇하기 위한 자체 포함된 교육 환경을 제공합니다. 이 취약점은 sudo의 힙 기반 버퍼 오버플로로, 취약한 시스템(sudo 버전 1.9.5p2 이전)에서 권한이 없는 사용자가 루트 권한을 얻을 수 있게 합니다.

이 자료는 권한이 부여된 보안 교육 및 연구 목적으로만 사용됩니다.

귀하가 소유하지 않은 시스템에 대한 무단/비윤리적 사용은 불법입니다.

저장소 내용

  • Dockerfile - 취약한 sudo 1.8.31이 포함된 Ubuntu 20.04 컨테이너를 빌드합니다.
  • exploit.c - 주요 익스플로잇 페이로드 (Ubuntu 20.04에 맞게 조정됨)
  • shellcode.c - 루트 셸을 생성하는 공유 라이브러리 생성자
  • Makefile - 익스플로잇과 악성 라이브러리를 컴파일합니다.

시작하기

사전 요구 사항

  • Docker (또는 Docker Engine)
  • C 언어에 대한 기본적인 이해
  • Make에 대한 기본적인 이해
  • 명령줄 도구 사용 지식

실습 환경 빌드 및 실행

  1. 저장소 복제:
root@kitploit:~
git clone https://github.com/Theleopard65/CVE-2021-3156-Baron-Samedit.git
cd CVE-2021-3156-Baron-Samedit
  1. Docker 이미지 빌드:
root@kitploit:~
docker build -t cve-2021-3156-lab .
  1. 컨테이너 실행:
    • 컨테이너 내부에서 사용자 poc로 로그인됩니다.
    • 작업 디렉터리는 /home/exploit이며, 소스 파일이 이미 포함되어 있습니다.
root@kitploit:~
docker run -it --rm --name baron_samedit_lab cve-2021-3156-lab

익스플로잇 컴파일 및 실행

  • 컨테이너 내부에서는 Docker 빌드 과정에서 익스플로잇이 이미 컴파일되어 있습니다. 수동으로 실행하려면:
root@kitploit:~
cd /home/exploit
./exploit

성공하면 루트 셸 프롬프트(#)가 나타납니다. 이 익스플로잇은 sudo의 힙에 있는 service_user 구조체를 덮어쓰고, 악성 라이브러리 libnss_x/x.so.2를 로드하도록 강제합니다. 이 라이브러리의 생성자가 셸코드를 실행합니다.

수동 컴파일 (필요 시)

  • 재컴파일:
root@kitploit:~
make clean && make

다음 파일이 생성됩니다:

  • exploit - 주요 익스플로잇 바이너리
  • libnss_x/x.so.2 - 악성 공유 라이브러리

익스플로잇 작동 원리

CVE-2021-3156은 sudoedit의 명령줄 인자 처리 과정에서 발생하는 힙 기반 오버플로입니다. 공격자는 특수하게 조작된 버퍼와 환경 변수를 제공하여 힙의 service_user 구조체를 덮어쓸 수 있습니다. 이 구조체에는 함수 포인터가 포함되어 있으며, 이를 가로채 NSS(Name Service Switch) 메커니즘을 통해 로드된 악성 라이브러리를 가리키도록 할 수 있습니다. 그러면 라이브러리의 생성자가 루트 권한으로 임의 코드를 실행합니다.

이 익스플로잇은:

  1. 오버플로를 유발하기 위해 큰 버퍼(buf)를 할당합니다.
  2. LC_MESSAGES, LC_TELEPHONE, LC_MEASUREMENT 환경 변수를 사용하여 힙 레이아웃을 조정합니다.
  3. files service_user 구조체로 오버플로하여 이름을 악성 라이브러리(libnss_x/x.so.2)의 경로로 대체합니다.
  4. 악성 라이브러리의 생성자(shellcode.c에 있음)가 setuid(0), setgid(0)을 실행하고 루트 셸을 생성합니다.

정리

Docker 이미지를 제거하려면:

root@kitploit:~
docker rmi cve-2021-3156-lab

참고 자료

  • Qualys의 원본 권고
  • Blasty의 개념 증명
  • NIST NVD의 CVE 항목

라이선스

이 프로젝트는 교육 목적으로만 제공됩니다. 사용에 따른 책임은 본인에게 있습니다.

도구 다운로드