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

선행 학습

1. 개념

sudo -l은 "내가 sudo로 무엇을 할 수 있는가" 를 그대로 알려줍니다. 공격자에게 이는 권한 상승 경로의 지도입니다. 허용된 명령 중 셸 탈출 가능한 것(A영역 06편)이 있으면 바로 상승에 이용합니다.

sudo 권한 조회
 sudo -l               → 현재 계정의 허용 명령(비밀번호 없이도 일부 표시)
 sudo -l -U 사용자     → 특정 계정 권한(root 필요)
 cat /etc/sudoers      → sudoers 규칙(root 읽기)
 ls/cat /etc/sudoers.d → 추가 규칙

지도: 허용 명령 중 vi/less/python 등 셸 탈출 가능(A영역 06편) → 상승 경로

A영역 06편이 방어자의 sudoers 점검, B영역 37편이 sudo 상승 탐지라면, 여기서는 공격자가 권한을 조회·파악하는 정찰입니다.

2. 왜 중요한가

  • sudo -l은 권한 상승 경로를 직접 알려줘, 공격자가 가장 먼저 확인하는 권한 정찰 중 하나입니다.
  • 허용 명령에 셸 탈출 가능 프로그램(A영역 06편)이 있으면, 조회 직후 상승(B영역 37편)으로 이어집니다.
  • /etc/sudoers.d 열람은 숨겨진 권한 규칙까지 파악하려는 정밀 정찰입니다.

3. 핵심 명령어 / 설정

조회정보
sudo -l현재 계정 허용 명령
sudo -l -U 사용자특정 계정 권한
/etc/sudoers전체 규칙
/etc/sudoers.d/추가 규칙

4. 실습 (실습 예시)

# sudo 권한 조회 감사 (실습 예시)
-w /etc/sudoers -p r -k recon_priv
-w /etc/sudoers.d -p r -k recon_priv
-a always,exit -F arch=b64 -S execve -F path=/usr/bin/sudo -F a1="-l" -k recon_priv

# 세션에서 sudo -l 조회와 직후 상승 (분석 방법)
sudo ausearch -k recon_priv -i --start recent | grep -E 'sudo|sudoers' | tail
# sudo -l 직후 sudo 실행(상승)이 왔는지
sudo ausearch --session 12 -i 2>/dev/null | grep -E 'a1="-l"|USER_CMD' | tail

sudo -l 실행 자체는 Wazuh/syslog에도 남습니다(sudo 로그). auditd와 함께 봅니다.

5. 정상 상태

$ sudo ausearch -k recon_priv -i --start today | grep 'a1="-l"' | tail -1
09:05:02 auid=admin1 ses=8 comm="sudo" a1="-l"  (자기 권한 확인)

관리자가 자기 권한을 확인하는 sudo -l은 흔하고 정상입니다. 위험한 것은 조회 직후 상승이나 다른 계정 권한 조회입니다.

6. 이상 상태

02:14:30 auid=devops ses=12 comm="sudo" a1="-l"
02:14:35 auid=devops ses=12 comm="cat" name="/etc/sudoers.d/ops"
02:14:40 auid=devops ses=12 comm="sudo" (vi /etc/... → 셸 탈출 가능)
  • sudo -l로 허용 명령 확인 + sudoers.d 열람 → 권한 상승 경로 정밀 파악
  • 허용 명령에 셸 탈출 가능 프로그램 발견 → 직후 그 명령으로 상승 시도(B영역 37편)
  • 계정·그룹·UID 정찰(C21~23)에 이어 sudo 권한 정찰 → 상승 직전 단계

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

sudo 권한 정찰 → 상승 흐름입니다(가상의 예시 로그).

type=EXECVE ... a0="sudo" a1="-l"
type=SYSCALL ... auid=devops ses=12 comm="sudo" key="recon_priv"
type=PATH ... name="/etc/sudoers.d/ops" nametype=NORMAL
[직후] sudo로 셸 탈출 가능 명령 실행 (B영역 37편 101060)
관찰해석
sudo -l허용 명령 지도
sudoers.d 열람숨은 규칙 파악
직후 상승지도 따라 상승(B영역 37편)
ses=12권한 정찰 세션

8. SOC 관제 포인트

  • sudo -l 조회는 직후 상승 여부와 함께 봅니다(B영역 37편 연계).
  • 다른 계정 권한 조회(-l -U)·sudoers.d 열람은 정밀 권한 정찰로 주시합니다.
  • sudo 권한 정찰은 계정·그룹 정찰(C21·22)의 종착점(상승 직전)으로 봅니다.

9. 탐지 규칙

<!-- 실습 예시 룰: 적용 전 wazuh-logtest 및 테스트 환경 검증 필요 -->
<group name="local,syssec_c,recon,privilege,">
  <rule id="102250" level="8">
    <if_group>audit</if_group>
    <field name="audit.key">recon_priv</field>
    <regex type="pcre2">a1="-l"|/etc/sudoers</regex>
    <description>sudo 권한·sudoers 조회(권한 상승 경로 정찰)</description>
    <mitre><id>T1069.001</id></mitre>
  </rule>
</group>

sudo -l 조회(102250) + 직후 sudo 상승(B영역 101060)을 상관하면 정찰→상승을 포착합니다.

10. 대응 방법

  1. 초기 확인 — sudo 권한 조회의 대상(자기/타 계정)·연속성과 직후 상승 여부를 확인합니다.
  2. 범위 확인 — 허용 명령 중 셸 탈출 가능 항목(A영역 06편)과 실제 상승(B영역 37편)을 연계 확인합니다.
  3. 증거 확보 — sudo 로그·audit·sudoers 접근 로그를 보존합니다.
  4. 차단/조치 — 탈취·상승 세션이면 B영역 대응과 sudoers 점검을 진행합니다.
  5. 재발 방지 — sudo 권한 조회를 권한 정찰·상승 상관에 포함합니다.

11. 핵심 정리

조회정보
sudo -l허용 명령(상승 지도)
sudo -l -U타 계정 권한
/etc/sudoers.d숨은 규칙
구분자기 권한 확인(정상) vs 조회 직후 상승·타 계정 조회(정찰)
면접 포인트"sudo -l은 권한 상승 경로의 지도 — 조회 직후 상승을 함께 본다"

12. 다음 편 예고

다음 편 128. Linux 정보 수집 — 관리자 권한 관련 정보 수집 에서는 관리자 권한 전반을 보는 관리자 권한 관련 정보 수집을 다룹니다.


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

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

0개의 댓글