시스템 보안 · 취약점 › C. Linux 정보 노출 및 수집 · 28/50편 (전체 128/450)
학습 단계: 사용자·권한 정보 수집
실습 표기: 이 글의 명령어·출력·로그는 로컬 VMware 테스트 VM(Rocky Linux 9 / Ubuntu 22.04) 기준의 「실습 예시」이며, IP·계정·호스트명은 가상의 값입니다.
sudo 외에도 root 권한 획득 경로는 여럿입니다. 공격자는 SUID/SGID 파일, capability, 쓰기 가능한 PATH 등을 조회해 "비정상적으로 권한을 올릴 수 있는 지점"을 찾습니다. 이는 D영역(권한 변경 이상 징후)의 직접 선행 정찰입니다.
권한 상승 경로 탐색
find / -perm -4000 → SUID 파일 목록(linsec 18편)
getcap -r / → capability 보유 파일(linsec 22편)
echo $PATH / 쓰기가능 디렉터리 → PATH 하이재킹 가능성
writable sudoers·cron → 설정 변경 가능성(A영역)
목적: 표준 sudo 외의 상승 경로(비정상 SUID·cap) 발견
linsec 18·22편이 "SUID/capability 보안 점검"이라면, 여기서는 공격자가 그 경로를 탐색하는 정찰입니다. 전체 파일시스템을 find로 뒤지는 패턴이 특징적입니다.
find(find / -perm)는 정상 운영에서 드물고 부하가 커, 그 자체로 탐지 가치가 높습니다.| 조회 | 정보 |
|---|---|
find / -perm -4000 | SUID 파일(상승 경로) |
find / -perm -2000 | SGID 파일 |
getcap -r / | capability 파일(linsec 22편) |
echo $PATH | PATH(하이재킹 가능성) |
| 관심 | 비표준 SUID, 쓰기 가능 경로 |
# 권한 상승 경로 탐색 감사 (실습 예시)
-a always,exit -F arch=b64 -S execve -F path=/usr/bin/find -F auid>=1000 -F auid!=unset -k recon_priv
-a always,exit -F arch=b64 -S execve -F path=/usr/sbin/getcap -F auid>=1000 -F auid!=unset -k recon_priv
# 전체 파일시스템 SUID 탐색인지 (분석 방법) — find 인자 확인
sudo ausearch -k recon_priv -i --start recent | grep -E 'find|getcap' | tail
sudo ausearch --session 12 -i 2>/dev/null | grep -A2 'comm="find"' | grep -E 'a[0-9]=' | tail
전체 find 실행은 많을 수 있으므로, -perm -4000/-u+s 같은 SUID 탐색 인자를 조건으로 좁힙니다(147편).
$ sudo ausearch -k recon_priv -i --start today | grep 'comm="find"' | tail -1
11:00:02 auid=admin1 ses=8 comm="find" (특정 디렉터리 파일 검색) (정상 작업)
관리자가 특정 디렉터리에서 파일을 찾는 것은 정상입니다. 전체 파일시스템 SUID 탐색이 이상 신호입니다.
02:14:45 auid=devops ses=12 comm="find" a1="/" a2="-perm" a3="-4000"
02:14:50 auid=devops ses=12 comm="getcap" a1="-r" a2="/"
find / -perm -4000) + capability 전수 조회 → 상승 경로 탐색권한 상승 경로 탐색 흐름입니다(가상의 예시 로그).
type=EXECVE ... a0="find" a1="/" a2="-perm" a3="-4000"
type=SYSCALL ... auid=devops ses=12 comm="find" exe="/usr/bin/find" key="recon_priv"
type=EXECVE ... a0="getcap" a1="-r" a2="/"
| 관찰 | 해석 |
|---|---|
| find / -perm -4000 | 전체 SUID 탐색 |
| getcap -r / | capability 전수 조회 |
| 전체 파일시스템 대상 | 은밀한 경로 탐색 |
| ses=12 | 권한 정찰 세션 |
발견된 비표준 SUID·capability 악용(D영역)이 이어지는지 연계합니다.
<!-- 실습 예시 룰: 적용 전 wazuh-logtest 및 테스트 환경 검증 필요 -->
<group name="local,syssec_c,recon,privilege,">
<rule id="102260" level="9">
<if_group>audit</if_group>
<field name="audit.key">recon_priv</field>
<regex type="pcre2">a0="find".*-perm.*(4000|2000|u\+s)|a0="getcap"</regex>
<description>SUID/capability 권한 상승 경로 탐색</description>
<mitre><id>T1083</id></mitre>
</rule>
</group>
T1083(File and Directory Discovery)·T1069 계열. 전체 SUID 탐색은 D영역 권한 변경 룰과 연계합니다.
| 조회 | 정보 |
|---|---|
| find / -perm -4000 | SUID 파일(상승 경로) |
| getcap -r / | capability 파일 |
| $PATH | 하이재킹 가능성 |
| 구분 | 특정 검색(정상) vs 전체 SUID/cap 탐색(정찰) |
| 면접 포인트 | "전체 SUID 탐색은 sudo 외 은밀한 상승 경로를 찾는 D영역 선행 정찰" |
다음 편 129. Linux 정보 수집 — 서비스 계정 정보 조회 에서는 서비스 계정 정보 정찰인 서비스 계정 정보 조회를 다룹니다.
이전 편: 127. Linux 정보 수집 — sudo 권한 정보 열람
📚 시리즈 전체 보기: 시스템 보안 · 취약점