시스템 보안 · 취약점 › G. 내부 확장 · 측면 이동 징후 · 7/50편 (전체 307/450)
학습 단계: 측면 이동 기본 개념
실습 표기: 이 글의 명령어·출력·로그는 로컬 VMware 테스트 VM(Rocky Linux 9 / Ubuntu 22.04) 기준의 「실습 예시」이며, IP·계정·호스트명은 가상의 값입니다.
피벗(pivot)은 거점 호스트를 경유지(중계)로 삼아, 공격자가 직접 닿지 못하는 내부 네트워크로 접근하는 기법입니다. 터널링은 그 경유를 위한 통로(SSH 터널·포트 포워딩)입니다. 외부 공격자가 내부 깊숙이 도달하는 핵심 수단입니다.
피벗·터널링 개념
피벗: 공격자 → web01(거점) → 내부망(직접 못 닿는)
web01을 중계로 db01·내부 세그먼트 접근
터널링:
SSH 터널: ssh -L/-D (로컬/다이내믹 포워딩)
포트 포워딩: 거점 포트 → 내부 호스트 포트
SOCKS 프록시: 거점을 통한 전 내부 접근
핵심: 거점이 외부-내부를 잇는 중계점이 됨
피벗은 거점 호스트에서 외부(공격자)와 내부(목표) 양쪽으로 연결이 생기는 것이 특징입니다. 포워딩·프록시 프로세스가 흔적입니다.
| 기법 | 방법 | 위험 |
|---|---|---|
| SSH 로컬 포워딩 | ssh -L | 내부 포트 노출 |
| SSH 다이내믹 | ssh -D(SOCKS) | 전 내부 접근 |
| 포트 포워딩 | socat·iptables | 중계 |
| 역방향 터널 | ssh -R | 외부서 내부 접근 |
| 정상 터널 | 승인된 관리 | 정상 |
# 피벗·터널링 탐지 (분석 방법)
# SSH 포워딩 옵션 실행
sudo ausearch -k proc_exec,lateral -i --start recent 2>/dev/null | grep -oE 'proctitle=.*ssh.*(-L|-R|-D|-w).*' | tail
# 거점이 외부+내부 양쪽 연결(피벗 신호)
ss -tnp 2>/dev/null | grep -E 'ssh|socat' | awk '{print $5}' | tail
# 포워딩/프록시 프로세스
ss -tlnp 2>/dev/null | grep -E 'socat|ssh' | grep -vE '127.0.0.1'
$ (SSH 포워딩) (없음 또는 승인된 관리 터널)
$ (피벗 연결) (없음)
SSH 포워딩·프록시가 없거나 승인된 관리 터널뿐이고, 외부+내부 양방향 중계 연결이 없는 상태가 정상입니다.
$ (SSH 포워딩)
proctitle="ssh -D 1080 user@web01" (다이내믹 SOCKS 프록시)
proctitle="ssh -L 3306:db01:3306 web01" (내부 DB 포워딩)
$ (피벗 연결)
web01: 외부(203.0.113.9) 연결 + 내부(db01) 연결 동시
ssh -D 1080 SOCKS 프록시 → web01 통해 전 내부 접근(피벗)ssh -L ...db01:3306 → 내부 DB를 공격자에게 포워딩피벗·터널링 분석입니다(가상의 예시).
[공격자] 203.0.113.9
↓ (외부 연결)
[거점] web01 ── ssh -D 1080 (SOCKS 프록시)
↓ (내부 중계)
[내부망] db01, app01, 10.0.1.0/24 (직접 못 닿던)
= web01이 외부-내부 중계점(피벗)
[흔적] 포워딩 프로세스 + 양방향 연결
| 요소 | 해석 |
|---|---|
| ssh -D/-L | 터널·프록시 |
| 외부+내부 연결 | 피벗 중계 |
| 거점 경유 | 내부 접근 |
| 다수 내부 대상 | 확산 |
거점의 양방향 연결 + 포워딩 프로세스가 피벗의 지표입니다.
<!-- 실습 예시 룰: 적용 전 wazuh-logtest 및 테스트 환경 검증 필요 -->
<group name="local,syssec_g,lateral,">
<rule id="106060" level="13">
<if_sid>106000</if_sid>
<field name="audit.proctitle" type="pcre2">ssh\s+.*(-D\s+[0-9]+|-L\s+[0-9]|-R\s+[0-9]|-w\s)|socat\s+.*(TCP-LISTEN|tcp-listen).*(fork|TCP:)</field>
<description>SSH 터널·포트 포워딩(피벗 중계)</description>
<mitre><id>T1572</id><id>T1090</id></mitre>
</rule>
</group>
SSH 포워딩·socat 중계가 핵심 지표입니다. 승인된 관리 터널은 예외 처리하고, 거점의 양방향 연결을 네트워크 로그로 보완합니다.
| 기법 | 방법 |
|---|---|
| SSH 로컬 포워딩 | ssh -L |
| SSH 다이내믹 | ssh -D(SOCKS) |
| 역방향 터널 | ssh -R |
| 포트 포워딩 | socat |
| 면접 포인트 | "피벗은 거점을 중계로 내부 접근 — 외부+내부 양방향 연결+포워딩이 지표" |
다음 편 308. 내부 확장·측면 이동 — 내부 확장·측면 이동 판정 기준 에서는 내부 확장·측면 이동 판정 기준을 다루는 내부 확장·측면 이동 판정 기준을 다룹니다.
이전 편: 306. 내부 확장·측면 이동 — 출발지-목적지-계정-시점의 분석 축
📚 시리즈 전체 보기: 시스템 보안 · 취약점