Giới thiệu
Trong lab này, chúng ta sẽ khám phá lệnh Linux nmap, một công cụ mạnh mẽ để khám phá mạng và kiểm tra bảo mật. Chúng ta sẽ bắt đầu bằng cách tìm hiểu các kiến thức cơ bản về nmap, bao gồm cách cài đặt và thực hiện các quét mạng đơn giản. Sau đó, chúng ta sẽ đi sâu vào các tính năng nâng cao hơn của nmap, chẳng hạn như phát hiện phiên bản và OS fingerprinting.
Lab này bao gồm các bước sau:
- Tìm hiểu các kiến thức cơ bản về nmap
- Thực hiện quét mạng với nmap
- Sử dụng các tính năng nâng cao của nmap
Trong lab này, chúng ta sẽ sử dụng lệnh nmap trên một container Docker Ubuntu 22.04. Nếu bạn cần cài đặt nmap, lab sẽ cung cấp lệnh cần thiết. Nhìn chung, lab này nhằm trang bị cho bạn kiến thức và kỹ năng để sử dụng nmap một cách hiệu quả cho việc khám phá mạng và đánh giá bảo mật.
Tìm hiểu các kiến thức cơ bản về nmap
Trong bước này, chúng ta sẽ tìm hiểu các kiến thức cơ bản về lệnh nmap (Network Mapper), một công cụ mạnh mẽ được sử dụng để khám phá mạng và kiểm tra bảo mật. Nmap là một tiện ích mã nguồn mở và miễn phí có thể được sử dụng để quét mạng và host, xác định các dịch vụ đang chạy và phát hiện các lỗ hổng tiềm ẩn.
Đầu tiên, hãy bắt đầu bằng cách cài đặt nmap trên container Docker Ubuntu 22.04 của chúng ta:
sudo apt-get update
sudo apt-get install -y nmap
Ví dụ về đầu ra:
Reading package lists... Done
Building dependency tree... Done
Reading state information... Done
The following additional packages will be installed:
liblinear6 libpcap0.8 libpcre2-8-0 libsqlite3-0 libssl-dev libssl1.1 zlib1g
Suggested packages:
nmap-frontend
The following NEW packages will be installed:
liblinear6 libpcap0.8 libpcre2-8-0 libsqlite3-0 libssl-dev libssl1.1 nmap zlib1g
0 upgraded, 8 newly installed, 0 to remove and 0 not upgraded.
Bây giờ chúng ta đã cài đặt nmap, hãy khám phá một số cách sử dụng cơ bản:
- Thực hiện quét TCP connect đơn giản trên một target host:
nmap 192.168.1.100
Ví dụ về đầu ra:
Starting Nmap scan on 192.168.1.100
Nmap scan report for 192.168.1.100
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
443/tcp open https
- Thực hiện quét chi tiết hơn với version detection và OS fingerprinting:
nmap -sV -O 192.168.1.100
Ví dụ về đầu ra:
Starting Nmap scan on 192.168.1.100
Nmap scan report for 192.168.1.100
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.2p1 Ubuntu 4.1 (protocol 2.0)
80/tcp open http Apache httpd 2.4.41 ((Ubuntu))
443/tcp open ssl/http Apache httpd 2.4.41 ((Ubuntu))
OS CPE: cpe:/o:linux:linux_kernel
OS details: Linux 5.4.0 - 5.15.0
Trong bước này, chúng ta đã học cách sử dụng cơ bản của lệnh nmap, bao gồm thực hiện quét TCP connect đơn giản và quét chi tiết hơn với version detection và OS fingerprinting. Trong bước tiếp theo, chúng ta sẽ khám phá các tính năng và kỹ thuật nmap nâng cao hơn.
Thực hiện quét mạng với nmap
Trong bước này, chúng ta sẽ đi sâu hơn vào quét mạng bằng nmap và khám phá một số tính năng nâng cao của nó.
Đầu tiên, hãy thử quét SYN, đây là một cách bí mật để quét mạng:
sudo nmap -sS 192.168.1.1-254
Ví dụ về đầu ra:
Starting Nmap scan on 192.168.1.0/24
Nmap scan report for 192.168.1.1
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
443/tcp open https
Nmap scan report for 192.168.1.100
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
443/tcp open https
Tiếp theo, hãy thực hiện quét UDP để xác định các cổng UDP đang mở:
sudo nmap -sU 192.168.1.100
Ví dụ về đầu ra:
Starting Nmap UDP scan on 192.168.1.100
Nmap scan report for 192.168.1.100
PORT STATE SERVICE
123/udp open ntp
Chúng ta cũng có thể sử dụng nmap để quét một phạm vi cổng cụ thể:
sudo nmap -p 1-1000 192.168.1.100
Ví dụ về đầu ra:
Starting Nmap scan on 192.168.1.100
Nmap scan report for 192.168.1.100
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
443/tcp open https
Cuối cùng, hãy thử quét TCP SYN với version detection và OS fingerprinting:
sudo nmap -sS -sV -O 192.168.1.100
Ví dụ về đầu ra:
Starting Nmap scan on 192.168.1.100
Nmap scan report for 192.168.1.100
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.2p1 Ubuntu 4.1 (protocol 2.0)
80/tcp open http Apache httpd 2.4.41 ((Ubuntu))
443/tcp open ssl/http Apache httpd 2.4.41 ((Ubuntu))
OS CPE: cpe:/o:linux:linux_kernel
OS details: Linux 5.4.0 - 5.15.0
Trong bước này, chúng ta đã học cách thực hiện các quét mạng khác nhau bằng nmap, bao gồm quét SYN, quét UDP, quét phạm vi cổng và quét với version detection và OS fingerprinting. Các kỹ thuật này có thể hữu ích cho việc khám phá mạng, kiểm tra bảo mật và khắc phục sự cố.
Sử dụng các tính năng nâng cao của nmap
Trong bước cuối cùng này, chúng ta sẽ khám phá một số tính năng nâng cao của nmap và cách chúng có thể được sử dụng để quét và phân tích mạng phức tạp hơn.
Hãy bắt đầu bằng cách thực hiện quét script để phát hiện các lỗ hổng tiềm ẩn trên target host của chúng ta:
sudo nmap -sV --script=vuln 192.168.1.100
Ví dụ về đầu ra:
Starting Nmap scan on 192.168.1.100
Nmap scan report for 192.168.1.100
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.2p1 Ubuntu 4.1 (protocol 2.0)
| ssh-hostkey:
| 3072 c4:f8:9c:0c:cb:8a:d0:95:87:04:a9:44:b2:2e:ac:e5 (RSA)
| 256 ac:00:66:17:63:c0:80:9d:43:bd:ee:e9:a6:ca:e5:84 (ECDSA)
|_ 256 f5:90:d8:9e:6b:b3:19:e5:7c:ab:02:5a:c1:4b:08:e4 (ED25519)
80/tcp open http Apache httpd 2.4.41 ((Ubuntu))
| http-slowloris-check:
| VULNERABLE:
| Slowloris DOS attack
| State: VULNERABLE
| IDs: CVE-2007-6750, CWE-476
| Slowloris tries to keep many connections to the target web server open and hold
| them for as long as possible. This can effectively starve the web server of
| resources, slowing it down or causing it to crash.
|
| Disclosure date: 2009-09-03
| References:
| https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-6750
|_ http://ha.ckers.org/slowloris/
443/tcp open ssl/http Apache httpd 2.4.41 ((Ubuntu))
| http-slowloris-check:
| VULNERABLE:
| Slowloris DOS attack
| State: VULNERABLE
| IDs: CVE-2007-6750, CWE-476
| Slowloris tries to keep many connections to the target web server open and hold
| them for as long as possible. This can effectively starve the web server of
| resources, slowing it down or causing it to crash.
|
| Disclosure date: 2009-09-03
| References:
| https://cve.mitre.org/cgi-bin/cvename.cgi?name=CVE-2007-6750
|_ http://ha.ckers.org/slowloris/
Chúng ta cũng có thể sử dụng nmap để thực hiện quét TCP connect và lưu kết quả vào một file:
sudo nmap -oA nmap_results 192.168.1.100
Ví dụ về đầu ra:
Starting Nmap scan on 192.168.1.100
Nmap scan report for 192.168.1.100
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
443/tcp open https
Các kết quả được lưu trong các file sau:
- nmap_results.nmap
- nmap_results.gnmap
- nmap_results.xml
Cuối cùng, hãy thử quét TCP SYN với service và version detection, OS fingerprinting và quét script:
sudo nmap -sS -sV -O -sC 192.168.1.100
Ví dụ về đầu ra:
Starting Nmap scan on 192.168.1.100
Nmap scan report for 192.168.1.100
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.2p1 Ubuntu 4.1 (protocol 2.0)
| ssh-hostkey:
| 3072 c4:f8:9c:0c:cb:8a:d0:95:87:04:a9:44:b2:2e:ac:e5 (RSA)
| 256 ac:00:66:17:63:c0:80:9d:43:bd:ee:e9:a6:ca:e5:84 (ECDSA)
|_ 256 f5:90:d8:9e:6b:b3:19:e5:7c:ab:02:5a:c1:4b:08:e4 (ED25519)
80/tcp open http Apache httpd 2.4.41 ((Ubuntu))
| http-server-header:
| Apache/2.4.41 (Ubuntu)
|_ Server: Apache/2.4.41 (Ubuntu)
443/tcp open ssl/http Apache httpd 2.4.41 ((Ubuntu))
| http-server-header:
| Apache/2.4.41 (Ubuntu)
|_ Server: Apache/2.4.41 (Ubuntu)
OS CPE: cpe:/o:linux:linux_kernel
OS details: Linux 5.4.0 - 5.15.0
Trong bước cuối cùng này, chúng ta đã khám phá một số tính năng nmap nâng cao, bao gồm quét script để phát hiện lỗ hổng, lưu kết quả quét vào file và thực hiện quét toàn diện với service và version detection, OS fingerprinting và quét script. Các kỹ thuật này có thể vô giá cho việc đánh giá bảo mật mạng và khắc phục sự cố.
Tóm tắt
Trong lab này, chúng ta đã học các kiến thức cơ bản về lệnh nmap (Network Mapper), một công cụ mạnh mẽ được sử dụng để khám phá mạng và kiểm tra bảo mật. Chúng ta bắt đầu bằng cách cài đặt nmap trên container Docker Ubuntu 22.04 của chúng ta, sau đó khám phá cách sử dụng cơ bản của nó, bao gồm thực hiện quét TCP connect đơn giản và quét chi tiết hơn với version detection và OS fingerprinting. Chúng ta đã học cách sử dụng lệnh nmap để xác định các dịch vụ đang chạy và phát hiện các lỗ hổng tiềm ẩn trên một target host. Trong bước tiếp theo, chúng ta sẽ khám phá các tính năng nmap nâng cao hơn để nâng cao hơn nữa khả năng quét mạng và đánh giá bảo mật của chúng ta.