Thursday, November 21, 2024

Sử dụng Nmap trong Linux

-

1. Tổng quan.

Nmap là một công cụ mạng mã nguồn mở mạnh mẽ và phổ biến trong hệ thống Linux, được sử dụng để quét mạng và kiểm tra bảo mật hệ thống. Nó cung cấp nhiều tính năng mạnh mẽ cho việc khám phá mạng, xác định các dịch vụ mạng, và kiểm tra lỗ hổng bảo mật. Trong bài viết này, chúng ta sẽ tìm hiểu về cách sử dụng Nmap trong Linux để nắm rõ cách công cụ này hoạt động và làm thế nào để tận dụng nó trong việc bảo vệ hệ thống.

2. Cài đặt Nmap.

Nmap thường đã được cài sẵn trên nhiều bản phân phối Linux, nhưng nếu bạn chưa có nó, bạn có thể cài đặt bằng cách sử dụng trình quản lý gói của hệ thống. Ví dụ, trên Ubuntu, bạn có thể sử dụng lệnh sau:

sudo apt-get install nmap -y

3. Các ví dụ với cú pháp cơ bản.

– Scan port đang mở trên một IP ở chế độ port mặc định (1-1024), ví dụ scan các port đang mở trên IP 192.168.13.225.

$ nmap 192.168.13.225
Starting Nmap 7.94 ( https://nmap.org ) at 2023-10-22 17:05 +07
Nmap scan report for 192.168.13.225
Host is up (0.0050s latency).
Not shown: 997 closed tcp ports (conn-refused)
PORT     STATE SERVICE
22/tcp   open  ssh
111/tcp  open  rpcbind
3128/tcp open  squid-http

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

– Nmap quét cổng mặc định từ 1 đến 1024, do đó nếu máy chủ của mình đang sử dụng cổng 8006, Nmap không sẽ không phát hiện nó trong kết quả quét mặc định. Để kiểm tra cổng 8006 trên máy chủ 192.168.13.225, mình sẽ thể sử dụng tùy chọn -p để chỉ định cổng cụ thể bạn muốn quét:

$ nmap -p 8006 192.168.13.225
Starting Nmap 7.94 ( https://nmap.org ) at 2023-10-22 17:06 +07
Nmap scan report for 192.168.13.225
Host is up (0.0049s latency).

PORT     STATE SERVICE
8006/tcp open  wpl-analytics

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

– Hoặc có thể chỉ định range port cụ thể ví dụ như 1 – 10000.

$ nmap -p 1-10000 192.168.13.225
Starting Nmap 7.94 ( https://nmap.org ) at 2023-10-22 17:07 +07
Nmap scan report for 192.168.13.225
Host is up (0.0049s latency).
Not shown: 9968 closed tcp ports (conn-refused)
PORT     STATE SERVICE
22/tcp   open  ssh
111/tcp  open  rpcbind
3128/tcp open  squid-http
4082/tcp open  lorica-out
4083/tcp open  lorica-out-sec
4084/tcp open  fortisphere-vm
4085/tcp open  ezmessagesrv
6800/tcp open  unknown
6801/tcp open  acnet
6802/tcp open  unknown
6803/tcp open  unknown
6804/tcp open  unknown
6805/tcp open  unknown
6806/tcp open  unknown
6807/tcp open  unknown
6808/tcp open  unknown
6809/tcp open  unknown
6810/tcp open  unknown
6811/tcp open  unknown
6812/tcp open  unknown
6813/tcp open  unknown
6814/tcp open  unknown
6815/tcp open  unknown
6816/tcp open  unknown
6817/tcp open  pentbox-sim
6818/tcp open  unknown
6819/tcp open  unknown
6820/tcp open  unknown
6821/tcp open  unknown
6822/tcp open  unknown
6823/tcp open  unknown
8006/tcp open  wpl-analytics

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

– Hoặc bạn cũng có thể scan chỉ định port cụ thể.

$ nmap -p 80,443,8006,22 192.168.13.225
Starting Nmap 7.94 ( https://nmap.org ) at 2023-10-22 17:12 +07
Nmap scan report for 192.168.13.225
Host is up (0.0049s latency).

PORT     STATE  SERVICE
22/tcp   open   ssh
80/tcp   closed http
443/tcp  closed https
8006/tcp open   wpl-analytics

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

– Scan một range IP, kết quả là những IP nào không xuất hiện trong danh sách có nghĩa chúng chưa được sử dụng.

$ nmap 192.168.13.180-244
Starting Nmap 7.94 ( https://nmap.org ) at 2023-10-22 17:11 +07
Nmap scan report for 192.168.13.180
Host is up (0.0053s latency).
Not shown: 997 closed tcp ports (conn-refused)
PORT    STATE SERVICE
22/tcp  open  ssh
80/tcp  open  http
111/tcp open  rpcbind

<đã bỏ bớt một số kết quả>

Nmap scan report for 192.168.13.238
Host is up (0.0048s latency).
Not shown: 999 closed tcp ports (conn-refused)
PORT   STATE SERVICE
22/tcp open  ssh

Nmap scan report for 192.168.13.239
Host is up (0.0057s latency).
Not shown: 999 closed tcp ports (conn-refused)
PORT   STATE SERVICE
22/tcp open  ssh

Nmap scan report for 192.168.13.244
Host is up (0.0050s latency).
Not shown: 994 closed tcp ports (conn-refused)
PORT      STATE SERVICE
22/tcp    open  ssh
80/tcp    open  http
111/tcp   open  rpcbind
2049/tcp  open  nfs
32769/tcp open  filenet-rpc
32770/tcp open  sometimes-rpc3

Nmap done: 65 IP addresses (34 hosts up) scanned in 39.54 seconds

Bạn cũng có thể chỉ định range port cụ thể đối với range IP nhé.

$ nmap -p 20-23 192.168.13.180-190
Starting Nmap 7.94 ( https://nmap.org ) at 2023-10-22 17:17 +07
Nmap scan report for 192.168.13.180
Host is up (0.0056s latency).

PORT   STATE  SERVICE
20/tcp closed ftp-data
21/tcp closed ftp
22/tcp open   ssh
23/tcp closed telnet

Nmap scan report for 192.168.13.181
Host is up (0.0056s latency).

PORT   STATE  SERVICE
20/tcp closed ftp-data
21/tcp closed ftp
22/tcp open   ssh
23/tcp closed telnet

Nmap scan report for 192.168.13.190
Host is up (0.0056s latency).

PORT   STATE  SERVICE
20/tcp closed ftp-data
21/tcp closed ftp
22/tcp open   ssh
23/tcp closed telnet

Nmap done: 11 IP addresses (3 hosts up) scanned in 1.68 seconds

– Để chỉ quét giao thức ICMP trên dải mạng 192.168.199.0/24, bạn có thể sử dụng tùy chọn -sn (không quét cổng) để chỉ kiểm tra trạng thái online/offline của các máy chủ trong dải mạng. Dưới đây là cách bạn có thể làm điều này:

$ nmap -sn 192.168.199.0/24
Starting Nmap 7.94 ( https://nmap.org ) at 2023-10-22 17:19 +07
Nmap scan report for 192.168.199.1
Host is up (0.00043s latency).
Nmap scan report for 192.168.199.10
Host is up (0.00023s latency).
Nmap done: 256 IP addresses (2 hosts up) scanned in 21.12 seconds

Lệnh trên sẽ thực hiện quét dải mạng 192.168.199.0/24 và kiểm tra xem các máy chủ trong dải này có trạng thái online hay offline thông qua giao thức ICMP. Nó sẽ không quét cổng TCP hoặc UDP, chỉ kiểm tra trạng thái qua giao thức ICMP.

– Để quét các IP trống trong subnet 192.168.13.0/24, bạn có thể sử dụng Nmap với các tham số dưới đây.

$ nmap 192.168.13.0/24 -n -T4 -p 22,8006,3306,80,443,1433,3389
Starting Nmap 7.94 ( https://nmap.org ) at 2023-10-22 17:24 +07
Nmap scan report for 192.168.13.11
Host is up (0.0056s latency).

PORT     STATE  SERVICE
22/tcp   closed ssh
80/tcp   closed http
443/tcp  closed https
1433/tcp closed ms-sql-s
3306/tcp closed mysql
3389/tcp closed ms-wbt-server
8006/tcp closed wpl-analytics

Nmap scan report for 192.168.13.13
Host is up (0.0060s latency).

<đã bỏ một số kết quả>

PORT     STATE  SERVICE
22/tcp   closed ssh
80/tcp   closed http
443/tcp  closed https
1433/tcp closed ms-sql-s
3306/tcp closed mysql
3389/tcp closed ms-wbt-server
8006/tcp closed wpl-analytics

Nmap scan report for 192.168.13.15
Host is up (0.0059s latency).

PORT     STATE    SERVICE
22/tcp   filtered ssh
80/tcp   open     http
443/tcp  filtered https
1433/tcp filtered ms-sql-s
3306/tcp filtered mysql
3389/tcp open     ms-wbt-server
8006/tcp filtered wpl-analytics

Nmap done: 256 IP addresses (38 hosts up) scanned in 19.89 seconds

Ở đây:

  • 192.168.13.0/24: Đây là dải mạng mà bạn muốn quét. Dải này bao gồm tất cả các địa chỉ từ 192.168.13.0 đến 192.168.13.255.
  • -n: Ngăn Nmap thử tìm kiếm tên máy chủ cho các địa chỉ IP.
  • -T4: Thiết lập tốc độ quét. T4 là một cấu hình tương đối nhanh và thường được sử dụng.
  • -p 22,8006,3306,80,443,1433,3389: Điều này giúp bạn kiểm tra trạng thái của các máy chủ trên các cổng 80 (HTTP) và 443 (HTTPS).

Khi bạn chạy lệnh này, Nmap sẽ quét dải mạng 192.168.13.0/24 và xác định trạng thái online/offline của các máy chủ trong dải mạng này. Bất kỳ máy chủ nào có trạng thái online sẽ được liệt kê trong kết quả. Các máy chủ nào có trạng thái offline sẽ không xuất hiện trong danh sách kết quả.

– Để lấy kết quả về các địa chỉ IP được sử dụng trong dải mạng 192.168.13.0/24, bạn có thể sử dụng Nmap và sau đó phân tích kết quả để tìm các địa chỉ IP có trạng thái “open” (đã được sử dụng). Dưới đây là cách bạn có thể làm điều này:

$ nmap -sn -T4 192.168.13.180-244 -oG -
# Nmap 7.94 scan initiated Sun Oct 22 18:02:16 2023 as: nmap -sn -T4 -oG - 192.168.13.180-244
Host: 192.168.13.180 ()	Status: Up
Host: 192.168.13.181 ()	Status: Up
Host: 192.168.13.190 ()	Status: Up
Host: 192.168.13.191 ()	Status: Up
Host: 192.168.13.192 ()	Status: Up
Host: 192.168.13.193 ()	Status: Up
Host: 192.168.13.194 ()	Status: Up
Host: 192.168.13.195 ()	Status: Up
Host: 192.168.13.196 ()	Status: Up
Host: 192.168.13.197 ()	Status: Up
Host: 192.168.13.200 ()	Status: Up
Host: 192.168.13.205 ()	Status: Up
Host: 192.168.13.206 ()	Status: Up
Host: 192.168.13.209 ()	Status: Up
Host: 192.168.13.211 ()	Status: Up
Host: 192.168.13.212 ()	Status: Up
Host: 192.168.13.213 ()	Status: Up
Host: 192.168.13.214 ()	Status: Up
Host: 192.168.13.215 ()	Status: Up
Host: 192.168.13.216 ()	Status: Up
Host: 192.168.13.217 ()	Status: Up
Host: 192.168.13.218 ()	Status: Up
Host: 192.168.13.219 ()	Status: Up
Host: 192.168.13.220 ()	Status: Up
Host: 192.168.13.221 ()	Status: Up
Host: 192.168.13.223 ()	Status: Up
Host: 192.168.13.224 ()	Status: Up
Host: 192.168.13.225 ()	Status: Up
Host: 192.168.13.226 ()	Status: Up
Host: 192.168.13.227 ()	Status: Up
Host: 192.168.13.228 ()	Status: Up
Host: 192.168.13.238 ()	Status: Up
Host: 192.168.13.239 ()	Status: Up
Host: 192.168.13.244 ()	Status: Up
# Nmap done at Sun Oct 22 18:02:19 2023 -- 65 IP addresses (34 hosts up) scanned in 3.03 seconds

Ở đây:

  • -n: Ngăn Nmap thử tìm kiếm tên máy chủ cho các địa chỉ IP.
  • -T4: Thiết lập tốc độ quét. T4 là một cấu hình tương đối nhanh và thường được sử dụng.
  • -p 22,8006,3306,80,443,1433,3389: Liệt kê các cổng bạn muốn quét.
  • 192.168.13.0/24: Đây là dải mạng bạn muốn quét.
  • -oG -: Chuyển đầu ra của Nmap sang định dạng Greppable (Grep-able) và gửi đầu ra đó đến stdout (màn hình).
  • grep "Status: Up": Lọc các dòng trong đầu ra của Nmap để chỉ lấy những dòng có chứa “Status: Up” (đã được xác định là online).
  • awk '{print $2}': Trích xuất các địa chỉ IP từ các dòng đã lọc và in chúng ra màn hình.

Kết quả sẽ là danh sách các địa chỉ IP trong dải mạng 192.168.13.0/24 mà Nmap xác định là được sử dụng dựa trên việc có cổng trong danh sách quét được mở trên nó.

– Nmap có khả năng quét các cổng UDP cũng như cổng TCP. Để quét cổng UDP, bạn có thể sử dụng tùy chọn -sU. Dưới đây là cách sử dụng Nmap để quét cổng UDP trên một máy chủ hoặc dải mạng cụ thể:

$ sudo nmap -sU -p U:5060,53 192.168.13.200
Starting Nmap 7.94 ( https://nmap.org ) at 2023-10-22 17:49 +07
Nmap scan report for 192.168.13.200
Host is up (0.0063s latency).

PORT     STATE  SERVICE
22/udp   closed ssh
53/udp   closed domain
5060/udp open   sip

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

Trong ví dụ trên, chúng ta đang quét cổng UDP 53 (DNS) và 5060 (SIP) trên máy chủ có địa chỉ IP là 192.168.13.200. Bạn có thể điều chỉnh danh sách cổng UDP cụ thể mà bạn muốn quét bằng cách chỉ định chúng sau tùy chọn -p. Và bạn cũng lưu ý là việc quét UDP thường mất thời gian hơn và phức tạp hơn so với quét TCP, do UDP không cung cấp cơ chế xác nhận trạng thái như TCP.

– Để quét các cổng UDP từ 5061 đến 5700 và cổng 5060, bạn nên sử dụng cú pháp như sau:

$ sudo nmap -sU -T4 -n -p U:5060,U:5061-5070 192.168.13.200
Starting Nmap 7.94 ( https://nmap.org ) at 2023-10-22 17:59 +07
Nmap scan report for 192.168.13.200
Host is up (0.0074s latency).

PORT     STATE  SERVICE
5060/udp open   sip
5061/udp closed sip-tls
5062/udp closed na-localise
5063/udp closed unknown
5064/udp closed ca-1
5065/udp closed ca-2
5066/udp closed stanag-5066
5067/udp closed authentx
5068/udp closed unknown
5069/udp closed i-net-2000-npr
5070/udp closed vtsas

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

Trong lệnh này, chúng ta đã sử dụng “U:” để chỉ định rõ ràng rằng chúng ta đang quét các cổng UDP. Khi bạn sử dụng “U:”, Nmap sẽ biết rằng bạn đang quét các cổng UDP cụ thể mà bạn đã chỉ định.

4. Phân tích kết quả.

Nmap cung cấp thông tin chi tiết về các máy chủ và dịch vụ trên mạng. Bạn có thể tìm hiểu về các dịch vụ đang chạy, các cổng mạng mở và các lỗ hổng bảo mật. Dưới đây là một số cách phân tích kết quả:

  • Xác định phiên bản dịch vụ: Nmap có thể cố gắng xác định phiên bản chính xác của các dịch vụ mạng. Điều này có thể giúp bạn xác định các lỗ hổng cụ thể liên quan đến phiên bản.
  • Kiểm tra bảo mật: Dựa vào kết quả quét, bạn có thể kiểm tra xem có các lỗ hổng bảo mật nào đang tồn tại trên mạng và thực hiện các biện pháp bảo mật phù hợp.

5. Chế độ ẩn của nmap.

Nmap cũng có khả năng hoạt động trong chế độ ẩn (stealth mode) để giảm thiểu truy cập mạng của bạn. Điều này có thể hữu ích trong các tình huống yêu cầu tính ẩn danh hoặc bảo mật cao.

Kết luận.

Nmap là một công cụ mạng mạnh mẽ trong Linux, giúp bạn kiểm tra bảo mật hệ thống và quét mạng. Với kiến thức về cách sử dụng và phân tích kết quả, bạn có thể nâng cao bảo mật hệ thống của mình và xác định lỗ hổng tiềm ẩn. Hãy tìm hiểu thêm về Nmap và tận dụng công cụ này để bảo vệ dữ liệu và hệ thống của bạn trước các mối đe dọa tiềm ẩn.

LEAVE A REPLY

Please enter your comment!
Please enter your name here

4,956FansLike
256FollowersFollow
223SubscribersSubscribe
spot_img

Related Stories