Penetrationtesting Für Einsteiger Maximilian Mayerl
Schwierigkeitsgrad
In den Zeiten der weltweiten Vernetzung, in denen fast jeder über einen Internetzugang verfügt und die Bedrohung durch Angriffe ständig wächst, wird der Sicherheit von IT-Systemen ein immer höherer Stellenwert beigemessen. Besonders im Unternehmensumfeld ist ein gut funktionierendes, sicheres ITSystem nicht mehr wegzudenken.
A
us diesem Grund werden Penetrationstests immer wichtiger. Sehen wir uns also an, was genau Penetrationstests sind, wie sie durchgeführt werden und welche Hilfsmittel uns dafür zur Verfügung stehen. Bei einem Penetrationstest überprüft ein ITSicherheitsexperte einen einzelnen Rechner, einzelne Komponenten eines Netzwerks oder ein gesamtes Netzwerk auf Sicherheitslücken. Dabei verwendet er Methoden, die auch ein Angreifer verwenden würde. Nicht zu verwechseln ist der Penetrationstest mit dem Sicherheits-Scan, welcher vollautomatisch von einer Software durchgeführt wird. Dem Tester stehen zur Durchführung des Penetrationstests zahlreiche Hilfsmittel zur Verfügung. Es existieren sogar ganze Sammlungen von Tools, die einen Penetrationstest erleichtern. Eine solche Sammlung stellt beispielsweise BackTrack da. BackTrack ist eine von CD startbare Linux-Distribution, die alles enthält, was ein Penetrationstester benötigt.
Festlegung der Ausgangssituation
hakin9 Nr. 12/2007
In diesem Artikel erfahren Sie... • • •
Was Penetrationstests sind; Wie sie durchgeführt werden; Welche Tools es zu Unterstützung eines Penetrationstests gibt.
Was Sie vorher wissen/können sollten... •
Bevor der Test durchgeführt werden kann muss festgelegt werden, von welcher Situation
2
ausgegangen wird. Das wohl wichtigste Kriterium hierfür ist die Informationsbasis. Es wird zwischen Blackbox- und Whitebox-Tests unterschieden. Beim Blackbox-Test wird davon ausgegangen, dass es sich beim potenziellen Angreifer um einen außenstehenden Dritten handelt, der über keinerlei Insiderinformationen verfügt. Beim Whitebox-Test hingegen wird ein Angriff von innen, beispielsweise von einem Mitarbeiter, angenommen. Damit ein-
Sie sollten über ein fundiertes Wissen im Bereich der Computer-/Netzwerksicherheit verfügen.
www.hakin9.org/de
Penetrationtesting
her geht die Entscheidung, ob der Test von innerhalb des Netzwerks oder von außerhalb über das Internet erfolgt. Als nächstes muss darüber entschieden werden, in welchem Umfang der Test durchgeführt wird. beispielsweise könnte man nur die Router testen. Allerdings wird meist das gesamte Netzwerk getestet. Ein weiterer, wichtiger Punkt ist die Aggressivität mit der vorgegangen wird. Man muss hier genau festlegen, inwiefern das Netzwerk
durch den Test gestört werden darf. Eine aggressivere Vorgehensweise bringt natürlich mehr Ergebnisse, aber oft handelt es sich bei dem zu testenden Netzwerk um eine Produktionsumgebung, die unter keinen Umständen beeinträchtigt werden darf. Auch das Wann ist entscheidend. Oft werden PenTests außerhalb der normalen Arbeitszeiten durchgeführt, um den Arbeitsbetrieb nicht zu stören. Sind all diese Punkte geklärt, kann mit der Durchführung der Tests begonnen werden.
Durchführung des Tests
Ein Penetrationstests gliedert sich in 5 Schritte: Vorbereitung, Informationsbeschaffung, Informationsbewertung, Durchführung des eigentlichen Tests und Abschlussanalyse.
Vorbereitung
In diesem ersten Schritt werden, wie oben bereits beschrieben, die Ausgangssituation und die Ziele des Tests festgelegt. Es ist sehr wichtig in diesem Schritt einen Vertrag abzuschließen, in dem genau geregelt ist zu was der Tester berechtigt ist und zu was nicht. Hat man keinen solchen Vertrag und stört der Test das Netzwerk oder ähnliches, dann ist man vor rechtlichen Folgen nicht sicher. Inhalt des Vertrages sollte dabei sein: • •
•
•
Abbildung 1. Nmap in Aktion, mit eingeschalteter OS- und Diensterkennung • •
Welche Methoden darf der Tester anwenden, welche nicht; Welche Komponenten (Clients, Server, Router etc. …) dürfen getestet werden; Wann wird der Test durchgeführt (beispielsweise außerhalb der Arbeitszeiten im Betrieb); Inwiefern sind die Daten, die im Netzwerk gespeichert sind, sensibel (beispielsweise persönliche Daten der Angestellten) und wie genau ist mit solchen Daten umzugehen; Was erwartet sich der Auftraggeber genau von dem Test; Wie ist mit den Testergebnissen umzugehen (Vertraulichkeit).
Informationsbeschaffung
Abbildung 2. Wireshark (Ethereal) beim Mitschneiden des Netzwerkverkehrs
www.hakin9.org/de
In diesem Schritt wird versucht, alle verfügbaren Informationen über das Netzwerk zu sammeln. Dabei kann sich der Tester diverser Hilfsmittel bedienen. Grundlegende Informationen sind hierbei zum Beispiel die IP-Adressen, unter denen das System (oder Komponenten davon) von außen zu erreichen sind, Informationen über die Dienste, die auf den Systemen laufen, welche Betriebssysteme auf den Computern eingesetzt werden etc. Der Tester kann für das erlangen
hakin9 Nr. 12/2007
3
Für Einsteiger
solcher Informationen beispielsweise Methoden wie Portscans, Applicationmapping, OS-Fingerprinting usw. einsetzen. Ist der Test ein Whitebox-Test wird davon ausgegangen, dass der Angreifer diese Dinge bereits weiß, und daher erfährt der Tester sie natürlich auch vom Auftraggeber.
Informationsbewertung
In dieser Phase werden die vorher erlangten Daten vom Tester ausgewertet. Ziel ist es dabei, bereits im Vorhinein mögliche Schwachstellen in den Systemen zu finden, die genauer getestet werden sollen. In dieser Phase wird oft ein Plan des Netzwerks gezeichnet, in dem potentielle Angriffsziele speziell eingezeichnet sind. Ebenfalls werden hier die Ziele meist nach gewissen Kriterien geordnet. Solche Kriterien können zum Beispiel die Relevanz der Angriffsziels, die Daten die sich auf dem Ziel befinden (wie vertraulich sind die Daten etc.) oder die Aussicht auf Erfolg eines Angriffs auf die jeweilige Komponente sein.
Durchführung des eigentlichen Tests
Sind nun alle Informationen, die benötigt werden, vorhanden, kann der eigentliche Test beginnen.
Dabei muss man darauf achten, sich genau an die Vorgaben des Vertrages zu halten, da sonst mit strafrechtlichen Konsequenzen zu rechnen ist. Auch extrem wichtig ist die ständige Dokumentation der Durchführung. Dabei sollten: • •
Alle Testvorgänge vom Tester genau aufgeschrieben werden; Die Testvorgänge mithilfe von Tools wie Sniffern und Keyloggern mitgeschnitten werden.
Die genaue Dokumentation hat 2 Vorteile: • •
Der Test kann im Nachhinein besser ausgewertet werden; Falls das System tatsächlich beeinträchtigt wird, hat man als Tester den Beweis, dass man sich genau an den Vertrag gehalten hat.
Abschlussanalyse
Am Schluss eines jeden Penetrationstests steht die Analyse der gewonnen Testergebnisse. Oftmals folgt darauf auch noch eine Präsentation (in verschiedener Form), bei der der Auftraggeber genau über die Ergebnisse informiert und die gewonnen Daten übergeben werden.
Nicht direkt zu einem Penetrationstest gehört die Behebung der gefundenen Schwachstellen, aber viele Unternehmen die Penetrationstests anbieten, bieten zusätzlich auch diese Dienstleistung.
Umfang des Tests
Entscheidend über die Ergebnisse, die der Test liefert, ist selbstverständlich sein Umfang. Am besten ist natürlich ein vollständiger Test. Dabei muss man genau überlegen, was denn nun eigentlich zum Netzwerk gehört, damit der Test auch wirklich Anspruch auf Vollständigkeit hat. Es kommt nicht selten vor, dass bei Penetrationstests bei all dem Testen des internen Netzstruktur, wie zB der Router, darauf vergessen wird, dass auch die Homepage, die auf dem Webserver liegt, ein Bestandteil des Netzwerks ist – und einer der verwundbarsten meist noch dazu. Die Homepage ist nämlich der Bereich des Netzwerks, der von einem potenziellen Angreifer am einfachsten erreicht werden kann. Hier werden die meisten Angriffe ansetzen, oder zumindest beginnen. Überaus wichtig ist es auch, ein eventuell vorhandenes kabelloses Netzwerk auf Anfälligkeit zu überprüfen. Das kann schon damit beginnen, dass der Tester überprüft, ob die WLAN-Router/Accesspoints das sichere Verschlüsselungsprotokoll WPA verwenden. Ebenfalls besonders bedeutend ist die Überprüfung der Benutzerrechte. Nicht wenige Angriffe kommen von innen, von eigenen Mitarbeitern. Daher ist ein gut durchdachtes Rechtesystem nötig.
Tools
Da wir nun die Methodik kennen, mit der ein Penetrationstest durchgeführt wird, sollten wir uns die Hilfsmittel ansehen, die einem Tester zur Verfügung stehen. Zum einen haben wir natürlich eine ganze Fülle von einzelnen Tools, die uns behilflich sein können. So zum Beispiel Portscanner, Passwortcracker, Sniffer etc.
Abbildung 3. Die Oberfläche von packETH.
4
hakin9 Nr. 12/2007
www.hakin9.org/de
Penetrationtesting
Zusätzlich gibt es nicht nur solche einzelne Tools, die wir verwenden können, sondern ganze Tool-Sammlungen, die speziell für Pen-Tests zusammengestellt wurden. Die beste dieser Sammlungen stellt das bereits genannte BackTrack dar. Es enthält wirklich alles was man braucht, um einen ausgedehnten Penetrationstest durchführen zu können. Ich werde nun einige Tools vorstellen, die für einen Penetrationstest nützlich sind.
Nmap
Nmap ist einer der wohl bekanntesten Portscanner. Das Tool ist Open Source und für so gut wie jedes Betriebssystem (unter anderem Windows, Linux, FreeBSD und MacOS X) verfügbar. Es beherrscht eine Vielzahl von verschiedenen Scantechniken. Durch den Einsatz verschiedener solcher Techniken können die Ergebnisse des Scans verfeinert werden.
Nmap beherrscht aber nicht nur reines Portscanning, sondern bringt auch Funktionen für OS-Fingerprinting und Diensterkennung mit. Besonders die Diensterkennung ist ein wertvolles Feature, da es für den Test – wie auch für einen potentiellen Angreifer – sehr praktisch ist, zu wissen, welche Version welchen Dienstes genau auf welchem Port läuft.
Ethereal
Bei Ethereal (bzw. seinem Nachfolger Wireshark) handelt es sich um einen ausgesprochen mächtigen Sniffer. Er ist für Windows und Linux verfügbar. Zu seinen Features zählen unter anderem ein sehr gut konfigurierbarer Filter, das erstellen von Statistiken, farbliche Hervorhebung von Paketen basierend auf den Filterregeln und die Möglichkeit, gesniffte Daten abzuspeichern. Ethereal ist dabei nicht nur nützlich, wenn es darum geht, Daten-
Im Internet • • • •
http://www.isecom.org/osstmm/ – OSSTMM http://www.remote-exploit.org/backtrack.html – BackTrack http://www.bsi.bund.de/literat/studien/pentest/penetrationstest.pdf – Studie des BSI; http://www.cccs.de/wiki /pub/Main/ VorTraege/Artikel_ Hackertools_und_ Penetrationstests.pdf – Artikel zum Thema
verkehr im zu testenden Netzwerk abzuhören, sondern auch ein sehr praktisches Tool für die Dokumentation des Tests.
Ophcrack
Ophcrack ist ein sehr nützliches Tool wenn es darum geht, die Sicherheit der Passwörter im Netzwerk zu ermitteln. Ophcrack bedient sich dabei der sogenannten Rainbowtables, um die Passwörter zu gegebenen PasswortHashs zu ermitteln. Dadurch ist es beispielsweise möglich, Passwörter in Windowsumgebungen zu knacken. Dies ist in erster Linie dafür zu gebrauchen, sich Zugriff auf diese Systeme zu beschaffen. Aber zusätzlich dazu ist es für die Bewertung der Sicherheit eines Netzwerkes praktisch zu wissen, wie sicher denn die Passwörter der einzelnen Benutzer sind. Zusätzlich zu Windowspasswörtern kann man Ophcrack zum Beispiel auch zum knacken von Routerpasswörtern verwenden.
packETH
packETH ist ein Ethernet-Paketgenerator, der leider nur für Linux verfügbar ist. Er unterstützt unter anderem die Protokolle TCP, UDP und ICMP, das zeitgesteuerte senden von Paketen, das Ändern der Einstellungen unter der Laufzeit und das Abspeichern von Konfigurationsdateien. Ein Paketgenerator ist ein äußerst wichtiges Werkzeug für einen Penetrationstest. Mann kann damit die Komponenten eines Netzwerks auf Anfälligkeit gegen die verschiedensten DoS-Attacken, gegen manipulierte ICMP Pakete und so weiter testen. Eine Alternative zu packETH für Windows ist beispielsweise Nemesis.
Egressor
Abbildung 4. Das Webinterface des Metasploit Frameworks Version 3.
www.hakin9.org/de
Bei Egressor handelt es sich um ein Tool zur Überprüfung von Routerkonfigurationen. Es wurde für Linux geschrieben. Egressor basiert auf dem Client/Server-Prinzip. Der Client sendet dabei eine Anzahl von
hakin9 Nr. 12/2007
5
Für Einsteiger
Paketen an den Server. Manche davon werden gespooft. Der Server überprüft nun, ob er auch die gespooften Pakete erhalten hat. Dadurch kann festgestellt werden, ob der Router sicher konfiguriert ist.
Metasploit
Metasploit, bzw. sein Teilprojekt Metasploit Framework, ist ein Tool zum Entwickeln und Ausführen von Exploits. Metasploit bietet dazu noch eine Datenbank von Opcodes und Shellcodes, was das Entwickeln von eigenen Exploits sehr einfach macht.
Nessus
Bei Nessus handelt es sich um einen Vulnarability Scanner für Linux und Windows. Er überprüft ein Netzwerk (bzw. dessen Komponenten) vollautomatisch auf Sicherheitslücken. Ein Penetrationstester kann die Ergebnisse eines solchen Scans dazu nutzen, seine eigenen Ergebnisse zu verfeinern. Nessus ist seit der Version 3.0 nicht mehr frei verfügbar. Als Alternative gibt es das Projekt OpenVAS, welches den Quelltext der letzten frei verfügbaren Version verwendet, um den Scanner weiterzuentwickeln.
N-Stealth
N-Stealth ist ein Scanner, der Webserver/Webseiten auf Sicherheitslücken und mögliche Exploits abscannt. N-Stealth nutzt dazu eine Datenbank von 35.000 Attacken. Da ein Webserver meist der am leichtesten durch das Internet zugängliche Server innerhalb des Netzwerks ist, ist es wichtig, eventuelle Schwachstellen in den darauf laufenden Webseiten oder der eingesetzten Serversoftware zu finden.
BackTrack
Sehen wir und nun einmal das von mir schon mehrfach erwähnte BackTrack an. BackTrack ist als CD-Image unter http://www.remote-exploit.org/ backtrack_download.html verfügbar. Nach dem Herunterladen brauchen wir also ein Programm, das uns das Image auf eine CD brennt. Diese CD legen wir anschließend in unser CD Laufwerk und starten den Rechner neu. Wir müssen dann als erstes einen Benutzernamen root und ein Passwort toor eingeben. Anschließend können wir wählen, ob wir KDE oder FluxBox als grafische Oberfläche verwenden wollen.
Über den Author
Maximilian Mayerl ist 17 Jahre alt und lebt in dem kleinen österreichischen Ferienort Mayrhofen. Er beschäftigt sich seit mehreren Jahren mit der Sicherheit von Computern und Netzwerken. Derzeit arbeitet er als Programmierer für eine Firma in der Stadt Wels.
Sobald der Desktop aufgebaut ist, sollten Sie sich einmal das Menü von Backtrack ansehen. Dort, im Menüpunkt BackTrack, finden wir die Tools, die BackTrack uns für die Durchführung eines Penetrationstests zur Verfügung stellt. Verwendet man FluxBox als grafische Oberfläche dann funktionieren leider sehr viele Menüeinträge nicht. Man muss das Programm über die Shell suchen, um es starten zu können. Wenn Sie sich die installierten Tools genauer ansehen, werden sie sofort feststellen, dass ich nicht untertreibe wenn ich sage, dass BackTrack vollständig ist. Einem Penetrationstester dürfe es mit dieser Toolsammlung wirklich an nichts fehlen. Zusätzlich zu den Programmen ist das OSSTMM (Open Source Security Testing Methodology Manual) enthalten. Die Richtlinien gelten weithin als DIE Richtlinien für Penetrationstests. Spielen Sie ruhig etwas mit den Tools herum und versuchen Sie, Ihr eigenes Netzwerk zu überprüfen. Wenn Sie sich einige Zeit mit dem Thema auseinandersetzen wird Ihnen das bestimmt dabei helfen, Ihr lokales Netzwerk sicherer zu machen.
Fazit
Abbildung 5. Der Desktop und des Menü von BackTrack.
6
hakin9 Nr. 12/2007
www.hakin9.org/de
Ich hoffe, ich habe mein Ziel, Ihnen das sehr komplexe Thema des Penetrationtestings etwas näher zu bringen, erreicht. Sollten Sie sich näher mit dem Thema auseinandersetzen wollen, helfen Ihnen sicherlich die Links, die ich zusammengestellt habe. Sollten Sie weitere Fragen haben, melden Sie sich bitte unter kyoko12@gmx.at bei mir. l