Blog Details

Hướng dẫn thực hành 30 lệnh Nmap phổ biến

I. Giới thiệu Nmap trong kiểm thử xâm nhập

Nmap, viết tắt của Network Mapper, là một công cụ dòng lệnh mã nguồn mở miễn phí, được sử dụng rộng rãi để khám phá mạng, kiểm toán bảo mật và trinh sát. Công cụ này giúp xác định các máy chủ đang hoạt động, các cổng mở, các dịch vụ đang chạy, hệ điều hành và các lỗ hổng tiềm ẩn trên một mạng máy tính. Trong bối cảnh kiểm thử xâm nhập, Nmap đóng vai trò nền tảng trong giai đoạn trinh sát ban đầu, cung cấp những thông tin quan trọng về bề mặt tấn công của mục tiêu. Nó hỗ trợ lập bản đồ cơ sở hạ tầng mạng, xác định các điểm vào tiềm năng và thu thập thông tin tình báo cho các giai đoạn khai thác tiếp theo.

Việc lựa chọn scanme.nmap.org làm mục tiêu cho các ví dụ trong tài liệu này có ý nghĩa sâu sắc. scanme.nmap.org là mục tiêu thử nghiệm chính thức của Nmap, được thiết kế đặc biệt để người dùng thực hành các lệnh Nmap một cách hợp pháp và có đạo đức. Nó cung cấp một môi trường an toàn, có kiểm soát để thử nghiệm các loại quét khác nhau mà không gây hại hoặc vi phạm pháp luật. Việc sử dụng mục tiêu được cho phép này không chỉ đơn thuần là minh họa các lệnh; nó còn là một phần của việc giáo dục về các thực hành quét có trách nhiệm. Đối với bất kỳ chuyên gia kiểm thử xâm nhập nào, việc hiểu và tuân thủ các nguyên tắc đạo đức là tối quan trọng, vì việc quét trái phép có thể dẫn đến hậu quả pháp lý và thiệt hại về danh tiếng nghiêm trọng. Do đó, scanme.nmap.org không chỉ là một mục tiêu mà còn là một công cụ sư phạm cho việc thực hành tấn công có đạo đức.

Điều quan trọng là phải nhấn mạnh tầm quan trọng hàng đầu của việc có được sự cho phép bằng văn bản rõ ràng trước khi quét bất kỳ mạng nào không thuộc sở hữu của người dùng. Việc quét trái phép là bất hợp pháp và phi đạo đức. Ngoài ra, cần lưu ý đến việc giảm thiểu sự gián đoạn và thiệt hại, sử dụng tốc độ quét phù hợp và tôn trọng quyền riêng tư của dữ liệu.

II. Cú pháp Nmap cơ bản và chỉ định mục tiêu

Cấu trúc lệnh cơ bản của Nmap tuân theo định dạng nmap [Loại quét] {Mục tiêu}. Trong đó,

  • [Loại quét] xác định phương pháp quét (ví dụ: TCP, SYN) , “ bao gồm các tham số bổ sung như phạm vi cổng hoặc tùy chọn thời gian , và
  • {Mục tiêu} có thể là địa chỉ IP, dải IP, khối CIDR hoặc tên miền.

Mặc dù scanme.nmap.org là một máy chủ duy nhất, việc hiểu các định dạng mục tiêu khác nhau là rất quan trọng đối với các chuyên gia kiểm thử xâm nhập, vì nó thể hiện khả năng mở rộng của Nmap. Nmap có thể được điều chỉnh từ đánh giá một máy chủ đơn lẻ đến quét các mạng doanh nghiệp lớn. Khả năng xác định phạm vi chính xác (ví dụ: sử dụng tùy chọn loại trừ) là rất quan trọng để tuân thủ các yêu cầu đạo đức và pháp lý, đảm bảo rằng chỉ các hệ thống được ủy quyền mới được quét.

Lệnh 1: Quét cơ bản mặc định

Lệnh: nmap scanme.nmap.org

Mục đích: Thực hiện quét mặc định (quét SYN nếu là người dùng root, quét Connect nếu là người dùng tiêu chuẩn) trên 1000 cổng phổ biến nhất, với thứ tự ngẫu nhiên và thời gian bình thường (-T3). Đây là điểm khởi đầu cho hầu hết các hoạt động trinh sát.

Ví dụ:

nmap scanme.nmap.org

III. Các kỹ thuật khám phá máy chủ

Khám phá máy chủ, còn được gọi là “quét ping”, là quá trình xác định các máy chủ đang hoạt động trên một mạng trước khi tiến hành quét cổng. Điều này giúp tiết kiệm thời gian bằng cách tránh quét các hệ thống ngoại tuyến.

Lệnh 2: Quét danh sách (Không quét)

Lệnh: nmap -sL scanme.nmap.org

Mục đích: Liệt kê các mục tiêu mà không gửi bất kỳ gói tin nào. Lệnh này thực hiện phân giải DNS ngược để tìm tên máy chủ. Nó hữu ích để xác minh danh sách mục tiêu hoặc để liệt kê ban đầu mà không gây tác động mạng nào.

Ví dụ:

nmap -sL scanme.nmap.org

Lệnh 3: Quét Ping (Chỉ khám phá máy chủ)

Lệnh: nmap -sn scanme.nmap.org

Mục đích: Tắt tính năng quét cổng, chỉ thực hiện khám phá máy chủ. Lệnh này xác định xem một máy chủ có trực tuyến hay không bằng cách sử dụng các thăm dò khác nhau (mặc định là ICMP echo, TCP SYN đến cổng 443, TCP ACK đến cổng 80, UDP đến cổng 40125). Đây là lệnh cần thiết để nhanh chóng xác định các máy chủ đang hoạt động trong một phân đoạn mạng.

Ví dụ:

nmap -sn scanme.nmap.org

Lệnh 4: Tắt khám phá máy chủ (Chỉ quét cổng)

Lệnh: nmap -Pn scanme.nmap.org

Mục đích: Bỏ qua hoàn toàn giai đoạn khám phá máy chủ và giả định rằng tất cả các mục tiêu đều trực tuyến. Lệnh này hữu ích khi tường lửa chặn các thăm dò ping hoặc khi người dùng chắc chắn rằng mục tiêu đang hoạt động.

Ví dụ:

nmap -Pn scanme.nmap.org

Sự tồn tại của -sn (chỉ khám phá máy chủ) và -Pn (không khám phá máy chủ) làm nổi bật một thách thức phổ biến trong trinh sát: tường lửa chặn ICMP hoặc các thăm dò TCP/UDP phổ biến được sử dụng để khám phá máy chủ. Nếu một quét ping đơn giản (-sn) thất bại, một chuyên gia kiểm thử xâm nhập có thể cho rằng máy chủ đã tắt. Tuy nhiên, -Pn buộc Nmap phải tiếp tục quét cổng, cho thấy rằng máy chủ có thể đang hoạt động nhưng chỉ đơn giản là lọc các gói khám phá. Điều này ngụ ý một cách tiếp cận phân lớp để khám phá máy chủ, trong đó những thất bại ban đầu không nhất thiết có nghĩa là mục tiêu đã chết, mà là cần các kỹ thuật tích cực hơn hoặc né tránh hơn.

Lệnh 5: Khám phá TCP SYN trên các cổng cụ thể

Lệnh: nmap -PS22,80,443 scanme.nmap.org

Mục đích: Gửi các gói TCP SYN thô đến các cổng đã chỉ định (ví dụ: 22, 80, 443). Nếu nhận được SYN/ACK, máy chủ đang hoạt động. Đây là một cách tiếp cận có mục tiêu hơn và thường bí mật hơn để xác định tình trạng hoạt động của máy chủ, đặc biệt khi các ping ICMP chung bị chặn.

Ví dụ:

nmap -PS22,80,443 scanme.nmap.org

Lệnh 6: Khám phá UDP trên cổng cụ thể

Lệnh: nmap -PU53 scanme.nmap.org

Mục đích: Gửi các gói UDP đến một cổng đã chỉ định (ví dụ: 53 cho DNS). Nếu không nhận được lỗi ICMP cổng không thể truy cập (loại 3, mã 3), máy chủ có thể đang hoạt động và cổng có thể mở hoặc bị lọc. Hữu ích để khám phá các máy chủ có thể chỉ phản hồi lưu lượng UDP.

Ví dụ:

nmap -PU53 scanme.nmap.org

Lệnh 7: Không bao giờ phân giải DNS

Lệnh: nmap -n scanme.nmap.org

Mục đích: Tắt tính năng phân giải DNS ngược. Điều này có thể tăng tốc đáng kể các lần quét, đặc biệt đối với các mạng lớn hoặc khi máy chủ DNS chậm hoặc không đáng tin cậy. Lệnh này xuất trực tiếp địa chỉ IP.

Ví dụ:

nmap -n scanme.nmap.org

Để tổng hợp các tùy chọn khám phá máy chủ, bảng sau cung cấp một cái nhìn tổng quan nhanh về các lệnh, mục đích và các cân nhắc chính:

Tùy chọn Mục đích Ví dụ lệnh (scanme.nmap.org) Cân nhắc chính
-sL Liệt kê mục tiêu, không quét, phân giải DNS ngược nmap -sL scanme.nmap.org Xác minh danh sách, không tác động mạng
-sn Chỉ khám phá máy chủ, không quét cổng nmap -sn scanme.nmap.org Nhanh chóng xác định máy chủ đang hoạt động
-Pn Tắt khám phá máy chủ, quét tất cả mục tiêu nmap -Pn scanme.nmap.org Hữu ích khi tường lửa chặn ping
-PS Khám phá TCP SYN trên các cổng cụ thể nmap -PS22,80,443 scanme.nmap.org Phát hiện máy chủ bí mật hơn, vượt qua tường lửa
-PU Khám phá UDP trên cổng cụ thể nmap -PU53 scanme.nmap.org Phát hiện máy chủ phản hồi UDP
-n Không bao giờ phân giải DNS nmap -n scanme.nmap.org Tăng tốc quét, xuất trực tiếp IP

IV. Các nguyên tắc cơ bản về quét cổng

Quét cổng là quá trình thăm dò một dải cổng trên máy chủ mục tiêu để xác định trạng thái của chúng (mở, đóng, bị lọc).

Hiểu các trạng thái cổng:

  • Mở (Open): Một dịch vụ đang lắng nghe tích cực trên cổng. Đây là mục tiêu chính để liệt kê thêm và khai thác tiềm năng.
  • Đóng (Closed): Không có dịch vụ nào lắng nghe trên cổng đó, nhưng máy chủ có thể truy cập được.
  • Bị lọc (Filtered): Tường lửa, IDS/IPS hoặc thiết bị bảo mật khác đang chặn các thăm dò, ngăn Nmap xác định xem cổng có mở hay đóng. Điều này cho thấy một kiểm soát bảo mật đang được áp dụng.
  • Mở|Bị lọc (Open|Filtered): Nmap không thể xác định xem cổng có mở hay bị lọc vì không nhận được phản hồi. Điều này thường xảy ra với các quét UDP hoặc khi tường lửa nghiêm ngặt loại bỏ gói tin.
  • Không bị lọc (Unfiltered): Được thấy trong các quét ACK, có nghĩa là cổng có thể truy cập được, nhưng không biết nó mở hay đóng.

Các trạng thái cổng khác nhau, đặc biệt là “bị lọc” và “mở|bị lọc”, không chỉ là kết quả kỹ thuật mà còn là các chỉ số trực tiếp về tình hình bảo mật mạng. Một số lượng lớn các cổng bị lọc ngay lập tức cho thấy sự hiện diện của tường lửa hoặc thiết bị lọc gói khác. Loại phản hồi (hoặc thiếu phản hồi) thậm chí có thể gợi ý về các quy tắc của tường lửa (ví dụ: stateful so với stateless). Điều này chuyển từ việc chỉ đơn thuần xác định trạng thái cổng sang việc suy ra sự hiện diện và hành vi của các cơ chế phòng thủ, từ đó định hướng các chiến lược né tránh tiếp theo.

Lệnh 8: Quét SYN (Quét tàng hình)

Lệnh: nmap -sS scanme.nmap.org

Mục đích: Là loại quét mặc định cho người dùng root. Lệnh này gửi một gói SYN và, khi nhận được SYN/ACK, ngay lập tức gửi một gói RST, ngăn chặn quá trình bắt tay ba bước TCP hoàn chỉnh. Kỹ thuật “half-open” này ít có khả năng bị hệ thống mục tiêu ghi nhật ký hơn, mang lại một mức độ tàng hình nhất định.

Ví dụ:

nmap -sS scanme.nmap.org

Lệnh 9: Quét kết nối TCP

Lệnh: nmap -sT scanme.nmap.org

Mục đích: Là loại quét mặc định cho người dùng không phải root. Lệnh này thực hiện quá trình bắt tay ba bước TCP hoàn chỉnh. Mặc dù ít tàng hình hơn (có nhiều khả năng bị ghi nhật ký hơn), nhưng nó đáng tin cậy và hoạt động ngay cả khi không có đặc quyền gói tin thô.

Ví dụ:

nmap -sT scanme.nmap.org

Lệnh 10: Quét UDP

Lệnh: nmap -sU scanme.nmap.org

Mục đích: Được sử dụng để khám phá các cổng UDP mở. Vì UDP là giao thức không kết nối, Nmap gửi các gói UDP và chờ thông báo ICMP cổng không thể truy cập (cho biết cổng đóng) hoặc không có phản hồi (cho biết cổng mở hoặc bị lọc). Quét UDP thường chậm hơn.

Ví dụ:

nmap -sU scanme.nmap.org

Lệnh 11: Quét TCP ACK (Lập bản đồ quy tắc tường lửa)

Lệnh: nmap -sA scanme.nmap.org

Mục đích: Chỉ gửi các gói ACK. Lệnh này không xác định các cổng mở mà giúp lập bản đồ các quy tắc tường lửa. Một cổng không bị lọc sẽ trả về gói RST, trong khi một cổng bị lọc sẽ loại bỏ gói tin hoặc trả về lỗi ICMP không thể truy cập. Hữu ích để hiểu cách lọc gói tin.

Ví dụ:

nmap -sA scanme.nmap.org

Lệnh 12: Quét cửa sổ TCP

Lệnh: nmap -sW scanme.nmap.org

Mục đích: Tương tự như quét ACK, nhưng khai thác các biến thể kích thước cửa sổ TCP trong các gói RST. Một số hệ thống phản hồi với kích thước cửa sổ khác 0 đối với các gói RST từ các cổng mở, cung cấp thông tin bổ sung ngoài các quét tiêu chuẩn, đặc biệt hữu ích để phân biệt cổng mở so với cổng đóng phía sau tường lửa.

Ví dụ:

nmap -sW scanme.nmap.org

Lệnh 13: Quét TCP Null

Lệnh: nmap -sN scanme.nmap.org

Mục đích: Gửi các gói TCP không có cờ nào được đặt. Theo RFC 793, nếu một cổng bị đóng, một RST sẽ được gửi. Nếu mở, không có phản hồi. Điều này có thể vượt qua một số tường lửa không trạng thái.

Ví dụ:

nmap -sN scanme.nmap.org

Bảng sau đây tóm tắt các loại quét cổng chính của Nmap và các đặc điểm của chúng, giúp các chuyên gia kiểm thử xâm nhập lựa chọn phương pháp phù hợp nhất dựa trên mục tiêu và môi trường:

Loại quét Tùy chọn Mục đích Mức độ tàng hình Rủi ro phát hiện Ví dụ lệnh (scanme.nmap.org)
SYN Scan (Stealth) -sS Phát hiện cổng mở mà không hoàn thành bắt tay 3 bước Cao Thấp nmap -sS scanme.nmap.org
TCP Connect Scan -sT Phát hiện cổng mở bằng cách hoàn thành bắt tay 3 bước Thấp Cao nmap -sT scanme.nmap.org
UDP Scan -sU Phát hiện cổng UDP mở Trung bình Trung bình nmap -sU scanme.nmap.org
TCP ACK Scan -sA Lập bản đồ quy tắc tường lửa, không xác định cổng mở/đóng Trung bình Trung bình nmap -sA scanme.nmap.org
TCP Window Scan -sW Tương tự ACK, sử dụng kích thước cửa sổ để xác định trạng thái cổng Trung bình Trung bình nmap -sW scanme.nmap.org
TCP Null Scan -sN Phát hiện cổng mở bằng gói không cờ Cao Thấp nmap -sN scanme.nmap.org

V. Chỉ định cổng

Ngoài các loại quét, Nmap cung cấp khả năng kiểm soát chi tiết về các cổng cần quét.

Lệnh 14: Quét một cổng duy nhất

Lệnh: nmap -p 80 scanme.nmap.org

Mục đích: Chỉ quét một cổng cụ thể. Điều này rất cần thiết khi biết một dịch vụ có khả năng chạy trên một cổng cụ thể hoặc khi tập trung vào một phạm vi rất hẹp.

Ví dụ:

nmap -p 80 scanme.nmap.org

Lệnh 15: Quét một dải cổng

Lệnh: nmap -p 21-100 scanme.nmap.org

Mục đích: Quét tất cả các cổng trong một dải số đã chỉ định. Hữu ích để nhắm mục tiêu các cổng dịch vụ phổ biến hoặc các dải cổng ứng dụng tùy chỉnh.

Ví dụ:

nmap -p 21-100 scanme.nmap.org

Lệnh 16: Quét nhiều cổng TCP và UDP

Lệnh: nmap -p U:53,T:21-25,80 scanme.nmap.org

Mục đích: Cho phép quét kết hợp các cổng TCP và UDP trong một lệnh duy nhất. U: chỉ định UDP, T: chỉ định TCP (hoặc mặc định nếu không được chỉ định). Điều này rất hiệu quả cho việc bao phủ cổng toàn diện.

Ví dụ:

nmap -p U:53,T:21-25,80 scanme.nmap.org

Lệnh 17: Quét tất cả 65535 cổng

Lệnh: nmap -p- scanme.nmap.org

Mục đích: Quét tất cả các cổng có thể từ 1 đến 65535. Đây là một quét rất kỹ lưỡng nhưng tốn thời gian. Cần thiết để tìm các dịch vụ không rõ ràng hoặc không theo tiêu chuẩn.

Ví dụ:

nmap -p- scanme.nmap.org

Khả năng quét tất cả 65535 cổng (-p-) tương phản rõ rệt với các quét nhanh (-F) hoặc quét các cổng hàng đầu (–top-ports). Điều này làm nổi bật một sự đánh đổi quan trọng trong kiểm thử xâm nhập: tính toàn diện so với hiệu quả. Mặc dù quét tất cả các cổng mang lại tiềm năng khám phá tối đa (tìm các dịch vụ ẩn hoặc cửa hậu trên các cổng bất thường ), nó làm tăng đáng kể thời gian quét và rủi ro bị phát hiện. Các chuyên gia kiểm thử xâm nhập phải lựa chọn một cách chiến lược dựa trên phạm vi đánh giá, ràng buộc thời gian và yêu cầu tàng hình. Quá trình ra quyết định này là một kỹ năng cốt lõi trong trinh sát hiệu quả.

Lệnh 18: Quét cổng nhanh (100 cổng hàng đầu)

Lệnh: nmap -F scanme.nmap.org

Mục đích: Quét 100 cổng phổ biến nhất. Đây là một cách nhanh chóng để có được cái nhìn tổng quan ban đầu về các dịch vụ phổ biến mà không cần quét toàn bộ.

Ví dụ:

nmap -F scanme.nmap.org

Lệnh 19: Quét X cổng hàng đầu

Lệnh: nmap --top-ports 1000 scanme.nmap.org

Mục đích: Quét một số lượng cổng phổ biến nhất đã chỉ định (ví dụ: 1000 cổng hàng đầu, đây là mặc định của Nmap). Đây là sự cân bằng tốt giữa tốc độ và phạm vi bao phủ cho nhiều đánh giá.

Ví dụ:

nmap --top-ports 1000 scanme.nmap.org

VI. Phát hiện dịch vụ và hệ điều hành

Khi các cổng mở đã được xác định, việc xác định các dịch vụ và hệ điều hành đang chạy trên chúng là rất quan trọng để đánh giá lỗ hổng.

Lệnh 20: Phát hiện phiên bản dịch vụ

Lệnh: nmap -sV scanme.nmap.org

Mục đích: Thăm dò các cổng mở để xác định dịch vụ chính xác và số phiên bản của nó (ví dụ: Apache HTTPD 2.4.x, OpenSSH 7.x). Thông tin này rất quan trọng để xác định các lỗ hổng đã biết liên quan đến các phiên bản phần mềm cụ thể.

Ví dụ:

nmap -sV scanme.nmap.org

Lệnh 21: Phát hiện hệ điều hành

Lệnh: nmap -O scanme.nmap.org

Mục đích: Cố gắng xác định hệ điều hành của mục tiêu bằng cách sử dụng kỹ thuật lấy dấu vân tay ngăn xếp TCP/IP. Nmap gửi một loạt gói tin và phân tích phản hồi để suy ra hệ điều hành (ví dụ: Linux, Windows Server). Điều này giúp điều chỉnh các cuộc tấn công tiếp theo.

Ví dụ:

nmap -O scanme.nmap.org

Lệnh 22: Quét tích cực (Hệ điều hành, Dịch vụ, Script, Traceroute)

Lệnh: nmap -A scanme.nmap.org

Mục đích: Một quét toàn diện cho phép phát hiện hệ điều hành (-O), phát hiện phiên bản dịch vụ (-sV), quét script NSE mặc định (–script default) và traceroute. Điều này cung cấp một tập hợp thông tin phong phú nhưng xâm nhập hơn và chậm hơn.

Ví dụ:

nmap -A scanme.nmap.org

Lệnh -A kết hợp một số kỹ thuật phát hiện mạnh mẽ. Mặc dù nó cung cấp nhiều thông tin (hệ điều hành, phiên bản dịch vụ chính xác, lỗ hổng dựa trên script), nhưng điều này phải trả giá bằng việc tăng lưu lượng mạng và khả năng bị phát hiện cao hơn. Điều này củng cố nhu cầu của chuyên gia kiểm thử xâm nhập trong việc cân bằng độ sâu của việc thu thập thông tin với rủi ro kích hoạt cảnh báo bảo mật. Trong giai đoạn đầu của một đánh giá tàng hình, -A có thể bị tránh, nhưng trong một quét nội bộ được ủy quyền hoặc sau khi khai thác, giá trị của nó vượt trội hơn rủi ro.

VII. Tận dụng Công cụ Scripting Nmap (NSE)

Công cụ Scripting Nmap (NSE) là một tính năng mạnh mẽ cho phép người dùng viết và chia sẻ các script để tự động hóa nhiều tác vụ mạng khác nhau, từ phát hiện lỗ hổng đến khám phá nâng cao.

Lệnh 23: Chạy một Script NSE cụ thể

Lệnh: nmap --script http-title scanme.nmap.org

Mục đích: Thực thi một script NSE được đặt tên duy nhất. Script http-title cố gắng truy xuất tiêu đề của các trang web, cung cấp ngữ cảnh nhanh chóng cho các dịch vụ HTTP.

Ví dụ:

nmap --script http-title scanme.nmap.org

Lệnh 24: Chạy các Script theo danh mục (ví dụ: Script lỗ hổng)

Lệnh: nmap --script vuln scanme.nmap.org

Mục đích: Thực thi tất cả các script thuộc một danh mục đã chỉ định (ví dụ: vuln để kiểm tra các lỗ hổng đã biết, default, safe, discovery, intrusive). Điều này tự động hóa quá trình kiểm tra các điểm yếu phổ biến.

Ví dụ:

nmap --script vuln scanme.nmap.org

Các script NSE, đặc biệt là những script trong danh mục vuln, biến Nmap từ một công cụ quét đơn thuần thành một công cụ đánh giá lỗ hổng sơ bộ. Thay vì kiểm tra thủ công từng dịch vụ được phát hiện dựa trên cơ sở dữ liệu lỗ hổng, NSE tự động hóa quá trình này. Điều này hợp lý hóa đáng kể giai đoạn trinh sát, cho phép các chuyên gia kiểm thử xâm nhập nhanh chóng xác định các lỗ hổng dễ khai thác hoặc các lỗ hổng nghiêm trọng (ví dụ: Heartbleed ; SQL injection ) có thể cần được chú ý ngay lập tức, từ đó đẩy nhanh quy trình kiểm thử xâm nhập tổng thể.

Lệnh 25: Chạy các Script với đối số (ví dụ: HTTP User Agent)

Lệnh: nmap -p80 --script http-methods --script-args http.useragent="Mozilla 5" scanme.nmap.org

Mục đích: Một số script chấp nhận các đối số để sửa đổi hành vi của chúng. Ví dụ này đặt một chuỗi HTTP User-Agent tùy chỉnh, có thể giúp vượt qua các quy tắc WAF/IDS cơ bản chặn các user agent Nmap mặc định.

Ví dụ:

nmap -p80 --script http-methods --script-args http.useragent="Mozilla 5" scanme.nmap.org

Khả năng truyền đối số cho các script NSE (như http.useragent) thể hiện một mức độ linh hoạt sâu hơn của Nmap. Nó không chỉ là việc chạy các kiểm tra được xác định trước mà còn là việc điều chỉnh các kiểm tra đó cho các biện pháp phòng thủ mục tiêu cụ thể. Điều này chuyển từ quét chung chung sang trinh sát thông minh hơn, thích ứng hơn, nơi chuyên gia kiểm thử xâm nhập có thể sửa đổi “dấu vân tay” của mình để tránh bị phát hiện, làm mờ ranh giới giữa quét và né tránh.

VIII. Tối ưu hóa thời gian và hiệu suất

Các mẫu thời gian của Nmap cho phép tinh chỉnh tốc độ và mức độ tích cực của quá trình quét, cân bằng giữa tính tàng hình và hiệu quả.

Lệnh 26: Mẫu thời gian tích cực

Lệnh: nmap -T4 scanme.nmap.org

Mục đích: Đặt mẫu thời gian thành “Aggressive” (Tích cực). Điều này tăng tốc độ quét bằng cách giả định một mạng nhanh và giảm thời gian chờ. Nó phù hợp cho các lần quét mạng nội bộ hoặc khi thời gian là rất quan trọng, nhưng có nhiều khả năng kích hoạt IDS/IPS.

Ví dụ:

nmap -T4 scanme.nmap.org

Lệnh 27: Mẫu thời gian Paranoid (Tàng hình nhất)

Lệnh: nmap -T0 scanme.nmap.org

Mục đích: Đặt mẫu thời gian thành “Paranoid” (Hoang tưởng). Đây là mẫu chậm nhất và bảo thủ nhất, truyền các thăm dò từng cái một với độ trễ dài. Lý tưởng cho các mạng rất nhạy cảm hoặc khi yêu cầu tính tàng hình cực cao để tránh bị phát hiện.

Ví dụ:

nmap -T0 scanme.nmap.org

Phạm vi các mẫu thời gian (-T0 đến -T5) thể hiện rõ ràng sự đánh đổi cơ bản trong quét mạng: tàng hình so với tốc độ. -T0 ưu tiên né tránh, hy sinh tốc độ, trong khi -T5 ưu tiên tốc độ, hy sinh tính tàng hình. Đây là một quyết định chiến lược quan trọng đối với các chuyên gia kiểm thử xâm nhập, ảnh hưởng trực tiếp đến khả năng bị phát hiện và thời gian đánh giá. Sự lựa chọn phụ thuộc vào các quy tắc tham gia cụ thể của cuộc kiểm thử, môi trường mục tiêu và mục tiêu của chuyên gia kiểm thử xâm nhập.

Lệnh 28: Điều chỉnh độ trễ giữa các thăm dò

Lệnh: nmap --scan-delay 2s scanme.nmap.org

Mục đích: Chỉ định độ trễ tối thiểu giữa các thăm dò. Điều này cung cấp khả năng kiểm soát chi tiết về tốc độ quét, hữu ích để né tránh tường lửa giới hạn tốc độ hoặc giảm tác động mạng trên các hệ thống nhạy cảm.

Ví dụ:

nmap --scan-delay 2s scanme.nmap.org

Bảng sau đây cung cấp cái nhìn tổng quan về các mẫu thời gian của Nmap, giúp các chuyên gia kiểm thử xâm nhập lựa chọn tùy chọn phù hợp nhất cho các tình huống khác nhau:

Tên mẫu Tùy chọn Tốc độ Mức độ tàng hình Trường hợp sử dụng điển hình Ví dụ lệnh (scanme.nmap.org)
Paranoid -T0 Rất chậm Cực cao Mạng rất nhạy cảm, né tránh IDS/IPS tối đa nmap -T0 scanme.nmap.org
Sneaky -T1 Chậm Cao Né tránh IDS/IPS, hoàn thành quét trong thời gian hợp lý nmap -T1 scanme.nmap.org
Polite -T2 Trung bình Trung bình Quét mục đích chung, cân bằng tốc độ và tàng hình nmap -T2 scanme.nmap.org
Normal -T3 Mặc định Trung bình Hầu hết các tình huống quét, cân bằng tốt nmap -T3 scanme.nmap.org
Aggressive -T4 Nhanh Thấp Quét mạng nội bộ, khi thời gian là quan trọng nmap -T4 scanme.nmap.org
Insane -T5 Rất nhanh Rất thấp Quét số lượng lớn máy chủ/cổng nhanh chóng, rủi ro cao nmap -T5 scanme.nmap.org

IX. Các chiến lược né tránh tường lửa/IDS

Các mạng hiện đại sử dụng tường lửa và Hệ thống phát hiện/ngăn chặn xâm nhập (IDS/IPS). Nmap cung cấp các kỹ thuật để vượt qua hoặc né tránh các biện pháp phòng thủ này.

Lệnh 29: Phân mảnh gói tin

Lệnh: nmap -f scanme.nmap.org

Mục đích: Yêu cầu quét sử dụng các gói IP phân mảnh nhỏ. Điều này làm cho các bộ lọc gói đơn giản và IDS khó phát hiện quá trình quét hơn, vì chúng có thể gặp khó khăn trong việc tái tạo và kiểm tra các gói bị phân mảnh.

Ví dụ:

nmap -f scanme.nmap.org

Lệnh 30: Quét mồi nhử (Decoy Scan)

Lệnh: nmap -D RND:5 scanme.nmap.org

Mục đích: Gửi các lần quét từ nhiều địa chỉ IP giả mạo (mồi nhử) ngoài địa chỉ IP nguồn thực. RND:5 tạo ra 5 mồi nhử ngẫu nhiên. Điều này làm cho mục tiêu có vẻ như đang bị quét bởi nhiều hệ thống, gây nhầm lẫn cho nhật ký tường lửa và khiến việc truy tìm kẻ tấn công thực sự trở nên khó khăn hơn.

Ví dụ:

nmap -D RND:5 scanme.nmap.org

Các quét mồi nhử (-D) và phân mảnh (-f) không chỉ là về việc vượt qua tường lửa; chúng còn là về việc che giấu nguồn gốc của lần quét và làm cho việc quy kết trở nên khó khăn. Đây là một khía cạnh quan trọng của red teaming và kiểm thử xâm nhập nâng cao, nơi việc tránh bị phát hiện và để lại dấu vết pháp y tối thiểu là những mục tiêu chính. Hiệu quả của các kỹ thuật này làm nổi bật cuộc chạy đua vũ trang giữa những kẻ tấn công và những người phòng thủ, nơi các phát hiện dựa trên chữ ký đơn giản thường không đủ.

Các kỹ thuật né tránh bổ sung (ngoài 30 lệnh, nhưng quan trọng cho ngữ cảnh):

  • --mtu <kích thước>: Đặt kích thước offset riêng cho phân mảnh.
  • --data-length <số>: Thêm dữ liệu ngẫu nhiên vào các gói tin để thay đổi kích thước của chúng, vượt qua việc lọc dựa trên kích thước.
  • --randomize-hosts: Ngẫu nhiên hóa thứ tự quét của các mục tiêu đã chỉ định để ngăn chặn việc phát hiện các lần quét đa mục tiêu.
  • --spoof-mac <MAC>: Giả mạo địa chỉ MAC để ẩn MAC thực khỏi nhật ký tường lửa.
  • --badsum: Gửi các gói tin có tổng kiểm tra TCP/UDP không hợp lệ, mà một số tường lửa có thể bỏ qua mà không kiểm tra.

X. Giải thích và lưu trữ kết quả đầu ra của Nmap

Việc phân tích hiệu quả kết quả quét đòi hỏi phải hiểu các định dạng đầu ra khác nhau của Nmap.

Đầu ra thông thường (-oN):

Mục đích: Định dạng dễ đọc mặc định, cung cấp cái nhìn tổng quan toàn diện về kết quả quét (máy chủ mục tiêu, cổng mở, dịch vụ, chi tiết hệ điều hành).

Ví dụ: nmap -oN normal_output.txt scanme.nmap.org

Đầu ra XML (-oX):

Mục đích: Định dạng XML có cấu trúc, có thể đọc được bằng máy. Dễ dàng phân tích cú pháp và xử lý bởi các công cụ hoặc script khác (ví dụ: cho báo cáo, hệ thống quản lý lỗ hổng) hoặc chuyển đổi sang HTML bằng xsltproc.

Ví dụ: nmap -oX xml_output.xml scanme.nmap.org

Đầu ra có thể grep (-oG):

Mục đích: Được thiết kế để dễ dàng phân tích cú pháp bằng các công cụ dòng lệnh như grep, awk hoặc sed. Trình bày kết quả ở định dạng bảng, lý tưởng để trích xuất thông tin cụ thể một cách nhanh chóng.

Ví dụ: nmap -oG greppable_output.txt scanme.nmap.org

Sự sẵn có của các định dạng đầu ra khác nhau (đặc biệt là XML và Greppable) cho thấy vai trò của Nmap không chỉ là một công cụ quét độc lập. Nó được thiết kế để tích hợp vào các quy trình bảo mật lớn hơn. Đầu ra XML tạo điều kiện thuận lợi cho việc nhập tự động vào các máy quét lỗ hổng hoặc công cụ báo cáo, trong khi đầu ra greppable cho phép tạo script nhanh chóng để trích xuất dữ liệu và phân tích tùy chỉnh. Điều này làm nổi bật tầm quan trọng của việc xử lý hậu kỳ kết quả quét để xác định lỗ hổng hiệu quả, lập bản đồ mạng và phản ứng sự cố, đây là một kỹ năng quan trọng đối với các chuyên gia kiểm thử xâm nhập.

Đầu ra Script Kiddie (-oS):

Mục đích: Một phiên bản đơn giản hóa, ngắn gọn của đầu ra thông thường, được thiết kế cho người dùng ít kinh nghiệm hơn.

Ví dụ: nmap -oS scriptkiddie_output.txt scanme.nmap.org

Tận dụng đầu ra để đảm bảo an ninh mạng:

  • Xác định lỗ hổng: Phân tích các cổng mở, dịch vụ và chi tiết hệ điều hành để tìm các lỗ hổng đã biết.
  • Lập bản đồ mạng: Tạo bản đồ cấu trúc liên kết mạng chi tiết.
  • Kiểm thử xâm nhập & Khai thác: Xác định các vectơ tấn công và lập kế hoạch các bước tiếp theo.
  • Phản ứng sự cố & Pháp y: Thu thập thông tin về các hệ thống bị ảnh hưởng trong các sự cố.

Bảng sau đây tóm tắt các định dạng đầu ra của Nmap và các trường hợp sử dụng chính của chúng:

Định dạng Tùy chọn Mô tả Trường hợp sử dụng chính Ví dụ lệnh (scanme.nmap.org)
Normal Output -oN Định dạng mặc định, dễ đọc, tổng quan toàn diện Đọc thủ công, báo cáo nhanh nmap -oN normal_output.txt scanme.nmap.org
XML Output -oX Định dạng có cấu trúc, máy đọc được, phân cấp Tích hợp công cụ, xử lý tự động, chuyển đổi HTML nmap -oX xml_output.xml scanme.nmap.org
Greppable Output -oG Định dạng bảng, dễ dàng phân tích cú pháp bằng grep, awk, sed Trích xuất dữ liệu nhanh chóng, tạo script tùy chỉnh nmap -oG greppable_output.txt scanme.nmap.org
Script Kiddie Output -oS Định dạng đơn giản hóa, ngắn gọn, tập trung vào thông tin thiết yếu Người dùng mới bắt đầu, cái nhìn tổng quan nhanh nmap -oS scriptkiddie_output.txt scanme.nmap.org

XI. Các cân nhắc về tấn công có đạo đức với Nmap

Việc nhấn mạnh lặp đi lặp lại về sự cho phép, giảm thiểu sự gián đoạn và tiết lộ có trách nhiệm trên nhiều nguồn nhấn mạnh rằng Nmap, mặc dù mạnh mẽ, là một công cụ đòi hỏi trách nhiệm chuyên môn đáng kể. Việc sử dụng sai mục đích có thể dẫn đến các hình phạt pháp lý nghiêm trọng (ví dụ: theo các đạo luật về lạm dụng máy tính) và thiệt hại về danh tiếng. Phần này không chỉ là một thủ tục mà còn là một nguyên tắc nền tảng cho bất kỳ chuyên gia kiểm thử xâm nhập hợp pháp nào, đảm bảo rằng các hành động của họ luôn nằm trong giới hạn pháp lý và đạo đức, từ đó bảo vệ cả bản thân và khách hàng của họ.

  • Có được sự ủy quyền rõ ràng: Luôn phải có sự đồng ý bằng văn bản từ chủ sở hữu hệ thống/mạng mục tiêu trước khi quét. Đây là điều không thể thương lượng.
  • Giảm thiểu sự gián đoạn và thiệt hại:
    • Sử dụng tốc độ quét phù hợp (ví dụ: -T2 hoặc -T3 cho các hoạt động bình thường, tránh -T5 trừ khi được ủy quyền rõ ràng để kiểm tra tốc độ cao).
    • Giới hạn phạm vi quét chỉ ở các mục tiêu và cổng cần thiết. Tránh quét bừa bãi.
    • Lên lịch quét trong các cửa sổ bảo trì hoặc thời gian hoạt động thấp để giảm thiểu tác động.
  • Tôn trọng quyền riêng tư và bảo mật: Xử lý mọi thông tin nhạy cảm được phát hiện một cách cẩn thận và tôn trọng tối đa.
  • Tiết lộ có trách nhiệm: Nếu phát hiện lỗ hổng, hãy báo cáo chúng một cách có đạo đức thông qua các kênh phù hợp (ví dụ: nhóm bảo mật, chương trình tiền thưởng lỗi) thay vì khai thác hoặc tiết lộ công khai.
  • Tài liệu và trách nhiệm giải trình: Duy trì hồ sơ chi tiết về các hoạt động quét, bao gồm phạm vi, ủy quyền và phương pháp luận.

XII. Kết luận

Nmap là một công cụ không thể thiếu trong trinh sát, đánh giá lỗ hổng và lập bản đồ mạng cho các chuyên gia kiểm thử xâm nhập. Tính linh hoạt của nó, từ khám phá máy chủ cơ bản đến thực thi script nâng cao và các kỹ thuật né tránh, làm cho nó trở thành một công cụ nền tảng.

Để tận dụng tối đa Nmap, các chuyên gia kiểm thử xâm nhập được khuyến khích liên tục học hỏi, thử nghiệm (trên các mục tiêu được ủy quyền như scanme.nmap.org) và cập nhật các tính năng và script đang phát triển của Nmap. Việc tham khảo các tài liệu chính thức như Hướng dẫn tham khảo Nmap và cuốn sách “Nmap Network Scanning” sẽ cung cấp hiểu biết sâu sắc hơn.

Cuối cùng, Nmap là một công cụ; hiệu quả của nó nằm ở kỹ năng, phán đoán đạo đức và tư duy chiến lược của chuyên gia kiểm thử xâm nhập sử dụng nó.

Nmap Scans for Cyber Security and Penetration Testing …, accessed on June 27, 2025, https://www.geeksforgeeks.org/nmap-scans-for-cyber-security-and-penetration-testing/

Penetration Testing with Nmap – Central InfoSec, accessed on June 27, 2025, https://www.centralinfosec.com/blog/penetration-testing-with-nmap

Pentesting and redteam knowledge base | Nmap – KSEC ARK, accessed on June 27, 2025, https://www.ivoidwarranties.tech/posts/pentesting-tuts/nmap/master/

How to conduct advanced Nmap scanning techniques – LabEx, accessed on June 27, 2025, https://labex.io/tutorials/nmap-how-to-conduct-advanced-nmap-scanning-techniques-415278

What are Nmap Timing Templates? – Educative.io, accessed on June 27, 2025, https://www.educative.io/answers/what-are-nmap-timing-templates

Advanced NMAP Scanning Techniques: Technical Deep-Dive for Security Professionals, accessed on June 27, 2025, https://securedebug.com/advanced-nmap-scanning-techiques-network-scan/

How to ensure legal and ethical Nmap SYN scans in Cybersecurity – LabEx, accessed on June 27, 2025, https://labex.io/tutorials/nmap-how-to-ensure-legal-and-ethical-nmap-syn-scans-in-cybersecurity-415220

Ethical Considerations and Legal Aspects of Network Scanning with Nmap | Siberoloji, accessed on June 27, 2025, https://www.siberoloji.com/ethical-considerations-and-legal-aspects-of-network-scanning-with-nmap/

NMAP – Red Team Toolkit, accessed on June 27, 2025, https://redteam.ryanheavican.com/discovery/nmap

ekol-x9/nmap-cheatsheet: Nmap cheatsheet for penetration … – GitHub, accessed on June 27, 2025, https://github.com/ekol-x9/nmap-cheatsheet

Nmap Documentation – Free Security Scanner For Network …, accessed on June 27, 2025, https://nmap.org/docs.html

Nmap Network Scanning – is the official guide to the, accessed on June 27, 2025, https://nmap.org/book/

Nmap Cheat Sheet Part 4: Master Firewall Scanning & IDS Evasion | Infosec, accessed on June 27, 2025, https://www.infosecinstitute.com/resources/penetration-testing/nmap-cheat-sheet-part-4/

How to optimize network scanning using Nmap’s timing templates in Cybersecurity – LabEx, accessed on June 27, 2025, https://labex.io/tutorials/nmap-how-to-optimize-network-scanning-using-nmap-s-timing-templates-in-cybersecurity-415610

Firewall Evasion with Nmap – Pluralsight, accessed on June 27, 2025, https://www.pluralsight.com/labs/aws/firewall-evasion-with-nmap

How to interpret different Nmap output formats for Cybersecurity – LabEx, accessed on June 27, 2025, https://labex.io/tutorials/nmap-how-to-interpret-different-nmap-output-formats-for-cybersecurity-417484

The nmap output formats – Kali Linux Cookbook – Second Edition [Book] – O’Reilly Media, accessed on June 27, 2025, https://www.oreilly.com/library/view/kali-linux-cookbook/9781784390303/3f063765-929b-4fb5-a8ce-f53dc8015a51.xhtml

Leave A Comment

Cart
Select the fields to be shown. Others will be hidden. Drag and drop to rearrange the order.
  • Image
  • SKU
  • Rating
  • Price
  • Stock
  • Availability
  • Add to cart
  • Description
  • Content
  • Weight
  • Dimensions
  • Additional information
Click outside to hide the comparison bar
Compare