시스템 보안 · 취약점 › C. Linux 정보 노출 및 수집 · 37/50편 (전체 137/450)
학습 단계: 프로세스·서비스·파일 정보 수집
실습 표기: 이 글의 명령어·출력·로그는 로컬 VMware 테스트 VM(Rocky Linux 9 / Ubuntu 22.04) 기준의 「실습 예시」이며, IP·계정·호스트명은 가상의 값입니다.
파일·디렉터리 탐색은 공격자가 "어디에 무엇이 있는가" 를 파악하는 광범위 정찰입니다. 민감 데이터·설정·쓰기 가능 위치를 찾습니다. 정상 작업은 특정 디렉터리를 보지만, 정찰은 광범위·재귀·전체 파일시스템을 훑습니다.
파일 탐색
ls -laR /경로 → 재귀적 목록
find / -name '*.conf' → 전체 설정 파일 탐색
find / -writable → 쓰기 가능 위치
find /home -name 'id_rsa' → SSH 키 탐색
tree /경로 → 구조 시각화
정상: 특정 디렉터리 작업 / 정찰: 전체·재귀·패턴 기반 광범위 탐색
linsec 25편(중요 파일 권한 점검)이 방어라면, 여기서는 공격자가 파일을 광범위하게 탐색하는 정찰입니다.
find는 부하가 크고 정상 운영에서 드물어, 그 자체로 탐지 가치가 높습니다(C27 SUID 탐색과 유사).*.conf, id_rsa, *.bak)은 명확한 목표(설정·키·백업)를 드러냅니다.| 조회 | 정보 |
|---|---|
ls -laR | 재귀 목록 |
find / -name 패턴 | 패턴 파일 탐색 |
find / -writable | 쓰기 가능 위치 |
find /home -name id_rsa | SSH 키(E영역 연계) |
tree | 구조 |
# 파일 탐색 감사 (C27의 recon_priv와 별도 recon_file)
-a always,exit -F arch=b64 -S execve -F path=/usr/bin/find -F auid>=1000 -F auid!=unset -k recon_file
# 광범위/패턴 탐색인지 (분석 방법) — find 인자 확인
sudo ausearch -k recon_file -i --start recent | grep 'find' | tail
sudo ausearch --session 12 -i 2>/dev/null | grep -A1 'comm="find"' | grep -E 'a[0-9]=' | tail
전체 find는 많으므로, 대상이 /·/home이거나 -name/-writable 패턴인 경우로 좁힙니다(147편).
$ sudo ausearch -k recon_file -i --start today | grep find | tail -1
11:00:02 auid=admin1 ses=8 comm="find" a1="/var/log" a2="-name" a3="*.log" (로그 작업)
관리자가 특정 디렉터리에서 특정 파일을 찾는 것은 정상입니다. 전체 파일시스템·민감 패턴 탐색이 이상 신호입니다.
02:16:10 auid=devops ses=12 comm="find" a1="/" a2="-name" a3="*.conf"
02:16:15 auid=devops ses=12 comm="find" a1="/home" a2="-name" a3="id_rsa"
02:16:20 auid=devops ses=12 comm="find" a1="/" a2="-writable" a3="-type" a4="d"
id_rsa 탐색 → SSH 키 탈취 목표(E영역 중요 정보 접근)광범위 파일 탐색 흐름입니다(가상의 예시 로그).
type=EXECVE ... a0="find" a1="/" a2="-name" a3="*.conf"
type=SYSCALL ... auid=devops ses=12 comm="find" key="recon_file"
type=EXECVE ... a0="find" a1="/home" a2="-name" a3="id_rsa"
| 관찰 | 해석 |
|---|---|
| find / -name *.conf | 전체 설정 탐색 |
| find /home -name id_rsa | SSH 키 탈취 목표 |
| find / -writable | 지속성 위치 |
| ses=12 | 파일 정찰 |
발견된 민감 파일 접근(E영역)·쓰기 위치 사용(F영역)이 이어지는지 연계합니다.
id_rsa·*.bak·*.conf 등 민감 패턴 탐색은 명확한 목표를 드러내 우선순위를 높입니다.<!-- 실습 예시 룰: 적용 전 wazuh-logtest 및 테스트 환경 검증 필요 -->
<group name="local,syssec_c,recon,">
<rule id="102360" level="9">
<if_group>audit</if_group>
<field name="audit.key">recon_file</field>
<regex type="pcre2">a0="find".*(-name.*(id_rsa|\.key|\.pem|\.bak|shadow)|-writable)</regex>
<description>민감 파일·쓰기 위치 광범위 탐색</description>
<mitre><id>T1083</id></mitre>
</rule>
</group>
T1083(File and Directory Discovery)에 매핑됩니다. 파일 탐색은 파일 정찰 세트(140편)·E영역과 연계합니다.
| 조회 | 정보 |
|---|---|
| ls -laR | 재귀 목록 |
| find / -name 패턴 | 민감 파일 |
| find / -writable | 지속성 위치 |
| 구분 | 특정 작업(정상) vs 전체·민감 패턴 탐색(정찰) |
| 면접 포인트 | "id_rsa·*.conf 광범위 탐색은 민감 파일·키 탈취 정찰" |
다음 편 138. Linux 정보 수집 — 중요 파일 존재 여부 확인 에서는 표적 확인 정찰인 중요 파일 존재 여부 확인을 다룹니다.
이전 편: 136. Linux 정보 수집 — cron 관련 정보 수집
📚 시리즈 전체 보기: 시스템 보안 · 취약점