Trong hướng dẫn chi tiết này, chúng tôi sẽ giải thích Nmap là gì, tại sao nó được sử dụng, cách cài đặt và đi qua các lệnh Nmap quan trọng nhất mà mọi quản trị viên mạng và chuyên gia bảo mật nên biết.

Từ phát hiện host cơ bản và quét cổng đến phát hiện dịch vụ, OS fingerprinting, kiểm soát thời gian và Nmap Scripting Engine (NSE) mạnh mẽ, hướng dẫn thực tế về Nmap này bao gồm từng lệnh với ví dụ và trường hợp sử dụng thực tế.

Cuối cùng, bạn sẽ tự tin và có trách nhiệm quét mạng với Nmap.

-p

1. Nmap là gì?

Nmap (viết tắt của Network Mapper) là một công cụ quét mạng mã nguồn mở miễn phí. Gordon Lyon, thường được biết đến với bí danh trực tuyến Fyodor, đã tạo ra nó vào năm 1997. Ngày nay, nó là một trong những công cụ được sử dụng rộng rãi nhất trong bảo mật mạng, quản trị hệ thống và giáo dục an ninh mạng trên toàn thế giới.

Nói một cách đơn giản, Nmap gửi các gói tin mạng đến một mục tiêu và lắng nghe các phản hồi. Từ những phản hồi đó, nó xác định:

  • Thiết bị nào đang trực tuyến (phát hiện host)
  • Cổng nào đang mở hoặc bị lọc
  • Dịch vụ nào đang chạy và phiên bản nào chúng sử dụng
  • Hệ điều hành nào mục tiêu đang chạy
  • Liệu có tường lửa đang lọc lưu lượng hay không

Hơn nữa, công cụ scripting tích hợp của Nmap (NSE) cho phép bạn chạy hàng trăm script Lua được xây dựng sẵn để tự động hóa các tác vụ như phát hiện lỗ hổng, lấy banner và liệt kê dịch vụ.

Nmap chạy trên Linux, macOS và Windows và có thể tải miễn phí tại nmap.org.

Công cụ liên quan: Nmap thường được sử dụng cùng với Wireshark (phân tích gói tin), Metasploit (framework khai thác) và Netcat (tiện ích mạng).

Lệnh Nmap là gì?

Lệnh Nmap là các chỉ thị dòng lệnh cho công cụ quét mạng Nmap. Chúng cho phép bạn phát hiện host đang hoạt động, tìm cổng mở, phát hiện phiên bản dịch vụ, xác định hệ điều hành và chạy các script bảo mật chống lại một mạng.

Các lệnh Nmap phổ biến bao gồm nmap -sn (phát hiện host), nmap -sS (quét TCP SYN), nmap -sV (phát hiện phiên bản), nmap -O (phát hiện OS) và nmap -A (quét tổng hợp).

2. Tại sao sử dụng Nmap?

Nmap hoạt động trên nhiều tác vụ thực tế. Dưới đây là những lý do phổ biến nhất mà các chuyên gia và sinh viên sử dụng nó.

3. Cách cài đặt Nmap

Trước khi chạy bất kỳ lệnh Nmap nào, bạn cần cài đặt nó. Quá trình này mất chưa đầy một phút trên mọi nền tảng.

Cài đặt nmap trên Arch Linux và các biến thể như EndeavourOS và Manjaro Linux:

sudo pacman -S nmap

Cài đặt nmap trên Debian, Ubuntu Linux:

sudo apt update && sudo apt install nmap -y

Cài đặt trên Fedora / RHEL / CentOS / AlmaLinux / Rocky Linux:

sudo dnf install nmap -y

Sau khi cài đặt, xác minh cài đặt nmap bằng lệnh:

nmap --version

Đầu ra mẫu:

Nmap version 7.99 ( https://nmap.org )
Platform: x86_64-pc-linux-gnu
Compiled with: liblua-5.4.8 openssl-3.6.3 libssh2-1.11.1 libz-1.3.2 libpcre2-10.47 libpcap-1.10.6 nmap-libdnet-1.18.0 ipv6
Compiled without:
Available nsock engines: epoll poll select

Bây giờ, đã đến lúc bắt đầu với Nmap. Hãy bắt đầu với những điều cơ bản và dần dần chuyển sang các chủ đề nâng cao.

4. Cách chạy lần quét Nmap đầu tiên

Bước 1: Mở Terminal

Trên Linux hoặc macOS, mở terminal. Trên Windows, mở Command Prompt hoặc PowerShell với quyền Administrator.

Bước 2: Tìm dải mạng của bạn

ip a          # Linux -- find your IP and subnet
ifconfig      # macOS
ipconfig      # Windows

Mạng cục bộ của bạn thường là một cái gì đó như 192.168.1.0/24.

Bước 3: Phát hiện host đang hoạt động

nmap -sn 192.168.1.0/24

Lệnh này tìm tất cả các thiết bị trên mạng của bạn mà không quét cổng.

Đầu ra mẫu:

Starting Nmap 7.99 ( https://nmap.org ) at 2026-06-23 17:05 +0530
Nmap scan report for 192.168.1.100
Host is up (0.000099s latency).
Nmap scan report for 192.168.1.101
Host is up (0.00075s latency).
Nmap done: 256 IP addresses (2 hosts up) scanned in 8.94 seconds

Bước 4: Quét một host cụ thể

nmap -sV 192.168.1.100

Lệnh này quét mục tiêu và xác định các dịch vụ đang chạy cùng phiên bản của chúng.

Đầu ra mẫu:

Starting Nmap 7.99 ( https://nmap.org ) at 2026-06-23 17:10 +0530
Nmap scan report for 192.168.1.100
Host is up (0.000069s latency).
Not shown: 999 closed tcp ports (conn-refused)
PORT   STATE SERVICE VERSION
22/tcp open  ssh     OpenSSH 10.3 (protocol 2.0)
Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 0.69 seconds

Đó là lần quét Nmap đầu tiên của bạn. Từ đây, bạn có thể thêm nhiều flag hơn để có kết quả sâu hơn, phần còn lại của hướng dẫn này sẽ trình bày chi tiết.

5. Phát hiện host: Tìm thiết bị đang hoạt động trên mạng


Lưu ý: Một số lệnh nmap bên dưới yêu cầu quyền root hoặc sudo. Nếu bạn chạy chúng với tư cách người dùng thông thường, bạn sẽ thấy đầu ra như sau:

You requested a scan type which requires root privileges.
QUITTING!

Trước khi quét cổng, bạn thường muốn biết thiết bị nào thực sự đang trực tuyến. Bước phát hiện host của Nmap xử lý việc này nhanh chóng mà không cần chạy quét cổng đầy đủ.

Lưu ý quan trọng: -sP Đã bị deprecated. Luôn sử dụng -sn thay thế.

Một số cheat sheet cũ và hướng dẫn lỗi thời vẫn liệt kê nmap -sP là lệnh ping scan chính xác. Điều này không còn chính xác nữa. Flag -sP đã bị deprecated khi Nmap giới thiệu sự thay thế của nó, -sn.

Mặc dù -sP vẫn chạy trên các phiên bản Nmap hiện tại như một bí danh kế thừa, nó tạo ra cảnh báo deprecation và cuối cùng sẽ bị loại bỏ hoàn toàn.

Flag chính xác, hiện tại là nmap -sn. Cả hai flag đều làm cùng một việc, nhưng -sn là flag bạn nên luôn sử dụng từ bây giờ.

nmap -sn: Ping Scan (Phát hiện host không quét cổng)

Flag -sn phát hiện host nào đang trực tuyến và sau đó dừng lại. Không có quét cổng nào xảy ra. Theo default, nó sử dụng bốn probe: ICMP echo request, TCP SYN đến cổng 443, TCP ACK đến cổng 80 và ICMP timestamp request.

Yêu cầu root: Chạy với quyền root cho kết quả chính xác nhất. Nếu không có root, -sn sẽ quay lại sử dụng probe TCP connect đơn giản đến các cổng 80 và 443.

# Basic host discovery on a /24 subnet
nmap -sn 192.168.1.0/24
# Save live hosts to a file for follow-up scanning
nmap -sn 192.168.1.0/24 -oG - | grep "Up" | awk '{print $2}' > live_hosts.txt

6. Các loại quét Nmap phổ biến được giải thích

Khi bạn biết host nào đang hoạt động, bước tiếp theo là kiểm tra các cổng của chúng. Mỗi loại quét sử dụng một kỹ thuật TCP/IP khác nhau, vì vậy mỗi loại hoạt động tốt hơn trong các tình huống khác nhau. Dưới đây là phân tích rõ ràng về những loại phổ biến nhất.

nmap -sS: TCP SYN Scan (Stealth Scan)

TCP SYN scan là loại quét default khi chạy Nmap với quyền root và là loại quét được sử dụng rộng rãi nhất. Nmap gửi một gói SYN và chờ phản hồi:

  • Phản hồi SYN-ACK - cổng mở
  • Phản hồi RST - cổng đóng
  • Không có phản hồi / ICMP unreachable - cổng bị lọc

Bởi vì Nmap gửi RST sau khi nhận SYN-ACK, không bao giờ hoàn thành bắt tay đầy đủ, quét này để lại ít dấu vết log hơn so với quét kết nối đầy đủ. Đó là lý do tại sao nó thường được gọi là "stealth scan" hoặc "half-open scan."

nmap -sS 192.168.1.100                  # Requires root
nmap -sS -p 22,80,443 192.168.1.10        # SYN scan on specific ports only

nmap -sT: TCP Connect Scan (Bắt tay đầy đủ)

TCP Connect scan là default khi chạy không có quyền root. Nó hoàn thành bắt tay TCP ba bước đầy đủ bằng cách sử dụng lệnh gọi hệ thống connect() tiêu chuẩn của OS. Nó đáng tin cậy hơn -sS nhưng chậm hơn và dễ xuất hiện trong log máy chủ hơn.

nmap -sT 192.168.1.100    # Works without root privileges

nmap -sU: UDP Scan

Nhiều dịch vụ quan trọng chạy trên UDP thay vì TCP, bao gồm DNS (cổng 53), DHCP (cổng 67-68), SNMP (cổng 161) và NTP (cổng 123). Flag -sU quét các cổng này. Bởi vì UDP là connectionless, quét nó chậm hơn nhiều so với TCP. Kết hợp -sU với --top-ports giúp tăng tốc đáng kể.

nmap -sU 192.168.1.100                     # Full UDP scan (slow). Requires root
nmap -sU --top-ports 20 192.168.1.100      # Faster: scans top 20 UDP ports only

7. Phát hiện phiên bản Nmap và OS Fingerprinting

Biết rằng một cổng đang mở là hữu ích. Tuy nhiên, biết chính xác cái gì chạy trên cổng đó và phiên bản nào mạnh mẽ hơn nhiều. Các flag này cung cấp cho bạn lớp chi tiết bổ sung đó.

nmap -sV: Phát hiện dịch vụ và phiên bản

Với -sV, Nmap thăm dò từng cổng mở và xác định tên dịch vụ cùng số phiên bản chính xác của nó. Ví dụ, thay vì "cổng 22 đang mở," bạn nhận được "OpenSSH 8.9p1 Ubuntu." Điều này có giá trị cho:

  • Kiểm tra bảo mật - phát hiện phần mềm lỗi thời hoặc hết hạn hỗ trợ
  • Tương quan lỗ hổng - so khớp phiên bản dịch vụ với cơ sở dữ liệu CVE
  • Quản lý kiểm kê - xác minh dịch vụ chạy đúng phiên bản dự kiến
  • Phát hiện cổng không chuẩn - -sV xác định dịch vụ ngay cả khi nó chạy trên một cổng không mong đợi
nmap -sV 192.168.1.100
nmap -sV --version-intensity 5 192.168.1.100   # More thorough probing (scale: 0-9)

nmap -O: Phát hiện OS (OS Fingerprinting)

Nmap phân tích sự khác biệt tinh tế trong cách ngăn xếp TCP/IP của một host phản hồi và so khớp các mẫu đó với một cơ sở dữ liệu lớn các dấu vân tay OS đã biết. Kết quả là một dự đoán tốt nhất về hệ điều hành và phiên bản của mục tiêu.

Có ít nhất một cổng mở và một cổng đóng trên mục tiêu giúp Nmap tạo ra dự đoán OS chính xác nhất. Nếu không có cả hai, kết quả có thể kém tin cậy hơn, nhưng phát hiện OS vẫn sẽ cố gắng so khớp. Quyền root hoặc quản trị viên là bắt buộc.

nmap -O 192.168.1.100
nmap -O --osscan-guess 192.168.1.100   # Shows best guess even with low confidence

nmap -A: Aggressive Scan (Phát hiện tất cả trong một)

Flag -A chạy bốn thao tác cùng một lúc:

  1. Phát hiện OS (-O)
  2. Phát hiện dịch vụ và phiên bản (-sV)
  3. Quét script NSE mặc định (-sC)
  4. Traceroute

Đây là tùy chọn "cung cấp cho tôi mọi thứ." Nó tạo ra nhiều chi tiết nhất nhưng cũng mất nhiều thời gian hơn và tạo ra nhiều lưu lượng mạng hơn. Vì vậy, chỉ sử dụng nó khi bạn muốn có một bức tranh đầy đủ và có ủy quyền rõ ràng để quét mục tiêu.

nmap -A 192.168.1.100
nmap -A -T4 192.168.1.100   # Aggressive scan at fast timing

Mẹo: Đối với công việc có mục tiêu, kết hợp -sV -O thay vì -A khi bạn muốn thông tin phiên bản và OS mà không có overhead script đầy đủ.

8. Timing Templates của Nmap (-T0 đến -T5)

Tốc độ quét ảnh hưởng đến cả độ chính xác và khả năng bị phát hiện. Nmap cung cấp cho bạn kiểm soát trực tiếp thông qua sáu timing template, từ chậm-paranoid đến nhanh-nguy hiểm.

So sánh Timing Template

Khuyến nghị: Sử dụng -T4 cho hầu hết công việc trong phòng lab và chuyên nghiệp trên các mạng đáng tin cậy. Sử dụng -T1 hoặc -T2 khi quét các hệ thống sản xuất để tránh làm gián đoạn dịch vụ đang hoạt động.

nmap -iL: Nhập mục tiêu từ một tệp

Thay vì gõ từng mục tiêu thủ công, -iL đọc một danh sách các host hoặc dải từ một tệp văn bản, mỗi dòng một mục. Điều này rất cần thiết cho các quản trị viên quét các môi trường lớn.

Ví dụ:

Tạo tệp văn bản có tên targets.txt với nội dung sau:

192.168.1.100
192.168.1.101
10.0.0.0/24
webserver.example.com

Và chạy:

nmap -T4 -sV -iL targets.txt -oA batch_results

9. Kỹ thuật quét TCP nâng cao

Các kỹ thuật TCP chuyên biệt này vượt xa quét tiêu chuẩn. Chúng hoạt động bằng cách exploiting một quy tắc trong RFC 793 (đặc tả TCP): một cổng đóng phải trả lời bất kỳ gói tin bất ngờ nào bằng RST, trong khi một cổng mở chỉ đơn giản là bỏ gói tin một cách im lặng. Sự khác biệt đó tiết lộ trạng thái cổng mà không cần hoàn thành bắt tay đầy đủ.

Quan trọng: Các quét này yêu cầu quyền root và hoạt động tốt nhất trên các mục tiêu Linux và Unix. Windows và một số thiết bị Cisco phản hồi các gói tin này khác nhau, chúng gửi RST bất kể cổng đang mở hay đóng, điều này làm cho kết quả không đáng tin cậy trên các hệ thống đó.

nmap -sX: XMAS Scan

Gửi các gói tin với các flag FIN, PSH và URG được đặt cùng một lúc - "sáng lên như cây thông Noel," do đó có tên. Cổng mở bỏ gói tin một cách im lặng; cổng đóng trả lời bằng RST. XMAS scan đôi khi có thể vượt qua các tường lửa stateless đơn giản chỉ lọc trên các flag SYN.

nmap -sX 192.168.1.100

nmap -sF: FIN Scan

Gửi các gói tin chỉ với flag FIN được đặt - thường được sử dụng để đóng một kết nối đang hoạt động, nhưng ở đây được gửi đến các cổng không có phiên hiện tại. Mẫu phản hồi mở/đóng hoạt động giống như XMAS scan.

nmap -sF 192.168.1.100

nmap -sN: Null Scan

Gửi các gói tin không có flag TCP nào được đặt. Đây là gói tin TCP tối thiểu nhất có thể. Cổng mở hoặc bị lọc bỏ nó một cách im lặng; cổng đóng trả lời bằng RST. Null scan có thể vượt qua một số tường lửa stateless cơ bản và các quy tắc lọc gói tin đơn giản.

nmap -sN 192.168.1.100

nmap -sA: ACK Scan (Lập bản đồ quy tắc tường lửa)

ACK scan hoạt động khác với ba loại trên. Nó không cho bạn biết liệu một cổng có mở hay không. Thay vào đó, nó cho bạn biết liệu một cổng có bị lọc hay không bị lọc bởi tường lửa. Nmap gửi các gói ACK; nếu RST quay lại, cổng không bị lọc (có thể truy cập). Nếu không có gì quay lại, hoặc một thông báo ICMP unreachable đến, cổng bị lọc (bị chặn). Kỹ sư bảo mật sử dụng điều này cụ thể để lập bản đồ và hiểu các bộ quy tắc tường lửa.

nmap -sA 192.168.1.100
nmap -sA -p 80,443,8080 192.168.1.100   # Check firewall filtering on specific ports

10. Nmap Scripting Engine (NSE) và Tùy chọn cổng

Nmap Scripting Engine (NSE) là nơi Nmap biến đổi từ một máy quét cổng đơn giản thành một nền tảng kiểm tra bảo mật đầy đủ. Nó cho phép bạn chạy các script dựa trên Lua chống lại các mục tiêu để tự động hóa hàng trăm kiểm tra cụ thể. Nmap đi kèm với 612 script NSE tính đến phiên bản hiện tại.

Tất cả 15 danh mục script NSE chính thức

Bạn có thể xem danh sách các script có sẵn trong mỗi danh mục bằng cách nhấp vào tên danh mục tương ứng trên trang NSE Categories.

Thận trọng: Các script trong danh mục dos, exploit, brute và intrusive có thể làm gián đoạn hoặc gây hại cho hệ thống. Chỉ chạy chúng trên các mục tiêu bạn sở hữu hoặc có sự cho phép bằng văn bản rõ ràng để kiểm tra.

nmap -sC: Quét script mặc định

Chạy tất cả các script trong danh mục default. Chúng an toàn, nhanh chóng và được thiết kế để thu thập thông tin định kỳ: phát hiện tiêu đề HTTP, kiểm tra đăng nhập ẩn danh FTP, truy xuất khóa host SSH và lấy banner dịch vụ, cùng nhiều thứ khác.

nmap -sC 192.168.1.100
nmap -sC -sV 192.168.1.100   # Combine with version detection for richer results

nmap --script <name>: Chạy một script cụ thể

nmap --script http-title 192.168.1.100          # Grab web page title
nmap --script vuln 192.168.1.100                # Run all vulnerability scripts
nmap --script "http-*" 192.168.1.100            # Run all HTTP-related scripts
nmap --script smb-vuln-ms17-010 192.168.1.100   # Check for EternalBlue (MS17-010)

Thư viện script đầy đủ: Tất cả các script NSE được tài liệu hóa tại nmap.org/nsedoc.

nmap --top-ports <n>: Quét các cổng phổ biến nhất

Thay vì quét tất cả 65,535 cổng, --top-ports chỉ quét các cổng thường thấy nhất trong các triển khai thực tế. Nmap xếp hạng chúng theo tần suất xuất hiện từ một tập dữ liệu lớn các lần quét mạng thực tế.

nmap --top-ports 100 192.168.1.100    # 100 most common ports - fast and practical
nmap --top-ports 1000 192.168.1.100   # Broader coverage; still faster than a full scan

nmap -p: Chỉ định chính xác cổng hoặc dải

nmap -p 22,80,443 192.168.1.100       # Three specific ports
nmap -p 1-1000 192.168.1.100          # Port range
nmap -p- 192.168.1.100                # All 65,535 ports (comprehensive but slow)
nmap -p U:53,T:80 192.168.1.100       # UDP port 53 and TCP port 80 in one scan

11. Mẹo chuyên nghiệp: Cách sử dụng Nmap như một chuyên gia

Những khuyến nghị này vượt xa các flag cơ bản. Chúng phản ánh cách các chuyên gia bảo mật giàu kinh nghiệm và quản trị viên mạng sử dụng Nmap hàng ngày trong các môi trường thực tế.

Mẹo 1: Luôn lưu đầu ra của bạn

Không bao giờ mất kết quả quét. Sử dụng flag -oA để lưu đồng thời ở cả ba định dạng: văn bản có thể đọc (.nmap), XML (.xml) và định dạng grepable (.gnmap). Định dạng XML đặc biệt hữu ích vì nhiều công cụ bảo mật khác có thể nhập trực tiếp nó.

nmap -sV -T4 -oA scan_$(date +%F) 192.168.1.0/24
# Creates: scan_2026-06-23.nmap  /  scan_2026-06-23.xml  /  scan_2026-06-23.gnmap

Mẹo 2: Kết hợp các flag cho một lần quét hiệu quả

Bạn không cần chạy các lần quét riêng biệt cho phát hiện phiên bản, script và thời gian. Lệnh đa năng này bao gồm mọi thứ trong một lần và tự động lưu kết quả:

nmap -sV -sC -O -T4 --top-ports 1000 -oA results TARGET_IP

Mẹo 3: Phát hiện host trước, sau đó quét sâu

Trên các mạng lớn, luôn chạy -sn trước để tìm host đang hoạt động, sau đó đưa các kết quả đó vào một lần quét sâu hơn. Điều này bỏ qua các host ngoại tuyến hoàn toàn và tiết kiệm thời gian đáng kể.

# Step 1: Find and record live hosts
nmap -sn 192.168.1.0/24 -oG - | grep "Up" | awk '{print $2}' > live.txt
# Step 2: Deep scan only the live ones
nmap -sV -sC -T4 -iL live.txt -oA deep_scan

Mẹo 4: Sử dụng --reason để hiểu mọi kết quả

Thêm --reason vào bất kỳ lần quét nào và Nmap giải thích chính xác lý do tại sao nó phân loại mỗi cổng theo cách đó. Điều này vô giá khi học và khi kết quả bất ngờ xuất hiện.

nmap -sS --reason 192.168.1.100

Đầu ra mẫu:

Starting Nmap 7.99 ( https://nmap.org ) at 2026-06-23 18:03 +0530
Nmap scan report for 192.168.1.100
Host is up, received localhost-response (0.000029s latency).
Not shown: 999 filtered tcp ports (no-response)
PORT   STATE SERVICE REASON
22/tcp open  ssh     syn-ack ttl 64
Nmap done: 1 IP address (1 host up) scanned in 4.75 seconds

Mẹo 5: Trực quan hóa kết quả với Zenmap

Nếu terminal không phải là sở thích của bạn, Zenmap là GUI chính thức của Nmap. Nó hiển thị bản đồ cấu trúc liên kết mạng, lưu lịch sử quét và giúp bạn xây dựng các lệnh một cách tương tác. Đây là một công cụ cầu nối tuyệt vời trong khi bạn làm quen với CLI. Tải miễn phí tại nmap.org/zenmap.

Mẹo 6: Tự động hóa quét với python-nmap

Đối với các kiểm tra định kỳ, thư viện python-nmap cho phép bạn chạy quét theo chương trình, phân tích đầu ra XML và kích hoạt cảnh báo khi các dịch vụ mới xuất hiện trên mạng.

pip install python-nmap
import nmap
nm = nmap.PortScanner()
nm.scan('192.168.1.0/24', arguments='-sV -T4 --top-ports 100')
for host in nm.all_hosts():
print(f"{host}: {nm[host].state()}")

Mẹo 7: Sử dụng chế độ verbose để phản hồi trực tiếp

Trên các lần quét chậm như UDP, thêm -v hoặc -vv để xem kết quả phát trực tiếp theo thời gian thực thay vì chờ quét hoàn tất.

nmap -sU -vv --top-ports 50 192.168.1.100

Mẹo 8: Chạy Nmap trong Docker để có môi trường sạch

Để kiểm tra biệt lập, chạy Nmap bên trong một container Kali Linux Docker. Điều này giữ các hoạt động quét của bạn tách biệt khỏi máy chủ và cung cấp cho bạn một môi trường sạch, có thể lặp lại mỗi lần.

docker run -it --rm kalilinux/kali-rolling nmap -sV TARGET_IP

Bài đọc liên quan: How to Install and Configure ProxyChains on Linux

12. Những điểm chính

  • nmap -sn là lệnh ping scan chính xác. Flag cũ -sP đã bị deprecated. Ngừng sử dụng nó.
  • nmap -sS (TCP SYN scan) là quét nhanh nhất và phổ biến nhất. Nó yêu cầu root.
  • nmap -A chạy phát hiện OS, phát hiện phiên bản, script và traceroute trong một lần.
  • nmap -T4 là timing template tốt nhất cho các mạng lab nhanh, đáng tin cậy.
  • Luôn lưu đầu ra với -oA để không bao giờ mất kết quả quét.
  • Không bao giờ quét các hệ thống bạn không sở hữu hoặc không có sự cho phép bằng văn bản để quét. Điều đó là bất hợp pháp.

13. Cheat Sheet lệnh Nmap

Tất cả các lệnh dưới đây đã được xác minh với hướng dẫn tham khảo Nmap chính thức. Lần cuối kiểm tra với Nmap 7.99.

Phát hiện host

Các loại quét cốt lõi

Chỉ định cổng

Thời gian và hiệu suất

Kỹ thuật TCP nâng cao

Script NSE

Đầu ra và mở rộng

14. Nmap có hợp pháp không? Sử dụng đạo đức và hợp pháp

Có, Nmap hợp pháp khi bạn sử dụng nó trên các hệ thống bạn sở hữu hoặc trên các hệ thống mà bạn có sự cho phép bằng văn bản rõ ràng từ chủ sở hữu. Quét các hệ thống mà không có sự cho phép là bất hợp pháp ở hầu hết các quốc gia và có thể dẫn đến các cáo buộc hình sự.

Các luật bạn cần biết

Quét mạng trái phép vi phạm luật gian lận máy tính ở hầu hết các khu vực pháp lý:

  • Ấn Độ - Đạo luật Công nghệ Thông tin 2000, Mục 43 và 66
  • Mỹ - Đạo luật Gian lận và Lạm dụng Máy tính (CFAA), 18 U.S.C. § 1030
  • EU - Chỉ thị về Tấn công vào Hệ thống Thông tin (2013/40/EU)
  • Anh - Đạo luật Lạm dụng Máy tính 1990
  • Úc - Đạo luật Bộ luật Hình sự 1995, Phần 10.7

Hình phạt bao gồm tiền phạt và tù giam. Quét một hệ thống mà không có sự cho phép không phải là một vùng xám. Nó là bất hợp pháp ở mỗi khu vực pháp lý này.

Cách sử dụng Nmap hợp pháp

  1. Chỉ quét các hệ thống bạn sở hữu - máy tính, bộ định tuyến và máy lab của riêng bạn.
  2. Nhận sự cho phép bằng văn bản trước khi quét bất kỳ mạng nào bạn không sở hữu.
  3. Sử dụng các nền tảng thực hành hợp pháp - TryHackMe, Hack The Box và VulnHub đều cung cấp các mục tiêu hợp pháp, được xây dựng có mục đích cho loại học tập này.
  4. Ghi lại các lần quét được ủy quyền - trong bất kỳ nhiệm vụ chuyên nghiệp nào, giữ một bản ghi bằng văn bản về phạm vi, ủy quyền và kết quả. Điều này bảo vệ bạn về mặt pháp lý.
  5. Tránh quét các hệ thống sản xuất mà không có sự chấp thuận - ngay cả các lần quét được ủy quyền cũng có thể làm gián đoạn các dịch vụ đang hoạt động nếu chạy bất cẩn.

Thực hành tốt nhất cho người học:

Xây dựng một lab tại nhà với hai hoặc ba máy ảo VirtualBox và thực hành mọi lệnh trong hướng dẫn này ở đó. Bạn sẽ học nhanh hơn, không gây hại và xây dựng các kỹ năng thực tế có thể chuyển trực tiếp vào công việc chuyên nghiệp.

15. Câu hỏi thường gặp (FAQ)

Hỏi: Nmap là gì và nó được sử dụng để làm gì?

Đáp: Nmap (Network Mapper) là một công cụ quét mạng mã nguồn mở miễn phí phát hiện host, cổng mở, dịch vụ đang chạy, phiên bản dịch vụ và hệ điều hành trên một mạng.

Quản trị viên hệ thống sử dụng nó để kiểm kê mạng và khắc phục sự cố. Chuyên gia bảo mật sử dụng nó để kiểm tra thâm nhập và kiểm tra bảo mật. Sinh viên sử dụng nó để học cách TCP/IP và các giao thức mạng hoạt động trong thực tế.

Hỏi: Nmap có miễn phí để tải xuống và sử dụng không?

Đáp: Có. Nmap hoàn toàn miễn phí và mã nguồn mở theo Giấy phép Nguồn Công cộng Nmap (NPSL), dựa trên GPLv2. Tải xuống tại nmap.org/download. Nó chạy trên Linux, macOS và Windows. Không có phiên bản trả phí. Nó hoàn toàn miễn phí.

Hỏi: Sự khác biệt giữa nmap -sn và nmap -sP là gì?

Đáp: Chúng làm cùng một việc: phát hiện host đang hoạt động trên mạng mà không quét cổng. Tuy nhiên, -sP đã bị deprecated và được thay thế bằng -sn trong tất cả các phiên bản Nmap hiện tại. Nó sẽ bị loại bỏ trong một bản phát hành trong tương lai. Luôn sử dụng -sn.

Hỏi: Lệnh quét Nmap nhanh nhất là gì?

Đáp: Quét thực tế nhanh nhất cho các cổng phổ biến là:

nmap -T4 --top-ports 100 TARGET

Đối với quét đầy đủ tất cả 65,535 cổng:

nmap -T4 -p- TARGET

Lưu ý rằng -T5 về mặt kỹ thuật nhanh hơn nhưng thường tạo ra kết quả không chính xác trên bất cứ thứ gì ngoại trừ các mạng đáng tin cậy nhất. -T4 cung cấp sự cân bằng tốt nhất giữa tốc độ và độ tin cậy cho sử dụng hàng ngày.

Hỏi: nmap -A làm gì?

Đáp: Flag -A chạy bốn thao tác trong một lệnh: phát hiện OS (-O), phát hiện dịch vụ và phiên bản (-sV), quét script NSE default (-sC) và traceroute. Đây là lần quét Nmap tất cả trong một kỹ lưỡng nhất, nhưng cũng chậm nhất và dễ bị phát hiện nhất. Chỉ sử dụng nó khi bạn muốn chi tiết đầy đủ và có ủy quyền rõ ràng để quét mục tiêu.

Hỏi: Tôi có cần quyền root hoặc quản trị viên để chạy Nmap không?

Đáp: Không phải lúc nào. nmap -sT (TCP Connect scan) và nmap -sn (phát hiện host) hoạt động mà không cần root. Tuy nhiên, -sS (SYN scan), -sU (UDP scan), -O (phát hiện OS) và các quét TCP nâng cao (-sX, -sF, -sN) đều yêu cầu quyền root hoặc quản trị viên vì chúng cần xây dựng các gói tin mạng thô trực tiếp.

Hỏi: Nmap Scripting Engine (NSE) là gì?

Đáp: NSE là framework scripting tích hợp của Nmap. Nó chạy các script Lua tự động hóa các tác vụ vượt xa quét cổng cơ bản, bao gồm lấy banner dịch vụ, phát hiện vuln, brute-force đăng nhập, kiểm tra chứng chỉ SSL và phát hiện phần mềm độc hại. Nmap đi kèm với 612 script NSE được tổ chức thành 15 danh mục. Danh sách đầy đủ tại nmap.org/nsedoc.

Hỏi: Làm thế nào để lưu kết quả quét Nmap vào một tệp?

Đáp: Sử dụng -oA filename để lưu kết quả ở cả ba định dạng cùng một lúc:

nmap -sV -T4 -oA my_scan 192.168.1.100
# Creates: my_scan.nmap  /  my_scan.xml  /  my_scan.gnmap

Hỏi: Sự khác biệt giữa nmap -sS và nmap -sT là gì?

Đáp: Cả hai đều quét cổng TCP. -sS (SYN scan) gửi một gói SYN và không bao giờ hoàn thành bắt tay đầy đủ. Nó nhanh hơn, để lại ít dấu vết log hơn và yêu cầu root. -sT (Connect scan) hoàn thành bắt tay ba bước đầy đủ bằng cách sử dụng ngăn xếp mạng của OS - không cần root, nhưng chậm hơn và dễ bị ghi log bởi mục tiêu hơn.

Hỏi: nmap -sA làm gì?

Đáp: ACK scan (-sA) không phát hiện cổng mở. Thay vào đó, nó xác định liệu một cổng có bị lọc hay không bị lọc bởi tường lửa. Nmap gửi các gói ACK; phản hồi RST có nghĩa là cổng không bị lọc (có thể truy cập), trong khi không có phản hồi hoặc thông báo ICMP unreachable có nghĩa là cổng bị lọc (bị chặn). Kỹ sư bảo mật sử dụng điều này để lập bản đồ các bộ quy tắc tường lửa.

Hỏi: Nmap có thể phát hiện vulnerabilities không?

Đáp: Có, thông qua NSE. Danh mục script vuln kiểm tra các CVE đã biết và các cấu hình sai bảo mật phổ biến. Ví dụ, --script smb-vuln-ms17-010 kiểm tra lỗ hổng EternalBlue vulnerability. Tuy nhiên, Nmap chủ yếu là một máy quét, không phải là một công cụ exploitation. Đối với các quy trình quản lý vulnerability đầy đủ, nó thường được kết hợp với các công cụ như OpenVAS, Nessus hoặc Metasploit.

Hỏi: Zenmap là gì?

Đáp: Zenmap là giao diện người dùng đồ họa chính thức của Nmap. Nó cung cấp bản đồ cấu trúc liên kết mạng trực quan, lịch sử quét, trình xây dựng lệnh dựa trên hồ sơ và một cách dễ dàng để so sánh kết quả giữa các lần quét. Nó lý tưởng cho người dùng mới làm quen với Nmap hoặc thích quy trình làm việc trực quan. Tải xuống tại nmap.org/zenmap.

15. Kết luận và các bước tiếp theo

Nmap là một trong những công cụ mà phần thưởng cho mỗi giờ bạn đầu tư vào việc học nó. Các flag có thể trông choáng ngợp lúc đầu, nhưng logic đằng sau chúng là nhất quán.

Một khi bạn hiểu tại sao mỗi loại quét hoạt động theo cách của nó, thay vì chỉ ghi nhớ các lệnh, toàn bộ công cụ sẽ trở nên rõ ràng.

Để tóm tắt các điểm quan trọng nhất từ hướng dẫn này:

  • Sử dụng -sn để phát hiện host. Flag cũ -sP đã bị deprecated.
  • Sử dụng -sS làm quét cổng chính khi chạy với quyền root.
  • Kết hợp -sV -sC -T4 -oA cho một lần quét đa năng hiệu quả, được ghi chép đầy đủ.
  • Thêm --reason vào bất kỳ lần quét nào trong khi bạn đang học để hiểu tại sao mỗi cổng nhận được phân loại của nó.
  • Không bao giờ quét mà không có sự cho phép. Điều đó là bất hợp pháp.

Nơi để đi tiếp theo

Bước tiếp theo tốt nhất duy nhất: Thiết lập hai máy ảo VirtualBox, một chạy Kali Linux làm máy quét của bạn, một chạy Metasploitable 2 hoặc DVWA làm mục tiêu của bạn. Sau đó thực hành mọi lệnh trong hướng dẫn này một cách thực hành. Sự kết hợp giữa đọc và làm đó là cách các kỹ năng thực sự hình thành.

Nguồn và đọc thêm: