hhkb.dev

BLOG

2025-11-14 / 호스트기반모의해킹 · 03

네트워킹 공격 시나리오

1. 개요

앞서 본 IP, 서브넷 마스크(Subnet Mask), DNS, 게이트웨이(Gateway), 방화벽(Firewall), 포트(Port), 로컬 호스트(Localhost) 개념을 하나의 흐름으로 묶어 보는 문서다.
핵심은 네트워크 구조를 읽고, 어디까지 접근 가능하고 어디서 막히는지를 단계적으로 해석하는 데 있다.

2. 시나리오 구성 요소

이 문서에서 가정하는 구성은 아래와 같다.

  • 공격자 호스트 A: IP 1.1.1.1
  • 호스트 B: 공격자와 같은 서브넷에 있고, 방화벽 보호를 받는 호스트
  • 타겟 호스트 C: 다른 네트워크(또는 DMZ)에 있으며, webserver.kr 웹 서버를 운영하는 호스트. IP는 1.1.2.2

3. 공격 시나리오 단계별 분석

시도 1: 동일 서브넷 호스트 공격(실패)

먼저 공격자 A가 같은 네트워크 대역(Same Subnet)의 호스트 B를 대상으로 접근한다고 가정한다.

  1. 연결 시도: A와 B는 같은 서브넷에 있으므로 게이트웨이를 거치지 않고 직접 통신을 시도한다.
  2. 방화벽 차단: 호스트 B의 방화벽 규칙이 접근을 막는다.
    예를 들어 Block All Traffic from 1.1.1.1처럼 공격자 IP를 차단하는 정책이 있을 수 있다.
  3. 결과: 네트워크 거리는 가깝지만, 방화벽 때문에 실제 접근은 막힌다.

시도 2: 외부 웹 서버 발견 및 공격(성공)

호스트 B 접근이 막힌 뒤, webserver.kr 도메인을 쓰는 타겟 호스트 C를 새로 확인한 상황으로 넘어간다.

3.1. DNS 질의(IP 획득)

도메인 이름만으로는 직접 접근할 수 없으니, 먼저 실제 IP 주소를 확인해야 한다.

  • Action: DNS 서버에 webserver.kr의 IP를 질의한다.
  • Response: DNS 서버가 1.1.2.2를 응답한다.
  • Result: 타겟 호스트 C의 실제 IP를 확보한다.

3.2. 연결 시도 및 방화벽/포트 분석

확보한 IP(1.1.2.2)를 기준으로, 어떤 포트가 열려 있고 어떤 정책이 걸려 있는지 본다.

타겟 호스트 C 상태는 이렇게 가정한다.

  • Open Ports
    • Port 80: 웹 서버가 동작 중이다.
    • Port 22: SSH 서버가 동작 중이다.
  • Firewall Rules
    • Deny Port 22: 외부 SSH 접속 차단
    • Allow Port 80: 웹 서비스 접속 허용

3.3. 최종 접근 지점 확인

연결 가능 여부를 정리하면 결론은 단순하다.

  1. Port 22(SSH): 호스트 쪽 포트는 열려 있어도, 방화벽 정책 때문에 외부에서는 닿지 않는다.
  2. Port 80(Web): 방화벽 정책상 허용되어 있어 외부 접근이 가능하다.

결국 이 시나리오에서 실제로 확인 가능한 접근 지점은 Port 80(Web) 쪽이다.


4. 핵심 요약

이 시나리오에서 다시 확인할 수 있는 핵심은 아래 세 가지다.

  • DNS: 도메인 이름을 실제 IP로 바꾸는 출발점 역할을 한다.
  • 방화벽: 호스트에 포트가 열려 있어도, 외부 접근 가능 여부를 별도로 통제한다.
  • 포트: 열려 있다는 사실만이 아니라, 정책상 실제로 닿을 수 있는 포트가 무엇인지까지 봐야 한다.