
Nmap là gì: quét mạng từ dòng lệnh
Nmap (Network Mapper) là công cụ quét mạng mã nguồn mở dùng để phát hiện thiết bị, dịch vụ và lỗ hổng bảo mật trên mạng máy tính. Nmap hoạt động bằng cách gửi các gói tin được thiết kế đặc biệt đến các cổng mục tiêu và phân tích phản hồi để xác định trạng thái cổng, hệ điều hành và phiên bản dịch vụ đang chạy.

Nguyên lý hoạt động
Nmap thực hiện quét theo nhiều kỹ thuật khác nhau tùy thuộc vào mục tiêu và mức độ ẩn danh mong muốn. Kỹ thuật phổ biến nhất là quét TCP SYN (half-open scan) nơi Nmap gửi gói SYN và chờ phản hồi SYN-ACK (cổng mở) hoặc RST (cổng đóng) mà không hoàn thành bắt tay ba bước, giúp giảm khả năng bị ghi log bởi hệ thống đích.
Các phương thức quét chính:
- TCP SYN scan (-sS): mặc định, nhanh, ít bị phát hiện, cần quyền root
- TCP Connect scan (-sT): hoàn thành bắt tay TCP, chậm hơn, không cần root
- UDP scan (-sU): quét dịch vụ UDP như DNS, DHCP, SNMP
- FIN/NULL/Xmas scan (-sF/-sN/-sX): các biến thể quét lén dùng gói tin bất thường để vượt tường lửa stateless
- Ping sweep (-sn): chỉ dò xem host nào đang bật, không quét cổng
Ba trạng thái cổng mà Nmap phân biệt được: open (dịch vụ đang lắng nghe), filtered (tường lửa chặn, không trả lời) và closed (host trả về RST nghĩa là không có dịch vụ). Khi kết quả là filtered chỉ trên một số cổng, đó là dấu hiệu tường lửa đang lọc thay vì máy đã tắt.

Phát hiện hệ điều hành và phiên bản dịch vụ
Nmap sử dụng cơ sở dữ liệu dấu vân tay hệ điều hành để nhận diện hệ thống từ các đặc điểm phản hồi TCP/IP độc đáo như giá trị TTL, kích thước cửa sổ TCP và hành vi khi gửi gói bất thường. Tương tự, cờ -sV kích hoạt Version Detection để truy vấn trực tiếp dịch vụ trên cổng mở (HTTP, SSH, MySQL…) và trả về tên phần mềm cùng số phiên bản.
| Cờ | Chức năng | Ví dụ |
|---|---|---|
-O |
OS detection | nmap -O 192.168.1.1 |
-sV |
Version detection | nmap -sV 192.168.1.0/24 |
-A |
Aggressive scan: OS + version + script + traceroute | nmap -A target |
-p |
Chỉ định cổng | nmap -p 22,80,443 target |
-Pn |
Bỏ qua bước ping, coi host luôn “up” | nmap -Pn -p 80 host |
Nmap Scripting Engine (NSE)
NSE cho phép mở rộng Nmap bằng các kịch bản Lua để tự động hóa phát hiện lỗ hổng, brute-force và enumeration dịch vụ cụ thể. Các danh mục script quan trọng:
vuln: kiểm tra các CVE phổ biến (EternalBlue, Heartbleed, Log4Shell)auth: kiểm tra xác thực yếu, mật khẩu mặc địnhdiscovery: phát hiện thêm dịch vụ, share SMB, SNMP community stringexploit: khai thác thực tế, cần thận trọng vì có thể làm sập dịch vụ
Ví dụ chạy nhóm script vuln trên dải mạng:
nmap --script vuln 192.168.1.0/24 -oN vuln_scan.txt
Khi phát hiện dịch vụ, hãy dùng --script kèm tên dịch vụ để giới hạn phạm vi, ví dụ --script http-title,http-headers chỉ quét HTTP. Cách này nhanh hơn nhiều so với chạy toàn bộ danh mục vuln trên mọi cổng.
Tốc độ quét và tài nguyên
Cờ -T điều khiển template thời gian với năm mức từ -T0 (paranoid, chậm nhất, khó phát hiện) đến -T5 (nhanh nhất, dễ bị chặn). Trên mạng LAN tốc độ cao, -T4 là mức hợp lý; trên internet, -T3 giúp giảm tải và tránh làm chậm dịch vụ đích.
Ba tối ưu đáng nhớ: -n bỏ qua DNS để tăng tốc đáng kể, --min-rate đặt tối thiểu gói mỗi giây, và --max-retries giới hạn số lần thử lại. Với dải mạng lớn như lớp B, quét toàn bộ 65.534 địa chỉ với cổng đầy đủ sẽ mất nhiều giờ, nên thực tế người quản trị dùng ping sweep trước để thu hẹp danh sách host sống.
Xuất kết quả và tích hợp
Nmap hỗ trợ nhiều định dạng xuất để tích hợp với pipeline DevSecOps:
-oN(normal): định dạng text dễ đọc-oX(XML): parse bằng script, phổ biến trong công cụ bảo mật-oG(grepable): lọc nhanh bằng grep-oJ(JSON): mới từ Nmap 7.90, thuận tiện cho xử lý hiện đại-oA: ghi đồng thời cả ba định dạng phổ biến
Đầu vào cũng linh hoạt: nạp danh sách mục tiêu từ file với -iL, quét theo dải CIDR với 192.168.1.0/24, quét ngẫu nhiên với -iR 100, hay bỏ qua danh sách loại trừ với --excludefile.

Thực hành an toàn và pháp lý
Quét mạng trái phép vi phạm luật an ninh mạng tại hầu hết các quốc gia, kể cả khi mục tiêu là hệ thống của chính bạn mà bạn chưa được phép. Chỉ quét hệ thống bạn sở hữu hoặc có sự cho phép bằng văn bản. Trong môi trường doanh nghiệp, Nmap thường chạy trong quy trình đánh giá lỗ hổng có phạm vi rõ ràng, được duyệt bởi bộ phận bảo mật và pháp lý.
Ba nguyên tắc an toàn khi dùng Nmap: bắt đầu với quét nhẹ chỉ đọc (-sn rồi -sT) trước khi dùng script tấn công; tránh chạy -sU trên internet vì tốc độ quét UDP cực chậm và gây tải nặng cho mạng đích; và luôn lưu lại kết quả thô để làm bằng chứng đối chiếu.
Nguồn tham khảo: Nmap Reference Guide chính thức, trang chủ Nmap, bài tổng quan về Nmap trên Wikipedia.
