0

Nmap Security Assessment: Từ Cơ Bản Đến Thực Chiến & Báo Cáo

Tài liệu này cung cấp cái nhìn toàn diện về Nmap: từ cơ chế hoạt động, các lệnh scan nâng cao, cách phân tích kết quả, đến lịch sử các lỗ hổng kinh điển và hướng dẫn khắc phục (Remediation), kèm theo Mermaid Diagrams minh họa luồng tấn công.


1. Cơ Chế Hoạt Động (How Nmap Works)

Hiểu "bên dưới" giúp bạn biết tại sao scan lại có kết quả như vậy.

1.1 Cơ chế phát hiện Host (Host Discovery)

  • Mục tiêu: Xác định máy nào đang "sống" (UP).
  • Kỹ thuật: Gửi gói tin ICMP Echo, TCP SYN 443, TCP ACK 80, ICMP Timestamp.
sequenceDiagram
    participant Attacker as Nmap (Attacker)
    participant Target as Server (Target)
    
    Note over Attacker: Host Discovery Phase
    Attacker->>Target: ICMP Echo Request
    Attacker->>Target: TCP SYN (Port 443)
    Attacker->>Target: TCP ACK (Port 80)
    
    alt Host is UP
        Target-->>Attacker: ICMP Echo Reply (or)
        Target-->>Attacker: TCP SYN/ACK (or RST)
        Note left of Attacker: ✅ Mark Host as UP
    else Host is DOWN / Blocked
        Target--xAttacker: No Response
        Note left of Attacker: ❌ Mark Host as DOWN
    end

1.2 Trạng thái Port (Port States)

Nmap không chỉ báo "Open" hay "Close", mà chi tiết hơn:

  1. Open: Ứng dụng đang lắng nghe.
  2. Closed: Không có ứng dụng, nhưng host phản hồi (RST).
  3. Filtered: Bị chặn bởi Firewall (Drop).

🧠 So sánh: SYN Scan (Stealth) vs Connect Scan

sequenceDiagram
    participant Attacker
    participant Target
    participant Log as System Log
    
    rect rgb(200, 255, 200)
        Note over Attacker, Target: 🔥 TCP SYN Scan (-sS) - KHÔNG GHI LOG
        Attacker->>Target: SYN
        Target-->>Attacker: SYN/ACK
        Attacker->>Target: RST (Reset ngay lập tức)
        Note right of Attacker: Connection chưa hoàn thành -> App không ghi log
    end

    rect rgb(255, 200, 200)
        Note over Attacker, Target: 🐌 TCP Connect Scan (-sT) - GHI LOG ĐẦY ĐỦ
        Attacker->>Target: SYN
        Target-->>Attacker: SYN/ACK
        Attacker->>Target: ACK (Hoàn tất 3-way handshake)
        Note right of Log: 📝 Log: "Connection from IP..."
        Attacker->>Target: RST/FIN
    end

1.3 Service & OS Fingerprinting

flowchart TD
    A[Start Version Detection -sV] --> B{Port Open?}
    B -- No --> Z[End]
    B -- Yes --> C[Full TCP Connect]
    C --> D[Wait for Banner]
    D -- Banner Received --> E[Identify Service based on Banner]
    D -- No Banner --> F[Send Probes from nmap-service-probes DB]
    F --> G{Match Signature?}
    G -- Yes --> H[Identify Application & Version]
    G -- No --> I[Mark as Unknown Service]

2. Command Reference: Từ Basic đến Advanced

2.1 Basic Recon (Quét thám thính)

Mục tiêu Lệnh Tác dụng
Ping Sweep nmap -sn 192.168.1.0/24 Chỉ kiểm tra host sống.
Quick Scan nmap -F target.com Quét 100 port phổ biến nhất.
Scan All nmap -p- target.com Quét toàn bộ 65535 ports.

2.2 Advanced & Stealth (Quét ẩn danh/Lẩn trốn)

🧠 Kỹ thuật Decoy (Giả mạo IP)

graph LR
    Attacker[Attacker IP] -->|Traffic| Router
    Decoy1[Decoy IP 1] -->|Fake Traffic| Router
    Decoy2[Decoy IP 2] -->|Fake Traffic| Router
    Router -->|Mixed Traffic| Target[Target Server]
    
    style Attacker fill:#ff9999,stroke:#333
    style Target fill:#99ff99,stroke:#333
    style Decoy1 fill:#dddddd,stroke:#333,stroke-dasharray: 5 5
    style Decoy2 fill:#dddddd,stroke:#333,stroke-dasharray: 5 5
Kỹ thuật Lệnh Tác dụng
SYN Scan nmap -sS target.com Scan mặc định, nhanh, ít ồn ào.
Decoy nmap -D RND:10 target.com Trộn IP thật với 10 IP giả để làm rối log Admin (như hình trên).
Frag nmap -f target.com Chia nhỏ gói tin để lách Firewall.

2.3 Vulnerability Scan (Quét lỗ hổng với NSE)

sequenceDiagram
    participant Nmap
    participant Target
    participant VulnDB as Nmap Script DB
    
    Note over Nmap: Script: http-vuln-cve2017-5638
    Nmap->>Target: Send Malicious HTTP Header (Exploit Probe)
    alt Vulnerable
        Target-->>Nmap: Error Response / Command Output
        Nmap->>Nmap: 🚨 REPORT VULNERABLE!
    else Fixed / Patched
        Target-->>Nmap: Normal Response / Blocked
        Nmap->>Nmap: Report Safe
    end
Mục tiêu Lệnh Giải thích
Vuln Scan nmap --script vuln target.com Chạy bộ script check CVE.
Auth Check nmap --script "auth" target.com Kiểm tra default creds, weak pass.

3. Phân Tích Findings: Lỗi vs Tính Năng

3.1 Thế nào là "Bình thường" (Feature)

  • Web Server mở port 80/443: Bình thường.
  • Mail Server mở port 25/587: Bình thường.

3.2 Thế nào là "Vấn đề" (Issue/Vulnerability)

Sử dụng Nmap giúp phát hiện các bất thường sau:

  1. Unnecessary Exposure (Mở port thừa):
    • Database (3306, 5432) Public -> CRITICAL.
  2. Outdated Software:
    • Apache 2.4.49 -> Có CVE Path Traversal -> CRITICAL.
  3. Misconfiguration:
    • Anonymous FTP Allowed.

4. Lịch Sử Case Studies: Nmap & Các Lỗ Hổng Kinh Điển

Case 1: WannaCry & EternalBlue (2017)

graph TD
    A[Attacker scans Port 445] -->|Open| B[Send EternalBlue Exploit Packet]
    B -->|Buffer Overflow| C[Execute SMBv1 Logic]
    C -->|System Access| D[Install Ransomware]
    D --> E[Encrypt Files 💀]
  • Dấu hiệu: Port 445/tcp mở.
  • Detection: nmap --script smb-vuln-ms17-010 -p 445 target.com.

Case 2: Heartbleed (2014)

sequenceDiagram
    participant User
    participant Server (OpenSSL)
    User->>Server: Heartbeat Request (Length: 64KB, Real Data: 1KB)
    Note right of User: "Please reply with this 1KB data, but I claim it's 64KB"
    Server->>Server: Read 1KB Real Data + 63KB Memory Garbage
    Server-->>User: Reply (64KB Data containing Secrets/Keys 🔑)
    Note left of Server: 🚨 MEMORY LEAK!
  • Dấu hiệu: Port 443/tcp OpenSSL cũ.
  • Detection: nmap --script ssl-heartbleed -p 443 target.com.

5. Giải Pháp Khắc Phục (Remediation)

Loại Finding Cách Fix (Remediation)
Port không cần thiết (3306, 27017 Public) Firewall: DROP traffic từ Public IP. Chỉ whitelist IP VPN.
Port Management (SSH, RDP) VPN/Bastion: Không public trực tiếp.
Outdated Service Patch: apt-get upgrade.
Weak SSL/TLS Config: Disable SSLv3, TLS 1.0.

6. Mẫu Báo Cáo Scan (Minimal Report Template)

Báo Cáo Đánh Giá An Ninh Mạng (Nmap Scan Report)

Target: example.com Tool: Nmap 7.93

Tóm tắt Findings

ID Port Service Risk Remediation
1 80 HTTP Low Hide Nginx Version
2 5432 PostgreSQL Critical Close Port / Firewall Whitelist

Generated by Pen-testing Notebook


All rights reserved

Viblo
Hãy đăng ký một tài khoản Viblo để nhận được nhiều bài viết thú vị hơn.
Đăng kí