시스템 보안 · 취약점 › C. Linux 정보 노출 및 수집 · 29/50편 (전체 129/450)
학습 단계: 사용자·권한 정보 수집
실습 표기: 이 글의 명령어·출력·로그는 로컬 VMware 테스트 VM(Rocky Linux 9 / Ubuntu 22.04) 기준의 「실습 예시」이며, IP·계정·호스트명은 가상의 값입니다.
서비스 계정은 웹·DB 등 데몬이 쓰는 계정으로, 침해 시 발판이 됩니다(B영역 34·35편). 공격자는 서비스 계정의 프로세스·소유 파일·권한을 조회해 "이 계정으로 무엇을 할 수 있는가"를 파악합니다.
서비스 계정 정찰
ps -u apache → 서비스 계정이 실행 중인 프로세스
find / -user apache → 서비스 계정 소유 파일(쓰기 가능 위치)
grep apache /etc/passwd → 서비스 계정 셸·홈(B영역 34편)
id apache → 서비스 계정 권한·그룹
목적: 서비스 계정이 쓸 수 있는 파일·디렉터리(웹루트 등)를 통한 공격 경로 파악
B영역 34·35편이 "서비스 계정을 로그인 불가로 유지/대화형 로그인 탐지"라면, 여기서는 공격자가 서비스 계정의 활용 가능성을 조회하는 정찰입니다.
| 조회 | 정보 |
|---|---|
ps -u apache | 서비스 계정 프로세스 |
find / -user apache | 소유 파일(쓰기 위치) |
id apache/groups apache | 권한·그룹 |
grep apache /etc/passwd | 셸·홈(B영역 34편) |
# 서비스 계정 정찰 감사 (실습 예시)
-a always,exit -F arch=b64 -S execve -F path=/usr/bin/find -F auid>=1000 -F auid!=unset -k recon_priv
# ps/id는 execve 감사 또는 /proc 접근으로 포착
# 세션에서 서비스 계정 대상 조회 (분석 방법) — find -user 서비스계정
sudo ausearch -k recon_priv -i --start recent | grep -E 'find' | tail
sudo ausearch --session 12 -i 2>/dev/null | grep -E 'apache|mysql|www-data|nginx' | tail
$ sudo ausearch --session 8 -i 2>/dev/null | grep apache | tail -1
(관리자가 서비스 점검 중 특정 파일 소유 확인 — 단발)
관리자가 서비스 점검으로 특정 파일 소유를 확인하는 것은 정상입니다.
02:14:55 auid=devops ses=12 comm="ps" (ps -u apache)
02:15:00 auid=devops ses=12 comm="find" a1="/var/www" a2="-user" a3="apache" a4="-writable"
02:15:05 auid=devops ses=12 comm="id" (id apache)
find -user apache -writable) + 권한 확인 연속 → 서비스 계정 악용 정찰서비스 계정 정찰 흐름입니다(가상의 예시 로그).
type=EXECVE ... a0="find" a1="/var/www" a2="-user" a3="apache" a4="-writable"
type=SYSCALL ... auid=devops ses=12 comm="find" key="recon_priv"
type=EXECVE ... a0="id" a1="apache"
| 관찰 | 해석 |
|---|---|
| ps -u apache | 서비스 프로세스 |
| find -user -writable | 쓰기 가능 위치(웹셸 장소) |
| id apache | 권한·그룹 |
| ses=12 | 서비스 계정 정찰 |
발견된 쓰기 가능 위치에 파일 생성(F영역 지속성)이 이어지는지 연계합니다.
<!-- 실습 예시 룰: 적용 전 wazuh-logtest 및 테스트 환경 검증 필요 -->
<group name="local,syssec_c,recon,">
<rule id="102270" level="8">
<if_group>audit</if_group>
<field name="audit.key">recon_priv</field>
<regex type="pcre2">a0="find".*-user.*(apache|nginx|www-data|mysql).*-writable|-writable.*(apache|nginx|www-data)</regex>
<description>서비스 계정 쓰기 가능 파일 탐색(악용 경로 정찰)</description>
<mitre><id>T1083</id></mitre>
</rule>
</group>
서비스 계정 정찰은 계정 정찰 세트(130편)·F영역 지속성과 연계합니다.
| 조회 | 정보 |
|---|---|
| ps -u 서비스 | 프로세스 |
| find -user -writable | 쓰기 가능 위치(웹셸) |
| id 서비스 | 권한·그룹 |
| 구분 | 서비스 점검(정상) vs 쓰기 위치·권한 탐색(정찰) |
| 면접 포인트 | "서비스 계정의 쓰기 가능 위치 탐색은 웹셸 지속성 장소 정찰" |
다음 편 130. Linux 정보 수집 — 사용자·권한 정보 수집 종합 분석 에서는 3단계를 마무리하는 사용자·권한 정보 수집 종합 분석을 다룹니다.
이전 편: 128. Linux 정보 수집 — 관리자 권한 관련 정보 수집
📚 시리즈 전체 보기: 시스템 보안 · 취약점