ATT&CK: T1068 Exploitation for Privilege Escalation · Privilege Escalation (TA0004)

로컬 발 들였을 때 “이 커널/소프트웨어 버전에 알려진 PrivEsc PoC가 있나” 매핑하는 작업. 공개된 Exploit-DB 데이터베이스를 조회하는 방식.

1. searchsploit — Exploit-DB CLI

1.1 설치

# Kali는 기본 설치
apt install exploitdb

# 수동 설치
git clone https://gitlab.com/exploit-database/exploitdb /opt/exploitdb
ln -sf /opt/exploitdb/searchsploit /usr/local/bin/searchsploit

# 최신화
searchsploit -u

1.2 기본 검색

# 커널 버전으로
searchsploit linux kernel 5.4

# 소프트웨어 이름으로
searchsploit sudo CVE-2021-3156

# 제목에서만 검색
searchsploit -t "apache 2.4"

1.3 결과를 바로 꺼내기

# PoC 파일 경로 보기
searchsploit -p 50010.c

# PoC를 현재 디렉터리로 복사
searchsploit -m 50010

PoC 파일은 /opt/exploitdb/exploits/<platform>/<type>/ 아래.

1.4 환경 매칭 — nmap XML 입력

nmap XML을 넘기면 서비스 버전 → 매칭 PoC 자동 매핑:

nmap -sV -oX scan.xml 10.0.0.5
searchsploit --nmap scan.xml

2. LinPEAS와의 연계

LinPEAS는 자체적으로 커널 버전 → 알려진 CVE 매핑 섹션을 제공:

./linpeas.sh > linpeas.out
grep -A5 "CVE-" linpeas.out | less

LinPEAS 출력의 “Kernel exploits” 섹션에 CVE 번호가 뜨면 → searchsploit으로 상세 조회.

3. 체크 순서 (실전)

  1. 커널 버전 (uname -a) → searchsploit linux kernel <ver>.
  2. sudo 버전 (sudo -V) → sudo 관련 CVE (Baron Samedit류).
  3. 배포판 패키지 (cat /etc/os-release) → OS별 패키지 버전 조회.
  4. SUID 바이너리 (find / -perm -4000 2>/dev/null) → GTFOBins 조회.
  5. Capabilities (getcap -r / 2>/dev/null) → 위험한 cap 조합.
  6. 설치 서비스 버전 → 각 서비스별 CVE 조회.

4. GTFOBins — SUID/sudo 바이너리 악용

find / -perm -4000 결과에 걸린 바이너리는 GTFOBins에서 “이 바이너리로 어떻게 shell/root 얻는지” 바로 조회:

https://gtfobins.github.io/

예: find가 SUID로 설정돼있으면:

find . -exec /bin/sh -p \; -quit

흔한 피봇 바이너리: vim, less, python, tar, find, nmap, awk.

5. Windows 쪽 — Windows Exploit Suggester

유사 흐름을 Windows에서:

# 호스트에서
systeminfo > sysinfo.txt

# 외부에서
pipx install windows-exploit-suggester
windows-exploit-suggester.py --database 2024-01-01-mssb.xls --systeminfo sysinfo.txt

Metasploit의 post/multi/recon/local_exploit_suggester 모듈도 세션에서 자동 매핑.

6. PoC 사용 전 체크

  • PoC는 공개된 것 ≠ 그 환경에서 통함. 커널 패치, 보호 메커니즘(SELinux, AppArmor, kASLR, SMEP/SMAP, KPTI) 적용 여부로 성공률 급변.
  • 커널 PrivEsc는 커널 패닉 유발 가능 — 운영 환경에서 돌리면 서비스 다운 위험.
  • 반드시 격리된 랩에서 먼저 재현 → 운영 환경 적용.

7. CVE DB 참조

  • Exploit-DB — PoC 중심.
  • NVD / MITRE — CVE 메타데이터.
  • GitHub PoC — 비공식이지만 가장 최신. github.com/<researcher>/CVE-YYYY-NNNNN 검색.
  • PacketStorm — 레거시 PoC 저장소.

8. 블루팀 관점

  • 커널 패치 적시 적용이 가장 근본 완화.
  • auditd로 비정상 syscalls, kexec_load, 모듈 로드 모니터링.
  • EDR이 커널 익스플로잇 공통 패턴(payload 메모리 레이아웃, 알려진 함수 호출)을 탐지.

참고