Tất tần tật về Nmap

Trong khi hiện nay có rất nhiều công cụ giám sát tiên tiến đóng vai trò là những trợ thủ đắc lực giúp đỡ các nhà quản trị mạng trong việc quét cổng và phát hiện các lỗ hổng mạng nhưng Nmap vẫn được coi là một công cụ chuẩn mực. Tại sao lại như vậy?

Các nhà quản trị mạng, quản lý công nghệ thông tin và chuyên gia bảo mật đã, đang, và sẽ phải đối mặt với một trận chiến không bao giờ kết thúc trên chiến trường mang tên an ninh mạng. Họ sẽ phải liên tục kiểm tra rà soát hệ thống mạng của của mình để tìm ra các tác nhân gây hại cũng như những lỗ hổng bảo mật ẩn chứa bên trong. Trong khi hiện nay có không ít các tiện ích giám sát có sẵn hỗ trợ cho các chuyên gia trong việc việc lập bản đồ hệ thống mạng và kiểm soát bảo mật, Nmap là sự lựa chọn số một về tính linh hoạt và khả năng vận hành, và cũng chính những ưu điểm này đã làm cho nó trở thành một công cụ quét cổng và lỗ hổng bảo mật tiêu chuẩn được thừa nhận rộng rãi trên toàn thế giới.

Nmap là gì?

Quản trị mạng

Nmap (tên đầy đủ Network Mapper) là một công cụ bảo mật được phát triển bởi Floydor Vaskovitch. Nmap có mã nguồn mở, miễn phí, dùng để quét cổng và lỗ hổng bảo mật. Các chuyên gia quản trị mạng sử dụng Nmap để xác định xem thiết bị nào đang chạy trên hệ thống của họ, cũng như tìm kiếm ra các máy chủ có sẵn và các dịch vụ mà các máy chủ này cung cấp, đồng thời dò tìm các cổng mở và phát hiện các nguy cơ về bảo mật.

Nmap có thể được sử dụng để giám sát các máy chủ đơn lẻ cũng như các cụm mạng lớn bao gồm hàng trăm nghìn thiết bị và nhiều mạng con hợp thành.

Mặc dù Nmap đã không ngừng được phát triển, cải tiến qua nhiều năm và cực kỳ linh hoạt, nhưng nền tảng của nó vẫn là một công cụ quét cổng, thu thập thông tin bằng cách gửi các gói dữ liệu thô đến các cổng hệ thống. Sau đó nó lắng nghe và phân tích các phản hồi và xác định xem các cổng đó được mở, đóng hoặc lọc theo một cách nào đó, ví dụ như tường lửa. Các thuật ngữ khác được sử dụng để chỉ hoạt động quét cổng (port scanning) bao gồm dò tìm cổng (discovery) hoặc liệt kê cổng (enumeration).

Nmap

Nmap trong quét cổng

Các gói dữ liệu mà Nmap gửi đi sẽ trả về các địa chỉ IP và nhiều dữ liệu liên quan khác, cho phép bạn xác định các loại thuộc tính mạng, cung cấp cho bạn hồ sơ hoặc sơ đồ hệ thống mạng và cho phép bạn tạo một bảng liệt kê đánh giá về phần cứng và phần mềm trong hệ thống mạng đó.

Các giao thức mạng khác nhau sử dụng các loại cấu trúc gói khác nhau. Nmap sử dụng các giao thức tầng bao gồm TCP (giao thức điều khiển truyền), UDP (giao thức truy vấn người dùng), và SCTP (giao thức truyền dẫn điều khiển luồng), cũng như các giao thức hỗ trợ như ICMP (giao thức tin nhắn điều khiển Internet, được sử dụng để gửi thông báo lỗi).

Các giao thức khác nhau phục vụ cho các các mục đích và các cổng hệ thống khác nhau. Ví dụ, chi phí tài nguyên thấp của UDP rất phù hợp với hoạt động stream video trực tuyến theo thời gian thực, nơi bạn sẽ hy sinh một số gói dữ liệu bị mất để đổi lấy tốc độ, trong khi đó, các video được stream không theo thời gian thực trên YouTube sẽ được lưu vào bộ đệm và sử dụng TCP chậm hơn, mặc dù giao thức này đáng tin cậy hơn.

Cùng với nhiều tính năng khác, chức năng quét cổng cơ bản và khả năng chụp gói (packet-capture - tính năng chặn gói dữ liệu đang truyền qua hoặc di chuyển qua một mạng máy tính cụ thể) của Nmap cũng liên tục được nâng nâng cấp, cải thiện.

Ông Gordon Lyon, tác giả của Nmap đã chia sẻ trong một phản hồi email cho các truy vấn về phần mềm rằng hiện nay công ty của ông đang tập trung vào việc nâng cấp trình điều khiển tính năng chụp gói Npcap và thư viện cho Windows. "Nó làm cho Nmap nhanh hơn và mạnh hơn trên Windows và hiện cũng đang được sử dụng bởi nhiều ứng dụng khác nữa. Chúng tôi đã tung ra tám bản phát hành của Npcap trong năm nay", ông Gordon Lyon cho biết.

Nmap và con đường chạm tới những thành công

Nmap được viết trên nền tảng C ++ và được giới thiệu lần đầu tiên cùng với mã nguồn trong tạp chí Phrack vào tháng 9 năm 1997. Sau đó nó được mở rộng với C, Perl và Python. Tác giả Gordon Lyon đã sử dụng bút danh Fyodor Vaskovitch. Fyodor Vaskovitch cho biết sở dĩ ông lựa chọn bút danh này là do ông đã bị ấn tượng mạnh sau khi đọc những dòng ghi chú của Fyodor Dostoevsky từ Underground.

Gordon Lyon

Trong suốt những năm qua kể từ khi ra mắt, Nmap đã được hưởng lợi từ sự đóng góp lớn của cộng đồng người hâm mộ và các nhà phát triển đang không ngừng tăng và giờ đây ứng dụng này sở hữu số lượt tải xuống lên tới hàng ngàn lần mỗi ngày. Cùng với sự ủng hộ từ giới công nghệ, Nmap cùng đã được đông đảo công chúng, những người không có nhiều chuyên môn về an ninh mạng biết đến thông qua những bộ phim điện ảnh. Trong những bộ phim này Nmap đã trở thành một công cụ đột phá cho các đạo diễn cùng với sự diễn xuất của các ngôi sao như Rihanna và Kate Mara. Nmap xuất hiện lần đầu trong bộ phim The Matrix Reloaded, trong đó nhân vật Trinity do Carrie-Anne Moss thủ vai đã cho thấy khả năng bẻ khóa bảo mật ấn tượng của cô bằng cách sử dụng phần mềm Nmap một cách chính xác.

Nmap chạy được trên những hệ điều hành nào?

Một trong những lý do dẫn đến sự phổ biến rộng rãi của Nmap là nó có thể được sử dụng được trên rất nhiều hệ điều hành khác nhau. Nó chạy được trên Windows macOS cũng như được hỗ trợ trên các bản phân phối của Linux bao gồm Red Hat, Mandrake, SUSE và Fedora. Nó cũng hoạt động tốt trên các hệ điều hành khác bao gồm BSD, Solaris, AIX và AmigaOS.

Cách sử dụng Nmap

Không khó để tìm thấy một loạt các tiện ích giám sát mạng miễn phí cũng như các công cụ quét lỗ hổng nguồn mở miễn phí có sẵn cho các nhà quản trị mạng và kiểm soát viên an ninh mang. Tuy nhiên, điều làm cho Nmap nổi bật như một công cụ công nghệ thông tin mà bất cứ các nhà quản lý mạng nào cũng cần phải biết tới chính là ở tính linh hoạt và sức mạnh của nó. Ngoài chức năng cơ bản của Nmap là quét cổng, nó cũng cung cấp cho người dùng một loạt các tính năng liên quan bao gồm:

  • Lập bản đồ mạng (Network mapping): Nmap có thể xác định các thiết bị đang hoạt động trên mạng (còn được gọi là phát hiện máy chủ), bao gồm máy chủ, bộ định tuyến và cách chúng được kết nối vật lý như thế nào.
  • Phát hiện hệ điều hành(OS detection): Nmap có thể xác định được các hệ điều hành của các thiết bị đang chạy trên mạng (còn gọi là OS fingerprinting), đồng thời cung cấp thông tin về nhà cung cấp, hệ điều hành cơ sở, phiên bản phần mềm và thậm chí ước tính được cả thời gian hoạt động của thiết bị.
  • Dò tìm dịch vụ (Service discovery): Nmap không chỉ có thể xác định được các máy chủ đang hoạt động trên mạng, mà còn xác định được chúng đang cung cấp loại hình dịch vụ nào. Có thể là các máy chủ mail, web hoặc tên. Cũng như xác định được các ứng dụng và phiên bản cụ thể của những phần mềm liên quan mà chúng đang chạy.
  • Kiểm tra bảo mật (Security auditing): Nmap có thể tìm ra phiên bản hệ điều hành và ứng dụng nào đang chạy trên các máy chủ mạng, từ đó cho phép các nhà quản trị mạng xác định những vị trí yếu điểm tướng ứng với các lỗ hổng cụ thể. Ví dụ, nếu quản trị viên mạng nhận được những cảnh báo về lỗ hổng trong từng phiên bản cụ thể của ứng dụng, anh ta có thể tiến hành quét mạng của mình để xác định xem phiên bản phần mềm đó có đang chạy trên mạng không và thực hiện các bước để vá hoặc cập nhật các máy chủ có liên quan. Ngoài ra, các tập lệnh cũng có thể tự động hóa các tác vụ như phát hiện các lỗ hổng cụ thể.

Các tiện ích

Sử dụng Nmap cho các mạng cục bộ

Chạy Nmap thường là cách tốt nhất để khám phá “kích thước” của mạng và số lượng thiết bị được kết nối với nó. Quét Nmap “nhanh" (-F) trên phạm vi mạng có thể tạo danh sách tất cả các địa chỉ IP thuộc về máy chủ hoạt động trên mạng, cùng với một số thông tin bổ sung.

sudo nmap -F 192.168.0.0/24

Starting Nmap 7.70 ( https://nmap.org ) at 2018-11-10 22:55 PST
Nmap scan report for 192.168.0.1
Host is up (0.048s latency).
Not shown: 96 closed ports
PORT STATE SERVICE
80/tcp open http
443/tcp open https
5000/tcp open upnp
8081/tcp filtered blackice-icecap
MAC Address: AC:EC:80:00:EA:17 (Arris Group)

Nmap scan report for 192.168.0.35
Host is up (0.065s latency).
Not shown: 93 closed ports
PORT STATE SERVICE
21/tcp open ftp
23/tcp open telnet
80/tcp open http
443/tcp open https
515/tcp open printer
631/tcp open ipp
9100/tcp open jetdirect
MAC Address: C4:8E:8F:38:61:93 (Hon Hai Precision Ind.)

Nmap scan report for 192.168.0.232
Host is up (0.032s latency).
All 100 scanned ports on 192.168.0.232 are closed
MAC Address: 60:A3:7D:30:24:60 (Apple)

Lượng thông tin trên mạng cục bộ mà Nmap có thể thu thập được rất ấn tượng, bao gồm địa chỉ MAC và nhà sản xuất thiết bị được kết nối, hệ điều hành mà thiết bị đang sử dụng và phiên bản của bất kỳ service nào đang chạy trên thiết bị. Sau khi biết có bao nhiêu thiết bị trên mạng và (gần như) nắm được chúng là những thiết bị nào, bước tiếp theo là quét và kiểm tra các thiết bị trên mạng bạn quan tâm.

Một chức năng quan trọng khác của Nmap là cho phép quét cổng của từng thiết bị hoặc dải địa chỉ IP, bao gồm nhiều thiết bị. Điều này cho phép kẻ tấn công tìm hiểu chi tiết từng thiết bị được phát hiện trên mạng, bao gồm thông tin về các cổng (port) mở và service đang chạy. Port là cổng mà một thiết bị khác có thể kết nối, do đó, việc tìm ra một loạt các service chạy trên các cổng mở có thể là một lợi ích rất lớn đối với tin tặc, đặc biệt là nếu một trong số các thiết bị sử dụng phiên bản lỗi thời và dễ bị tấn công.

Sử dụng Nmap cho các mạng từ xa

Ngoài việc quét các mạng cục bộ, Nmap cũng có thể hiển thị thông tin về các mạng từ xa. Trên thực tế, bạn có thể chạy Nmap trên trang web muốn kiểm tra và nó sẽ phân tích cú pháp và lấy địa chỉ IP được liên kết với tên miền của trang web đó.

nmap -F wonderhowto.com

Starting Nmap 7.60 ( https://nmap.org ) at 2018-11-11 23:20 PST
Nmap scan report for wonderhowto.com (104.193.19.59)
Host is up (0.14s latency).
Not shown: 95 closed ports
PORT STATE SERVICE
53/tcp filtered domain
80/tcp open http
139/tcp filtered netbios-ssn
443/tcp open https
445/tcp filtered microsoft-ds

Nmap done: 1 IP address (1 host up) scanned in 3.21 seconds

Sau khi lấy địa chỉ IP và ghi chú các số cổng đang mở, tiếp theo Nmap có thể cho thấy hệ điều hành (-O) đang được sử dụng để lưu trữ một trang web từ xa.

sudo nmap -O 104.193.19.59

Starting Nmap 7.70 ( https://nmap.org ) at 2018-11-10 23:00 PST
Nmap scan report for wonderhowto.com (104.193.19.59)
Host is up (0.036s latency).
Not shown: 998 closed ports
PORT STATE SERVICE
80/tcp open http
443/tcp open https
Device type: load balancer
Running (JUST GUESSING): Citrix embedded (95%)
Aggressive OS guesses: Citrix NetScaler load balancer (95%), Citrix NetScaler VPX load balancer (88%)
No exact OS matches for host (test conditions non-ideal).
Network Distance: 17 hops

OS detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 8.69 seconds

Cuối cùng, người dùng thậm chí có thể tìm hiểu về các phiên bản phần mềm đang chạy trên các cổng mở. Nếu thấy một cổng dễ bị tấn công, nó có thể giúp công việc của người dùng trên mạng dễ dàng hơn nhiều. Sử dụng địa chỉ IP đã tìm ra trước đó, người dùng có thể thực hiện một lần quét khác với tham số -sV, cho thấy httpd 2.0 đang được sử dụng trên máy đích.

sudo nmap -sV 104.193.19.59

Starting Nmap 7.70 ( https://nmap.org ) at 2018-11-10 23:02 PST
Nmap scan report for wonderhowto.com (104.193.19.59)
Host is up (0.053s latency).
Not shown: 998 closed ports
PORT STATE SERVICE VERSION
80/tcp open http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
443/tcp open ssl/http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
Service Info: OS: Windows; CPE: cpe:/o:microsoft:windows

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 29.27 seconds

Các chi tiết này - địa chỉ IP của một trang web hoặc máy chủ từ xa, hệ điều hành chạy trên thiết bị và phiên bản của bất kỳ ứng dụng nào chạy trên các cổng mở đã phát hiện - là tất cả mọi thứ mà hacker cần để bắt đầu tấn công các thiết bị trên mạng.

Những gì bạn cần

Để sử dụng Nmap, bạn sẽ cần một hệ thống hỗ trợ nó. May mắn thay, Nmap là một ứng dụng đa nền tảng, hoạt động trên Windows, Linux và macOS, được cài đặt sẵn trên nhiều hệ thống. Kể cả nếu chưa có công cụ này, việc cài đặt cũng thật dễ dàng.

Bạn cũng sẽ cần một mạng để kết nối và quét để thử các kỹ thuật này, nhưng lưu ý rằng việc quét thường được xem là “khúc dạo đầu” cho một cuộc tấn công và cần phải xem xét kỹ lưỡng. Điều này có nghĩa là nếu công việc của bạn là giám sát hành vi đáng ngờ, việc quét toàn bộ mạng là một cách tuyệt vời để có cái nhìn toàn cảnh nhất.

Bước 1: Định cấu hình Nmap để quét một mục tiêu

Để chạy tính năng quét cơ bản, người dùng có thể xác định địa chỉ IP mục tiêu cụ thể để quét. Một trong những cách quét cơ bản nhưng có được nhiều thông tin nhất là chạy Nmap, chỉ định địa chỉ IP đích và sau đó nhập -A để bật tính năng phát hiện hệ điều hành, phát hiện phiên bản, quét tập lệnh và theo dõi.

sudo nmap 104.193.19.59 -A

Starting Nmap 7.70 ( https://nmap.org ) at 2018-11-10 23:12 PST
Nmap scan report for wonderhowto.com (104.193.19.59)
Host is up (0.038s latency).
Not shown: 998 closed ports
PORT STATE SERVICE VERSION
80/tcp open http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
|_http-server-header: WonderHowTo
|_http-title: Did not follow redirect to https://wonderhowto.com/
443/tcp open ssl/http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
|_http-server-header: WonderHowTo
|_http-title: Did not follow redirect to https://www.wonderhowto.com/
| ssl-cert: Subject: commonName=wonderhowto.com
| Subject Alternative Name: DNS:wonderhowto.com, DNS:*.driverless.id, DNS:*.gadgethacks.com, DNS:*.invisiverse.com, DNS:*.null-byte.com, DNS:*.reality.news, DNS:*.wonderhowto.com, DNS:driverless.id, DNS:gadgethacks.com, DNS:invisiverse.com, DNS:null-byte.com, DNS:reality.news
| Not valid before: 2017-01-25T00:00:00
|_Not valid after: 2019-01-25T23:59:59
|_ssl-date: 2018-11-11T07:12:53+00:00; 0s from scanner time.
Device type: load balancer
Running (JUST GUESSING): Citrix embedded (90%)
Aggressive OS guesses: Citrix NetScaler load balancer (90%), Citrix NetScaler VPX load balancer (88%)
No exact OS matches for host (test conditions non-ideal).
Network Distance: 17 hops
Service Info: OS: Windows; CPE: cpe:/o:microsoft:windows

TRACEROUTE (using port 995/tcp)
HOP RTT ADDRESS
1 31.75 ms 192.168.0.1
2 26.02 ms 142.254.236.193
3 35.17 ms agg60.lsaicaev01h.socal.rr.com (24.30.168.25)
4 30.78 ms agg11.lsaicaev01r.socal.rr.com (72.129.18.192)
5 26.19 ms agg26.lsancarc01r.socal.rr.com (72.129.17.0)
6 34.58 ms bu-ether16.atlngamq46w-bcr00.tbone.rr.com (66.109.6.92)
7 30.20 ms ae2.lsancarc0yw-bpr01.tbone.rr.com (66.109.1.41)
8 35.04 ms ix-ae-24-0.tcore1.lvw-los-angeles.as6453.net (66.110.59.81)
9 35.01 ms if-ae-8-2.tcore1.sv1-santa-clara.as6453.net (66.110.59.9)
10 35.11 ms if-ae-0-2.tcore2.sv1-santa-clara.as6453.net (63.243.251.2)
11 38.80 ms if-ae-18-2.tcore1.sqn-san-jose.as6453.net (63.243.205.12)
12 34.39 ms if-ae-1-2.tcore2.sqn-san-jose.as6453.net (63.243.205.2)
13 34.05 ms 64.86.21.62
14 31.16 ms xe-0-0-3.cr6-lax2.ip4.gtt.net (89.149.180.253)
15 63.54 ms 72.37.158.50
16 ...
17 34.34 ms wonderhowto.com (104.193.19.59)

OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 38.60 seconds

Ngay cả đối với một mục tiêu duy nhất, một lần quét cơ bản cũng có thể mang lại nhiều thông tin. Ở đây, ví dụ chỉ đơn giản là quét địa chỉ IP cho domain WonderHowTo.com. Công cụ có thể chạy với một thiết bị trên mạng cục bộ, như bộ định tuyến (router) hoặc máy chủ từ xa, như máy chủ lưu trữ WonderHowTo.com.

Bước 2: Tính toán mạng con và quét một phạm vi cụ thể để tìm ra các thiết bị

Để xác định các thiết bị khác trên mạng cục bộ, việc tính toán phạm vi mạng con là rất hữu ích. Đây là dải địa chỉ IP có thể được cung cấp cho các thiết bị trên mạng và là tín hiệu cho biết rằng có thể quét qua tất cả các địa chỉ IP của các thiết bị trên mạng.

Một công cụ hữu ích để làm điều này là IPcalc. Công cụ này sẽ lấy địa chỉ IP (dễ dàng tìm thấy bằng cách nhập ifconfig hoặc ip a trong cửa sổ terminal) và tính toán phạm vi mạng con dựa trên đó. Công cụ sẽ cung cấp một dãy số như "192.168.0.0/24", chỉ định một dải địa chỉ IP. Trong ví dụ dưới đây, mạng con được tính toán là 127.0.0.0/24.

ipcalc 127.0.0.1

Address: 127.0.0.1 01111111.00000000.00000000. 00000001
Netmark: 255.255.255.0 = 24 11111111.11111111.11111111. 00000000
Wildcard: 0.0.0.255 00000000.00000000.00000000. 11111111
=>
Network: 127.0.0.0/24 01111111.00000000.00000000. 00000000
HostMin: 127.0.0.1 01111111.00000000.00000000. 00000001
HostMax: 127.0.0.254 01111111.00000000.00000000. 11111110
Broadcast: 127.0.0.255 01111111.00000000.00000000. 11111111
Hosts/Net: 254 Class A, Loopback

Để bao gồm cả thông tin về các service đang chạy trên thiết bị đã tìm thấy, người dùng có thể mở cửa sổ terminal và nhập lệnh sau, thêm vào phạm vi mạng của bạn (nơi sử dụng "172.16.42.0/24" trong ví dụ). Quá trình quét hơi chậm, vì vậy có thể sử dụng flag -F thay vì -A để thực hiện quét nhanh hơn đối với các cổng phổ biến nhất.

nmap 172.16.42.0/24 -A

Starting Nmap 7.60 ( https://nmap.org ) at 2018-11-11 23:26 PST
Nmap scan report for 172.16.42.1
Host is up (0.0029s latency).
Not shown: 999 closed ports
PORT STATE SERVICE VERSION
53/tcp open domain?

Nmap scan report for 172.16.42.20
Host is up (0.0053s latency).
Not shown: 999 closed ports
PORT STATE SERVICE VERSION
62078/tcp open tcpwrapped

Nmap scan report for 172.16.42.32
Host is up (0.0057s latency).
Not shown: 999 closed ports
PORT STATE SERVICE VERSION
62078/tcp open tcpwrapped

Nmap scan report for 172.16.42.36
Host is up (0.011s latency).
Not shown: 999 closed ports
PORT STATE SERVICE VERSION
62078/tcp open tcpwrapped

Nmap scan report for 172.16.42.49
Host is up (0.0063s latency).
All 1000 scanned ports on 172.16.42.49 are closed

Nmap scan report for 172.16.42.53
Host is up (0.0059s latency).
Not shown: 999 closed ports
PORT STATE SERVICE VERSION
62078/tcp open iphone-sync?

Nmap scan report for 172.16.42.57
Host is up (0.013s latency).
All 1000 scanned ports on 172.16.42.57 are closed

Nmap scan report for 172.16.42.63
Host is up (0.00020s latency).
All 1000 scanned ports on 172.16.42.63 are closed

Nmap scan report for 172.16.42.65
Host is up (0.0077s latency).
Not shown: 999 closed ports
PORT STATE SERVICE VERSION
631/tcp open ipp CUPS 2.2
| http-methods:
|_ Potentially risky methods: PUT
|_http-server-header: CUPS/2.2 IPP/2.1
|_http-title: Home - CUPS 2.2.0

Nmap scan report for 172.16.42.119
Host is up (0.012s latency).
Not shown: 996 closed ports
PORT STATE SERVICE VERSION
898/tcp filtered sun-manageconsole
1862/tcp filtered mysql-cm-agent
1971/tcp filtered netop-school
62078/tcp open tcpwrapped

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 256 IP addresses (10 hosts up) scanned in 219.68 seconds

Về cơ bản, ta đang chạy Nmap không có đối số, ngoại trừ flag -A. Ta sẽ thấy output tương tự như trên, hiển thị các thiết bị được phát hiện và các service chạy trên chúng.

Một công cụ tiện dụng khác để khám phá mạng là arp-scan. Đôi khi nó có thể hiển thị các thiết bị mà Nmap bỏ lỡ. Ta có thể sử dụng Nmap để tiến hành quét ARP với truy vấn -PR, khá nhanh và tích cực trong việc đưa các máy chủ trực tuyến trở lại.

nmap -PR 192.168.0.0/24

Starting Nmap 7.60 ( https://nmap.org ) at 2018-11-12 06:10 PST
Nmap scan report for 192.168.0.1
Host is up (0.019s latency).
Not shown: 994 closed ports
PORT STATE SERVICE
53/tcp filtered domain
80/tcp open http
443/tcp open https
5000/tcp open upnp
8081/tcp filtered blackice-icecap
8082/tcp filtered blackice-alerts

Bước 3: Tạo một danh sách các máy chủ hoạt động mục tiêu

Bây giờ, bạn sẽ tính toán tất cả các địa chỉ IP có thể xuất hiện trên mạng cục bộ và khám phá chúng bằng cách quét -F (nhanh), bằng cách chạy Nmap không có đối số ngoại trừ có flag -A để quét chậm, nhưng cho nhiều thông tin hơn hoặc với -PR có khả năng quét nhanh một mạng cục bộ để tìm các máy chủ hoạt động.

Cuối cùng, nếu muốn tạo file TXT của máy chủ đã phát hiện, có thể sử dụng lệnh bên dưới để tạo danh sách, tránh phải quét toàn bộ mạng trong các lần tiếp theo. Chẳng hạn, để quét các thiết bị có cổng 80 mở và lưu chúng vào danh sách, bạn có thể sử dụng một số công cụ Linux và flag -oG "greppable output" để lọc output mà Nmap cung cấp.

Bằng cách chạy nmap -p 80 -oG - 192.168.0.0/24 (phạm vi mạng được thay thế bằng trường hợp cụ thể), bạn có thể thêm | awk '/80\/open/ {print $2}' >> port80.txt để xuất địa chỉ IP thuộc các thiết bị được phát hiện thành file TXT có tên là "port80.txt."

nmap -p 80 -oG - 192.168.0.1 | awk '/80\/open/ {print $2}' >> port80.txt
cat port80.txt

Ở đây, lệnh awk đang tìm kiếm các dòng chứa số cổng và kết quả "open", với chuỗi thứ hai trong mỗi dòng (trong trường hợp này là địa chỉ IP) được lưu bởi lệnh cat vào một file mới có tên port80.txt

Bước 4: Xác định hệ điều hành trên các thiết bị được phát hiện

Một trong những điều hữu ích nhất để biết về một thiết bị được khám phá trên mạng là hệ điều hành mà nó đang chạy. Tại đây, ta có thể lấy danh sách TXT mục tiêu đã có ở bước trước và quét hệ điều hành, yêu cầu quyền root. Có thể sử dụng flag -O để quét hệ điều hành và flag -iL để báo cho Nmap thiết bị muốn đọc từ file TXT của máy chủ đích.

sudo nmap -O -iL port80.txt

Password:

Starting Nmap 7.60 ( https://nmap.org ) at 2018-11-12 07:07 PST
Nmap scan report for 192.168.0.1
Host is up (0.033s latency).
Not shown: 994 closed ports
PORT STATE SERVICE
53/tcp filtered domain
80/tcp open http
443/tcp open https
5000/tcp open upnp
8081/tcp filtered blackice-icecap
8082/tcp filtered blackice-alerts
No exact OS matches for host (If you know what OS is running on it, see https://nmap.org/submit/ ).
TCP/IP fingerprint:
OS:SCAN(V=7.60%E=4%D=11/12%OT=80%CT=1%CU=33278%PV=Y%DS=1%DC=D%G=Y%M=407009%
OS:TM=5BE99771%P=x86_64-apple-darwin17.3.0)SEQ(SP=CB%GCD=1%ISR=CD%TI=Z%CI=Z
OS:%II=I%TS=7)SEQ(SP=CE%GCD=1%ISR=CE%TI=Z%CI=Z%TS=7)OPS(O1=M5B4ST11NW2%O2=M
OS:5B4ST11NW2%O3=M5B4NNT11NW2%O4=M5B4ST11NW2%O5=M5B4ST11NW2%O6=M5B4ST11)WIN
OS:(W1=3890%W2=3890%W3=3890%W4=3890%W5=3890%W6=3890)ECN(R=Y%DF=Y%T=40%W=390
OS:8%O=M5B4NNSNW2%CC=N%Q=)T1(R=Y%DF=Y%T=40%S=O%A=S+%F=AS%RD=0%Q=)T2(R=N)T3(
OS:R=Y%DF=Y%T=40%W=3890%S=O%A=S+%F=AS%O=M5B4ST11NW2%RD=0%Q=)T4(R=Y%DF=Y%T=4
OS:0%W=0%S=A%A=Z%F=R%O=%RD=0%Q=)T5(R=Y%DF=Y%T=40%W=0%S=Z%A=S+%F=AR%O=%RD=0%
OS:Q=)T6(R=Y%DF=Y%T=40%W=0%S=A%A=Z%F=R%O=%RD=0%Q=)T7(R=Y%DF=Y%T=40%W=0%S=Z%
OS:A=S+%F=AR%O=%RD=0%Q=)U1(R=Y%DF=N%T=40%IPL=164%UN=0%RIPL=G%RID=G%RIPCK=G%
OS:RUCK=G%RUD=G)IE(R=Y%DFI=N%T=40%CD=S)

Network Distance: 1 hop

Nmap scan report for 192.168.0.2
Host is up (0.019s latency).
Not shown: 997 closed ports
PORT STATE SERVICE
53/tcp filtered domain
80/tcp open http
8888/tcp open sun-answerbook
Device type: general purpose
Running: Linux 2.6.X
OS CPE: cpe:/o:linux:linux_kernel:2.6
OS details: Linux 2.6.17 - 2.6.36
Network Distance: 1 hop

Nmap scan report for 192.168.0.5
Host is up (0.064s latency).
Not shown: 993 filtered ports
PORT STATE SERVICE
80/tcp open http
8080/tcp open http-proxy
8085/tcp open unknown
8086/tcp open d-s-n
8087/tcp open simplifymedia
8088/tcp open radan-http
8089/tcp open unknown
Warning: OSScan results may be unreliable because we could not find at least 1 open and 1 closed port
Device type: general purpose
Running: Linux 3.X
OS CPE: cpe:/o:linux:linux_kernel:3
OS details: Linux 3.2 - 3.8
Network Distance: 1 hop

OS detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 3 IP addresses (3 hosts up) scanned in 67.32 seconds

Chiến thuật này cho phép người dùng có thể nhận được càng nhiều thông tin càng tốt về hệ điều hành từ bất kỳ danh sách mục tiêu nào muốn chạy, cho dù mục tiêu là mạng nội bộ hay danh sách địa chỉ IP của trang web.

Bước tiếp theo là khám phá các phiên bản của các ứng dụng đang chạy trên các cổng mở. Điều này có thể cho thấy một cổng đang chạy phần mềm đã lỗi thời và có một lỗ hổng đã được phát hiện. Để thực hiện điều này, hãy sử dụng flag -sV.

sudo nmap -sV 192.168.0.2 -D 192.168.0.1,192.168.0.2,192.168.0.3

Starting Nmap 7.60 ( https://nmap.org ) at 2018-11-12 07:29 PST
Nmap scan report for 192.168.0.2
Host is up (0.030s latency).
Not shown: 997 closed ports
PORT STATE SERVICE VERSION
53/tcp filtered domain
80/tcp open http?
8888/tcp open upnp MiniUPnP 1.6 (Linksys/Belkin WiFi range extender; SDK 4.1.2.0; UPnP 1.0; MTK 2.001)
MAC Address: 83:23:98:43:23:3D (Dobus International)

Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
Nmap done: 1 IP address (1 host up) scanned in 26.24 seconds

Tại đây, ta sẽ tìm thấy một số thông tin rất cụ thể về máy chủ, giúp ta có khả năng xác định một cuộc tấn công từ phần mềm “nghe lén” qua cổng.

Bước 5: Các giải pháp quét nâng cao

Thỉnh thoảng, người dùng sẽ gặp khó khăn khi quét mạng vì ping được gửi bởi Nmap bị chặn bởi tường lửa trên bộ định tuyến. Điều này có thể làm cho người dùng lầm tưởng là không có thiết bị nào trên mạng (dù trên thực tế là có). Để tránh điều này, bạn có thể bao gồm flag -Pn, để đôi khi cho phép kết nối trực tiếp với các thiết bị và nhận được phản hồi.

Nếu đang quét trên mạng không muốn bị phát hiện, có thể thực hiện quét thử bằng flag -D để khó phát hiện ai đang tiến hành quét trên mạng. Cách tiến hành sẽ trông giống như lệnh bên dưới và yêu cầu quyền root.

sudo nmap -sS 192.168.0.2 -D 192.168.0.1,192.168.0.2,192.168.0.3

Password:

Starting Nmap 7.60 ( https://nmap.org ) at 2018-11-12 07:26 PST
Nmap scan report for 192.168.0.2
Host is up (0.036s latency).
Not shown: 997 closed ports
PORT STATE SERVICE
53/tcp filtered domain
80/tcp open http
8888/tcp open sun-answerbook
MAC Address: 83:23:98:43:23:3D (Dobus International)

Nmap done: 1 IP address (1 host up) scanned in 5.16 seconds

Nếu cần thêm thông tin về những gì đang xảy ra, có thể nhấn một phím trong khi quá trình quét đang diễn ra để có được một số thông tin về cách tiến hành hoặc thêm tham số -v để tăng mức độ chi tiết (lượng thông tin mà tập lệnh cung cấp). Nói chung, bạn có thể tiếp tục thêm nhiều v vào -v tùy theo mức độ mong muốn tìm hiểu thêm thông tin về những gì đang xảy ra.

Initiating ARP Ping Scan at 07:18
Scanning 192.168.0.1 [1 port]
Completed ARP Ping Scan at 07:18, 0.12s elapsed (1 total hosts)
Initiating Parallel DNS resolution of 1 host. at 07:18
Completed Parallel DNS resolution of 1 host. at 07:18, 0.09s elapsed
DNS resolution of 1 IPs took 0.10s. Mode: Async [#: 1, OK: 0, NX: 1, DR: 0, SF: 0, TR: 1, CN: 0]
Initiating SYN Stealth Scan at 07:18
Scanning 192.168.0.1 [1 port]
Discovered open port 80/tcp on 192.168.0.1
Completed SYN Stealth Scan at 07:18, 0.04s elapsed (1 total ports)
Nmap scan report for 192.168.0.1
Host is up, received arp-response (0.11s latency).
Scanned at 2018-11-12 07:18:34 PST for 0s

PORT STATE SERVICE REASON
80/tcp open http syn-ack ttl 64
MAC Address: 23:78:32:76:34:90 (Dobis Group)

Read data files from: /usr/local/bin/../share/nmap
Nmap done: 1 IP address (1 host up) scanned in 0.33 seconds
Raw packets sent: 2 (72B) | Rcvd: 2 (72B)

Ở đây, ta có thể thấy lý do được báo cáo cho cổng 80 đang hoạt động cho phép ta quyết định phần nào của quá trình quét sẽ cho ta thông tin cần thiết hoặc được bỏ qua. Như đã đề cập, bạn sẽ thấy mọi thứ mà quá trình quét đang thực hiện và điều này có thể tạo ra rất nhiều đầu ra cho lần quét phức tạp.

Lần đầu tiên tìm kiếm thông tin gì đó về mạng có thể rất khó khăn đối với người mới bắt đầu, cho dù đang tìm hiểu về quá trình khai thác mạng lần đầu tiên hay chỉ đơn giản là cố gắng tìm router trên mạng.

Hãy ghi nhớ, dù việc quét mạng là một ý tưởng tuyệt vời để chạy trên mạng riêng và xem những gì được kết nối, việc này có thể không được cho phép trên mạng tại nơi làm việc hoặc các mạng khác mà bạn không sở hữu. Nếu chủ nhân thực sự phát hiện hành vi đáng ngờ trên mạng, hành vi của bạn có thể dễ dàng được coi là một hành động đe dọa nếu không có lý do chính đáng để thực hiện việc này.

Một trong những điểm mạnh nhất của Nmap là nó có thể tạo kịch bản với các tùy chọn như -oG và có thể được sử dụng để cung cấp thông tin cho các công cụ khác. Vì vậy, nếu bạn từng tưởng tượng việc xây dựng một công cụ để tìm ra các thiết bị khác trên cùng một mạng, Nmap có thể là những gì bạn đang tìm kiếm.

Các lệnh trong Nmap cho người mới bắt đầu

Một trong những cái hay khi dùng Nmap là những người mới sử dụng, có ít kiến thức về hệ thống hoặc mạng vẫn có thể bắt đầu với các lệnh đơn giản để tiến hành các quá trình quét cơ bản, trong khi các chuyên gia có thể tận dụng các lệnh phức tạp hơn để có những cái nhìn chi tiết hơn về toàn bộ hệ thống mạng.

Những gì bạn nhận được khi bạn sử dụng Nmap về cơ bản là danh sách các mục tiêu bạn đã quét, cùng với thông tin liên qua được liên kết với các mục tiêu đó. Thông tin bạn nhận được sẽ tùy thuộc vào cách thức bạn thực hiện quét. Nói cách khác, nó tùy thuộc vào các lệnh mà bạn đã sử dụng.

Quá trình quét không nhất thiết tạo ra nhiều lưu lượng truy cập mà tùy thuộc vào các lệnh được sử dụng. Việc quét tất cả các cổng trên tất cả các hệ thống sẽ không mang lại nhiều hiệu quả, chủ yếu vì chỉ có một phần nhỏ các cổng có sẵn sẽ được sử dụng cùng một lúc (một hệ thống có thể có 65.535 cổng TCP và 65.535 cổng UDP). Các tùy chọn khác nhau cho phép finetuning hoặc mở rộng quét. Ví dụ: trong việc xác định các phiên bản dịch vụ, các tùy chọn có sẵn bao gồm:

  • sV (cho phép phát hiện phiên bản)
  • version-intensity <intensity> (đặt cường độ quét)

Cường độ quét dao động từ 0 đến 9. Quét cường độ thấp hơn sẽ thăm dò các dịch vụ phổ biến, trong khi quét cường độ cao hơn có thể xác định được chính xác các dịch vụ được sử dụng ít hơn nhưng sẽ mất nhiều thời gian quét hơn.

Các lệnh khác nhau cũng có thể cho phép bạn chỉ định cổng hoặc mạng thành phần nào cần quét hoặc bỏ qua.

Nmap Scripting Engine (NSE)

Nmap Scripting Engine (NSE) bao gồm một công cụ lệnh được viết trên ngôn ngữ lập trình Lua để viết, lưu và chia sẻ các tập lệnh có nhiệm vụ tự động hóa các kiểu quét khác nhau. Mặc dù thường được sử dụng để kiểm tra các lỗ hổng điển hình, các cơ sở hạ tầng mạng, nhưng tất cả các nhiệm vụ đều có thể được tự động hóa.

Zenmap - giao diện của Nmap

Zenmap là giao diện đồ họa của máy quét bảo mật Nmap. Giao diện này cung cấp cho người dùng hàng trăm tùy chọn khác nhau. Nó cho phép người dùng thực hiện những việc như lưu trữ thông tinh về các lượt quét và sau đó so sánh chúng, xem bản đồ cấu trúc liên kết mạng, xem hiển thị các cổng đang chạy trên máy chủ hoặc tất cả máy chủ trên mạng và lưu trữ, quét trong cơ sở dữ liệu để phục vụ cho quá trình tìm kiếm sau này.

Có gì mới trong Nmap

Phiên bản Nmap 7.70, phát hành vào tháng 3 năm 2018, đã cung cấp 9 tập lệnh NSE mới và cung cấp hàng trăm mã hệ điều hành và dịch vụ mới cho hệ điều hành và ứng dụng phát hiện phiên bản ứng dụng, bao gồm mã hỗ trợ IPv6 và IPv4. Các cải tiến trong phiên bản 7.70 cũng giúp phát hiện phiên bản dịch vụ nhanh hơn và chính xác hơn. Do việc sử dụng Windows rộng rãi, việc đưa các cải tiến đối với thư viện chụp gói Npcap Windows cũng được đưa ra nhằm tăng cường hiệu suất và tính ổn định là những bước đi đặc biệt quan trọng từ nhà phát hành.

Bản phát hành tiếp theo của Nmap được dự kiến sẽ ra mắt vào cuối quý 3 hoặc đầu quý 4 năm nay, nhưng ông Lyon cũng lưu ý rằng giữa các bản phát hành, các tập lệnh và các giao thức mới đang được hãng trau chuốt và có sẵn để người dùng thử nghiệm.

"Việc chuyển đổi từ trình điều khiển Winpcap lỗi thời, sang hệ thống Npcap mới của chúng tôi thực sự là một bước tiến lớn chưa từng có cho người dùng Windows Nmap. Chúng tôi cũng sẽ tiếp tục mở rộng và cải thiện Nmap Scripting Engine. Bây giờ chúng tôi có 591 tập lệnh và 133 thư viện giao thức, các bạn có thể tìm thấy tại https://nmap.org/nsedoc/. Tôi cảm thấy dường như đứa con tinh thần của mình giờ đây đã thực sự đã khôn lớn trưởng thành. Quả thật vậy, Nmap sẽ bước sang tuổi 21 vào ngày 1 tháng 9 này!”, ông Lyon chia sẻ.

Nmap có đang được sử dụng cho các hành vi trái phép không?

Mặc dù tính năng quét cổng không phải là tính năng bất hợp pháp, ít nhất là theo luật liên bang của Hoa Kỳ, các tính năng của Nmap chắc chắn rất hữu ích đối với các tin tặc có mục đích xấu đang tìm kiếm những lỗ hổng bảo mật để khai thác. Một số ứng dụng nhất định của phần mềm, không được phép truy cập, nếu vẫn phớt lờ, có thể bạn sẽ bị sa thải hoặc gặp rắc rối về pháp lý, ngay cả khi bạn đang thực hiện quét các lỗ hổng không vì những mục đích xấu.

Trong khi một số bản quét Nmap khá nhẹ và không thể tắt cảnh báo, tốt nhất bạn nên tiến các bản quét được cho phép của mình với những cá nhân thích hợp trong tổ chức của bạn. Lưu ý rằng nhiều tùy chọn Nmap, chẳng hạn như OS fingerprinting, yêu cầu quyền truy cập vào các dữ liệu gốc. Do đó, khi nghi ngờ về tính hợp pháp của những những điều bạn muốn làm, đặc biệt là khi bạn làm việc một mình và không có đội ngũ pháp lý của tổ chức để tham khảo ý kiến, hãy nói chuyện với một luật sư có chuyên môn về gian lận và lạm dụng máy tính.

Tài nguyên Nmap

Nếu muốn tìm hiểu sâu hơn về Nmap, nguồn thông tin duy nhất và tốt nhất bạn nên tham khảo là Nmap.org. Trang web này được duy trì và quả lý bởi chính tác giả Fyodor Vaskovitch. Tài nguyên thiết yếu trên Nmap.org và các trang web khác bao gồm:

  • Tài liệu.
  • Hướng dẫn tham khảo Nmap, mô tả chi tiết về Nmap và cách thức nó hoạt động.
  • Hướng dẫn sử dụng Zenmap.
  • Người dùng Nmap có thể tham gia vào danh sách gửi thư Nmap-hacker để theo dõi các bản cập nhật. Các nhà phát triển quan tâm đến việc thử nghiệm hoặc đóng góp mã cũng như các ý kiến đề xuất có thể đăng ký vào danh sách Nmap-dev.
  • 100 công cụ bảo mật mạng hàng đầu được bình chọn bởi người dùng Nmap.

Download Nmap ở đâu?

Để tải xuống Nmap, hãy truy cập vào đây và làm theo hướng dẫn.

Xem thêm:

Thứ Tư, 09/01/2019 11:31
4,49 👨 55.481
0 Bình luận
Sắp xếp theo
    ❖ Giải pháp bảo mật