Tiếp theo từ phần đầu tiên trong loạt bài này, đã đến lúc xem xét một số tính năng nâng cao hơn của nmap . Bắt đầu với quét cổng cơ bản, có thể nhận thêm thông tin về quá trình quét bằng cách thêm cờ -vv :

 nmap -vv 192.168.1.101 

Đầu ra sẽ trông giống như sau:

Trong phần đầu tiên, chúng tôi đã xem xét cách quét một dải địa chỉ. Có một cách khác để thực hiện quét nhưng lần này bằng cách chỉ định số bit từ mặt nạ mạng con:

 nmap 192.168.1.1/24 

Lệnh trên sẽ quét tất cả các máy chủ từ 192.168.1.0 đến 192.168.1.255 trên mạng có mặt nạ mạng con là 255.255.255.0. Mặc dù mặt nạ mạng con lớn hơn là có thể (ví dụ 255.255.0.0 là / 16) điều này sẽ gây ra nmap để quét một số lượng lớn các máy chủ và rất có thể sẽ tránh được.

Để có được nmap để tạo ra một danh sách các host mà nó sẽ quét, hãy sử dụng cờ -sL :

 nmap -sL 192.168.1.1/24 

Trong trường hợp này, đầu ra sẽ là danh sách các địa chỉ (một dòng trên mỗi dòng) bắt đầu từ 192.168.1.0 và kết thúc tại 192.168.1.255.

Nếu có máy chủ trên mạng của bạn phản đối việc quét (nói máy chủ có hệ thống phát hiện xâm nhập được cài đặt hoặc một số loại thiết bị tường lửa nhất định), bạn có thể yêu cầu nmap bỏ qua một địa chỉ nhất định bằng cách sử dụng cờ -exclude . Ví dụ sau sẽ quét tất cả các máy chủ từ 0 đến .255 nhưng không quét 192.168.1.4:

 nmap 192.168.1.1/24 -exclude 192.168.1.4 

Tàng hình

Khi tìm kiếm các cổng mở, nmap có thể sử dụng nhiều loại phương pháp quét khác nhau. Các kết nối mạng được thiết lập bằng giao thức TCP. Nó định nghĩa những gói dữ liệu nào cần gửi và câu trả lời là gì. Để thiết lập kết nối, gói SYN được gửi đến máy chủ đầu tiên. Nếu cổng được mở và máy chủ sẵn sàng chấp nhận các kết nối thì nó sẽ trả lời bằng cách gửi lại gói SYN-ACK. Sau đó, khách hàng sẽ gửi một gói ACK để hoàn thành kết nối. Kết nối này sau đó được sử dụng cao hơn bởi phần mềm như trình duyệt web và các chương trình email. Khi được gọi từ một tài khoản người dùng bình thường, đây chính xác là những gì nmap làm cho mỗi cổng được quét. Nếu kết nối được thiết lập, cổng được báo cáo là đang mở.

Nhưng nếu nmap được gọi từ một tài khoản root hoặc sử dụng sudo, nó được mặc định là một kiểu quét khác được gọi là quét nửa mở. Trong kịch bản này, nmap tạo các gói TCP cấp thấp (thay vì sử dụng hệ điều hành bên dưới để thực hiện nó) và khi nó nhận được SYN-ACK, nó không trả lời bằng ACK và do đó kết nối đầy đủ là chưa được thiết lập. Nhưng vì máy chủ trả lời bằng SYN-ACK, có nghĩa là cổng đang mở và có sẵn để có kết nối đầy đủ. Ưu điểm của việc quét nửa mở là nó nhanh hơn và nó không làm cho phần mềm máy chủ lắng nghe trên cổng để đăng nhập một kết nối.

Bạn có thể đảm bảo rằng việc quét nửa mở đang được sử dụng bằng cách sử dụng cờ -sS . Khi kết hợp với -vv, bạn có thể thấy nmap báo cáo việc sử dụng “SYN Stealth Scan” để thăm dò host. Đây là lệnh đầy đủ:

 sudo nmap -sS -vv 192.168.1.101 

Cũng lưu ý rằng nmap bây giờ đưa ra một báo cáo về số lượng các gói dữ liệu thô mà nó tạo ra để nó có thể thực hiện quét nửa mở.

Tất cả đều thắp sáng như một cây thông Noel

Có thêm một loại quét đáng nhắc đến và đó là quét NULL và bạn bè của nó - quét FIN và quét Xmas. Trong tiêu chuẩn TCP, có một phần nhỏ cho biết việc thực hiện TCP phải làm gì nếu nó nhận được một gói có cờ sai. Kết quả thực tế của “lỗ vòng” này là bất kỳ gói nào không chứa các bit SYN, RST hoặc ACK sẽ dẫn đến một gói RST được trả về nếu cổng được đóng và không có phản hồi nào nếu cổng đang mở. nmap có thể sử dụng điều này để lợi thế của nó bằng cách gửi các gói không đúng định dạng và chờ xem có phản hồi hay không.

Việc quét NULL, được gọi bằng -sN không đặt bất kỳ bit nào trong phần đầu gói. FIN scan, -sF, thiết lập bit TCP FIN và phép quét Xmas, -sX, thiết lập các cờ FIN, PSH và URG. Nó được gọi là Xmas quét như gói bây giờ tất cả sáng lên như một cây Giáng sinh!

Nếu máy chủ trả lời bằng gói RST thì cổng được đóng lại, không có gì và cổng đang mở.

Phần kết luận

Như chúng ta có thể thấy, nmap là một công cụ mạnh mẽ và được thiết kế như nhau cho việc quét ẩn hoặc quét. Như một thử nghiệm cuối cùng, hãy thử lệnh sau đây như một cách để khám phá máy chủ nào đang hoạt động trên mạng cục bộ của bạn mà không thực sự quét máy chủ mà chỉ bằng cách yêu cầu địa chỉ MAC của chúng:

 sudo nmap -PR -vv 192.168.1.1/24 

Cờ -PR sẽ gây ra nmap để yêu cầu địa chỉ MAC của máy chủ (sử dụng ARP) và sẽ đánh dấu máy chủ là còn sống nếu nó nhận được phản hồi.