Die 5 Phasen eines Penetration Test!
This post is also available in:
English
Hacking kann im Fernsehen manchmal wie Magie wirken. Schnelle Tastenanschläge, wilde Zeichen rasen über den Bildschirm, schon ist die Firewall durchbrochen und der Angreifer hat die Kontrolle über das System. In der Realität steckt meist doch etwas mehr dahinter. Deshalb schauen wir uns heute an, wie professionelle Hacker tatsächlich vorgehen und wie die 5 Phasen eines Penetration Tests ablaufen.
Die Kunst des Hackens
Hacken erfordert in Wahrheit ein akribisches Vorgehen und oftmals sehr viel Geduld. In Film und Fernsehen wird aber fast immer nur ein kleiner Teilbereich dargestellt, nämlich die Phase, in der das Zielsystem letztendlich angegriffen wird. Schwachstellen, die für solche Angriffe ausgenutzt werden können, lassen sich aber nicht ohne Weiteres aus dem Ärmel schütteln. Ohne korrekte Vorbereitung wird auch der beste Hacker nur einen Bruchteil der möglichen Ergebnisse erzielen.
Professionelles Hacken hat viel mit der Arbeit eines Detektivs zutun. Man hangelt sich von Hinweis zu Hinweis und versucht anhand der Brotkrumen einen Weg abseits der vorgesehenen Norm zu finden. Ziel ist es, die uns zur Verfügung stehenden Mitteln so auszunutzen, dass wir einen Computer zu einem völlig neuen Verhalten bringen können. Wie die einzelnen Phasen dabei genau ablaufen, schauen wir jetzt im Detail an.
Phase 1: Passive Reconnaissance
Viele der Begrifflichkeiten aus der Hacker-Szene haben ihren Ursprung im militärischen Umfeld. Bei der passiven Reconnaissance handelt es sich um den ersten Schritt der Aufklärungsphase. Das Wörtchen „passive“ spielt dabei eine entscheidende Rolle, denn im ersten Schritt treten wir mit unserem Ziel noch nicht in direkten Kontakt. Vielmehr tragen wir alle öffentlich zur Verfügung stehenden Informationen zusammen. In diesem Kontext wird auch öfter der Begriff Open Source Intelligence bzw. OSINT verwendet.

Wir starten mit einer einfachen Google-Suche und versuchen herauszubekommen, wie unser Ziel im Internet überhaupt aufgestellt ist. Über sogenannte Google-Dorks, das heißt erweiterte Suchparameter, lässt sich außerdem gezielt nach Informationen suchen, die ungewollt oder unbewusst im Internet gelandet sind. Als nächstes kontrollieren wir DNS- und WHOIS-Einträge und versuchen darüber weitere Webseiten und Server zu identifizieren. Außerdem können wir die Profile und Foren-Beiträge von Mitarbeitern beispielsweise nach Hinweisen zu eingesetzten Technologien durchsuchen. Die gewünschten Kenntnisse in Stellenanzeigen, wie zum Beispiel „der gute Umgang mit Java“, können dafür ebenfalls ein guter Anhaltspunkt sein. Natürlich gibt es hierbei noch zahlreiche weitere Quellen und Techniken.
Wie gesagt haben wir uns bis zu diesem Zeitpunkt ausschließlich öffentlich zugänglicher Informationen bedient. Das ist entsprechend auch der letzte Schritt, der selbst ohne vertragliche Grundlage nicht illegal ist (mehr zum Thema Hacking und die Gesetzeslage findest du hier).
Phase 2: Active Reconnaissance
Anders sieht mit dem zweiten Schritt der Aufklärungsphase aus. Bei der aktiven Reconnaissance treten wir das erste Mal direkt mit unserem Ziel in Kontakt. Das heißt, dass wir das erste Mal Anfragen an die in der vorherigen Phase identifizierten Systeme schicken. Ziel ist es, zuerst die gesamte Angriffsoberfläche zu verstehen und zu analysieren. Andernfalls fehlen uns im weiteren Verlauf wichtige Zusammenhänge und wir übersehen mit ziemlicher Sicherheit zahlreiche Angriffsmöglichkeiten.

Welche Services laufen auf den Servern? Sind Firewalls im Einsatz, die unsere Angriffe beeinflussen oder vielleicht sogar vereiteln können? Werden veraltete Softwareversionen eingesetzt, zu denen bereits bekannte Schwachstellen existieren?
Zur Beantwortung dieser Fragen setzen wir als Erstes einen Port-Scanner wie Nmap ein. Dieser sagt uns dann zum Beispiel, dass die Ports 22, 443 und 3389 offen sind, wodurch wir wiederum wissen, dass wir nach Schwachstellen in der SSH- (Port 22) und RDP-Konfiguration (Port 3389) suchen können und dass wahrscheinlich eine Webseite per HTTPS (Port 443) erreichbar ist.
Sollten wir während der passiven oder aktiven Reconnaissance-Phase auf Webseiten stoßen, heißt es zuerst einmal „alles in Ruhe anschauen„. Wir wollen in diesem Schritt alle Schnittstellen sammeln, von denen wir Daten bekommen oder an die wir Daten senden können.
Sobald wir uns einen guten Überblick verschafft haben, können wir auch einen automatisierten Schwachstellen-Scannern wie Nessus einsetzen. Solche Scanner verschicken vorgefertigte Anfragen an die verschiedenen Services und prüfen, ob diese anfällig für bereits bekannte Schwachstellen sind.
Immer dann, wenn eine gewisser Automatismus verwendet wird, besteht natürlich auch die Möglichkeit, dass fehlerhafte Ergebnisse zurückgeliefert werden. Bei einem „False Positive“ wurde ein Verhalten fälschlicherweise als Schwachstelle klassifiziert. Da Schwachstellen-Scanner lediglich auf bekannte Sicherheitslücken anhand bekannter Metriken prüfen können, sind logischerweise auch „False Negatives“ denkbar. Nur weil der Scanner an einer Stelle keine Schwachstelle finden konnte, heißt das noch nicht, dass das Ziel auch tatsächlich sicher ist. Derartige Tools liefern also lediglich erste Anhaltspunkte, ersetzen aber niemals eine manuelle Überprüfung unseres Ziels.
Phase 3: Exploitation
In Phase 3, der Exploitation-Phase, kommen wir dann zum Teil, der oftmals als das eigentliche Hacken angesehen wird. Ein genaues Verständnis der Zielumgebung ist dafür aber Grundvoraussetzung. Wir gehen jetzt alle Schnittstellen der Reihe nach durch und prüfen zum einen, ob die durch die Schwachstellen-Scanner identifizierten Befunde tatsächlich ausnutzbar sind, also ob es sich um False oder True Positives handelt, und zum anderen, welche Schwachstellen wir manuell finden und ausnutzen können. Grundsätzlich gibt es dafür kein allgemeingültiges Rezept. Wie bzw. ob ein Service angreifbar ist, hängt immer sehr stark von den Konfigurationen, Versionen oder zusätzlichen Sicherheitsmaßnahmen wie Firewalls und Intrusion Prevention Systemen ab. Mit der Zeit erkennt man aber, welche Fehler immer wieder gemacht werden und welche Angriffstaktiken eine gute Erfolgschance haben.
Ein guter Hacker hat jedoch niemals ausgelernt und muss sich durchgehend über aktuelle Trends auf dem Laufenden halten. So simpel es auch klingt, aber Twitter ist der perfekte Ort, um sich über die neuesten Entwicklungen in der Szene zu informieren. Geheime Untergrundforen im Darknet gehören der Vergangenheit an.
Da Webseiten bzw. Web-Anwendungen die wahrscheinlich größten Angriffsoberflächen bieten, möchte ich hier noch kurz ein paar der beliebtesten Angriffsszenarien erwähnen.
Injection-Angriffe
Injection-Angriffe sind Angriffe, bei denen fremder Code von außen in die Datenverarbeitung eingebunden wird. Die bekannteste Lücke dieser Art ist wahrscheinlich die SQL-Injection. Sehr vereinfacht gesagt, lässt sich damit in einen Aufruf an die Datenbank eingreifen, wodurch beispielsweise wiederum eine Passwortabfrage umgangen werden kann.

Angriffe auf die Authentisierung
Bei Angriffen auf Authentisierungsverfahren wird versucht, Schwachstellen zu finden, die es einem Angreifer erlauben würden, als ein existierender Benutzer zu agieren. Im schlimmsten Fall würde dies die vollständige Übernahme eines Benutzerkontos bedeuten.
Angriffe auf die Autorisierung
Ein Angriff auf die Autorisierung spielt im Gegensatz zur Authentisierung auf ein fehlerhaftes Berechtigungsmanagement ab. Ein simples Beispiel ist, wenn wir einen gesperrten Bereich aufrufen können, indem wir in der URL einfach den Zusatz „admin=true
“ hinzufügen (www.example.com?admin=true
). Das klingt erstmal stupide, derartige Fehler kommen aber tatsächlich immer wieder vor.
Angriffe auf den Client
Bei Client-Angriffen steht der Endbenutzer im Fokus. Dies kann vom heimlichen Abfangen persönlicher Daten, über Betrugsversuche durch manipulierte Webseiten, bis hin zur Infizierung des Privatrechners durch bösartigen Code reichen.
Derartige Sicherheitslücken lassen sich auch gut für Phishing-Kampagnen ausnutzen. Falls einer der Administratoren darauf hereinfällt, kann so etwas verheerende Folgen für das ganze Unternehmen haben.
Phase 4: Post-Exploitation
Schaffen wir es in der Exploitation-Phase eine Sicherheitslücke erfolgreich auszunutzen, ist unsre Arbeit noch lange nicht getan. Das tatsächliche Ausmaß lässt sich erst in der Post-Exploitation-Phase bestimmen. Dabei ist unser Ziel, verschiedene Schwachstellen und Fehlkonfigurationen derartig zu kombinieren, dass wir es zum einen schaffen, unsere Berechtigungen auszuweiten sowie interessante Daten zu exfiltrieren und zu durchforsten. Oftmals können wir dadurch die Angriffsoberfläche noch einmal erheblich erweitern und in einer neuen Iteration erneut in die Reconnaissance– und Exploitation-Phase übergehen.
Je nach Auftrag richten wir uns in der Post-Exploitation-Phase eine persistente Hintertür ein, die uns zu einem beliebigen Zeitpunkt wieder Zugriff auf das System gibt. Sollte Unauffälligkeit eine Rolle spielen, nutzen wir unsere erworbenen Berechtigungen ebenfalls, um unsere Spuren, beispielsweise in Log-Einträgen, zu beseitigen.
Phase 5: Reporting
Die letzte und tatsächlich wichtigste Phase ist das Reporting. Der beste ethische Hacker kann technisch noch so versiert sein, in Sekunden in Systeme eindringen und die ausgefallensten Schwachstellen finden. Wenn wir es aber nicht schaffen, die Ergebnisse detailliert und vor allem leicht verständlich unserem Auftraggeber mitzuteilen, dann waren alle vorherigen Schritte für die Tonne. Wichtig ist, dass es hierbei nicht um Schuldzuweisungen geht. Keinem ist geholfen, wenn wir uns über unfähige Programmierer oder Administratoren lustig machen. Am Ende des Tages wollen wir alle ein sicheres System schaffen.
In unserem Bericht beschreiben wir zuerst wie wir, und besonders auch der Auftraggeber, die gefundenen Sicherheitslücken reproduzieren können. Außerdem erklären wir, welche Sicherheitsrisiken dadurch für das Unternehmen entstehen können und letztendlich was getan werden sollte, um die Schwachstellen nachhaltig zu beseitigen.
Ein gutes Reporting erfordert genauso wie alle anderen Schritte Übung. Das Ganze wird aber erheblich vereinfacht, wenn wir uns während des gesamten Penetration Tests bereits ausführliche Notizen machen und alle Schritte dokumentieren – das gilt sowohl für erfolgreiche Angriffe, aber auch für gescheiterte Versuche.
Die 5 Phasen im Schnelldurchlauf
Gestartet haben wir dabei mit der (1) passiven Reconnaissance, bei der wir uns ausschließlich öffentlicher Informationen bedienen. Phase zwei ist die (2) aktive Reconnaissance, in der wir tatsächlich mit unserem Ziel interagieren und uns einen Gesamtüberblick über die Angriffsoberfläche verschaffen. Schritt drei, die (3) Exploitation-Phase, ist der eigentliche Angriff auf unser Ziel, bei dem wir vorhandene Schwachstellen aktiv ausnutzen. Anschließend weiten wir in der (4) Post-Exploitation-Phase unsere Berechtigungen aus, öffnen uns eine dauerhafte Hintertür und verwischen unsere Spuren. Die Ergebnisse fassen wir letztendlich in der (5) Reporting-Phase in einem detaillierten und einfach nachvollziehbaren Bericht zusammen.

