
💡 Nmap (Network Mapper) 심층 분석 및 실무 가이드
📌 핵심 요약 (TL;DR)
- 본질: 원시 IP 패킷(Raw IP Packet)을 교묘하게 조작하여 네트워크에 연결된 살아있는 호스트, 열린 포트, 데몬 버전, 운영체제(OS)를 능동적으로 식별하는 업계 표준 네트워크 스캐너임.
- 위협 및 목적: 공격 표면(Attack Surface)을 맵핑하는 정찰의 핵심 무기이며, Nmap Scripting Engine(NSE)을 통해 포트 스캔을 넘어 취약점 직접 타격(RCE)까지 수행함.
- 대응 방안: L4 방화벽에서 비정상적인 TCP 플래그 스캐닝 패킷을 Drop하고, SIEM 연동을 통해 임계치(Rate) 초과 접근을 차단하며, 인바운드를 Default Deny로 통제해야 함.
📑 목차 (Table of Contents)
⚠️ 면책 조항 (Disclaimer)
본 포스팅의 보안/해킹 관련 실습은 허가된 통제 환경(개인 VM 및 합법적 모의해킹 계약 범위)에서만 수행됨.
허가되지 않은 타인의 시스템에 대한 무단 접근 및 페이로드 주입 시도는 「정보통신망 이용촉진 및 정보보호 등에 관한 법률」 제48조 위반으로 형사처벌 대상임.
모든 분석은 벤더사 공식 레퍼런스 및 NVD 공인 데이터를 기반으로 작성됨.📖 학습 목적: 보안 취약점의 동작 원리를 이해하고 방어 전략을 수립하기 위한 학습 및 지식 공유 목적임. 모든 실습은 허가된 통제 환경에서만 진행함.
자주 등장하는 용어 (초보자 참고)
| 약어 | 전체 명칭 | 한 줄 설명 |
|---|---|---|
WAF |
Web Application Firewall | 웹 애플리케이션으로 들어오는 악성 트래픽을 차단하는 방화벽 |
NSE |
Nmap Scripting Engine | Lua 언어 기반으로 Nmap 기능을 취약점 스캐닝 수준으로 확장하는 엔진 |
SYN Scan |
Half-Open Scan | TCP 3-Way Handshake를 완료하지 않고 SYN 패킷만 보내는 스텔스 스캔 |
Filtered |
Filtered Port State | 방화벽이나 패킷 필터에 의해 프로브 패킷이 차단되어 판단할 수 없는 맹점 상태 |
SIEM |
Security Information and Event Management | 보안 이벤트 로그를 중앙에서 수집·분석하는 시스템 |
IoC |
Indicator of Compromise | 침해 사고가 발생했음을 나타내는 디지털 흔적 |
DFIR |
Digital Forensics & Incident Response | 디지털 포렌식 및 침해사고 대응을 의미하는 분야 |
PoC |
Proof of Concept | 취약점이 실제로 악용 가능함을 증명하는 개념 증명 코드 |
1. 🏗️ 아키텍처 및 랩(Lab) 토폴로지
- 난이도: 중급
- 주제 분류: 오펜시브 툴 / 네트워크 보안 / 정찰
- 핵심 키워드:
#Nmap#포트스캐닝#네트워크정찰 - 사전 지식: TCP/IP 스택, HTTP 프로토콜 구조, Linux 쉘, 방화벽 아웃바운드 룰셋
(💡 모바일 환경에서는 표를 좌우로 스크롤하여 상세 내용을 확인 권장.)
| 구분 | OS / 플랫폼 (버전 필수) | 컨테이너 / 네트워크 환경 | IP 대역 | 인프라 내 역할 |
|---|---|---|---|---|
| 공격 (Red) | Kali Linux 2026.x | 네이티브 모의 공격망 | 10.0.0.50/24 |
조작된 프로브 패킷 사출 및 NSE 익스플로잇 스크립트 실행 |
| 타겟 (Target) | Ubuntu 24.04 / Nginx 1.24 | 온프레미스 DMZ 서버망 | 10.0.0.100/24 |
열린 포트 노출 및 Nmap 핑거프린팅 발현 노드 |
| 방어 (Blue) | Graylog 5.x / OPNsense 24.x | 온프레미스 망분리 구성 | 10.0.0.200/24 |
L4 방화벽 룰셋 기반 스캐닝 차단 및 SIEM 로그 관제 |
아키텍처 통신 흐름도
[공격자 / Attacker : 10.0.0.50] [타겟 / Target : 10.0.0.100]
| |
|-- (1) 정찰: SYN 패킷 대량 사출 (-sS) ------>|
|<- (2) 응답: 포트 개방 시 SYN/ACK 반환 ------|
| |
|-- (3) 은폐: 즉시 RST 발송 (연결 끊기) ------->|
|<- (4) 결과: 타겟 서버에 세션 로그 미기록 ----|
| |
|-- (5) 심층: NSE 스크립트 기반 취약점 탐지 --->|
|<- (6) 응답: 서비스 배너 및 RCE 여부 반환 ----|
2. 🧠 핵심 개념 및 기술적 정의
2-1. 상세 정의 및 동작 메커니즘
- 정의: 단일 호스트부터 수십만 대의 거대 네트워크망까지 초고속으로 스캐닝하여 토폴로지와 보안 취약점 맵을 그려내는(Mapping) 오픈소스 기반 최상위 네트워크 정찰 도구임.
- 탄생 배경: 1997년 Fyodor(Gordon Lyon)에 의해 개발되었으며, 시스템 관리자가 네트워크 가시성을 확보하고 해커가 공격 벡터를 수집하기 위한 인프라 생태계의 절대적 표준으로 자리 잡음.
- 인프라 내 역할: 타겟 네트워크 계층(L3~L7)의 살아있는 호스트를 찾고, 개방된 포트와 구동 중인 서비스 데몬 버전을 추출하여 익스플로잇의 사전 단계를 완성함.
- 메커니즘: OS의 기본 소켓 API에 의존하지 않고 libpcap 라이브러리를 통해 IP 및 TCP/UDP 헤더를 바이트 단위로 직접 크래프팅(Crafting)하여 발송한 후, 돌아오는 패킷 반응을 역산하여 포트 상태를 판별함.
- 버전 히스토리: 단순 포트 스캐너에서 출발하여 600여 개의 취약점 검증 루아(Lua) 스크립트를 탑재한 NSE(Nmap Scripting Engine)가 통합되면서 종합 취약점 스캐너로 진화함.
2-2. MITRE ATT&CK & Kill Chain 매핑
| Kill Chain Phase | MITRE Tactic (전술) | Technique (기법) | ID |
|---|---|---|---|
| Reconnaissance | Reconnaissance | Active Scanning: Port Scanning | T1595.001 |
| Reconnaissance | Reconnaissance | Active Scanning: Vulnerability Scanning | T1595.002 |
| Reconnaissance | Discovery | Network Service Discovery | T1046 |
| Reconnaissance | Discovery | System Information Discovery | T1082 |
| Exploitation | Execution | Command and Scripting Interpreter: Lua | T1059 |
3. ⚙️ 주요 특징 및 통신 규격
3-1. 기술적 핵심 특징
특징 1 — 아키텍처 모델: 공격자가 클라이언트가 되어 비동기 다중 스레드로 타겟 서버의 인바운드를 폭격하는 구조임.특징 2 — 인증·암호화 방식: Nmap 자체는 패킷 사출기이나, NSE 스크립트 옵션(--script-args)을 통해 SMB/FTP/SSH 등의 NTLM, Basic 인증을 지원함.특징 3 — 버전별 보안 차이: 레거시 버전 대비 최신 Nmap은--mtu,-f(패킷 파편화) 옵션의 정교함이 더해져 차세대 IPS 시그니처 우회 능력이 극대화됨.특징 4 — 에러 처리 및 로깅: 화면 렌더링 외에도-oG,-oX옵션을 통해 결과를 XML 및 Grepable 포맷으로 완벽히 정형화하여 로깅함.특징 5 — 성능 및 확장성: 동적 타이밍 알고리즘(-T4등)을 통해 네트워크 RTT와 패킷 손실률에 맞춰 사출 스레드를 자동 조절함.특징 6 — 의존성 및 통합 포인트: 출력된 XML 데이터는 Metasploit, SearchSploit 등 취약점 타격 프레임워크 DB에 즉시 연동 및 통합됨.특징 7 — 기본 보안 설정 (Default Security Posture): 기본 User-Agent 및 패킷 패턴에 고유한nmap시그니처가 평문 노출되므로, 설정 튜닝 없이 사출 시 WAF에 즉각 탐지됨.
3-2. 실무 관점 장단점 (Pros & Cons)
| 구분 | 시스템 관점 특성 | 보안 및 실무 관점의 트레이드오프 |
|---|---|---|
| 장점 1 | 압도적인 산업 표준 신뢰성 | 현존하는 모든 모의해킹 가이드 및 OSCP 인증에서 1순위로 채택됨 |
| 장점 2 | 스크립트 확장성 (NSE) | 포트 탐지를 넘어 직접적인 취약점 타격(RCE 검증)까지 단일 도구로 해결함 |
| 장점 3 | 로우레벨 패킷 제어 | OS 스택을 우회하는 패킷 조작으로 방화벽 상태 추적 엔진(Stateful) 우회 가능 |
| 단점 1 | 방화벽 시그니처 탐지 취약성 | Nmap 고유의 스캔 패턴이 이미 벤더사 장비에 등록되어 튜닝 없이는 즉시 밴(Ban) 당함 |
| 단점 2 | UDP 스캐닝의 태생적 지연 | 프로토콜 특성상 타임아웃 대기가 길어 대규모 네트워크망 전수 스캔 시 비효율적임 |
3-3. 서비스 포트 및 통신 규격 (IANA Protocol Specification)
| 포트 | 프로토콜 | 서비스명 | IANA 공식 역할 | 보안 위협 및 공격 벡터 |
|---|---|---|---|---|
21 |
TCP | FTP | 메인 데이터 채널 — 클라이언트·서버 통신 처리 | 익명 로그인(Anonymous) 취약점 및 백도어 데몬 탐지 타겟 |
22 |
TCP | SSH | 제어 채널 또는 관리 인터페이스 포트 | OpenSSH 버전 식별을 통한 익스플로잇 및 브루트포싱 타겟 |
80/443 |
TCP | HTTP/S | 웹 데이터 통신 | 데몬 배너 그래빙 및 HTTP 메서드(PUT) 권한 점검 타겟 |
445 |
TCP | SMB | 파일 및 프린터 공유 프로토콜 | Windows 인프라의 가장 치명적인 EternalBlue (MS17-010) 스캐닝 타겟 |
161 |
UDP | SNMP | 라우터 및 스위치 상태 관리 | 커뮤니티 스트링 브루트포싱을 통한 라우팅 테이블 덤프 타겟 |
4. 🛠️ 인프라 셋업 및 구축 명세
4-1. 사전 요구 사항 (Dependencies)
- 패키지:
nmap코어 엔진 및 최신nmap-common(NSE 스크립트 포함) 라이브러리. - 환경 변수: 원시 패킷(Raw Packet) 크래프팅을 위해 시스템 커널 단 통신이 요구되므로 반드시
root권한(sudo) 실행 필수. - 버전 제약: 최신 취약점 맵핑을 위해서는 정기적인 NSE 스크립트 DB 동기화가 요구됨.
4-2. 시스템 구축 (Step-by-Step)
# [Step 1: 시스템 패키지 업데이트 및 의존성 설치]
apt update && apt install -y nmap nmap-common
# [Step 2: Nmap Scripting Engine (NSE) 취약점 DB 최신화]
nmap --script-updatedb
# [Step 3: 권한 확인 및 데몬 무결성 검증]
nmap -V
(📝 동작 해설: NSE DB 업데이트는 커뮤니티에서 배포된 최신 취약점 검증 스크립트를 로컬 리포지토리에 매핑하여 스캐닝 타격 정확도를 극대화함.)
5. 📖 상세 명세 (명령어 / API / 프로토콜)
5-1. 기본 구문 및 명령어 구조 (Syntax)
📌 Syntax 표기법: <필수항목> = 반드시 입력 (Required) · [선택항목] = 생략 가능 (Optional)
# CLI 툴킷 명령어 구조
<바이너리명> [옵션_플래그] [서브_파라미터] <타겟>
파라미터별 상세 설명
| 파라미터 | 필수 여부 | 타입 | 역할 및 설명 | 실전 값 예시 |
|---|---|---|---|---|
<바이너리명> |
필수 | 실행 파일 | OS 커널에 실행을 요청하는 프로그램명. | nmap |
[옵션_플래그] |
선택 | 스위치 | 동작 방식·출력 포맷·스캔 뎁스를 제어하는 플래그. | -sS, -A, -Pn, -v |
[서브_파라미터] |
선택 | 값 | 옵션 플래그에 전달하는 구체적인 포트 번호나 타이밍 값. | 80,443, T4 |
<타겟> |
필수 | 주소 | 통신 또는 분석의 목적지인 네트워크 종단점 IP, 서브넷. | 192.168.1.100, 10.0.0.0/24 |
실전 명령어 예시 — 구성 요소 대조
| 전체 명령어 | 바이너리 | 옵션 플래그 | 서브 파라미터 | 타겟 |
|---|---|---|---|---|
nmap -sV -p 445 10.0.0.100 |
nmap |
-sV -p |
445 |
10.0.0.100 |
nmap -sS -T4 10.0.0.0/24 |
nmap |
-sS -T |
4 |
10.0.0.0/24 |
5-2. 실행 옵션 및 제어 플래그 전체 목록 (Execution Flags)
🔗 연결 옵션 — 타겟 호스트·포트 지정 및 스캔 프로토콜 제어
| 플래그 | 동작 원리 및 공식 매뉴얼 기반 설명 | 완전한 실전 사용 예시 | 실무/보안 활용 관점 |
|---|---|---|---|
-sS |
TCP SYN 스캔 / 기본값 (Root 한정) | nmap -sS 10.0.0.100 |
3-Way Handshake를 생략하여 로그를 회피하는 스텔스 정찰 |
-sU |
UDP 포트 스캔 / 기본값 비활성 | nmap -sU -p 161 TARGET_IP |
SNMP 등 은닉된 비연결형 프로토콜 핑거프린팅 타격 |
-p / --port |
타겟 포트 지정. 범위(1-1024) 또는 콤마 구분 |
nmap -p 22,80,443 TARGET_IP |
특정 서비스 포트 집중 스캔 및 스캔 소요 시간 단축 |
🔐 인증 옵션 — 자격증명 및 스푸핑 기반 세션 제어
| 플래그 | 동작 원리 및 공식 매뉴얼 기반 설명 | 완전한 실전 사용 예시 | 실무/보안 활용 관점 |
|---|---|---|---|
--script-args |
NSE 스크립트 구동 시 내부 인증용 ID/PW를 동적 주입 | nmap --script ftp-brute --script-args userdb=u.txt ... |
특정 데몬에 대한 즉각적인 브루트포싱 및 세션 장악 테스트 |
-D |
다수의 가짜 IP(Decoy)를 섞어 실제 공격자 IP를 난독화 | nmap -D 10.0.0.1,ME TARGET_IP |
방화벽의 IP 차단 정책 우회 및 관제팀 역추적 포렌식 교란 |
-S |
출발지 IP(Source)를 완전히 다른 주소로 위조(Spoofing) | nmap -S 192.168.1.5 TARGET_IP |
인증된 내부망 IP로 위장하여 DMZ 인바운드 ACL 우회 |
📄 출력 옵션 — 결과 포맷·상세도·저장 경로 제어
| 플래그 | 동작 원리 및 공식 매뉴얼 기반 설명 | 완전한 실전 사용 예시 | 실무/보안 활용 관점 |
|---|---|---|---|
-v / --verbose |
상세 출력 모드 활성화 / 기본값 off | nmap -v TARGET_IP |
실시간 패킷 반응 및 디버그 런타임 정보 터미널 확인 |
-oN |
결과를 텍스트 포맷으로 파일 저장 | nmap -oN result.txt TARGET_IP |
모의해킹 최종 보고서 작성을 위한 원시 결과 영구 저장 |
-oG |
결과를 Grepable 포맷(1라인 1호스트)으로 저장 | nmap -oG result.gnmap TARGET_IP |
bash 정규식 연계를 통한 대규모 타겟 파이프라인 자동화 |
⏱ 타이밍 옵션 — 스캔 속도·스레드·딜레이 제어
| 플래그 | 동작 원리 및 공식 매뉴얼 기반 설명 | 완전한 실전 사용 예시 | 실무/보안 활용 관점 |
|---|---|---|---|
-T<0-5> |
스캔 속도 템플릿(0:최저속 ~ 5:최고속) / 기본값 3 | nmap -T4 TARGET_IP |
스캔 속도와 IDS 임계값 탐지 간의 전략적 밸런스 튜닝 |
-Pn |
Ping 탐지를 생략하고 즉시 포트 스캔 강제 | nmap -Pn TARGET_IP |
ICMP를 차단하여 죽은 척하는 서버의 은폐 기만술 무력화 |
-f |
패킷 단편화(Fragmentation) / MTU 8바이트 강제 분할 | nmap -f TARGET_IP |
방화벽의 L4 시그니처 재조립 엔진 과부하 및 탐지망 우회 |
자주 쓰는 옵션 조합
| 목적 | 조합 예시 |
|---|---|
| 빠른 서브넷 정찰 (Ping 스캔) | nmap -sn 10.0.0.0/24 |
| 종합 탐지 스캐닝 (버전+OS+스크립트) | nmap -A -T4 -p- 10.0.0.100 |
| 방화벽(IDS) 우회 스텔스 스캔 | nmap -sS -f -D 10.0.0.1,ME -p 80 10.0.0.100 |
| 특정 대역 취약점(SMB) 일괄 검증 | nmap --script smb-vuln* -p 445 10.0.0.0/24 |
| 결과 저장 + 정밀 분석 | nmap -sV -O -p- 10.0.0.100 -oG nmap_output.txt |
5-3. 비대화형 명령어 (Non-Interactive Commands)
🔍 정찰 및 열거
| 명령어 | 파싱 메커니즘 및 런타임 결과 | 완전한 실전 사용 예시 |
|---|---|---|
nmap -sV |
타겟 포트의 서비스 데몬 배너 버전을 OS 소켓 레이어에서 수집하여 렌더링함 | nmap -sV -p 22,80 10.0.0.100 |
nmap -O |
수십 개의 특수 패킷 프로브를 던져 TCP/IP 스택 핑거프린트를 DB와 매칭해 OS 식별 | nmap -O 10.0.0.100 |
💥 익스플로잇 및 페이로드 전달
| 명령어 | 파싱 메커니즘 및 런타임 결과 | 완전한 실전 사용 예시 |
|---|---|---|
nmap --script vuln |
Nmap 내장 루아 엔진을 통해 대상의 알려진 CVE 취약점 쉘코드 페이로드를 즉각 사출함 | nmap --script vuln -p 443 10.0.0.100 |
nmap --script ftp-vsftpd-backdoor |
vsftpd 백도어 취약점에 악성 바이트를 전송하여 RCE 여부를 즉시 검증 | nmap --script ftp-vsftpd-backdoor -p 21 10.0.0.100 |
🎯 포스트 익스플로잇 및 유틸리티
| 명령어 | 파싱 메커니즘 및 런타임 결과 | 완전한 실전 사용 예시 |
|---|---|---|
nmap --script smb-enum-users |
SMB 취약 프로토콜을 악용해 타겟 서버 내부의 로컬 유저 리스트를 덤프 및 반환 | nmap --script smb-enum-users -p 445 10.0.0.100 |
nmap --script mysql-info |
인증 검증이 미흡한 내부망 DB에 접근하여 데이터베이스 스키마를 유틸리티 형태로 추출 | nmap --script mysql-info -p 3306 10.0.0.100 |
5-4. 대화형 내부 런타임 명령어 (Interactive Controls)
(Nmap 구동 중 백그라운드 프롬프트에서 패킷 사출을 동적으로 제어하는 단축키 명세임.)
진입: nmap TARGET_IP 런타임 → 키보드 단축키 입력 활성화
🗂 탐색 및 런타임 제어
| 내부 명령 | 기술적 동작 및 설명 | 실전 타이핑 예시 | 적용 시나리오 |
|---|---|---|---|
[Space Bar] / [Enter] |
현재 스캔의 진행률(%), 남은 예상 시간(ETA), 수신 패킷 상태를 실시간 콘솔에 렌더링함 | [Space] 누름 |
장기간 스캔 중 프로세스 상태 점검 시 |
[Shift] + S |
출력되는 상태 메시지의 타이밍 형태와 포맷을 동적으로 변환하여 화면 가독성을 조정함 | S 누름 |
CLI 모니터링 환경 튜닝 시 |
p / P |
런타임 도중 패킷 추적 모드(Packet Tracing)를 즉각 On/Off 토글하여 디버깅 가시성을 확보함 | p 누름 |
방화벽의 패킷 Drop 유무를 바이트 단위로 즉시 추적할 때 |
6. 🚀 핵심 페이로드 치트시트 (Cheat Sheet)
실전 모의해킹 및 인프라 보안 감사 시 가장 파괴적이고 효율적으로 사용되는 Nmap 스캐닝 조합 페이로드임.
| 페이로드 (Flags Combination) | 파싱 메커니즘 및 런타임 결과 | 목적 / 우회 기법 |
|---|---|---|
-sS -p- -T4 -Pn |
TCP SYN 패킷으로 65535개 전체 포트를 빠른 속도로 치고 빠짐. 타겟의 Ping 방화벽 차단을 강제로 무시하고 타격함 | 가장 스탠다드한 침투 첫 단계의 포트 정찰 맵핑 구문 |
-sV -sC -O -p 22,80,445 |
열린 포트로 식별된 주요 타겟에 데몬 핑거프린팅 프로브와 안전한 취약점 검증 스크립트를 일괄 사출함 | 구동 중인 서비스의 세부 버전과 OS 커널 정보를 탈취 |
--script=vuln -p 445 |
Nmap 내부에 탑재된 'vuln' 카테고리의 모든 루아 스크립트를 동원하여 특정 포트의 CVE 취약점을 직접 익스플로잇 타격함 | 별도의 스캐너(Nessus) 없이 터미널 즉각 취약점 입증 |
-sU --max-retries 1 -p 161,500 |
극도로 느린 UDP 스캔의 속도 보완을 위해 재시도 횟수를 1회로 제한하고 SNMP 등 핵심 타겟 포트만 집약적으로 스캔함 | 폐쇄망 내부 네트워크 장비 및 VPN 게이트웨이 정찰 |
-D 10.0.0.1,10.0.0.2,ME |
실제 공격자 IP(ME) 사이사이에 임의의 미끼 IP(Decoy) 수십 개를 섞어서 방화벽 관제 로그를 난독화함 |
방화벽 관리자(Blue Team)의 원천 IP 역추적 포렌식 교란 |
7. 🎯 심층 킬체인 워크플로우 (Deep Dive)
7-1. 취약점 식별 (CVE / CWE)
Nmap은 그 자체가 파괴적인 무기라기보다, 익스플로잇의 표적(Attack Surface)을 100% 식별해 내는 관문임.
| 식별 코드 | 취약점 명칭 및 익스플로잇 연계 원리 | 파급력 (Impact) | 대응/패치 방안 |
|---|---|---|---|
CWE-22 |
Path Traversal — Nmap 버저닝으로 Apache 2.4.49 노출 시, 해커는 즉시 해당 취약점 PoC를 통해 루트 디렉터리에 접근함 |
단일 패킷 사출로 서버 내부 중요 파일(예: /etc/passwd) 탈취 |
데몬 헤더에서 버전 정보(Server Token) 은닉 처리 강제화 |
CWE-288 |
Authentication Bypass — FTP 21 스캔 중 익명 접속(Anonymous) 허용 설정이 검증 스크립트에 의해 노출됨 |
서버 디스크 I/O 권한 획득 및 악성 웹쉘 업로드 채널 확보 | 파일 공유 프로토콜의 익명 바인딩 비활성화 및 인증 강제화 |
CWE-319 |
Cleartext Transmission — Telnet 23, HTTP 80 등 평문 통신 리스너가 Nmap 정찰을 통해 평문 통신 중임이 적발됨 |
네트워크 스니핑 장악을 통한 관리자 자격 증명 탈취 | 관리자 통신망은 SSH (22), HTTPS (443) 등 인증서 기반 암호화 적용 |
7-2. 킬체인 전개 스텝 분석
- 난이도: 초급
- 전제: 타겟망(
10.0.0.0/24) 내에 패치가 누락된 구형 Windows Server가 존재함. - 탐지 가능성:
Medium(스텔스 스캔 적용 시 L4 1차 방어 우회 가능)
Phase 1 — 서브넷 정찰 및 타겟 맵핑 (Reconnaissance)
# 서브넷 대역을 상대로 ICMP Ping 스캔 사출
nmap -sn 10.0.0.0/24
Phase 2 — 버전 핑거프린팅 탈취 (Weaponization Setup)
# 확보된 호스트를 대상으로 스텔스 포트 스캔 및 서비스 배너 그래빙
nmap -sS -sV -p 445 10.0.0.100
Phase 3 — 취약점 타격 및 RCE 검증 (Exploitation)
# SMBv1 환경임이 노출된 타겟에 EternalBlue 취약점(ms17-010) 스크립트 페이로드 인젝션 시도
nmap --script smb-vuln-ms17-010 -p 445 10.0.0.100
8. ⚔️ 실전 심화 시나리오
📘 Scenario: IDS/IPS 관제 룰셋 우회 및 패킷 파편화 기법
- 학습 목표: Suricata 등 차세대 IPS 장비가 포트 스캐닝의 TCP 시그니처 크기를 정규식으로 차단하는 로직을 패킷 파편화(Fragmentation)를 통해 기술적으로 무력화함.
# [Step 1: 기본 패킷 분할 스캐닝 (-f)]
# TCP 헤더를 8바이트 단위의 미세한 IP 단편화 블록으로 쪼개어 L4 방어 장비의 재조합 엔진 부하를 유발함.
nmap -sS -f 10.0.0.100
# [Step 2: 출발지 포트 스푸핑 및 MTU 튜닝 (-g, --mtu)]
# 페이로드를 24바이트로 조작하고, 발신지 포트를 정상적인 DNS(53) 쿼리 통신인 것처럼 기만 발송함.
nmap -sS --mtu 24 -g 53 10.0.0.100
9. 🩹 트러블슈팅 및 장애 대응 (RCA)
| 에러 로그 (Symptom) | 발생 원인 (Root Cause) | 해결책 (Resolution) |
|---|---|---|
Note: Host seems down. If it is really up... try -Pn |
타겟 앞단 OPNsense 방화벽이 ICMP Echo(Ping) 패킷을 100% Drop 처리하여 핑거프린팅 진입 자체를 거부함 | -Pn 옵션을 강제 할당하여 핑 테스트를 생략하고 즉시 L4 스캐닝으로 오버라이드 진입 |
dnet: Failed to open device eth0 |
Raw Socket 생성에 필요한 OS 커널 접근 권한이 누락된 일반 유저 쉘에서 바이너리를 실행함 | 모든 스텔스(-sS) 및 OS 스캔(-O) 모듈은 sudo nmap 형태로 Root 권한을 승격하여 기동 |
All 1000 scanned ports are in ignored states. |
방화벽 Inbound ACL 정책으로 인해 모든 TCP 포트 연결 시도가 묵살(Filtered)됨 | -sU (UDP 스캔)로 전환하거나, 포트 스푸핑(-g 80)을 통해 방화벽 허용 룰셋 기만 |
10. 🛡️ 방어 아키텍처 및 위협 헌팅 엔지니어링
10-1. MITRE D3FEND 매핑
| 방어 전술 (Tactic) | 방어 기법 (Technique) | 차단 원리 및 메커니즘 | ID (Code) |
|---|---|---|---|
Isolate |
Network Traffic Filtering | 게이트웨이 라우터에서 불필요한 인바운드 포트를 전면 차단(Default Deny)함 | D3-NTF |
Detect |
Port Scanning Detection | SIEM에서 단일 IP가 무작위 포트 연결을 시도하는 임계치 초과 행위 실시간 헌팅 | D3-PSD |
Harden |
Network Node Cloaking | 비정상 TCP 플래그 패킷을 자동 Drop 처리하여 정찰 행위 자체를 은폐 무력화 | D3-NNC |
Deceive |
Decoy Port | 가상의 허니팟(Honeypot) 포트를 배치하여 스캐너를 묶어두고 관제 알람 발생 | D3-DP |
10-2. 인프라 하드닝 및 방어 기준
- 네트워크 계층(L4) 차단 아키텍처:
- 외부망에서 내부 DMZ로 향하는 라우팅 정책은 Any-Open이 아닌
Default Deny원칙을 적용하여 지정된 서비스 포트 외의 Nmap 패킷을 원천 소멸시킴. - 커널 레벨에서 비정상적인 SYN/FIN 조합 패킷 감지 시, 데몬이 응답 없이 즉각 드롭하도록 룰셋을 하드닝함.
- 외부망에서 내부 DMZ로 향하는 라우팅 정책은 Any-Open이 아닌
10-3. IaC 기반 자동화 보안 설정 (Iptables 방어 룰셋)
# [Iptables 방어 룰셋: Nmap 스텔스 스캐닝 패킷 커널 단 차단 인포싱]
# 1. TCP 플래그가 모두 비어있는 널(Null) 스캔 패킷 Drop
iptables -A INPUT -p tcp --tcp-flags ALL NONE -j DROP
# 2. XMAS/FIN 스캔 등 논리적 모순을 가진 위장 패킷 Drop
iptables -A INPUT -p tcp --tcp-flags SYN,FIN SYN,FIN -j DROP
# 3. 단일 IP 기준 초당 10회 이상의 SYN 요청은 스캐닝으로 간주하여 속도 제한(Rate Limit)
iptables -A INPUT -p tcp --syn -m limit --limit 10/s --limit-burst 20 -j ACCEPT
iptables -A INPUT -p tcp --syn -j DROP
10-4. 인시던트 대응 절차 (IR Playbook)
| 단계 | 대응 행동 | 담당 | 소요 시간 |
|---|---|---|---|
| 1. 탐지 | 방화벽 또는 Graylog 대시보드에서 특정 외부 IP의 100개 포트 이상 핑거프린팅 임계치 초과 알람 인지 | SOC Analyst | T+0 |
| 2. 격리 | 즉각적으로 해당 출발지 IP 대역 전체를 OPNsense 방화벽 엣지 단에서 블랙리스트(Drop) 처리 | IR Team | T+5분 |
| 3. 증거수집 | Nmap이 보낸 스캔에 대해 200 OK 응답이 발생한 "열려 있는 포트" 리버스 패킷 포렌식 수행 | Forensic Analyst | T+30분 |
| 4. 원인분석 | 스캔당한 포트의 데몬 보안 패치 유무 점검 및 연계된 후속 침투 로그(SQLi 시도 등) 존재 확인 | IR Team / Dev | T+2시간 |
| 5. 복구 | 서비스 배너 정보 은닉(Masking) 조치 및 인바운드 방화벽 ACL 화이트리스트 정책 재배포 | SysAdmin | T+4시간 |
10-5. 침해지표 (IoC) 및 탐지 룰셋 (Suricata NIDS)
- HTTP User-Agent 기반 탐지 (NSE 기본 스크립트 가동 시 고유 헤더 헌팅)
alert http $EXTERNAL_NET any -> $HOME_NET any (msg:"ET SCAN Nmap Scripting Engine User-Agent Detected"; flow:established,to_server; http.user_agent; content:"nmap scripting engine"; nocase; classtype:attempted-recon; sid:3000001; rev:1;) - 비정상 TCP XMAS 스캔 플래그 탐지 (스텔스 핑거프린팅 헌팅)
alert tcp $EXTERNAL_NET any -> $HOME_NET any (msg:"ET SCAN Nmap XMAS Scan Detected"; flags:FPU; classtype:attempted-recon; sid:3000002; rev:1;)
11. 🔗 글로벌 공식 레퍼런스 데이터베이스 (References)
- 공식 벤더사 가이드 및 릴리즈 노트:
https://nmap.org/ - NVD (National Vulnerability Database):
https://nvd.nist.gov/ - MITRE ATT&CK 기술 분석:
https://attack.mitre.org/techniques/T1595/001/ - OWASP 공식 가이드:
https://owasp.org/ - IANA 공식 프로토콜 명세서 (RFC):
https://datatracker.ietf.org/doc/html/rfc793 - CWE 공식 데이터베이스:
https://cwe.mitre.org/ - Exploit-DB:
https://www.exploit-db.com/ - KISA 보안 취약점 가이드:
https://www.kisa.or.kr/
12. 🏁 결론 및 비즈니스 임팩트 (Wrap-up)
🎓 이 포스팅에서 배운 것
- 공격 관점: OS 네이티브 통신 스택을 우회하는 원시 패킷 크래프팅의 동작 원리와 Nmap의 데몬 버전 핑거프린팅을 통한 취약점 매핑 메커니즘을 파악함.
- 방어 관점: 비정상 TCP 플래그 스캐닝을 차단하는 Iptables 룰셋과 Suricata 탐지 시그니처, 그리고 포트 개방 표면을 좁히는 하드닝 방법론을 익힘.
- 다음 단계: 통제된 로컬 VM 인프라를 구축하고, Nmap 스텔스 스캔(
-sS,-f) 사출 시 Wireshark 패킷 캡처(Pcap)를 통해 플래그 비트의 상태 변화를 직접 추적 분석할 것을 권장함.
🔰 엔지니어링 방어 철학
(✏️ Architected by Elpam.k)
"클라우드 아키텍처에 수천만 원짜리 차세대 방화벽을 도입하더라도, 외부에 불필요하게 노출된 SSH 관리자 포트 하나를 닫지 않으면 그 인프라의 보안 등급은 0점으로 전락함." 해커가 공격을 위해 소모하는 리소스의 80%는 Nmap을 통한 정찰(Reconnaissance)에 투입됨. 스캐닝을 허용하는 방화벽은 적군이 아군 진영의 지도를 그리도록 방관하는 행위임. 보안 엔지니어는 '알려지지 않은 포트 오픈은 즉각적인 침해사고와 직결된다'는 제로 트러스트(Zero Trust) 가시성 통제 원칙을 L4 네트워크 엣지 라우터 단에 영구적으로 강제 인포싱해야 함.
'보안 기술 > 해킹 툴' 카테고리의 다른 글
| Netcat(nc) (0) | 2026.04.08 |
|---|---|
| cURL (0) | 2026.04.08 |
| Burp Suite (0) | 2026.04.08 |
| Wireshark (1) | 2026.04.08 |
| Gobuster (고버스터) (0) | 2026.04.08 |
Discussion 2