Hướng dẫn sử dụng NMAP

Nmap là một công cụ bảo mật tuyệt vời được phát triển bởi Floydor, ban đầu nó chỉ là một tool *nix nhưng về sau đã phát triển rất mạnh mẽ phù hợp với nhiều platform và phát triển cả giao diện.
Bài viết dưới đây hướng dẫn những nét cơ bản trong việc khai thác khả nắng của nmap. Bạn nên sử dụng quyền root của hệ thống để phát huy tôi đa sức mạnh của ứng dụng.

1. Scan một mục tiêu

Giả sử IP mục tiêu là 192.168.0.1 (bạn hoàn toàn có thể thay thế IP này bằng một IP public) ta thực hiện như sau:

   # nmap 192.168.0.1
Đối với câu lệnh này, một số tùy chọn đã được mặc định. Câu lệnh trên sẽ tương đương với:
   #nmap –R –sS 192.168.0.1 
  • R: truy vấn đến DNS server để thực hiện reverse DNS name lookup. Tùy chọn này được sử dụng khi mục tiêu là một server.
  • sS: sẽ nói đến trong phần sau
Trong trường hợp bạn không cần truy vấn DNS server để lấy name, bạn có thể dùng tùy chọn -n. Khi đó, câu lệnh sẽ trở thành :
#nmap –n 192.168.0.1 hoặc #nmap –n –sS 192.168.0.1 (cả 2 đều như nhau)
  • n: bỏ đi chức năng DNS reverse. Một số DNS server thực hiện ghi lại các bản log của các truy vấn, điều này có thể dẫn đến việc máy trạm nmap sẽ xuất hiện tại các bản log này.
Bỏ chức năng này đi sẽ tăng tốc độ sử của nmap rất nhiều, đặc biệt là khi chúng ta scan nhiều mục tiêu, giải mạng …

Sau khi chúng ta thực hiện một câu lệnh, thông thường sẽ có cảm giác như nmap không thực hiện gì cả (vì ko có kết quả nào hiện lên rõ ràng) nhưng thực tế thì nmap đang thực thi rất nhiều công viêc. Để theo dõi tiến trình này, ta dùng tùy chọn “-vv”

   #nmap –vv –n 192.168.0.1

2. Scan nhiều mục tiêu

Có nhiều cách để scan nhiều mục tiêu. Sau đây chỉ là một ví dụ trong những cách đó. Chúng ta sẽ scan 192.168.0.1 192.168.0.2 và 192.168.0.3

   # nmap -vv –n 192.168.0.1,2,3 hoặc # nmap –vv –n 192.168.0.1-3



    #nmap –vv –n 192.168.0.1-3,6,12-20
Câu lệnh trên sẽ scan các host 1,2,3,6 và từ 12 đến 20

Bạn cũng có thể scan tất cả 254 máy bằng câu lệnh

   # nmap –vv –n 192.168.0.1-254 hoặc # nmap –vv –n 192.168.0.*  hoặc



    # nmap –vv –n 192.168.0.1/24
3.  Scan port

Để scan 1 port xác định, ta dùng tùy chọn -p

# nmap –vv –p 80 192.168.0.1 sẽ scan port 80



# nmap –vv –p 21,23,25,80-100 192.168.0.1sẽ scan các port 21,23,25 và từ 80 đến 100



# nmap –vv –n –p 21,23,25 192.168.1-2.*
bao gồm:
  • Hiện các công việc nmap đang thực hiện
  • Loại bỏ chức năng DNS reverse (tăng tốc độ và không để DNS server ghi lại bất cứ điều gì)
  • Scanning port
  • Scanning các IP từ 192.168.1.0 đến 192.168.2.254
4. Các tùy chọn khác
  • -sS: SYN scanning
TCP SYN scan thu thập thông tin về port mà không cần hoàn thành quá trình bắt tay TCP. Khi 1 cổng được xác định, quá trình bắt tay TCP sẽ được reset trước khi chúng hoàn tất. Kỹ thuật này thường được xem như kỹ thuật “half open” scanning.

Nó cũng là kỹ thuật scan mặc định nếu bạn dùng quền root. Đây là một kỹ thuật phổ biến nhất về scan bởi vì nó có thể làm việc trong tất cả networks, cũng như tất cả các hệ điều hành.

Điểm mạnh: Một TCP SYN scan không bao giờ tạo ra một phiên truy vấn TCP hoàn chỉnh, do đó nó không bị log lại tại mục tiêu. Đây được xem như một cách scan trong im lằng.

Điểm yếu: Bạn cần có quyền tại hệ thống chạy nmap (trong trường hợp này là quyền root)

   # nmap –vv –n –sS 192.168.0.1
  • -sT: TCP connect scanning
Với tùy chọn này, nmap sẽ thực hiện quá trình bắt tay 3 bước TCP

Điểm mạnh : Bạn không cần quyền tại hệ thống chạy nmap

Điểm yếu : Kết nói của bạn sẽ bị log tại máy đích, do đó không nên sử dụng kỹ thuật này

   # nmap –vv –n –sT 192.168.0.1
  • -sF, -sX, -sN: FIN scan, Xmas tree scan, NULL scan.
Đây được gọi là các kỹ thuật scan giấu giếm. Chúng gửi 1 frame đơn đến cổng TCP mà không có bất cứ một gói TCP handshake nào. Chúng tỏ ra có khả năng “giấu” nhiều hơn SYN scan và phải được dùng nếu máy đích không phải là máy Windowns.

Các kỹ thuật này được thực hiện bằng cách làm giả các bit tại TCP header. Nmap tạo ra các TCP headers mà chúng không có trong thực tế. Việc tạo ra các TCp header khác thường này giúp nmap lắng nghe trả lời của máy đích khi gửi chúng tới đó.

Một hệ thống Window sẽ trả lời bằng một RST cho tất cả truy vấn này.

Điểm mạnh: Không có phiên TCP sessions được tạo ra.

Điểm yếu: Không thể sử dụng để chống lại hệ thống Windows

   # nmap –vv –n –sF 192.168.0.1



    # nmap –vv –n –sX 192.168.0.1



    # nmap –vv –n –sN 192.168.0.1
  • -sU: UDP scan.
   # nmap –vv –n –sU 192.168.0.1
-sR: RPC scan.
Tùy chọn này được dùng để xác định ứng dụng RPC. Nó chạy tự động và mặc định trong version scan (được đề cập tiếp theo)

Điểm yếu: RPC scan mở phiên của ứng dụng, do đó nó được log lại.

# nmap –vv –sR 192.168.0.1
-sV: Version scan
Scan này sẽ cho ta biết trạng thái của port và dịch vụ đang chạy trên chúng. Để khai thác dịch vụ bạn cần biết chính xác version của dịch vụ đang chạy trên máy đích.

Điểm yếu: Nó mở phiên với máy đích nên sẽ bị log.

# nmap –vv –sV 192.168.0.1
  • -sA: ACK scan
ACK scan tỏ ra rất hữu ích khi có các firewall hay thiết bị lọc gói tin. Nó không xác định một port đang mở, nó chỉ xác định port đó đang bị chặn bởi firewall. Nó không mở bất cứ phiên ứng dụng nào, do đó việc liên lạc giữa nmap và thiết bị lọc gói tin thật sự đơn giản.

Điểm yếu: Nó chỉ có thể xác định port bị chặn hoặc không chặn chứ không xác định đc port mở hay không.

   # nmap –vv –sA 192.168.0.1
  • -sP: Ping scan:
  # nmap –vv –sP 192.168.0.10
Ping scan sẽ check xem host đó đang up hay down
   # nmap –vv –sP 192.168.0.*
Được dùng để phát hiện các host đang hoạt động trong subnet.

Điểm yếu: Ping scan không thể kết hợp được với các tùy chọn khác

5. O/S fingerprinting and version detection

Chúng cả có thể sử dụng nhiều kỹ thuật scan để xem hệ điều hành nào đang chạy trên máy đích

  • -O: Operating system fingerprinting.
   # nmap –vv –O 192.168.0.1
Nó sẽ cho bạn biết ít hệ điều hành và version đang chạy ở mục tiêu. Nó cần ít nhất một port đóng và một port mở để xác định chính xác, nếu không có điều kiện này nó không thể đưa ra một kết quả chính xác nhất được. Trong trường hợp đó bạn nên dùng các ứng dụng thứ 3 bổ xung.

 Điểm yếu : Một tool theo dõi sẽ nhanh chóng phát hiện ra có ai đó đang nhòm ngó hệ thống

  • -sV: Version detection
Như đã trình bày, nó sẽ giúp bạn biết được version của dịch vụ đang chạy tại máy đích.
 
   # nmap –vv –sV 192.168.0.1
  • -A: thêm
Tùy chọn này bao gồm cả -O và -sV, do đó 2 cầu lệnh sau sẽ như nhau :
   # nmap –vv –sV –O 192.168.0.1



    # nmap –vv –A 192.168.01.



    # nmap 192.168.0.1
Ping Scan

Nmap cung cấp rất nhiều lựa chọn Ping và lưu ý rằng tất cả chúng bắt đầu với ‘ P’. Sự kết hợp khác nhau của các tùy chọn này có thể được dùng để tăng cơ hội vượt qua các bộ lọc gói và tường lửa.

  • -PE ICMP Echo Request
Nó chỉ đơn giản là ICMP Echo request và ICMP Echo reply tương ứng là cách tốt nhất để xác định tĩnh sẵn sàng của máy đích. Nhược điểm là nó là giao thức phổ biến nhất bị lọc bởi bức tường lửa / bộ lọc gói. Nếu bạn nhận được trả lời với kiều ping này, nó sẽ chỉ ra rằng có rất ít bộ lọc giữa bạn và đích..
  • -PA[port number] TCP ACK Ping
Hữu ích để xác định bộ lọc / cổng không lọc, do đó rất hữu ích khi có một số bức tường lửa bảo vệ máy.
       # nmap-vv 192.168.0.1-PA23, 110 
Ở đây trong ví dụ này, nmap sẽ ping cổng 23 và 110 của máy đích với các gói ACK. Nếu máy đích up hoặc không có bộ lọc, nó sẽ trả lời với các gói RST. Nhưng trong trường hợp nó down hoặc có bộ lọc, sẽ không có trả lời và do đó quá trình quét sẽ dừng lại. Vì vậy để qua được tường lửa, ta phải thử cổng khác.

Nếu không có cổng được chỉ định, cổng số 80 sẽ được chọn (thông thường các bộ lọc gói cho phép traffic qua cổng 80).

  • -PS[port number] TCP SYN Ping
Chức năng của nó là giống SYN Scan. Máy Nmap gửi gói tin SYN đến máy đích.Cổng mở sẽ trả lời với ACK / SYN và cổng đóng sẽ trả lời với RST. Do đó có thể được sử dụng để xác định xem máy đích là up hay ko. Cổng có thể được chỉ định, 80 là cổng mặc định.
Code: [Select]
       # nmap-vv-n 192.168.0.1-PS (sẽ ping cổng 80) 



       # nmap-vv-n 192.168.0.1-PS23, 110 (sẽ ping cổng 23 và 110 )


  -PU[port number] TCP UDP Ping

Theo mặc định nó sẽ gửi các frame UDP tại cổng 31338. Các frame UDP được gửi đến cổng đóng sẽ nhận được thông điệp “ICMP port unreachable”. Nếu cổng mở , nó có thể hoặc không trả lời, vì nhiều ứng dụng UDP không gửi trả lời với bất kỳ khung đến ngẫu nhiên. Vì vậy cần cố gắng để gửi khung UDP đến cổng đóng. Do cách ping này dựa rất nhiều vào các gói ICMP, vì thế nếu ICMP bị lọc có thể không trả lời.

       # nmap-vv-n 192.168.0.1-PU (cổng mặc định là 31338)

       # nmap-vv-n 192.168.0.1-PU

  -PP ICMP Timestamp Ping

ICMP Timestamp Ping được sử dụng để cho phép hai hệ thống riêng biệt để điều phối thời gian. Nó không hữu ích khi có tường lửa vì nó dựa chủ yếu vào ICMP.

  -PM ICMP Address Mask Ping

Nó hoạt động bằng cách gửi một yêu cầu ICMP Address Mask đến một thiết bị đích. Hầu hết các hệ điều hành hiện đại và các router sẽ không đáp ứng yêu cầu này, do đó loại ping ICMP này không hoạt động trên hầu hết hệ thống hiện đại.

Do đó hãy quên nó đi.

Kết luận:

Nếu có một số bức tường lửa hoặc bộ lọc gói tin trên thiết bị đích, tốt nhất là không lựa chọn kiểu ping ICMP.

  -PO Don’t Ping

Nếu bạn biết rằng các máy đích up và đang chạy, bạn có thể sử dụng tùy chọn này để duy trì một chút âm thầm. Do đó trực tiếp quét các mục tiêu sẽ mà không ping máy.

Tuy nhiên, như đã nói với “Ping là một giao thức vô cùng hữu dụng”, Nmap thu thập một số thông tin quan trọng từ quá trình ping, nên vô hiệu hóa quá trình ping sẽ đặt nmap vào thế bất lợi khi bắt đầu quét.

II.Một vài điều về thu thập thông tin hệ điều hành (OS fingerprinting)

Việc sử dụng-O đã được thảo luận trong phần 1 của hướng dẫn này. Nó cho biết thông tin của hệ điều hành chạy trên máy đích trước khi khai thác lỗ hổng.

Đối với Nmap này cần ít nhất một mở và một cổng đóng . Nếu nó không có điều đó, có thể nó không cho kết quả chính xác.

  – osscan_limit

Tùy chọn này sẽ hủy bỏ OS fingerprinting nếu cả hai cổng mở và đóng đều không có, vì thế sẽ tiết kiệm rất nhiều thời gian thay vì nhận được kết quả không chính xác.

Cá nhân tôi cảm thấy rằng công cụ của bên thứ ba cũng cần được sử dụng để có được kết quả chính xác về hệ điều hành. máy đích.

  -A (Additional, Advanced, and Aggressive)

Là sự kết hợp của “-O” và “-sV” tức là OS fingerprinting và service

     # nmap-vv-n 192.168.0.1-O-sV

là tương tự như

     # nmap-vv-n 192.168.0.1-A

III.Bao gồm và Loại trừ các máy chủ và Ports

Đôi khi bạn không muốn quét địa chỉ IP đặc biệt hoặc dải địa chỉ IP Ví dụ Chính phủ hoặc IP của router và switch trọng mạng của bạn

Vì vậy, ở đây chúng ta có vài lựa chọn cho điều đó:

Loại trừ mục tiêu (-exclude )

Các địa chỉ IP được chỉ định sẽ không được quét bằng Nmap.

     #nmap –vv –n –sS 192.168.0.1/24 –exclude 192.168.0.2-4, 192.168.0.7

Điều này sẽ quét toàn bộ mạng con trừ 192.168.0.2, 192.168.0.3, 192.168.0.4, và 192.168.0.7.

Loại trừ các mục tiêu trong tệp (- excludefile )

Ở đây, thay vì chỉ định các địa chỉ IP không quét, người dùng có để duy trì một tập tin bao gồm danh sách các địa chỉ IP, một địa chỉ IP trên mỗi dòng.

     # nmap-vv-n-sS 192,168 .*.* – excludefile filename.txt

Nội dung của filename.txt thể như sau:

192.168.0.1-4 //(loại trừ 192.168.0.1-192.168.0.4)

192.168.3-5 .* // (loại trừ 192.168.3.0 à 192.168.5.255)

192.168.6 .* // (loại trừ 192.168.6.0 à 192.168.6.255)

vv

Lợi ích của tùy chọn -excludefile là một tập tin loại trừ có thể được tạo ra bao gồm địa chỉ IP của các tổ chức, cá nhân mà bạn không bao giờ muốn để quét

– excludefile và –exclude là các lựa chọn không thể được sử dụng trên cùng một lần scan.

  Đọc dữ liệu từ File (-il )

Thay vì cung cấp địa chỉ IP tại dòng lệnh của Nmap, một tập tin có thể được duy trì có chứa địa chỉ IP cách nhau bằng tab, khoảng trống, hoặc dòng riêng lẻ. Khi tùy chọn này được sử dụng, bất kỳ địa chỉ IP được chỉ định trên dòng lệnh sẽ bị bỏ qua mà không có bất kỳ thông báo nào.

     # nmap-vv-n-il input.txt

     # nmap-vv-n-il input.txt 192.168.1.1 (ở đây 192.168.1.1 sẽ bị bỏ qua)

Nếu lựa chọn loại trừ host, –exclude hay –excludefile, được sử dụng với tùy chọn-il, các địa chỉ bị loại trừ sẽ ghi đè lên bất cứ dòng lệnh hoặc tập tin.

IV.Quét mục tiêu với số lượng ngẫu nhiên

-iR

Bạn có thể tìm kiếm chỉ web của máy chủ hoặc một số máy chủ khác , ví dụ các máy chạy một dịch vụ cụ thể trên một cổng cụ thể.

Ví dụ
telet tại cổng 23
SMTP : 25
Máy chủ web : 80 vv      # nmap-vv-n-iR 100-p 80

Quét ngẫu nhiên 100 máy tại cổng 80

     # nmap-vv-n-iR 0-p 80 (đó là số không, không phải ‘O’)

Quét “không giới hạn” số máy tại cổng 80. Vì vậy, ở đây bạn thấy, Nmap sẽ quét hàng ngàn và hàng ngàn máy. Scan sẽ không báo cáo bất kỳ kết quả nào cho đến khi 500 máy được xác định. Do đó kiểu quét này sẽ được dùng với một tùy chọn đăng nhập .

     # nmap-sS-PS80-iR 0-p 80

Nó sẽ chạy một TCP SYN quét bằng cách sử dụng một ping SYN trên cổng 80 đến một số lượng không giới hạn của ngẫu nhiên các địa chỉ IP. Việc quét SYN chỉ quét cổng 80.

-iL, –exclude, –excludefile, không được sử dụng với tùy chọn -iR.

  – randomize_hosts

    # nmap-vv-randomize_hosts-p 80 192,168 .*.*

nmap sẽ quét ngẫu nhiên.

-iL, –exclude, and –excludefile có thể được sử dụng với tùy chọn này. 2.048 máy tại một thời điểm được chọn ngẫu nhiên

Lựa chọn log

Bạn có thể muốn để lưu trữ các kết quả của Nmap. Lý do có thể là:

1. Bạn đang quét hàng trăm máy , do đó, không muốn nhìn màn hình suốt quá trình scan.
2. Bạn bắt đầu quét trong đêm và muốn thấy kết quả vào buổi sáng.
3. Bạn có thể muốn giữ các hồ sơ để tham khảo trong tương lai
4. Bạn muốn pause/stop Nmap và tiếp tục quá trình quét vào một lúc khác.

… .. Và rất nhiều lý do khác.

Vì vậy, đây là cách đăng nhập tùy chọn khác nhau cho Nmap

Định dạng thông thường:

  -oN

Nó lưu lại kết quả nhìn giống như hiển thị trên màn hình khi scan. Không cần phải chỉ định đuôi mở rộng của tập tin đầu ra. Nó sẽ có phần mở rộng. Nmap.

Định dạng XML

  -oX

Đầu ra là file *.XLM có thể view trên các trình duyệt khác nhau. Trên thực tế Nmap có một tập tin XSL biên dịch thông tin XML thành một định dạng HTML có thể xem được, có thể hiển thị được trong bất kỳ trình duyệt nào.

Grepable Format

  -oG

Các tập tin đầu ra sẽ có phần mở rộng. Gnmap.

Tất cả các định dạng

  -oA

Sẽ tạo ra ba file xuất, bình thường, XML và Grepable.

Giả sử tên của tập tin là target, do đó, bạn sẽ nhận được trong ba tập tin sau:
target.nmap
target.xml
target.gnmap

Script Kiddie Format

  -oS

Đầu ra sẽ là ngôn ngữ Kiddie

Resuming the scan

 Giả sử bạn đang quét một mạng con là 100 máy và đang scan máy 45 khi bạn ngừng quét. Khi bạn tiếp tục quá trình quét thời gian tới, tất cả các máy có được quét trước máy 45 sẽ không được quét lại. Nhưng các chức năng quét của máy 45 sẽ bắt đầu từ đầu một lần nữa.
Do đó không sử dụng tùy chọn khôi phục khi bạn chỉ scan có một máyt.

  –resume

Tập tin này có thể là dạng thường (-oN) hoặc Grepable (-oG).XML không được sử dụng

Không sử dụng nó với lựa chọn –randomize_hosts.

Một vài lựa chọn mà nói chung luôn luôn cần dùng trong tất cả scan là:

-vv tiết chế độ

-n tăng tốc quá trình quét và file log được tạo trên các máy chủ DNS.

-oA để có được các tập tin đầu ra để quét có thể resume. 

1) Lấy thông tin từ máy từ xa và xác định hệ điều hành của máy

nmap -sS -P0 -sV -O <target>
Trong đó< target > có thể là địa chỉ IP, tên máy hoặc subnet mạng.
-sS quét TCP SYN (được biết như là mở một nửa hoặc quét trộm)
-P0 cho phép bạn tắt ping ICMP.
-sV tùy chọn bật khả năng phát hiện phiên bản
-O xác định hệ điều hành máy ở xa
Tùy chọn khác:
-A bật tính năng phát hiện fingerprinting và phiên bản hệ điều hành
-v sử dụng 2 lần để verbosity.

nmap -sS -P0 -A -v < target >

2) Lấy danh sách các máy chủ với các cổng mở được định nghĩa trước

nmap -sT -p 80 -oG – 192.168.1.* | grep open
Thay đổi tham số -p thành cổng bạn muốn kiểm tra. Xem “man nmap” để biết chỉ ra phạm vi địa chỉ.
3) Tìm tất cả các địa chỉ IP đang hoạt động trong mạng

nmap -sP 192.168.0.*
Có vài tùy chọn khác. Ví dụ trên là đơn giản nhất.
Ví dụ dưới là kiểm tra cả subnet:
nmap -sP 192.168.0.0/24
4) Ping một dải địa chỉ IP
nmap -sP 192.168.1.100-254
5) Tìm các địa chỉ IP chưa dùng trong một subnet
nmap -T4 -sP 192.168.2.0/24 && egrep “00:00:00:00:00:00″ /proc/net/arp
6) Kiểm tra virus Conficker trên mạng LAN của bạn.
nmap -PN -T4 -p139,445 -n -v –script=smb-check-vulns –script-args safe=1 192.168.0.1-254
thay thế 192.168.0.1-256 bằng địa chỉ IP mà bạn muốn kiếm tra.
7) Quét mạng cho Rogue APs.

nmap -A -p1-85,113,443,8080-8100 -T4 –min-hostgroup 50 –max-rtt-timeout 2000 –initial-rtt-timeout 300 –max-retries 3 –host-timeout 20m –max-scan-delay 1000 -oA wapscan 10.0.0.0/8
Tôi thường dùng lệnh này để tìm rất nhiều rogue APs trên một mạng rất lớn.
[IMG]Sử dụng bù nhìn khi quét cổng mà không bị quản trị hệ thống biết

sudo nmap -sS 192.168.0.10 -D 192.168.0.2

Quét cổng mở trên thiết bị/máy tính đích (192.168.0.10) trong khi thiết lập một địa chỉ bù nhìn (192.168.0.2). Cái này sẽ hiển thị một địa chỉ IP ma thay cho địa chỉ IP thực của bạn được ghi trong hệ thống log. Địa chỉ bù nhìn cần phải hoạt động. Xem log bảo mật tại /var/log/secure để xem nó có làm việc không.
9) Liệt kê danh sách các bản ghi DNS ngược cho một subnet

nmap -R -sL 209.85.229.99/27 | awk ‘{if($3==”not”)print”(“$2″) no PTR”;else print$3″ is “$2}’ | grep ‘(‘
Lệnh này để kiểm tra DNS ngược trên một subnet. Nó liệt kê một danh sách các địa chỉ IP với các bản ghi PTR tương ứng của một subnet. Bạn có thể thêm “–dns-servers x.x.x.x” sau “-sL” nếu bạn cần kiểm tra trên một DNS Server mà bạn biết.

Sưu tầm

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out / Change )

Twitter picture

You are commenting using your Twitter account. Log Out / Change )

Facebook photo

You are commenting using your Facebook account. Log Out / Change )

Google+ photo

You are commenting using your Google+ account. Log Out / Change )

Connecting to %s