시스템 보안 · 취약점 › C. Linux 정보 노출 및 수집 · 25/50편 (전체 125/450)
학습 단계: 사용자·권한 정보 수집
실습 표기: 이 글의 명령어·출력·로그는 로컬 VMware 테스트 VM(Rocky Linux 9 / Ubuntu 22.04) 기준의 「실습 예시」이며, IP·계정·호스트명은 가상의 값입니다.

선행 학습

1. 개념

접속자 명단(C24)보다 한 단계 깊게, 현재 세션의 구조(어떤 TTY에서 무슨 프로세스가 돌고, 어느 세션이 활성인가)를 조회하는 정찰입니다. 공격자는 이를 통해 자기 세션의 노출 여부와, 탈취·관찰할 다른 세션을 파악합니다.

세션 구조 조회
 tty / ps -t pts/N   → 특정 터미널의 프로세스
 loginctl            → systemd 세션 목록(세션 ID·사용자·TTY)
 /proc/[PID]/stat    → 프로세스의 세션·TTY 정보
 ps -eo pid,tty,user,cmd → 전체 세션·명령

목적: 관리자 세션의 활동(무슨 작업 중) 관찰, 세션 탈취 대상 식별

C24가 "누가 접속했나(명단)"라면, 이 편은 "각 세션이 무엇을 하고 있나(구조·활동)"입니다. B영역 28편(동시 세션)의 방어 관점과 짝을 이룹니다.

2. 왜 중요한가

  • 다른 사용자 세션의 프로세스를 관찰하면, 공격자는 관리자가 지금 무슨 작업 중인지(대응 중인지) 파악합니다.
  • 세션·TTY 구조는 세션 하이재킹(공유 터미널·멀티플렉서 악용)의 사전 정찰이 될 수 있습니다.
  • loginctl로 systemd 세션을 보면 linger(B영역 40편)·원격 세션까지 드러납니다.

3. 핵심 명령어 / 설정

조회정보
tty자기 터미널
ps -t pts/N특정 TTY 프로세스
loginctlsystemd 세션 목록
/proc/[PID]/stat세션·TTY
ps -eo tty,user,cmd전체 세션·활동

4. 실습 (실습 예시)

# 세션 조회 감사 (C04/C24의 recon_activity 공유)
-a always,exit -F arch=b64 -S execve -F path=/usr/bin/loginctl -F auid>=1000 -F auid!=unset -k recon_activity

# 다른 사용자 세션 프로세스 조회인지 (분석 방법)
sudo ausearch -k recon_activity -i --start recent | grep -E 'comm="loginctl"|comm="ps"' | tail
sudo ausearch --session 12 -i 2>/dev/null | grep -E 'loginctl|pts|/proc/[0-9]+/stat' | tail

5. 정상 상태

$ sudo ausearch -k recon_activity -i --start today | grep 'comm="loginctl"' | tail -1
09:10:02 auid=admin1 ses=8 comm="loginctl"  (세션 점검)

관리자가 세션 상태를 점검하는 단발 조회는 정상입니다.

6. 이상 상태

02:14:10 auid=devops ses=12 comm="loginctl"
02:14:12 auid=devops ses=12 comm="ps" (ps -t pts/0 — admin1 세션)
  • loginctl로 세션 목록 확인 + admin1 세션(pts/0)의 프로세스 관찰 → 관리자 활동 감시
  • 다른 사용자 세션의 명령을 들여다봄 → 대응 여부 파악·세션 탈취 대상 식별
  • 접속자 명단(C24)에 이어 세션 구조 정찰 → 활동 감시 심화

7. 로그 분석 (분석 방법)

세션 구조 정찰 흐름입니다(가상의 예시 로그).

type=EXECVE ... a0="loginctl"
type=SYSCALL ... auid=devops ses=12 comm="loginctl" key="recon_activity"
type=EXECVE ... a0="ps" a1="-t" a2="pts/0"
관찰해석
loginctl세션 목록(원격·linger 포함)
ps -t pts/0타 사용자 세션 관찰
관리자 세션 대상활동 감시
ses=12세션 정찰

공격자가 타 세션을 관찰하면 자기 세션도 드러나므로, 방어자는 B영역 28편으로 역탐지합니다.

8. SOC 관제 포인트

  • 세션 구조 조회는 타 사용자(특히 관리자) 세션 관찰 여부를 봅니다.
  • loginctl로 원격·linger 세션까지 드러나므로 B영역 40편과 연계합니다.
  • 접속자(C24)+세션 구조(C25) 조회를 묶어 활동 감시 정찰로 봅니다.

9. 탐지 규칙

<!-- 실습 예시 룰: 적용 전 wazuh-logtest 및 테스트 환경 검증 필요 -->
<group name="local,syssec_c,recon,">
  <rule id="102235" level="7">
    <if_group>audit</if_group>
    <field name="audit.key">recon_activity</field>
    <regex type="pcre2">a0="loginctl"|a0="ps".*-t</regex>
    <description>세션·터미널 구조 조회(타 세션 관찰 정찰)</description>
    <mitre><id>T1033</id></mitre>
  </rule>
</group>

세션 조회는 접속·활동 정찰(C04·C24·C25)로 묶어 계정 정찰 세트(130편)에 포함합니다.

10. 대응 방법

  1. 초기 확인 — 세션 조회의 대상(자기/타 세션)·주체와 관리자 세션 관찰 여부를 확인합니다.
  2. 범위 확인 — 공격자 세션을 B영역 28편으로 역탐지합니다.
  3. 증거 확보 — 세션 조회 흐름을 보존합니다.
  4. 차단/조치 — 탈취 세션이면 B영역 대응과 연계합니다.
  5. 재발 방지 — 세션 구조 조회를 접속·활동 정찰 상관에 포함합니다.

11. 핵심 정리

조회정보
loginctlsystemd 세션 목록
ps -t pts/N특정 TTY 프로세스
/proc/[PID]/stat세션·TTY
구분세션 점검(정상) vs 타 세션 관찰(정찰)
면접 포인트"타 세션 프로세스 관찰은 관리자 대응 여부 파악·세션 탈취 정찰"

12. 다음 편 예고

다음 편 126. Linux 정보 수집 — 최근 로그인 정보 조회 에서는 과거 접속 패턴을 학습하는 최근 로그인 정보 조회를 다룹니다.


이전 편: 124. Linux 정보 수집 — 로그인 사용자 조회
📚 시리즈 전체 보기: 시스템 보안 · 취약점

profile
코드에 숨겨진 위협을 읽고 AI로 보안의 미래를 설계합니다. 프론트엔드 개발 경험을 자산 삼아 더 견고하고 지능적인 보안 운영 시스템을 구축해 나가는 과정을 기록합니다

0개의 댓글