3. THU THẬP THÔNG TIN TÌNH BÁO
Thu thập thông tin tình báo là bước thứ hai của một bài kiểm tra thâm nhập, sau các hoạt động trước khi tham gia. Mục tiêu của bạn trong giai đoạn này là thu thập thông tin chính xác về mục tiêu mà không để lộ sự hiện diện của bạn, tìm hiểu cách thức tổ chức hoạt động và xác định cách tốt nhất để xâm nhập. Nếu bạn không thực hiện kỹ lưỡng các nhiệm vụ này, bạn có thể bỏ lỡ các hệ thống dễ bị tấn công và các vectơ tấn công khả thi. Phải mất thời gian và sự kiên nhẫn để phân loại các trang web, thực hiện Google hacking và lập bản đồ hệ thống để hiểu đầy đủ về cơ sở hạ tầng của một mục tiêu cụ thể. Bạn cũng sẽ cần lập kế hoạch cẩn thận, nghiên cứu và quan trọng nhất là khả năng suy nghĩ như một kẻ tấn công.
CẢNH BÁO
Nếu bạn làm theo các quy trình trongtài liệu này, bạn có thể làm hỏng hệ thống của mình và mục tiêu của mình, vì vậy hãy đảm bảo hoạt động trong môi trường thử nghiệm. (Để được trợ giúp, hãy xem phần giới thiệu i,ii,iii.) Nhiều ví dụ trong các chương này có thể gây phá hủy và khiến hệ thống mục tiêu không thể sử dụng được. Một số hoạt động này thậm chí có thể bị coi là bất hợp pháp nếu được thực hiện bởi người có ý đồ xấu, vì vậy hãy tuân theo các quy tắc và đừng làm điều gì thiếu suy nghĩ cẩn trọng.
Hầu hết mọi người đều háo hức khai thác hệ thống và có được đặc quyền root, nhưng bạn cần học cách đi trước khi có thể chạy.
THU THẬP THÔNG TIN THỤ ĐỘNG
Bằng cách sử dụng các kỹ thuật thu thập thông tin thụ động hoặc gián tiếp, bạn có thể khám phá chi tiết về mục tiêu mà không cần chạm vào hệ thống của họ. Ví dụ: bạn có thể sử dụng các kỹ thuật này để xác định ranh giới mạng, xác định người bảo trì mạng và thậm chí tìm hiểu hệ điều hành và phần mềm máy chủ web nào đang hoạt động trên mạng mục tiêu.
Tình báo nguồn mở (OSINT) là một hình thức thu thập thông tin tình báo sử dụng thông tin công khai hoặc có sẵn để tìm, chọn và thu thập chi tiết về mục tiêu. Một số công cụ giúp việc thu thập thông tin thụ động trở nên gần như dễ dàng, bao gồm phần mềm phức tạp như Yeti và Whois. Trong phần này, chúng ta sẽ khám phá quy trình thu thập thông tin thụ động và các công cụ bạn có thể sử dụng cho bước này.
Hãy tưởng tượng, ví dụ, một cuộc tấn công chống lại https://www.trustedsec.com. Mục tiêu của chúng ta là xác định, như một phần của bài kiểm tra thâm nhập, công ty sở hữu hệ thống nào và chúng ta có thể tấn công hệ thống nào. Một số hệ thống có thể không thuộc sở hữu của công ty và có thể được coi là nằm ngoài phạm vi và không có sẵn để tấn công.
Tra cứu Whois
Whois là một công cụ cho phép bạn tìm kiếm thông tin về tên miền và cơ sở hạ tầng internet. Hãy bắt đầu bằng cách sử dụng tra cứu Whois của Kali Linux để tìm tên của các máy chủ tên miền của trustedsec.com:
msf6 > whois trustedsec.com
[*] exec: whois trustedsec.com
--snip--
Domain Name: trustedsec.COM
Domain servers in listed order:
GLEN.NS.CLOUDFLARE.COM
LEIA.NS.CLOUDFLARE.COM
Chúng ta biết được rằng các máy chủ Hệ thống Tên miền (DNS) được lưu trữ bởi Cloudflare, một bên thứ ba, vì vậy chúng ta không nên đưa các hệ thống này vào bài kiểm tra thâm nhập của mình vì chúng ta không có quyền tấn công chúng. Tuy nhiên, trong hầu hết các tổ chức lớn, các máy chủ DNS được đặt trong công ty và là các vectơ tấn công khả thi. Chuyển vùng và các cuộc tấn công DNS tương tự thường có thể được sử dụng để tìm hiểu thêm về mạng từ cả bên trong và bên ngoài. Nhưng trong kịch bản này, chúng ta nên chuyển sang một vectơ tấn công khác.
Netcraft
Netcraft (https://searchdns.netcraft.com) là một công cụ dựa trên web mà chúng ta có thể sử dụng để tìm địa chỉ IP của máy chủ lưu trữ một trang web cụ thể, như được hiển thị trong Hình 3-1.
(Hình 3-1 được bỏ qua vì không thể dịch)
Sau khi chúng ta đã xác định địa chỉ IP của trustedsec.com là 104.26.15.63, chúng ta có thể thực hiện tra cứu Whois khác trên IP đó địa chỉ để khám phá thêm thông tin về mục tiêu:
msf6 > whois 104.26.15.63
[*] exec: whois 104.26.15.63
NetRange: 104.16.0.0 - 104.31.255.255
CIDR: 104.16.0.0/12
NetName: CLOUDFLARENET
NetHandle: NET-104-16-0-0-1
Parent: NET104 (NET-104-0-0-0-0)
NetType: Direct Allocation
OriginAS: AS13335
Organization: Cloudflare, Inc. (CLOUD14)
Chúng ta thấy từ tra cứu Whois và tìm kiếm nhanh trên internet rằng địa chỉ IP này, thuộc về Cloudflare, dường như là của một nhà cung cấp dịch vụ hợp pháp. Cloudflare giúp cải thiện bảo mật internet bằng cách đóng vai trò là proxy ngược giữa yêu cầu của chúng ta và các máy chủ của trustedsec.com. Khi yêu cầu của chúng ta đi qua Cloudflare, nó sẽ kiểm tra lưu lượng truy cập và áp dụng các quy tắc bảo mật. Các dịch vụ khác, chẳng hạn như Amazon CloudFront, Envoy Proxy và Microsoft Azure CDN, cũng cung cấp dịch vụ proxy ngược.
Proxy ngược cố gắng ẩn địa chỉ IP gốc. Tuy nhiên, kẻ tấn công vẫn có thể khôi phục địa chỉ IP bằng các chiến lược khác. Một bài viết nêu chi tiết một số kỹ thuật này có tại https://citadelo.com/en/blog/cloudflare-how-to-do-it-right-and-do-not-reveal-your-real-ip. Nhiều chiến lược này đã được tích hợp vào mô-đun đám mây và bỏ qua của Metasploit.
Phân tích DNS
Máy chủ DNS chứa thông tin về tên miền. Để lấy thêm thông tin về tên miền, chúng ta sẽ sử dụng dig, một công cụ được tích hợp trong hầu hết các hệ điều hành Unix, để truy vấn các máy chủ DNS về trustedsec.com. Một số công cụ tuyệt vời khác để phân tích DNS là dữ dội và dnsrecon.
Trong ví dụ sau, chúng ta sử dụng dig để tìm kiếm bản ghi trao đổi thư (MX) của tên miền. Bản ghi MX chứa thông tin về máy chủ được sử dụng để xử lý email cho tên miền đó:
kali@kali:~$ sudo dig mx trustedsec.com
; <<>> DiG 9.18.1-1ubuntu1.2-Ubuntu <<>> mx trustedsec.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 38963
;; flags: qr rd ra; QUERY: 1, ANSWER: 2, AUTHORITY: 0, ADDITIONAL: 1
;; OPT PSEUDOSECTION:
; EDNS: version: 0, flags:; udp: 65494
;; QUESTION SECTION:
;trustedsec.com. IN MX
;; ANSWER SECTION:
trustedsec.com. 300 IN MX 10 mx1-us1.ppe-hosted.com.
trustedsec.com. 300 IN MX 20 mx2-us1.ppe-hosted.com.
;; Query time: 37 msec
;; SERVER: 127.0.0.53#53(127.0.0.53)
;; WHEN: Sun Mar 05 11:00:35 PST 2023
;; MSG SIZE rcvd: 115
Chúng ta thấy rằng các máy chủ thư đang trỏ đến mx2-us1.ppe-hosted.com và mx1-us1.ppe-hosted.com. Một số nghiên cứu nhanh cho chúng ta biết rằng các trang web này được lưu trữ bởi một bên thứ ba, điều này loại bỏ chúng khỏi phạm vi kiểm tra thâm nhập của chúng ta.
Tại thời điểm này, chúng ta đã thu thập được một số thông tin có giá trị mà chúng ta có thể sử dụng để chống lại mục tiêu. Tuy nhiên, cuối cùng, chúng ta có thể phải sử dụng các kỹ thuật thu thập thông tin chủ động để có thêm chi tiết.
GHI CHÚ
Nghệ thuật thu thập thông tin thụ động không dễ dàng thành thạo chỉ trong vài trang thảo luận. Xem PTES (http://www.pentest-standard.org) và bộ sưu tập công cụ OSINT của Cyber Detective (https://github.com/cipher387/osint_stuff_tool_collection) để biết danh sách các cách tiềm năng để thực hiện thu thập thông tin tình báo thụ động bổ sung.
THU THẬP THÔNG TIN CHỦ ĐỘNG
Trong thu thập thông tin chủ động, chúng ta tương tác trực tiếp với hệ thống để tìm hiểu thêm về nó. Ví dụ: chúng ta có thể thực hiện quét để tìm các cổng mở trên mục tiêu hoặc để xác định các dịch vụ đang chạy. Mỗi hệ thống hoặc dịch vụ đang chạy mà chúng ta khám phá đều mang đến cho chúng ta một cơ hội khác để khai thác. Nhưng hãy cẩn thận: nếu bạn bất cẩn trong quá trình thu thập thông tin chủ động, bạn có thể bị tóm gọn bởi hệ thống phát hiện xâm nhập (IDS) hoặc hệ thống ngăn chặn xâm nhập (IPS) — không phải là kết quả tốt cho người kiểm tra thâm nhập bí mật.
Quét cổng với Nmap
Sau khi đã xác định được dải IP mục tiêu và địa chỉ IP của trustedsec.com bằng cách thu thập thông tin thụ động, chúng ta có thể bắt đầu quét các cổng mở trên mục tiêu bằng cách quét cổng, một quá trình mà chúng ta kết nối tỉ mỉ với các cổng trên máy chủ từ xa để xác định các cổng đang hoạt động. (Trong một doanh nghiệp lớn hơn, chúng ta sẽ có nhiều dải IP để tấn công thay vì chỉ một địa chỉ IP.)
Nmap cho đến nay là công cụ quét cổng phổ biến nhất. Nó tích hợp với Metasploit khá thanh lịch, lưu trữ kết quả quét trong cơ sở dữ liệu phụ trợ để sử dụng sau. Nmap cho phép bạn quét máy chủ để xác định các dịch vụ đang chạy trên mỗi máy chủ, bất kỳ dịch vụ nào trong số đó có thể cung cấp cách xâm nhập.
Đối với ví dụ này, hãy bỏ trustedsec.com lại phía sau và thay vào đó sử dụng scanme.nmap.org (45.33.32.156), một máy chủ do nhóm tại Nmap duy trì. Nếu bạn muốn quét máy của riêng mình, hãy sử dụng một trong các máy ảo được mô tả trong Phụ lục A. Trước khi chúng ta bắt đầu, hãy xem nhanh cú pháp Nmap cơ bản bằng cách nhập nmap từ dòng lệnh trên máy Kali của bạn. Bạn sẽ thấy ngay rằng nó có một số tùy chọn, nhưng bạn có thể sẽ chỉ sử dụng một vài trong số chúng.
Một trong những tùy chọn Nmap hữu ích nhất là -sS, chạy quét TCP lén lút để xác định xem một cổng dựa trên TCP cụ thể có mở hay không. Một tùy chọn ưa thích khác là -Pn, cho Nmap biết không sử dụng ping để xác định xem hệ thống có đang chạy hay không; thay vào đó, nó coi tất cả các máy chủ là “đang hoạt động”. Nếu bạn đang thực hiện kiểm tra thâm nhập dựa trên internet, bạn nên sử dụng cờ này vì hầu hết các mạng đều không cho phép Giao thức Tin nhắn Điều khiển Internet (ICMP), là giao thức mà ping sử dụng. Nếu bạn đang thực hiện quét này trong nội bộ, bạn có thể bỏ qua cờ này.
Hãy chạy quét Nmap nhanh chóng chống lại máy scanme.nmap.org (45.33.32.156) bằng cả cờ -sS và -Pn:
kali@kali:~$ sudo nmap -sS -Pn scanme.nmap.org
Starting Nmap 9.00 ( https://nmap.org ) at 2024-04-12 23:30 PST
Nmap scan report for scanme.nmap.org (45.33.32.156)
Host is up (0.12s latency).
Not shown: 993 closed ports
PORT STATE SERVICE
22/tcp open ssh
80/tcp open http
113/tcp closed ident
9929/tcp open nping-echo
31337/tcp open Elite
Nmap done: 1 IP address (1 host up) scanned in 20.57 seconds
Nmap báo cáo danh sách các cổng mở, cùng với mô tả về dịch vụ được liên kết cho mỗi cổng.
Để biết thêm chi tiết, hãy thử sử dụng cờ -A. Tùy chọn này sẽ thử liệt kê dịch vụ nâng cao và lấy banner, điều này có thể cung cấp cho bạn nhiều chi tiết hơn về hệ thống mục tiêu. Ví dụ: đây là những gì chúng ta sẽ thấy nếu chúng ta gọi Nmap với các cờ -sS và -A, sử dụng cùng một hệ thống mục tiêu của chúng ta:
kali@kali:~$ sudo nmap -Pn -sS -A scanme.nmap.org
Starting Nmap 9.00 ( https://nmap.org ) at 2024-04-13 00:08 PST
Nmap scan report for scanme.nmap.org (45.33.32.156)
Host is up (0.082s latency).
Other addresses for scanme.nmap.org (not scanned): 2600:3c01::f03c:91ff:fe18:bb2f
Not shown: 993 closed ports
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 8.2p1 Ubuntu 4ubuntu0.3 (Ubuntu Linux; protocol 2.0)
| ssh-hostkey:
| 3072 SHA256:nYgSzxSX2e9WpH/VIgwiuB7+UL+hmxq/1+j5qk/vXFI (RSA)
| 256 SHA256:HVF7+UL+hmxq/1+j5qk/vXFI (ECDSA)
|_ 256 SHA256:nYgSzxSX2e9WpH/VIgwiuB7+UL+hmxq/1+j5qk/vXFI (ED25519)
80/tcp open http Apache httpd 2.4.41 ((Ubuntu))
|_http-server-header: Apache/2.4.41 (Ubuntu)
|_http-title: Go ahead and ScanMe!
113/tcp closed ident
9929/tcp open nping-echo Nping echo
31337/tcp open Elite
Service Info: OS: Linux; CPE: cpe:/o:linux:linux_kernel
Host script results:
|_clock-skew: mean: -1s, deviation: 0s, median: -1s
|_nbstat: NetBIOS name: SCANME, NetBIOS user: <unknown>, NetBIOS MAC: <unknown>
TRACEROUTE (using port 443/tcp)
HOP RTT ADDRESS
1 0.37 ms 192.168.1.1
2 80.87 ms scanme.nmap.org (45.33.32.156)
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 21.12 seconds
Quét liệt kê dịch vụ nâng cao này cung cấp cho chúng ta nhiều thông tin hơn, bao gồm các phiên bản ứng dụng, khóa máy chủ SSH được sử dụng để xác thực máy chủ, phỏng đoán về hệ điều hành của mục tiêu và danh sách các bước nhảy được thực hiện trong mạng từ máy của bạn đến máy của mục tiêu.
Nhập kết quả Nmap vào Metasploit
Khi bạn làm việc với các thành viên khác trong nhóm, những người có thể đang quét vào các thời điểm khác nhau và từ các vị trí khác nhau, sẽ rất hữu ích khi biết cách chạy Nmap một cách độc lập và sau đó nhập kết quả của nó vào Framework. Metasploit cho phép bạn dễ dàng nhập tệp xuất XML do Nmap tạo (được tạo bằng tùy chọn -oX của Nmap).
Metasploit đi kèm với hỗ trợ tích hợp cho hệ thống cơ sở dữ liệu PostgreSQL, được cài đặt theo mặc định trong cả Kali và trình cài đặt Metasploit chính thức. Trước khi bạn có thể nhập tệp từ Nmap vào Metasploit, bạn sẽ cần khởi động và khởi tạo cơ sở dữ liệu này bằng cách chạy các lệnh sau:
kali@kali:~$ sudo systemctl start postgresql
kali@kali:~$ sudo msfdb init
Để xác minh rằng PostgreSQL đang chạy, hãy chạy như sau:
kali@kali:~$ sudo netstat -antp|grep postgres
tcp 0 0 127.0.0.1:5432 0.0.0.0:* LISTEN 1119/postgres
tcp6 0 0 ::1:5432 :::* LISTEN 1119/postgres
Việc sử dụng Metasploit với hỗ trợ cơ sở dữ liệu không yêu cầu cấu hình bổ sung vì nó kết nối với PostgreSQL sau khi bạn khởi chạy MSFconsole. Lần đầu tiên bạn khởi chạy MSFconsole, bạn sẽ thấy rất nhiều đầu ra khi Metasploit tạo ban đầu các bảng cơ sở dữ liệu cần thiết.
Metasploit cung cấp một số lệnh mà chúng ta có thể sử dụng để tương tác với cơ sở dữ liệu, như bạn sẽ thấy trong suốt cuốn sách này. (Để có danh sách đầy đủ, hãy sử dụng lệnh help.) Hiện tại, chúng ta sẽ sử dụng db_status để đảm bảo rằng chúng ta đã kết nối chính xác:
msf6 > db_status
[*] Connected to msf. Connection type: postgresql.
Mọi thứ dường như đã được thiết lập tốt.
Dưới đây là ví dụ về cách bạn có thể sử dụng Nmap để quét tất cả các máy trong mạng con 192.168.1.0/24 với tùy chọn -oX, lưu kết quả vào một tệp có tên là Results-Subnet1.xml:
kali@kali:~$ sudo nmap -Pn -sS -A -oX Results-Subnet1.xml 192.168.1.0/24
Sau khi tạo tệp XML, chúng ta sử dụng lệnh db_import để nhập nó vào cơ sở dữ liệu của chúng ta. Sau đó, chúng ta có thể xác minh rằng việc nhập đã hoạt động bằng cách sử dụng lệnh hosts, lệnh này liệt kê các mục hệ thống đã được tạo, như được hiển thị ở đây:
msf6 > db_import Results-Subnet1.xml
[*] Importing 'Nmap XML' data
[*] Importing host 192.168.1.1
[*] Importing host 192.168.1.2
[*] Importing host 192.168.1.101
[*] Importing host 192.168.1.153
[*] Successfully imported /root/Results-Subnet1.xml
msf6 > hosts -c address
Hosts
=======
address
-------
192.168.1.1
192.168.1.2
192.168.1.101
192.168.1.153
msf6 >
Điều này cho chúng ta biết rằng chúng ta đã nhập thành công kết quả quét Nmap của mình vào Metasploit, bằng chứng là các địa chỉ IP được điền khi chúng ta chạy lệnh hosts.
Thực hiện quét TCP Idle
Một phương pháp quét Nmap nâng cao hơn, quét TCP idle, cho phép chúng ta quét mục tiêu một cách lén lút bằng cách giả mạo địa chỉ IP của một máy chủ khác trên mạng. Để loại quét này hoạt động, trước tiên chúng ta cần xác định vị trí một máy chủ nhàn rỗi trên mạng sử dụng ID IP tăng dần (được sử dụng để theo dõi thứ tự gói).
Khi hệ thống nhàn rỗi sử dụng ID IP tăng dần, các ID này trở nên có thể dự đoán được, cho phép chúng ta tính toán ID tiếp theo. Bất cứ khi nào xảy ra sự gián đoạn trong khả năng dự đoán của chuỗi ID IP, chúng ta biết rằng chúng ta đã phát hiện ra một cổng mở. Để tìm hiểu thêm về chuỗi ID IP và mô-đun này, hãy truy cập https://nmap.org/book/idlescan.html và https://www.metasploit.com/modules/auxiliary/scanner/ip/ipidseq.
Tuy nhiên, nhiều hệ điều hành bảo vệ chống lại loại tấn công này bằng cách ngẫu nhiên hóa ID IP. Sử dụng mô-đun scanner/ip/ipidseq của Framework để quét máy chủ phù hợp với yêu cầu quét TCP idle:
msf6 > use auxiliary/scanner/ip/ipidseq
msf6 auxiliary(auxiliary/scanner/ip/ipidseq) > show options
Module options (auxiliary/scanner/ip/ipidseq):
Name Current Setting Required Description
---- --------------- -------- -----------
INTERFACE no The name of the interface
RHOSTS yes The target address range or CIDR identifier
RPORT 80 yes The target port
SNAPLEN 65535 yes The number of bytes to capture (0 for unlimited)
THREADS 1 yes The number of concurrent threads
TIMEOUT 500 yes The reply read timeout in milliseconds
Danh sách này hiển thị các tùy chọn bắt buộc cho quét ipidseq. Một tùy chọn đáng chú ý, RHOSTS, có thể lấy các dải IP (chẳng hạn như 192.168.1.20 đến 192.168.1.30); dải Định tuyến Liên miền Không lớp (CIDR) (chẳng hạn như 192.168.1.0/24); nhiều dải được phân tách bằng dấu phẩy (chẳng hạn như 192.168.1.0/24, 192.168.3.0/24); hoặc một tệp văn bản có một máy chủ trên mỗi dòng (chẳng hạn như file:/tmp/hostlist.txt). Tất cả các tùy chọn này cung cấp cho chúng ta sự linh hoạt trong việc chỉ định mục tiêu của mình.
Giá trị THREADS đặt số lượng luồng đồng thời sẽ sử dụng trong khi quét. Theo mặc định, tất cả các mô-đun trình quét đều có giá trị THREADS ban đầu được đặt thành 1. Chúng ta có thể tăng giá trị này để tăng tốc độ quét của mình hoặc giảm giá trị này để giảm lưu lượng mạng.
Hãy đặt các giá trị của chúng ta và chạy mô-đun. Trong ví dụ này, chúng ta sẽ đặt giá trị cho RHOSTS là 192.168.1.0/24, đặt THREADS thành 50 và sau đó chạy quét:
msf6 auxiliary(auxiliary/scanner/ip/ipidseq) > set RHOSTS 192.168.1.0/24
RHOSTS => 192.168.1.0/24
msf6 auxiliary(auxiliary/scanner/ip/ipidseq) > set THREADS 50
THREADS => 50
msf6 auxiliary(auxiliary/scanner/ip/ipidseq) > run
[*] 192.168.1.1's IPID sequence class: All zeros
[*] 192.168.1.2's IPID sequence class: Incremental!
[*] Scanned 2 of 256 hosts (0% complete)
[*] 192.168.1.101's IPID sequence class: All zeros
[*] 192.168.1.102's IPID sequence class: Incremental!
[*] Scanned 4 of 256 hosts (1% complete)
[*] 192.168.1.152's IPID sequence class: Randomized
[*] 192.168.1.153's IPID sequence class: All zeros
[*] 192.168.1.154's IPID sequence class: Incremental!
[*] 192.168.1.155's IPID sequence class: Incremental!
[*] Scanned 8 of 256 hosts (3% complete)
[*] 192.168.1.180's IPID sequence class: All zeros
[*] 192.168.1.181's IPID sequence class: Incremental!
[*] 192.168.1.184's IPID sequence class: Randomized
[*] 192.168.1.185's IPID sequence class: All zeros
[*] Scanned 12 of 256 hosts (4% complete)
[*] Scanned 256 of 256 hosts (100% complete)
[*] Auxiliary module execution completed
msf6 auxiliary(auxiliary/scanner/ip/ipidseq) >
Xét kết quả quét của chúng ta, chúng ta thấy một số máy chủ nhàn rỗi tiềm năng mà chúng ta có thể sử dụng để thực hiện quét nhàn rỗi. Chúng ta sẽ thử quét một máy chủ bằng hệ thống tại 192.168.1.102 bằng cách sử dụng cờ dòng lệnh -sI để chỉ định nó:
msf6 auxiliary(auxiliary/scanner/ip/ipidseq) > nmap -PN -sI 192.168.1.102 192.168.1.155
[*] exec: nmap -PN -sI 192.168.1.102 192.168.1.155
Starting Nmap 9.00 ( https://nmap.org ) at 2024-04-13 00:35 PST
Idle scan using zombie 192.168.1.102 (192.168.1.102:80); Class of target IPID sequence: All zeros
Interesting ports on 192.168.1.155:
PORT STATE SERVICE
135/tcp open msrpc
139/tcp open netbios-ssn
445/tcp open microsoft-ds
MAC Address: 00:0C:29:F5:5D:21 (VMware)
Nmap done: 1 IP address (1 host up) scanned in 11.58 seconds
msf6 auxiliary(auxiliary/scanner/ip/ipidseq) >
Bằng cách quét máy chủ nhàn rỗi, chúng ta đã có thể khám phá một vài cổng mở trên hệ thống mục tiêu của mình mà không cần gửi một gói tin nào đến hệ thống cho địa chỉ IP của chúng ta.
Chạy Nmap từ MSFconsole
Bây giờ chúng ta đã thực hiện trinh sát nâng cao trên mục tiêu của mình, hãy kết nối Nmap với Metasploit. Để làm điều này, chúng ta chỉ cần đảm bảo rằng cơ sở dữ liệu của chúng ta được kết nối:
msf6 > db_status
[*] Connected to msf. Connection type: postgresql.
Chúng ta sẽ có thể nhập lệnh db_nmap từ trong MSFconsole để chạy Nmap và tự động lưu kết quả vào cơ sở dữ liệu mới của chúng ta:
msf6 > db_nmap -sS -A 10.11.1.207
[*] Nmap: Starting Nmap 7.92 ( https://nmap.org ) at 2023-10-26 14:08 PDT
[*] Nmap: Nmap scan report for 10.11.1.207
[*] Nmap: Host is up (0.00025s latency).
[*] Nmap: Not shown: 998 closed ports
[*] Nmap: PORT STATE SERVICE VERSION
[*] Nmap: 53/tcp open domain Simple DNS Plus
[*] Nmap: 80/tcp open http Microsoft IIS httpd 10.0
[*] Nmap: |_http-server-header: Microsoft-IIS/10.0
[*] Nmap: | http-methods:
[*] Nmap: |_ Potentially risky methods: TRACE
[*] Nmap: |_http-title: Default Web Site
[*] Nmap: 88/tcp open kerberos-sec Microsoft Windows Kerberos (server time: 2023-10-26 17:08:27Z)
[*] Nmap: 135/tcp open msrpc Microsoft Windows RPC
[*] Nmap: 139/tcp open netbios-ssn Microsoft Windows netbios-ssn
[*] Nmap: 389/tcp open ldap Microsoft Windows Active Directory LDAP (Domain: WIN-DOMAIN0.local0., Site: Default-First-Site-Name)
[*] Nmap: 445/tcp open microsoft-ds Microsoft Windows 7 - 10 microsoft-ds (workgroup: WORKGROUP)
[*] Nmap: 464/tcp open kpasswd5?
[*] Nmap: 593/tcp open ncacn_http Microsoft Windows RPC over HTTP 1.0
[*] Nmap: 636/tcp open ssl/ldap Microsoft Windows Active Directory LDAP (Domain: WIN-DOMAIN0.local0., Site: Default-First-Site-Name)
[*] Nmap: | ssl-cert: Subject: commonName=WIN-DC01.WIN-DOMAIN0.local
[*] Nmap: | Not valid before: 2023-10-26 14:05:58
[*] Nmap: |_Not valid after: 2024-10-26 14:05:58
[*] Nmap: |_ssl-date: 2023-10-26T17:08:36+00:00; 0s from scanner time.
[*] Nmap: No exact OS matches for host (If you know what OS is running on it, see https://nmap.org/submit/ ).
[*] Nmap: TCP/IP fingerprint:
[*] Nmap: OS and Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
[*] Nmap: Nmap done: 1 IP address (1 host up) scanned in 17.64 seconds
msf6 >
Chúng ta chỉ quét một hệ thống trong ví dụ này, nhưng bạn có thể chỉ định nhiều IP bằng cách sử dụng ký hiệu CIDR hoặc dải (ví dụ: 192.168.1.1/24 hoặc 192.168.1.1–254). Nếu bạn muốn tự mình thử điều này, bạn có thể quét scanme.nmap.org (45.33.32.156) hoặc một trong các máy mà bạn đã thiết lập trong Phụ lục A.
Lưu ý một loạt các cổng mở, phiên bản phần mềm và thậm chí là dự đoán về hệ điều hành của mục tiêu. Trong lần quét này, Nmap không thể xác định hệ điều hành, nhưng đôi khi bạn sẽ gặp may.
Để kiểm tra xem kết quả từ quét có được lưu trữ trong cơ sở dữ liệu hay không, chúng ta chạy lệnh services:
msf6 > services
Services
========
host port proto name state info
---- ---- ----- ---- ----- ----
10.11.1.207 53 tcp domain open Simple DNS Plus
10.11.1.207 80 tcp http open Microsoft IIS httpd 10.0
10.11.1.207 88 tcp kerberos-sec open Microsoft Windows Kerberos
10.11.1.207 135 tcp msrpc open Microsoft Windows RPC
10.11.1.207 139 tcp netbios-ssn open Microsoft Windows netbios-ssn
10.11.1.207 389 tcp ldap open Microsoft Windows Active Directory LDAP
10.11.1.207 445 tcp microsoft-ds open Microsoft Windows microsoft-ds
10.11.1.207 464 tcp kpasswd5 open
10.11.1.207 593 tcp ncacn_http open Microsoft Windows RPC over HTTP 1.0
10.11.1.207 636 tcp ssl/ldap open Microsoft Windows Active Directory LDAP
msf6 >
Chúng ta đang bắt đầu hình dung về mục tiêu của mình và các cổng bị lộ để sử dụng làm vectơ tấn công tiềm năng.
Quét cổng với Metasploit
Ngoài khả năng sử dụng trình quét của bên thứ ba, Metasploit còn có một số trình quét cổng được tích hợp trong các mô-đun phụ trợ của nó tích hợp trực tiếp với hầu hết các khía cạnh của Framework. Trong các chương sau, chúng ta sẽ tận dụng các hệ thống bị xâm nhập để quét và tấn công các hệ thống khác; quá trình này, thường được gọi là xoay vòng, cho phép chúng ta sử dụng các hệ thống được kết nối nội bộ để định tuyến lưu lượng truy cập đến mạng mà nếu không sẽ không thể truy cập được.
Ví dụ: giả sử bạn xâm nhập hệ thống phía sau tường lửa đang sử dụng Dịch địa chỉ mạng (NAT). Hệ thống phía sau tường lửa dựa trên NAT sử dụng địa chỉ IP riêng, mà bạn không thể liên hệ trực tiếp từ internet. Nếu bạn sử dụng Metasploit để xâm nhập hệ thống phía sau tường lửa NAT, bạn có thể sử dụng hệ thống nội bộ bị xâm nhập đó để chuyển lưu lượng truy cập (hoặc xoay vòng) đến các hệ thống được lưu trữ nội bộ và dựa trên IP riêng và thâm nhập mạng sâu hơn phía sau tường lửa.
Để xem danh sách các công cụ quét cổng mà Framework cung cấp, hãy nhập như sau:
msf6 > search portscan
Chúng ta hãy thực hiện quét ví dụ về một máy chủ duy nhất bằng trình quét cổng SYN của Metasploit. Trong danh sách sau, chúng ta đặt RHOSTS thành 192.168.1.155, đặt THREADS thành 50 và sau đó chạy quét:
msf6 > use auxiliary/scanner/portscan/syn
msf6 auxiliary(auxiliary/scanner/portscan/syn) > set RHOSTS 192.168.1.155
RHOSTS => 192.168.1.155
msf6 auxiliary(auxiliary/scanner/portscan/syn) > set THREADS 50
THREADS => 50
msf6 auxiliary(auxiliary/scanner/portscan/syn) > run
[*] 192.168.1.155:135 - TCP OPEN
[*] 192.168.1.155:139 - TCP OPEN
[*] 192.168.1.155:445 - TCP OPEN
[*] Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed
msf6 auxiliary(auxiliary/scanner/portscan/syn) >
Từ kết quả, bạn có thể thấy rằng các cổng 135, 139 và 445 đang mở trên địa chỉ IP 192.168.1.155.
QUÉT MỤC TIÊU
Khi bạn đang tiến hành kiểm tra thâm nhập, không có gì phải xấu hổ khi tìm kiếm một chiến thắng dễ dàng. Quét mục tiêu tìm kiếm các hệ điều hành, dịch vụ, phiên bản chương trình hoặc cấu hình cụ thể được biết là có thể khai thác và cung cấp một cánh cửa dễ dàng vào mạng mục tiêu. Rapid7 duy trì kho lưu trữ các mô-đun trình quét và khai thác đã được xác minh (https://www.rapid7.com/db/?q=&type=metasploit). Đó là một ý tưởng tốt để bắt đầu với các trình quét mới nhất.
Quét Khối Tin nhắn Máy chủ (SMB)
Metasploit có thể rà soát mạng và cố gắng xác định các phiên bản của Microsoft Windows bằng mô-đun smb_version của nó. Trình quét này dựa trên việc phát hiện Khối Tin nhắn Máy chủ (SMB), một giao thức chia sẻ tệp phổ biến.
GHI CHÚ
Nếu bạn không quen thuộc với SMB, hãy tìm hiểu thêm một chút trước khi tiếp tục. Đây là một tài nguyên tuyệt vời từ nhóm tại Microsoft về một số nguyên tắc cơ bản của SMB: https://docs.microsoft.com/en-us/windows/win32/fileio/microsoft-smb-protocol-and-cifs-protocol-overview.
Chúng ta chạy mô-đun, liệt kê các tùy chọn của chúng ta, đặt RHOSTS và bắt đầu quét:
msf6 > use auxiliary/scanner/smb/smb_version
msf6 auxiliary(auxiliary/scanner/smb/smb_version) > show options
Module options (auxiliary/scanner/smb/smb_version):
Name Current Setting Required Description
---- --------------- -------- -----------
RHOSTS yes The target address range or CIDR identifier
THREADS 1 yes The number of concurrent threads
msf6 auxiliary(auxiliary/scanner/smb/smb_version) > set RHOSTS 10.11.1.207
RHOSTS => 10.11.1.207
msf6 auxiliary(auxiliary/scanner/smb/smb_version) > run
[*] 10.11.1.207:445 - SMB Detected (compression:NONE, dialect:SMB 3.1.1) (signatures:optional) (guid:76ED4BF1-3DDA-4587-91FB-DBEE56A9761B) (authentication domain:SEARCH)
[*] Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed
Trình quét smb_version đã phát hiện phương ngữ ưa thích, khả năng mã hóa và các thuộc tính khác của dịch vụ SMB đang chạy trên máy này. Vì chúng ta chỉ quét một hệ thống, nên chúng ta để THREADS được đặt thành 1. Nếu chúng ta đã quét một số hệ thống, chẳng hạn như dải mạng con lớp C, chúng ta có thể đã cân nhắc việc tăng THREADS bằng tùy chọn set THREADS <số>.
Kết quả của lần quét này được lưu trữ trong cơ sở dữ liệu Metasploit để sử dụng sau này và có thể được truy cập bằng lệnh hosts:
msf6 auxiliary(auxiliary/scanner/smb/smb_version) > hosts -c address,os_flavor
Hosts
=======
address os_flavor purpose info comments scope virtual_host virtual_port
------- ---------- ------- ---- --------- ----- ------------ ------------
10.11.1.207 Windows server
msf6 auxiliary(auxiliary/scanner/smb/smb_version) >
Đây là một cách tuyệt vời để nhanh chóng và lặng lẽ nhắm mục tiêu các máy chủ có khả năng dễ bị tấn công hơn khi mục tiêu của chúng ta là tránh bị chú ý. Chúng ta đã phát hiện ra rằng hệ thống có một lỗ hổng. Chúng ta có thể sử dụng lệnh vulns để tìm thêm thông tin về lỗ hổng đó:
msf6 auxiliary(auxiliary/scanner/smb/smb_version) > vulns
Vulnerabilities
===============
host name refs exploited_at
---- ---- ---- ------------
10.11.1.207
msf6 auxiliary(auxiliary/scanner/smb/smb_version) >
Chúng ta sẽ thảo luận về việc khai thác các lỗ hổng như vậy trong các chương sau.
Tìm kiếm các máy chủ SQL Server được cấu hình kém
Các cài đặt Microsoft SQL Server (MS SQL) được cấu hình kém có thể cung cấp cách xâm nhập ban đầu vào mạng mục tiêu. Trên thực tế, một số quản trị viên hệ thống thậm chí còn không nhận ra rằng họ đã cài đặt máy chủ MS SQL trên máy trạm của họ, bởi vì dịch vụ này được cài đặt như một điều kiện tiên quyết cho một số phần mềm phổ biến, chẳng hạn như Microsoft Visual Studio. Các cài đặt này có thể không được sử dụng, không được vá hoặc thậm chí không bao giờ được cấu hình.
Khi MS SQL được cài đặt, theo mặc định, nó sẽ lắng nghe trên cổng TCP 1433 hoặc trên cổng TCP động ngẫu nhiên. Nếu MS SQL đang lắng nghe trên một cổng động, chỉ cần truy vấn cổng UDP 1434 để khám phá cổng nào. Tất nhiên, Metasploit có một mô-đun có thể sử dụng tính năng này: mssql_ping.
Vì mssql_ping sử dụng UDP nên nó có thể khá chậm khi chạy trên một số mạng con do hết thời gian chờ. Nhưng trên mạng LAN cục bộ, việc đặt THREADS thành 255 sẽ giúp tăng tốc độ quét đáng kể. Khi Metasploit tìm thấy các máy chủ MS SQL, nó sẽ hiển thị tất cả các chi tiết mà nó có thể trích xuất từ chúng, bao gồm (và có lẽ quan trọng nhất) cổng TCP mà máy chủ đang lắng nghe.
Đây là cách bạn có thể chạy quét mssql_ping, bao gồm bắt đầu quét, liệt kê và đặt tùy chọn và xem kết quả:
msf6 > use auxiliary/scanner/mssql/mssql_ping
msf6 auxiliary(auxiliary/scanner/mssql/mssql_ping) > show options
Module options (auxiliary/scanner/mssql/mssql_ping):
Name Current Setting Required Description
---- --------------- -------- -----------
PASSWORD no The password for the specified username
RHOSTS yes The target address range or CIDR identifier
TDSENCRYPTION false yes Use TDS Encryption
THREADS 1 yes The number of concurrent threads
TIMEOUT 2 no The connection timeout in seconds
USERNAME sa no The username to authenticate as
VERBOSE true no Whether or not to print verbose output
msf6 auxiliary(auxiliary/scanner/mssql/mssql_ping) > set RHOSTS 192.168.1.0/24
RHOSTS => 192.168.1.0/24
msf6 auxiliary(auxiliary/scanner/mssql/mssql_ping) > set THREADS 255
THREADS => 255
msf6 auxiliary(auxiliary/scanner/mssql/mssql_ping) > run
[*] 192.168.1.155:
[*] ServerName: WIN-DC01
[*] InstanceName: SQLEXPRESS
[*] IsClustered: No
[*] Version: 15.00.4083
[*] tcp: 49239
[*] Scanned 256 of 256 hosts (100% complete)
[*] Auxiliary module execution completed
msf6 auxiliary(auxiliary/scanner/mssql/mssql_ping) >
Trình quét không chỉ định vị máy chủ MS SQL mà còn xác định tên phiên bản, phiên bản máy chủ SQL và số cổng TCP mà nó đang lắng nghe. Chỉ cần nghĩ xem quét mục tiêu này dành cho các máy chủ SQL sẽ tiết kiệm được bao nhiêu thời gian so với việc chạy Nmap trên tất cả các cổng trên tất cả các máy trong mạng con mục tiêu để tìm kiếm cổng TCP khó nắm bắt.
Quét thùng S3
Nếu bạn đang đánh giá môi trường đám mây, bạn cũng có thể muốn quét các thùng Dịch vụ Lưu trữ Đơn giản của Amazon (S3), một hình thức lưu trữ đám mây. Nếu thùng S3 được cấu hình không chính xác, nó có thể rò rỉ thông tin cho kẻ tấn công. S3Scanner (https://github.com/sa7mon/S3Scanner) là một công cụ tuyệt vời để quét các thùng S3. Bạn có thể cài đặt S3Scanner trên máy Kali của mình bằng pip3:
kali@kali:~$ sudo pip3 install s3scanner
Chúng ta sẽ quét trang web http://flaws.cloud do Scott Piper tạo. Trang web dễ bị tấn công có chủ ý này và trang web anh em của nó, http://flaws2.cloud, là những tài nguyên tuyệt vời để thực hành các kỹ năng kiểm tra thâm nhập đám mây của bạn.
Sau khi bạn đã cài đặt trình quét, hãy quét http://flaws2.cloud bằng cách chạy lệnh sau:
kali@kali:~$ s3scanner scan --bucket flaws2.cloud
http.cloud | bucket_exists | AuthUsers: [], AllUsers: ['READ']
Trình quét đã phát hiện ra một thùng S3 có thể đọc được bởi tất cả người dùng, bao gồm cả công khai.
Quét phiên bản máy chủ SSH
Nếu trong quá trình quét của mình, bạn gặp phải các máy đang chạy Secure Shell (SSH), bạn nên xác định phiên bản nào đang chạy trên mục tiêu. SSH là một giao thức an toàn, nhưng các nhà nghiên cứu đã xác định được các lỗ hổng trong các triển khai khác nhau của nó. Bạn không bao giờ biết khi nào bạn có thể gặp may và bắt gặp một máy cũ chưa được cập nhật.
Bạn có thể sử dụng mô-đun ssh_version của Framework để xác định phiên bản SSH đang chạy trên máy chủ mục tiêu:
msf6 > use auxiliary/scanner/ssh/ssh_version
msf6 auxiliary(auxiliary/scanner/ssh/ssh_version) > set RHOSTS 192.168.1.0/24
RHOSTS => 192.168.1.0/24
msf6 auxiliary(auxiliary/scanner/ssh/ssh_version) > set THREADS 50
THREADS => 50
msf6 auxiliary(auxiliary/scanner/ssh/ssh_version) > run
[*] 192.168.1.1:22, SSH server version: SSH-2.0-OpenSSH_7.6p1 Ubuntu-4ubuntu0.3
[*] 192.168.1.2:22, SSH server version: SSH-2.0-OpenSSH_7.2p2 Ubuntu-4ubuntu2.8
[*] Scanned 2 of 256 hosts (0% complete)
[*] 192.168.1.101:22, SSH server version: SSH-2.0-OpenSSH_8.2p1 Ubuntu-4ubuntu0.3
[*] 192.168.1.102:22, SSH server version: OpenSSH_for_Windows_8.1p1, LibreSSL 3.0.2
[*] 192.168.1.153:22, SSH server version: SSH-2.0-OpenSSH_7.2p2 Ubuntu-4ubuntu2.8
[*] 192.168.1.155:22, SSH server version: OpenSSH_7.2p2 Ubuntu-4ubuntu2.8
[*] Scanned 6 of 256 hosts (2% complete)
[*] Scanned 256 of 256 hosts (100% complete)
[*] Auxiliary module execution completed
msf6 auxiliary(auxiliary/scanner/ssh/ssh_version) >
Đầu ra này cho chúng ta biết rằng một vài máy chủ khác nhau đang chạy với các mức vá khác nhau. Thông tin này có thể hữu ích nếu, ví dụ, chúng ta muốn tấn công một phiên bản OpenSSH cụ thể được tìm thấy bằng quét ssh_version.
Quét máy chủ FTP
FTP là một giao thức phức tạp và không an toàn. Máy chủ FTP thường là cách dễ nhất để xâm nhập vào mạng mục tiêu và bạn nên luôn quét, xác định và lấy dấu vân tay của bất kỳ máy chủ FTP nào đang chạy trên mục tiêu của bạn.
Hãy xem một ví dụ quét các dịch vụ FTP bằng mô-đun ftp_version của Framework:
msf6 > use auxiliary/scanner/ftp/ftp_version
msf6 auxiliary(auxiliary/scanner/ftp/ftp_version) > show options
Module options (auxiliary/scanner/ftp/ftp_version):
Name Current Setting Required Description
---- --------------- -------- -----------
FTPPASS mozilla@example.com no The password to try if FTPUSER is set
FTPUSER anonymous no The username to try
RHOSTS yes The target address range or CIDR identifier
RPORT 21 yes The target port
THREADS 1 yes The number of concurrent threads
msf6 auxiliary(auxiliary/scanner/ftp/ftp_version) > set RHOSTS 192.168.1.0/24
RHOSTS => 192.168.1.0/24
msf6 auxiliary(auxiliary/scanner/ftp/ftp_version) > set THREADS 255
THREADS => 255
msf6 auxiliary(auxiliary/scanner/ftp/ftp_version) > run
[*] 192.168.1.155:21 FTP Banner: 220 ProFTPD 1.3.5rc3 Server (Debian) [::ffff:192.168.1.155]
[*] Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed
msf6 auxiliary(auxiliary/scanner/ftp/ftp_version) >
Trình quét đã xác định thành công một máy chủ FTP. Bây giờ, hãy xem máy chủ FTP này có cho phép đăng nhập ẩn danh hay không bằng cách sử dụng mô-đun anonymous của Framework:
msf6 > use auxiliary/scanner/ftp/anonymous
msf6 auxiliary(auxiliary/scanner/ftp/anonymous) > set RHOSTS 192.168.1.155
RHOSTS => 192.168.1.155
msf6 auxiliary(auxiliary/scanner/ftp/anonymous) > set THREADS 50
THREADS => 50
msf6 auxiliary(auxiliary/scanner/ftp/anonymous) > run
[*] 192.168.1.155:21 Anonymous READ access (220 ProFTPD 1.3.5rc3 Server (Debian) [::ffff:192.168.1.155])
[*] Scanned 1 of 1 hosts (100% complete)
[*] Auxiliary module execution completed
msf6 auxiliary(auxiliary/scanner/ftp/anonymous) >
Trình quét báo cáo rằng truy cập ẩn danh được phép và người dùng ẩn danh có quyền đọc truy cập vào máy chủ; nói cách khác, chúng ta có thể tải xuống bất kỳ tệp nào có thể được truy cập bởi phần mềm máy chủ FTP.
Quét Giao thức Quản lý Mạng Đơn giản (SNMP)
Giao thức Quản lý Mạng Đơn giản (SNMP) thường được sử dụng trong các thiết bị mạng để báo cáo thông tin như sử dụng băng thông và tốc độ xung đột. Tuy nhiên, một số hệ điều hành cũng có máy chủ SNMP có thể cung cấp thông tin như mức sử dụng CPU, bộ nhớ trống và các chi tiết cụ thể khác về hệ thống.
Sự tiện lợi cho quản trị viên hệ thống có thể là mỏ vàng cho người kiểm tra thâm nhập và các máy chủ SNMP có thể truy cập được có thể cung cấp thông tin đáng kể về một hệ thống cụ thể hoặc thậm chí cho phép xâm nhập thiết bị từ xa. Ví dụ: nếu bạn có thể lấy chuỗi cộng đồng SNMP đọc/ghi cho bộ định tuyến Cisco, bạn có thể tải xuống toàn bộ cấu hình của bộ định tuyến, sửa đổi nó và tải nó trở lại bộ định tuyến. (Chuỗi cộng đồng về cơ bản là mật khẩu được sử dụng để truy vấn thiết bị để biết thông tin hoặc để ghi thông tin cấu hình vào thiết bị.)
Metasploit Framework bao gồm một mô-đun phụ trợ được tích hợp sẵn có tên là snmp_enum được thiết kế dành riêng cho quét SNMP. Trước khi bạn bắt đầu quét, hãy nhớ rằng chuỗi cộng đồng chỉ đọc (RO) và đọc/ghi (RW) sẽ đóng một vai trò quan trọng trong loại thông tin bạn có thể trích xuất từ một thiết bị nhất định. Trên các thiết bị dựa trên Windows được cấu hình với SNMP, bạn thường có thể sử dụng chuỗi cộng đồng RO hoặc RW để trích xuất mức vá, dịch vụ đang chạy, tên người dùng, thời gian hoạt động, tuyến đường và các thông tin khác có thể giúp mọi thứ dễ dàng hơn nhiều cho bạn trong quá trình pentest.
Để có quyền truy cập vào bộ chuyển mạch, trước tiên bạn sẽ cần cố gắng tìm chuỗi cộng đồng của nó. Sau khi bạn đoán chuỗi cộng đồng, một số phiên bản SNMP sẽ cho phép bất cứ điều gì từ tiết lộ thông tin quá mức đến xâm nhập hệ thống hoàn toàn. SNMPv1 và v2 là các giao thức vốn đã có sai sót. SNMPv3, kết hợp mã hóa và các cơ chế kiểm tra tốt hơn, an toàn hơn đáng kể.
Mô-đun snmp_login của Framework sẽ cố gắng đoán chuỗi cộng đồng bằng cách gửi các mục trong danh sách từ đến một địa chỉ IP hoặc một dải địa chỉ IP:
msf6 > use auxiliary/scanner/snmp/snmp_login
msf6 auxiliary(auxiliary/scanner/snmp/snmp_login) > set RHOSTS 192.168.1.0/24
RHOSTS => 192.168.1.0/24
msf6 auxiliary(auxiliary/scanner/snmp/snmp_login) > set THREADS 50
THREADS => 50
msf6 auxiliary(auxiliary/scanner/snmp/snmp_login) > run
[*] 192.168.1.2 'public' 'SNMPv2-MIB::sysDescr.0 = STRING: NETGEAR GSM7224 L2 Managed Gigabit Switch'
[*] 192.168.1.2 'private' 'SNMPv2-MIB::sysDescr.0 = STRING: NETGEAR GSM7224 L2 Managed Gigabit Switch'
[*] Auxiliary module execution completed
msf6 auxiliary(auxiliary/scanner/snmp/snmp_login) >
Việc tìm kiếm nhanh trên Google cho GSM7224, được liệt kê trong đầu ra, cho chúng ta biết rằng trình quét đã tìm thấy cả chuỗi cộng đồng công khai và riêng tư cho bộ chuyển mạch NETGEAR. Kết quả này, tin hay không, đã không được dàn dựng cho cuốn sách này. Đây là cài đặt xuất xưởng mặc định cho bộ chuyển mạch này.
Bạn sẽ gặp phải nhiều tình huống khó tin như thế này trong suốt sự nghiệp pentest của mình bởi vì nhiều quản trị viên chỉ đơn giản là gắn các thiết bị vào mạng với tất cả các mặc định của chúng vẫn còn nguyên. Tình huống thậm chí còn đáng sợ hơn khi bạn tìm thấy các thiết bị này có thể truy cập được từ internet trong một tập đoàn lớn.
TỔNG KẾT
Trong chương này, bạn đã tìm hiểu về các trình quét của Metasploit Framework. Và lưu ý rằng, khi tiến hành pentest hay hacking đôi khi chúng ta cần tận dụng các trình quét mạnh nhất có thể, vì dụ trong khóa học Pentest Với Metasploit 2025 chúng tôi có tirnh bày bài quét Kioptrix Level 1 cho dịch vụ samba với nmap, enum4linux rồi vài tool khá mạnh khác nhưng không thấy gì trong khi smb scan của Metasploti lại dò ra version khá nhanh chóng. Đó chính là lý do mà các bạn nên dùng Metasploit để bổ trợ cho các ứng dụng dò quét chuyên nghiệp khác.
Và lưu ý rằng dò quét cũng là một hoạt động trái phép, cần cân nhắc kỹ hoặc chỉ thực hiện trên hệ thống bạn có thẩm quyền cho mục đích thích hợp, ở đây Security chỉ nói đến môi trường học tập và giáo dục. Đừng quét mà không lường trước những tác động có thể xảy ra, có thể làm chậm máy, dump máy và nhiều tác hại khác, đặc biệt là quét chủ động.




Bình luận về bài viết này