권한 상승(Privilege Escalation)은 낮은 권한의 사용자나 프로세스가 더 높은 권한을 획득하는 공격이다. 수직적(낮은 → 높은) 또는 수평적(같은 수준의 다른 권한) 상승이 있다.
권한 상승 유형
| 유형 | 설명 | 예시 |
|---|
| 수직적 (Vertical) | 일반 사용자 → root/Administrator | SUID 악용, 커널 취약점 |
| 수평적 (Horizontal) | 사용자 A → 사용자 B | 세션 하이재킹 |
| UAC 우회 (Windows) | 일반 권한 → 관리자 | eventvwr.exe 우회 |
Linux 권한 상승 기법
bash
# 1. SUID 바이너리 탐색
find / -perm -u=s -type f 2>/dev/null
# /usr/bin/passwd, /bin/su 등 SUID 설정 파일 확인
# 2. sudo 설정 오류 확인
sudo -l # 현재 사용자의 sudo 권한 목록
# 예시: ALL 권한이나 NOPASSWD 오설정
# (ALL) NOPASSWD: /usr/bin/find
# → find -exec /bin/sh ; 로 쉘 획득
# 3. 취약한 서비스 식별
ps aux # 루트 권한으로 실행 중인 프로세스
netstat -tlnp # 로컬에서만 열린 포트 (내부 서비스)
# 4. cron 작업 악용
cat /etc/crontab
ls -la /etc/cron.*
# 쓰기 권한 있는 스크립트를 루트 cron이 실행하면 권한 상승
Windows 권한 상승 기법
powershell
# 서비스 오설정 확인
sc qc <service_name> # 서비스 경로 확인
icacls "C:path oservice.exe" # 쓰기 권한 확인
# 비인용 서비스 경로 (Unquoted Service Path)
# C:Program FilesMy Appservice.exe
# → C:Program.exe 생성으로 권한 상승
# AlwaysInstallElevated 레지스트리 오설정
reg query HKCUSOFTWAREPoliciesMicrosoftWindowsInstaller /v AlwaysInstallElevated
# 값이 1이면 msiexec로 SYSTEM 권한 획득 가능
대응 방법
예방:
- 최소 권한 원칙 (Principle of Least Privilege)
- 정기적인 SUID/SGID 감사
- 서비스 계정 권한 최소화
- 패치 관리 (커널/OS 최신 유지)
탐지:
- sudo/su 사용 로그 모니터링
- 권한 있는 프로세스 생성 이벤트 탐지
- SIEM에서 권한 변경 이벤트 알림
관련 문서