시스템 보안 · 취약점 › C. Linux 정보 노출 및 수집 · 16/50편 (전체 116/450)
학습 단계: 네트워크 정보 수집
실습 표기: 이 글의 명령어·출력·로그는 로컬 VMware 테스트 VM(Rocky Linux 9 / Ubuntu 22.04) 기준의 「실습 예시」이며, IP·계정·호스트명은 가상의 값입니다.
기본 게이트웨이와 외부 연결성 확인은 공격자가 "이 서버가 외부로 나갈 수 있는가(C2 통신·데이터 유출 가능 여부)" 를 파악하는 정찰입니다. 외부로 나가지 못하는 격리 서버인지, 인터넷 접근이 되는지에 따라 공격 전략이 달라집니다.
외부 경로 확인
ip route show default → 기본 게이트웨이
ping 8.8.8.8 / 외부IP → 외부 연결성 확인(ICMP)
traceroute 외부 → 외부 경로 추적
curl/wget 외부(테스트) → HTTP 외부 연결성
목적: 외부 통신 가능 → C2·데이터 유출 경로 확보 판단
외부 통신 불가 → 격리 환경, 다른 전략 필요
관리자도 연결 점검으로 ping/traceroute를 쓰지만, 공격자는 외부 도달성 확인 목적으로 조회합니다.
| 조회 | 정보 |
|---|---|
ip route show default | 기본 게이트웨이 |
ping 외부IP | 외부 ICMP 도달성 |
traceroute | 외부 경로 |
| 외부 HTTP 테스트 | HTTP 유출 가능성 |
# 외부 경로 확인 감사 (실습 예시)
-a always,exit -F arch=b64 -S execve -F path=/usr/bin/ping -F auid>=1000 -F auid!=unset -k recon_net
-a always,exit -F arch=b64 -S execve -F path=/usr/bin/traceroute -F auid>=1000 -F auid!=unset -k recon_net
# 세션에서 외부 연결성 확인 (분석 방법) — 외부 IP 대상인지 확인
sudo ausearch -k recon_net -i --start recent | grep -E 'ping|traceroute' | tail
# 방화벽 아웃바운드 로그와 교차 (외부로 나갔는지)
sudo grep -E 'OUT=.*DST=(8\.8\.8\.8|203\.)' /var/log/messages 2>/dev/null | tail
$ sudo ausearch -k recon_net -i --start today | grep ping | tail -1
10:50:02 auid=admin1 ses=8 comm="ping" (대상 내부 게이트웨이) (연결 점검)
관리자가 내부 연결 점검으로 게이트웨이에 ping하는 것은 정상입니다. 격리 서버에서 외부 IP로 나가는 것이 이상 신호입니다.
02:13:25 auid=devops ses=12 comm="ip" (route show default)
02:13:28 auid=devops ses=12 comm="ping" (대상 외부 8.8.8.8)
외부 경로 정찰과 아웃바운드 연계입니다(가상의 예시 로그).
type=EXECVE ... a0="ip" a1="route" a2="show" a3="default"
type=EXECVE ... a0="ping" a1="8.8.8.8"
type=SYSCALL ... auid=devops ses=12 comm="ping" key="recon_net"
[방화벽] kernel: ... OUT=ens160 DST=8.8.8.8 PROTO=ICMP
| 관찰 | 해석 |
|---|---|
| route show default | 게이트웨이 확인 |
| ping 외부 IP | 외부 도달성 |
| 방화벽 OUT 로그 | 실제 외부로 나감 |
| ses=12 | 외부 경로 정찰 세션 |
아웃바운드 방화벽 로그(A영역 15편)와 교차하면 "정찰"과 "실제 외부 통신"을 구분할 수 있습니다.
<!-- 실습 예시 룰: 적용 전 wazuh-logtest 및 테스트 환경 검증 필요 -->
<group name="local,syssec_c,recon,">
<rule id="102150" level="8">
<if_group>audit</if_group>
<field name="audit.key">recon_net</field>
<regex type="pcre2">a0="(ping|traceroute)"</regex>
<description>외부 연결성·경로 확인(C2/유출 경로 정찰 가능성)</description>
<mitre><id>T1016</id></mitre>
</rule>
</group>
외부 IP 대상 여부는 execve 인자나 방화벽 아웃바운드 로그로 보강합니다. 내부 전용 서버는 레벨을 높입니다.
| 조회 | 정보 |
|---|---|
| route show default | 게이트웨이 |
| ping/traceroute 외부 | 외부 도달성 |
| 방화벽 OUT | 실제 외부 통신 |
| 구분 | 내부 연결 점검(정상) vs 외부 도달성 확인(정찰) |
| 면접 포인트 | "격리 서버의 외부 ping은 C2·유출 경로 정찰 신호" |
다음 편 117. Linux 정보 수집 — Listening Port 정보 수집 에서는 서비스 노출 정찰인 Listening Port 정보 수집을 다룹니다.
이전 편: 115. Linux 정보 수집 — hosts 파일 열람 흔적
📚 시리즈 전체 보기: 시스템 보안 · 취약점