Nmap (Network Mapper) is the industry standard for network discovery and security auditing. Understanding its various scanning techniques is crucial for effective network security assessment.
While tools like hping specialize in detailed packet crafting, Nmap excels at comprehensive network scanning and service detection. Nmap provides broader scanning capabilities and automated host discovery, making it essential for initial network reconnaissance.
Key Features:
- Host Discovery
- Port Scanning
- Service/Version Detection
- OS Detection
- NSE (Nmap Scripting Engine)
- Network Routing/Topology
Scanning Techniques in Detail
1. TCP SYN Scan (-sS) “Stealth Scan”
Mechanism: The “Half-open” or “Stealth” scan never completes the TCP three-way handshake.
- Sends SYN packet
- Receives SYN-ACK (port open) or RST (port closed)
- Sends RST instead of ACK
Advantages:
- Minimal logging on target systems
- Faster than full connect scans
- Often evades older IDS systems
2. NULL Scan (-sN)
Mechanism: Sends TCP packets with no flags set.
- No flags in TCP header
- Open/filtered ports typically give no response
- Closed ports respond with RST/ACK
Best for:
- Bypassing stateless firewalls
- Extremely stealthy reconnaissance
- Testing security policies
3. Christmas Tree Scan (-sX)
Mechanism: Sets multiple TCP flags (FIN, PSH, URG).
- Named for “lit up” flags like a Christmas tree
- Unusual packet formation often bypasses simple filters
- Highly detectable by modern IDS
Usage:
- Testing packet filter rules
- Identifying stateful inspection
- Detecting security monitoring capabilities
4. UDP Scan (-sU)
Mechanism: Exploits UDP’s connectionless nature.
- No handshake process
- Uses ICMP port unreachable messages
- Much slower than TCP scans
Challenges:
- Packet loss common
- Unreliable response interpretation
- Many critical services use UDP (DNS, SNMP)
5. Ping Scan (-sP/-sn)
1
| nmap -sn target_network
|
Mechanism: Simple host discovery without port scanning.
- Uses ICMP echo requests
- ARP requests on local network
- TCP/UDP probes when ICMP blocked
Best for:
- Quick network mapping
- Initial host enumeration
- Network baseline creation
6. Protocol Scan (-sO)
Mechanism: Determines supported IP protocols.
- Tests different protocol numbers
- Identifies enabled protocols (TCP, UDP, ICMP, etc.)
- Helps understand target’s network stack
Applications:
- Network stack fingerprinting
- Security policy verification
- Protocol-based vulnerability assessment
7. TCP Connect Scan (-sT)
Purpose: This is the default TCP scan when SYN scan is not possible.
- Completes full TCP three-way handshake
- More detectable as connections are fully established
Best used when:
- You don’t have raw packet privileges
- Scanning IPv6 networks
- Need to ensure absolute accuracy
8. ACK Scan (-sA)
Purpose: Used primarily for firewall rule mapping.
- Sends ACK packets (normally used in existing connections)
- Helps determine firewall rulesets
- Can detect filtered versus unfiltered ports
Useful for:
- Firewall rule detection
- Advanced network mapping
- Bypass certain firewall configurations
9. FIN Scan (-sF)
Purpose: Another stealth scan that uses FIN packets.
- Sends TCP packets with FIN flag set
- Can bypass certain firewall rules
- Less common than SYN scans, sometimes more effective
10. Version Detection (-sV)
Purpose: Determines service and version information.
- Probes open ports for service information
- Can identify specific software versions
- Uses various probe techniques
Important for:
- Vulnerability assessment
- Service enumeration
- Security auditing
11. IDLE Scan (-sI)
1
| nmap -sI zombie_host target_host
|
Purpose: The ultimate stealth scan, using a zombie host.
- Uses another host’s IP fragmentation ID
- Extremely difficult to trace back to scanner
- Complex but very stealthy
Named because:
- Uses an “idle” zombie host for scanning
Practical Usage Guide
1. Basic Host Discovery
1
2
3
4
5
6
7
8
9
10
11
| # Simple ping scan
nmap -sn 192.168.1.0/24
# No ping scan (treat all hosts as online)
nmap -Pn target_host
# ARP scan on local network
nmap -PR 192.168.1.0/24
# TCP SYN ping scan
nmap -PS22,80,443 target_host
|
2. Port Scanning Techniques
TCP Scans
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| # SYN scan (default)
nmap -sS target_host
# Connect scan
nmap -sT target_host
# ACK scan
nmap -sA target_host
# Window scan
nmap -sW target_host
# Specific ports
nmap -p 80,443 target_host
# All ports
nmap -p- target_host
|
UDP Scans
1
2
3
4
5
| # UDP scan
nmap -sU target_host
# Combined TCP and UDP scan
nmap -sS -sU target_host
|
3. Service and Version Detection
1
2
3
4
5
6
7
8
9
10
11
| # Service version detection
nmap -sV target_host
# Light version detection
nmap -sV --version-intensity 5 target_host
# Aggressive version detection
nmap -sV --version-intensity 9 target_host
# OS detection
nmap -O target_host
|
1
2
3
4
5
6
| # Timing templates (0-5)
nmap -T4 target_host # Aggressive timing
nmap -T1 target_host # Sneaky timing
# Custom timing
nmap --min-rate 100 --max-rate 500 target_host
|
1
2
3
4
5
6
7
8
9
10
11
| # Normal output
nmap target_host
# XML output
nmap -oX scan.xml target_host
# Grepable output
nmap -oG scan.txt target_host
# All formats
nmap -oA scan_results target_host
|
6. NSE (Nmap Scripting Engine)
1
2
3
4
5
6
7
8
9
10
11
| # Default scripts
nmap -sC target_host
# Specific script
nmap --script=http-title target_host
# Script category
nmap --script=vuln target_host
# Multiple scripts
nmap --script=http-title,http-headers target_host
|
Timing Templates
1
2
3
4
5
| # Paranoid mode (0)
nmap -T0 target_host
# Aggressive mode (4)
nmap -T4 target_host
|
Parallel Scanning
1
2
3
4
5
| # Adjust parallel host group size
nmap --min-hostgroup 64 target_host
# Adjust parallel probe timing
nmap --min-parallelism 10 target_host
|
Advanced Techniques
1. Stealth Scanning
1
2
3
4
5
6
7
8
9
10
11
| # Fragmented packets
nmap -f target_host
# Custom MTU
nmap --mtu 24 target_host
# Decoy scanning
nmap -D RND:10 target_host
# Stealth Network Audit
nmap -sS -sV -O --script=vuln -T4 target_host
|
Features:
- Stealth SYN scanning
- Service version detection
- OS fingerprinting
- Vulnerability scripts
2. Firewall/IDS Evasion
1
2
3
4
5
6
7
8
| # Random data to packets
nmap --data-length 24 target_host
# Source port specification
nmap --source-port 53 target_host
# Append random data
nmap --data-length 32 target_host
|
3. Advanced Host Discovery
1
2
3
4
5
6
7
8
| # Custom TCP SYN ping
nmap -PS21,22,23,25,80,443 target_host
# TCP ACK ping
nmap -PA80,443 target_host
# UDP ping
nmap -PU53,161,162 target_host
|
4. Common Scan Profiles
Web Server Scan
1
| nmap -sS -sV -p80,443 --script=http-* target_host
|
Mail Server Scan
1
| nmap -sS -sV -p25,465,587 --script=smtp-* target_host
|
Full Network Audit
1
| nmap -sS -sU -T4 -A -v -PE -PP -PS80,443 -PA3389 -PU40125 -PY -g 53 target_host
|
5. Comprehensive Host Discovery
1
| nmap -sS -sU -sV -sC target_host
|
Combines:
- TCP SYN scanning
- UDP scanning
- Version detection
- Default scripts
Tips and Best Practices
- Scan Progression
- Start with ping scans
- Progress to port scans
- End with detailed service scans
- Scanning Speed
- Start with slower scans for accuracy
- Use faster scans for large networks
- Consider network conditions
- Version Detection
- Use appropriate intensity levels
- Balance between accuracy and speed
- Consider service response times
- Script Selection
- Use relevant script categories
- Avoid running unnecessary scripts
- Test scripts in lab environment first
- Performance Optimization
- Adjust timing templates based on network
- Use parallel scanning when appropriate
- Consider bandwidth limitations
- Timing Considerations
- Use slower scans for accuracy
- Faster scans for large networks
- Consider target network capacity
- Output Management
1
2
3
4
5
| # Save all formats
nmap -oA scan_results target_host
# XML output for processing
nmap -oX scan.xml target_host
|
Nmap(Network Mapper)은 네트워크 검색과 보안 감사를 위한 업계 표준 도구입니다. 효과적인 네트워크 보안 평가를 위해서는 다양한 스캐닝 기술을 이해하는 것이 매우 중요합니다.
기본 개념 및 다른 도구와의 관계
hping과 같은 도구들이 상세한 패킷 제작에 특화되어 있는 반면, Nmap은 종합적인 네트워크 스캐닝과 서비스 탐지에서 뛰어납니다. Nmap은 더 광범위한 스캐닝 기능과 자동화된 호스트 검색을 제공하여 초기 네트워크 정찰에 필수적입니다.
주요 기능:
- 호스트 검색
- 포트 스캐닝
- 서비스/버전 탐지
- OS 탐지
- NSE(Nmap 스크립팅 엔진)
- 네트워크 라우팅/토폴로지
상세 스캐닝 기술
1. TCP SYN 스캔 (-sS) “스텔스 스캔”
메커니즘: “반개방” 또는 “스텔스” 스캔은 TCP 3-way 핸드셰이크를 완료하지 않습니다.
- SYN 패킷 전송
- SYN-ACK(포트 열림) 또는 RST(포트 닫힘) 수신
- ACK 대신 RST 전송
장점:
- 대상 시스템의 최소한의 로깅
- 전체 연결 스캔보다 빠름
- 구형 IDS 시스템을 종종 회피 가능
2. NULL 스캔 (-sN)
메커니즘: 플래그가 설정되지 않은 TCP 패킷을 전송합니다.
- TCP 헤더에 플래그 없음
- 열린/필터링된 포트는 일반적으로 응답 없음
- 닫힌 포트는 RST/ACK로 응답
최적 용도:
- 상태 비저장 방화벽 우회
- 매우 은밀한 정찰
- 보안 정책 테스트
3. 크리스마스 트리 스캔 (-sX)
메커니즘: 여러 TCP 플래그(FIN, PSH, URG)를 설정합니다.
- 크리스마스 트리처럼 “불이 켜진” 플래그로 인해 이름이 붙음
- 특이한 패킷 구성으로 단순한 필터를 종종 우회
- 현대 IDS에서 쉽게 탐지됨
용도:
- 패킷 필터 규칙 테스트
- 상태 검사 식별
- 보안 모니터링 능력 탐지
4. UDP 스캔 (-sU)
메커니즘: UDP의 비연결성을 활용합니다.
- 핸드셰이크 과정 없음
- ICMP 포트 도달 불가 메시지 사용
- TCP 스캔보다 훨씬 느림
도전 과제:
- 패킷 손실 일반적
- 신뢰할 수 없는 응답 해석
- 많은 중요 서비스가 UDP 사용 (DNS, SNMP)
5. 핑 스캔 (-sP/-sn)
1
| nmap -sn target_network
|
메커니즘: 포트 스캐닝 없는 단순 호스트 검색입니다.
- ICMP 에코 요청 사용
- 로컬 네트워크에서 ARP 요청
- ICMP가 차단된 경우 TCP/UDP 프로브 사용
최적 용도:
- 빠른 네트워크 매핑
- 초기 호스트 열거
- 네트워크 기준선 생성
6. 프로토콜 스캔 (-sO)
메커니즘: 지원되는 IP 프로토콜을 확인합니다.
- 다양한 프로토콜 번호 테스트
- 활성화된 프로토콜 식별 (TCP, UDP, ICMP 등)
- 대상의 네트워크 스택 이해 지원
응용:
- 네트워크 스택 핑거프린팅
- 보안 정책 검증
- 프로토콜 기반 취약점 평가
7. TCP 연결 스캔 (-sT)
목적: SYN 스캔이 불가능할 때의 기본 TCP 스캔입니다.
- TCP 3-way 핸드셰이크 완료
- 연결이 완전히 설정되어 더 쉽게 탐지됨
최적 사용 시기:
- 원시 패킷 권한이 없을 때
- IPv6 네트워크 스캔
- 절대적인 정확성이 필요할 때
8. ACK 스캔 (-sA)
목적: 주로 방화벽 규칙 매핑에 사용됩니다.
- ACK 패킷 전송 (일반적으로 기존 연결에서 사용)
- 방화벽 규칙 세트 파악 지원
- 필터링된 포트와 필터링되지 않은 포트 탐지 가능
유용한 용도:
- 방화벽 규칙 탐지
- 고급 네트워크 매핑
- 특정 방화벽 구성 우회
9. FIN 스캔 (-sF)
목적: FIN 패킷을 사용하는 또 다른 스텔스 스캔입니다.
- FIN 플래그가 설정된 TCP 패킷 전송
- 특정 방화벽 규칙 우회 가능
- SYN 스캔보다 덜 일반적이지만 때때로 더 효과적
10. 버전 탐지 (-sV)
목적: 서비스 및 버전 정보를 확인합니다.
- 열린 포트의 서비스 정보 프로브
- 특정 소프트웨어 버전 식별 가능
- 다양한 프로브 기술 사용
중요 용도:
11. IDLE 스캔 (-sI)
1
| nmap -sI zombie_host target_host
|
목적: 좀비 호스트를 사용하는 최고의 스텔스 스캔입니다.
- 다른 호스트의 IP 단편화 ID 사용
- 스캐너로 추적하기 매우 어려움
- 복잡하지만 매우 은밀함
이름의 유래:
- 스캐닝을 위해 “유휴” 좀비 호스트를 사용하기 때문
실용적인 사용 가이드
1. 기본 호스트 검색
1
2
3
4
5
6
7
8
9
10
11
| # 단순 핑 스캔
nmap -sn 192.168.1.0/24
# 핑 스캔 없음 (모든 호스트를 온라인으로 취급)
nmap -Pn target_host
# 로컬 네트워크에서 ARP 스캔
nmap -PR 192.168.1.0/24
# TCP SYN 핑 스캔
nmap -PS22,80,443 target_host
|
2. 포트 스캐닝 기술
TCP 스캔
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
| # SYN 스캔 (기본)
nmap -sS target_host
# 연결 스캔
nmap -sT target_host
# ACK 스캔
nmap -sA target_host
# 윈도우 스캔
nmap -sW target_host
# 특정 포트
nmap -p 80,443 target_host
# 모든 포트
nmap -p- target_host
|
UDP 스캔
1
2
3
4
5
| # UDP 스캔
nmap -sU target_host
# TCP와 UDP 결합 스캔
nmap -sS -sU target_host
|
3. 서비스 및 버전 탐지
1
2
3
4
5
6
7
8
9
10
11
| # 서비스 버전 탐지
nmap -sV target_host
# 가벼운 버전 탐지
nmap -sV --version-intensity 5 target_host
# 공격적 버전 탐지
nmap -sV --version-intensity 9 target_host
# OS 탐지
nmap -O target_host
|
4. 타이밍 및 성능
1
2
3
4
5
6
| # 타이밍 템플릿 (0-5)
nmap -T4 target_host # 공격적 타이밍
nmap -T1 target_host # 은밀한 타이밍
# 사용자 정의 타이밍
nmap --min-rate 100 --max-rate 500 target_host
|
5. 출력 형식
1
2
3
4
5
6
7
8
9
10
11
| # 일반 출력
nmap target_host
# XML 출력
nmap -oX scan.xml target_host
# Grep 가능한 출력
nmap -oG scan.txt target_host
# 모든 형식
nmap -oA scan_results target_host
|
6. NSE (Nmap 스크립팅 엔진)
1
2
3
4
5
6
7
8
9
10
11
| # 기본 스크립트
nmap -sC target_host
# 특정 스크립트
nmap --script=http-title target_host
# 스크립트 카테고리
nmap --script=vuln target_host
# 다중 스크립트
nmap --script=http-title,http-headers target_host
|
성능 최적화
타이밍 템플릿
1
2
3
4
5
| # 편집증적 모드 (0)
nmap -T0 target_host
# 공격적 모드 (4)
nmap -T4 target_host
|
병렬 스캐닝
1
2
3
4
5
| # 병렬 호스트 그룹 크기 조정
nmap --min-hostgroup 64 target_host
# 병렬 프로브 타이밍 조정
nmap --min-parallelism 10 target_host
|
고급 기술
1. 스텔스 스캐닝
1
2
3
4
5
6
7
8
9
10
11
| # 단편화된 패킷
nmap -f target_host
# 사용자 정의 MTU
nmap --mtu 24 target_host
# 디코이 스캐닝
nmap -D RND:10 target_host
# 스텔스 네트워크 감사
nmap -sS -sV -O --script=vuln -T4 target_host
|
특징:
- 스텔스 SYN 스캐닝
- 서비스 버전 탐지
- OS 핑거프린팅
- 취약점 스크립트
2. 방화벽/IDS 회피
1
2
3
4
5
6
7
8
| # 패킷에 임의 데이터 추가
nmap --data-length 24 target_host
# 소스 포트 지정
nmap --source-port 53 target_host
# 임의 데이터 추가
nmap --data-length 32 target_host
|
3. 고급 호스트 검색
1
2
3
4
5
6
7
8
| # 사용자 정의 TCP SYN 핑
nmap -PS21,22,23,25,80,443 target_host
# TCP ACK 핑
nmap -PA80,443 target_host
# UDP 핑
nmap -PU53,161,162 target_host
|
4. 일반적인 스캔 프로파일
웹 서버 스캔
1
| nmap -sS -sV -p80,443 --script=http-* target_host
|
메일 서버 스캔
1
| nmap -sS -sV -p25,465,587 --script=smtp-* target_host
|
전체 네트워크 감사
1
| nmap -sS -sU -T4 -A -v -PE -PP -PS80,443 -PA3389 -PU40125 -PY -g 53 target_host
|
5. 종합적인 호스트 검색
1
| nmap -sS -sU -sV -sC target_host
|
결합 기능:
- TCP SYN 스캐닝
- UDP 스캐닝
- 버전 탐지
- 기본 스크립트
모범 사례 및 팁
- 스캔 진행
- 핑 스캔으로 시작
- 포트 스캔으로 진행
- 상세 서비스 스캔으로 종료
- 스캔 속도
- 정확성을 위해 느린 스캔으로 시작
- 대규모 네트워크에는 빠른 스캔 사용
- 네트워크 상태 고려
- 버전 탐지
- 적절한 강도 수준 사용
- 정확성과 속도 사이의 균형
- 서비스 응답 시간 고려
- 스크립트 선택
- 관련 스크립트 카테고리 사용
- 불필요한 스크립트 실행 피하기
- 실험실 환경에서 먼저 스크립트 테스트
- 성능 최적화
- 네트워크에 따라 타이밍 템플릿 조정
- 적절한 경우 병렬 스캐닝 사용
- 대역폭 제한 고려
- 출력 관리
1
2
3
4
5
| # 모든 형식 저장
nmap -oA scan_results target_host
# 처리용 XML 출력
nmap -oX scan.xml target_host
|