
Nmap คืออะไร?
Nmap (Network Mapper) คือเครื่องมือ Open Source ที่ทรงพลังที่สุดสำหรับ Network Discovery และ Security Auditing ใช้งานมาตั้งแต่ปี 1997 และยังเป็นเครื่องมือหลักของ Network Administrator, Penetration Tester และ Security Professional ทั่วโลกมาจนถึงปี 2026
Nmap ทำอะไรได้บ้าง?
- Host Discovery: หาว่ามีอุปกรณ์ไหนออนไลน์อยู่ในเครือข่าย
- Port Scanning: ดูว่า Port ไหนเปิดอยู่บนเครื่องเป้าหมาย
- Service Detection: ระบุว่า Port นั้นรัน Service อะไร Version อะไร
- OS Detection: ระบุระบบปฏิบัติการของเครื่องเป้าหมาย
- Vulnerability Scanning: ตรวจหาช่องโหว่ด้วย NSE Scripts
- Network Mapping: สร้างแผนผังเครือข่าย
ติดตั้ง Nmap
# Linux (Ubuntu/Debian)
sudo apt update && sudo apt install nmap -y
# Linux (CentOS/RHEL)
sudo yum install nmap -y
# macOS
brew install nmap
# Windows — ดาวน์โหลดจาก https://nmap.org/download.html
# หรือใช้ choco:
choco install nmap
# ตรวจสอบ Version
nmap --version
# Nmap version 7.95 (2026)
Host Discovery — หาอุปกรณ์ในเครือข่าย
# Ping Scan — หาว่ามีเครื่องไหนออนไลน์
nmap -sn 192.168.1.0/24
# ARP Scan (LAN เท่านั้น — แม่นยำที่สุด)
nmap -sn -PR 192.168.1.0/24
# TCP SYN Discovery (ข้าม Firewall ที่ Block ICMP)
nmap -sn -PS22,80,443 192.168.1.0/24
# ICMP Echo + TCP SYN + UDP
nmap -sn -PE -PS22,80,443 -PU53 192.168.1.0/24
# List Scan (DNS resolve only, ไม่ส่ง Packet)
nmap -sL 192.168.1.0/24
# ไม่ Ping ก่อน Scan (มีประโยชน์เมื่อ Host Block ICMP)
nmap -Pn 192.168.1.100
ตัวอย่าง Output
# nmap -sn 192.168.1.0/24
# Starting Nmap 7.95
# Nmap scan report for 192.168.1.1
# Host is up (0.0015s latency).
# MAC Address: AA:BB:CC:DD:EE:FF (Cisco Systems)
#
# Nmap scan report for 192.168.1.50
# Host is up (0.0023s latency).
# MAC Address: 11:22:33:44:55:66 (Dell)
#
# Nmap done: 256 IP addresses (15 hosts up) scanned in 3.42 seconds
Port Scanning — ประเภทการ Scan
Scan Types เปรียบเทียบ
| Flag | ประเภท | วิธีการ | ต้อง Root? | ข้อดี | ข้อเสีย |
|---|---|---|---|---|---|
| -sS | SYN Scan (Half-open) | ส่ง SYN ไม่ Complete Handshake | Yes | เร็ว เงียบ ไม่ถูก Log ง่าย | ต้อง Root/Admin |
| -sT | TCP Connect | ทำ Full TCP Handshake | No | ไม่ต้อง Root ใช้ได้ทุกที่ | ช้า ถูก Log ง่าย |
| -sU | UDP Scan | ส่ง UDP Packet | Yes | หา UDP Services (DNS, SNMP) | ช้ามาก |
| -sV | Version Detection | ถาม Service ว่าเป็น Version อะไร | No | ได้ข้อมูล Service Detail | ใช้เวลาเพิ่ม |
| -O | OS Detection | วิเคราะห์ TCP/IP Stack | Yes | รู้ OS ของเป้าหมาย | ไม่แม่น 100% |
| -sA | ACK Scan | ส่ง ACK เพื่อตรวจ Firewall | Yes | ดูว่า Firewall Filter อะไร | ไม่บอกว่า Port เปิดหรือปิด |
ตัวอย่างการ Scan
# SYN Scan (Default, ต้อง sudo)
sudo nmap -sS 192.168.1.100
# TCP Connect Scan (ไม่ต้อง sudo)
nmap -sT 192.168.1.100
# UDP Scan (ช้า — แนะนำระบุ Port)
sudo nmap -sU -p 53,161,162,500 192.168.1.100
# Version Detection
nmap -sV 192.168.1.100
# OS Detection
sudo nmap -O 192.168.1.100
# รวมทุกอย่าง: SYN + Version + OS + Scripts
sudo nmap -sS -sV -O -sC 192.168.1.100
# Aggressive Scan (= -sV -O -sC --traceroute)
sudo nmap -A 192.168.1.100
Port Specification — ระบุ Port ที่ต้องการ Scan
# Scan Port เฉพาะ
nmap -p 80 192.168.1.100
nmap -p 80,443,8080 192.168.1.100
# Scan Port Range
nmap -p 1-1000 192.168.1.100
# Scan ทุก Port (65535 ports)
nmap -p- 192.168.1.100
# Scan Top 100 Ports
nmap --top-ports 100 192.168.1.100
# Scan Top 1000 Ports (Default)
nmap 192.168.1.100
# ผสม TCP + UDP
sudo nmap -sS -sU -p T:80,443,U:53,161 192.168.1.100
Nmap Scripting Engine (NSE)
NSE คือฟีเจอร์ที่ทรงพลังที่สุดของ Nmap ให้คุณรัน Scripts สำหรับ Vulnerability Scanning, Brute Force, Service Enumeration และอื่น ๆ
Script Categories
| Category | หน้าที่ | ตัวอย่าง Script |
|---|---|---|
| default (-sC) | Scripts พื้นฐานที่ปลอดภัย | http-title, ssh-hostkey |
| vuln | ตรวจหาช่องโหว่ | smb-vuln-ms17-010, http-vuln-cve2021-* |
| brute | Brute Force Password | ssh-brute, ftp-brute, http-brute |
| discovery | ค้นพบข้อมูลเพิ่มเติม | dns-brute, smb-enum-shares |
| auth | ตรวจ Authentication | ftp-anon, mysql-empty-password |
| safe | Scripts ที่ไม่เป็นอันตราย | banner, http-headers |
| intrusive | Scripts ที่อาจกระทบ Service | http-sql-injection |
# รัน Default Scripts
nmap -sC 192.168.1.100
# รัน Vulnerability Scripts
nmap --script vuln 192.168.1.100
# รัน Script เฉพาะ
nmap --script http-enum 192.168.1.100
nmap --script smb-vuln-ms17-010 192.168.1.100
# รัน Scripts หลาย Category
nmap --script "vuln,safe" 192.168.1.100
# HTTP Enumeration (หา Directories/Files)
nmap --script http-enum -p 80,443,8080 192.168.1.100
# SSL/TLS Analysis
nmap --script ssl-enum-ciphers -p 443 192.168.1.100
# DNS Brute Force (หา Subdomains)
nmap --script dns-brute example.com
# SMB Enumeration (หา Shares, Users)
nmap --script smb-enum-shares,smb-enum-users -p 445 192.168.1.100
Output Formats — บันทึกผลลัพธ์
# Normal Output (อ่านง่าย)
nmap -oN scan_result.txt 192.168.1.0/24
# XML Output (สำหรับ Tools อื่นอ่าน)
nmap -oX scan_result.xml 192.168.1.0/24
# Grepable Output (สำหรับ grep/awk)
nmap -oG scan_result.gnmap 192.168.1.0/24
# บันทึกทุก Format พร้อมกัน
nmap -oA scan_result 192.168.1.0/24
# → สร้าง scan_result.nmap, scan_result.xml, scan_result.gnmap
# ส่งออกเป็น JSON (ผ่าน XML แปลง)
nmap -oX - 192.168.1.100 | python3 -c "import xml.etree.ElementTree as ET; ..."
Timing Templates — ความเร็วในการ Scan
| Flag | ชื่อ | ความเร็ว | ถูกตรวจจับ? | เหมาะกับ |
|---|---|---|---|---|
| -T0 | Paranoid | ช้ามาก (5 นาที/probe) | แทบไม่ถูกจับ | IDS Evasion |
| -T1 | Sneaky | ช้า (15 วินาที/probe) | ยากที่จะถูกจับ | Stealth Scan |
| -T2 | Polite | ช้า (0.4 วินาที/probe) | อาจถูกจับ | ไม่อยากกระทบ Network |
| -T3 | Normal (Default) | ปกติ | อาจถูกจับ | ใช้ทั่วไป |
| -T4 | Aggressive | เร็ว | ถูกจับง่าย | LAN ที่เชื่อถือได้ |
| -T5 | Insane | เร็วมาก | ถูกจับทันที | LAN เร็ว ต้องการผลด่วน |
# ใช้ Timing Template
nmap -T4 192.168.1.0/24 # เร็ว เหมาะ LAN
# ปรับ Timing ด้วยตนเอง
nmap --min-rate 1000 192.168.1.0/24 # ส่งอย่างน้อย 1000 packets/sec
nmap --max-retries 2 192.168.1.0/24 # Retry สูงสุด 2 ครั้ง
nmap --host-timeout 30s 192.168.1.0/24 # Timeout ต่อ Host 30 วินาที
การ Scan อย่างมีจริยธรรม (Ethical Scanning)
กฎสำคัญ
- Scan เฉพาะเครือข่ายที่ได้รับอนุญาต: ห้าม Scan เครือข่ายที่ไม่ใช่ของคุณโดยไม่ได้รับอนุญาต
- มี Written Authorization: ก่อน Scan ต้องมีเอกสารอนุญาตจากเจ้าของเครือข่าย
- กำหนด Scope: ระบุ IP Range, Port Range, และ Scan Type ที่ได้รับอนุญาต
- ระวังผลกระทบ: Scan ที่เข้มข้นอาจทำให้ Service ล่ม โดยเฉพาะอุปกรณ์เก่า
- บันทึกทุกอย่าง: เก็บ Log ของการ Scan ทั้งหมด
# ตัวอย่าง Scope Document
# ============================================
# Network Security Scan Authorization
# Date: 2026-04-16
# Authorized by: Prasert (IT Manager)
# Scanner: Somchai (Security Team)
#
# Scope:
# - IP Range: 192.168.1.0/24, 192.168.2.0/24
# - Ports: All (1-65535)
# - Scan Types: SYN, Version, OS Detection, NSE (safe, vuln)
# - Timing: T3 (Normal) during business hours
# - Exclusions: 192.168.1.1 (Core Router), 192.168.1.5 (Production DB)
# ============================================
Nmap สำหรับ IT Audit
Audit Checklist ด้วย Nmap
| ตรวจสอบ | คำสั่ง Nmap | หาอะไร |
|---|---|---|
| อุปกรณ์ในเครือข่าย | nmap -sn 192.168.1.0/24 |
อุปกรณ์ที่ไม่ได้รับอนุญาต |
| Port ที่เปิดอยู่ | nmap -sS -p- target |
Port ที่ไม่ควรเปิด |
| Service Version | nmap -sV target |
Software เก่าที่ต้อง Update |
| OS ของ Server | nmap -O target |
OS ที่ End-of-Life |
| ช่องโหว่ | nmap --script vuln target |
ช่องโหว่ที่รู้จัก (CVE) |
| SSL/TLS | nmap --script ssl-enum-ciphers -p 443 |
Cipher ที่ไม่ปลอดภัย |
| Default Credentials | nmap --script default-credentials |
รหัสผ่าน Default |
Nmap + Wireshark — คู่หูที่ลงตัว
ใช้ Nmap เพื่อ Discover และ Scan แล้วใช้ Wireshark เพื่อ Analyze Traffic ที่น่าสงสัย
# Workflow: Nmap + Wireshark
# 1. Scan หา Host ด้วย Nmap
sudo nmap -sn 192.168.1.0/24 -oX hosts.xml
# 2. Scan Port ของ Host ที่น่าสงสัย
sudo nmap -sS -sV -O 192.168.1.50 -oX detailed.xml
# 3. พบ Port แปลก (เช่น Port 4444 — อาจเป็น Backdoor)
# เปิด Wireshark จับ Traffic ที่ Port นั้น
# Wireshark Filter: tcp.port == 4444
# 4. วิเคราะห์ใน Wireshark
# - ดู Packet Content
# - ตรวจ Protocol
# - หา IP ปลายทาง
# - Export เป็น Evidence
Common Scan Recipes — Cheatsheet
สำหรับ Network Admin
# 1. Quick Network Inventory
sudo nmap -sn -T4 192.168.1.0/24 -oG inventory.gnmap
# 2. Find All Web Servers
nmap -p 80,443,8080,8443 --open 192.168.1.0/24
# 3. Find All SSH Servers
nmap -p 22 --open 192.168.1.0/24
# 4. Find Unpatched Services
sudo nmap -sV --script vuln 192.168.1.0/24 -oX vuln_report.xml
# 5. Detect Rogue DHCP Servers
sudo nmap --script broadcast-dhcp-discover
# 6. Find DNS Servers
nmap -p 53 -sU --open 192.168.1.0/24
สำหรับ Security Audit
# 7. Full Audit Scan (Single Host)
sudo nmap -sS -sV -O -sC -p- -T4 target -oA full_audit
# 8. SSL/TLS Security Check
nmap --script ssl-enum-ciphers,ssl-cert -p 443 target
# 9. SMB Vulnerability Check
sudo nmap --script smb-vuln* -p 445 192.168.1.0/24
# 10. Weak Password Check
nmap --script ftp-anon,mysql-empty-password,ms-sql-empty-password target
# 11. Firewall Detection
sudo nmap -sA 192.168.1.100
# 12. Compare Scans (Detect Changes)
ndiff scan_yesterday.xml scan_today.xml
Nmap Alternatives — เครื่องมือเสริม
| เครื่องมือ | จุดเด่น | เมื่อไรใช้ |
|---|---|---|
| Masscan | เร็วกว่า Nmap 100 เท่า Scan ทั้ง Internet ได้ | Scan IP Range ใหญ่ ๆ อย่างรวดเร็ว |
| Rustscan | เร็วมาก + ส่ง Port ที่พบต่อให้ Nmap | เร่งความเร็ว + ใช้ Nmap NSE ต่อ |
| Zenmap | GUI ของ Nmap | ต้องการ GUI ใช้งานง่าย |
| Angry IP Scanner | GUI ง่าย ข้าม Platform | Scan เบื้องต้นสำหรับ Non-technical |
| Nuclei | Template-based Vulnerability Scanner | ตรวจช่องโหว่ Web Application |
# Rustscan + Nmap Combo
# Rustscan หา Port เร็ว แล้วส่งต่อให้ Nmap ทำ Version Detection
rustscan -a 192.168.1.100 -- -sV -sC
# Masscan — Scan ทั้ง Subnet เร็วมาก
sudo masscan 192.168.1.0/24 -p1-65535 --rate=10000 -oG masscan_result.gnmap
# แล้วใช้ Nmap ทำ Detail Scan เฉพาะ Port ที่พบ
nmap -sV -sC -p 22,80,443,3306 192.168.1.50
สรุป: Nmap = เครื่องมือจำเป็นสำหรับ IT Professional
Nmap เป็นเครื่องมือพื้นฐานที่ IT Admin และ Security Professional ทุกคนต้องใช้เป็น ไม่ว่าจะเป็นการทำ Network Inventory, Security Audit, Vulnerability Assessment หรือ Incident Response Nmap ทำได้หมด
เริ่มวันนี้: ติดตั้ง Nmap แล้ว Scan เครือข่ายของตัวเอง (nmap -sn 192.168.1.0/24) ดูว่ามีอุปกรณ์อะไรบ้าง แล้วค่อย ๆ เรียนรู้ Scan Types และ NSE Scripts เพิ่มเติม จำไว้ว่า Scan เฉพาะเครือข่ายที่ได้รับอนุญาตเท่านั้น