Nmap là gì: hướng dẫn quét mạng và phát hiện lỗ hổng bảo mật

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.

giao diện chính Nmap hiển thị các cột Scan Type, Scanned Ports và Options khi quét dải IP

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.

sơ đồ luồng quét cổng: gói SYN của máy quét, phản hồi SYN-ACK hoặc RST từ máy chủ

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 định
  • discovery: phát hiện thêm dịch vụ, share SMB, SNMP community string
  • exploit: 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.

kết quả quét cổng của Nmap dạng bảng với cột Port, Protocol, State, Service và Version

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.

Tôi là một lập trình viên IOS. Code chính là IOS nhưng thỉnnh thoảng vẫn đá sang Android hoặc web. Mặc dù không quá thông thạo nhưng tôi sẽ chia sẻ những kiến thức mà mình đã tìm hiểu, áp dụng qua.

Bài viết liên quan

Cách thay ổ cứng HDD bằng SSD: hướng dẫn cài đặt chi tiết

Cách thay ổ cứng HDD bằng SSD: hướng dẫn cài đặt chi tiết Thay ổ cứng HDD bằng SSD là cách nâng cấp máy tính hiệu quả nhất, giúp thời…

Xem thêm

KiCad là gì: bộ công cụ thiết kế mạch in mã nguồn mở miễn phí

KiCad là gì: bộ công cụ thiết kế mạch in mã nguồn mở miễn phí KiCad là gì? Đây là một bộ công cụ phần mềm mã nguồn mở dành…

Xem thêm

Argon2 là gì: thuật toán băm mật khẩu chống GPU và ASIC

Argon2 là thuật toán băm mật khẩu được chọn làm chiến thắng cuộc thi Password Hashing Competition (PHC) vào ngày 20/7/2015, sau khi 24 mô hình tranh tấn bị loại…

Xem thêm
0 0 đánh giá
Article Rating
Theo dõi
Thông báo của
guest
0 Comments
Cũ nhất
Mới nhất Được bỏ phiếu nhiều nhất