Summary

OptionMeaning
-sVdetermine service/version info on open ports
-sV --version-lighttry the most likely probes (2)
-sV --version-alltry all available probes (9)
-Odetect OS
--tracerouterun traceroute to target
--script=SCRIPTSNmap scripts to run
-sC or --script=defaultrun default scripts
-Aequivalent to -sV -O -sC --traceroute
-oNsave output in normal format
-oGsave output in grepable format
-oXsave output in XML format
-oAsave output in normal, XML and Grepable formats

Service Detection

Sử dụng option -sV để thăm dò version của service đang chạy ở port nào đó.

sudo nmap -sV MACHINE_IP

Cần chú ý là khi sử dụng option này, Nmap sẽ thực hiện quá trình bắt tay ba bước của TCP để lấy thông tin nên việc sử dụng chung với các loại scan tàng hình chẳng hạn như TCP SYN scan1 (option -sS) là bất khả thi.

Ta có thể dùng thêm option --version-intensity LEVEL, với LEVEL từ 0 đến 9, để thiết lập độ dày đặc của version. Ngoài ra còn có option -sV --version-light tương ứng với level 2 và option -sV --version-all tương ứng với level 9.

OS Detection

Để phát hiện hệ điều hành, ta có thể dùng option -O:

nmap -sS -O MACHINE_IP

Thông tin thu được có thể là tên hệ điều hành và kernel. Độ chính xác của kết luận mà Nmap đưa ra phụ thuộc vào ít nhất một open port ở target machine. Tuy nhiên, thông tin về OS có thể bị sai lệch bởi vì các công nghệ ảo hóa hoặc tương tự.

Traceroute

Chúng ta có thể thêm option --traceroute để thực hiện tìm các router đến target machine. Tuy nhiên, đối với câu lệnh traceroute thông thường2, trường TTL sẽ được tăng dần. Nhưng đối với Nmap, trường TTL sẽ có giá trị giảm dần.

Cú pháp hoàn chỉnh:

nmap -sS --traceroute MACHINE_IP

Nmap Scripting Engine (NSE)

Nmap hỗ trợ một số script có sẵn giúp thực hiện những chức năng custom mà không có trong các built-in command. Danh sách các script này nằm ở thư mục /usr/share/nmap/scripts.

Chúng ta có thể chạy các script mặc định bằng cách thêm option --script=default hoặc -sC.

Ví dụ sử dụng:

sudo nmap -sS -sC MACHINE_IP

Câu lệnh trên thực hiện TCP SYN scan với các script mặc định.

Danh mục đầy đủ các loại script:

Script CategoryDescription
authAuthentication related scripts
broadcastDiscover hosts by sending broadcast messages
brutePerforms brute-force password auditing against logins
defaultDefault scripts, same as -sC
discoveryRetrieve accessible information, such as database tables and DNS names
dosDetects servers vulnerable to Denial of Service (DoS)
exploitAttempts to exploit various vulnerable services
externalChecks using a third-party service, such as Geoplugin and Virustotal
fuzzerLaunch fuzzing attacks
intrusiveIntrusive scripts such as brute-force attacks and exploitation
malwareScans for backdoors
safeSafe scripts that won’t crash the target
versionRetrieve service versions
vulnChecks for vulnerabilities or exploit vulnerable services

Ta sử dụng như sau:

sudo nmap --script vuln MACHINE_IP

Có một số loại script thực hiện brute force hay DoS nên ta cần phải cẩn trọng khi sử dụng.

Để chạy một script cụ thể nào đó, chẳng hạn http-date, ta sử dụng như sau:

sudo nmap -sS -n --script "http-date" MACHINE_IP

Ngoài các script có sẵn thì ta cũng có thể tự viết hoặc download trên mạng.

Saving the Output

Có ba loại format phổ biến để lưu output khi chạy Nmap:

  1. Normal: là output xuất ra console lúc chạy. Sử dụng option -oN FILENAME.
  2. Grepable: là một dạng giúp thực thi câu lệnh grep một cách dễ dàng hơn. Cụ thể, Nmap sẽ cố gắng làm cho mỗi dòng chứa nhiều thông tin ý nghĩa nhất có thể. Sử dụng option -oG FILENAME.
  3. XML: sử dụng option -oX FILENAME, thường dùng khi cần xử lý bằng các chương trình khác.

Chúng ta có thể sử dụng option -oA FILENAME để kết hợp cả ba loại trên.

Còn một loại format thất truyền nữa là script kiddie. Loại này có nhìn trông rất ngầu (đối với những người không phải dân tech). Để lưu dưới dạng script kiddie, ta dùng option -oS FILENAME.

Resources

Footnotes

  1. Xem thêm TCP SYN Scan.

  2. Xem thêm Traceroute.