Hacken am Beispiel lernen: Programme geschickt austricksen

Wie genau Hacker vorgehen, erklären wir an einem Beispiel-Hack. Als wertvoller Komplize auf dem Weg zum Root-Zugriff soll sich ausgerechnet WordPress erweisen.

In Pocket speichern vorlesen Druckansicht 31 Kommentare lesen

(Bild: Albert Hulm)

Lesezeit: 19 Min.
Inhaltsverzeichnis

Hacker legen nicht wild drauflos, wenn sie ein Angriffsziel im Visier haben. Stattdessen ziehen sie Fingerfertigkeit und Finesse vor. Wie genau sie vorgehen, erklären wir an einem Beispiel-Hack.

Wie Sie mit wenigen Komponenten eine virtuelle Trainingsumgebung basteln und darin Hacking-Rätsel knacken, hatten wir bereits in "Angreifen in virtueller Trainingsumgebung" beschrieben. Dort können Sie nachlesen, wie Sie ein isoliertes Übungsnetzwerk mit der Virtualisierungssoftware VirtualBox erstellen und darin mit dem Hacker-Linux Kali verwundbare virtuelle Maschinen (VM) abtasten, die als Übungsziel dienen.

Mehr zum Thema Hacking:

Schließlich haben wir angerissen, wie Sie in die VM "Mr. Robot" eindringen und einige Brotkrumen gestreut, die Ihnen dabei helfen sollten, die übrigen Hacking-Aufgaben zu lösen. Dieser Artikel knüpft direkt daran an und liefert Ihnen eine vollständige Auflösung als Schritt-für-Schritt-Anleitung.

Sie benötigen kein Vorwissen oder besondere Hardware, um den Übungshack nachzuvollziehen, nur das im oben verlinkten Artikel beschriebene Übungsnetz. Aber auch ohne das Netz erwartet Sie im Folgenden eine interessante Lektüre.

Der gesamte Hack spielt sich in der virtuellen Testumgebung ab. Am Ende haben Sie alle drei Rätsel gelöst und als Belohnung die sogenannten Flags eingesammelt, die im Server an speziellen Orten in Form von Textdateien versteckt sind, und kontrollieren den Server als Root.

Startpunkt für den Hack ist die bereits auf Deutsch gestellte Kali-Linux-VM und die virtuelle Maschine "Mr. Robot". Beide befinden sich in dem internen Netzwerk "Hacking-Umgebung" und erhalten eine IP-Adresse vom DHCP-Server, den VirtualBox bereitstellt. Obwohl wir bereits im letzten Artikel detailliert beschrieben haben, wie Sie zur ersten Flagge kommen, fassen wir die ersten Schritte noch mal kurz zusammen, damit Sie unserem Beispiel-Hack auch ohne Vorwissen folgen können.

c't-kompakt
  • Wir bringen Ihnen die Herangehensweise eines Hackers an einem praktischen Beispiel näher.
  • Sie lernen auf dem Weg viele unterschiedliche Werkzeuge kennen wie hashcat, nmap oder netcat.
  • Mit jeder gelösten Aufgabe steigt die Schwierigkeit.

Öffnen Sie VirtualBox und starten Sie mit Doppelklick auf Kali Linux und "Mr. Robot" die Maschinen. Nachdem letztere hochgefahren ist, können Sie das VM-Fenster wieder verkleinern – außer einem Anmeldefenster für Root gibt es hier nicht viel zu sehen, die Zielserver laufen unsichtbar im Hintergrund. Loggen Sie sich in der Kali-VM mit "kali" als Benutzername und Passwort ein.

Den Startbildschirm der Zielmaschine Mr. Robot können Sie gleich nach dem Start schließen. Sie können zwar versuchen das Passwort zu erraten, aber der Spaß bleibt dabei aus.

Die erste Phase eines Hacks nennt sich "Enumeration" und bedeutet nichts anderes, als den Server auszukundschaften. Die Konsole (Terminal) wird dabei Ihr treuester Begleiter sein, alle verwendeten Tools lassen sich darüber starten. Sie können das Terminal zum Beispiel über den Launcher oben links (Kali-Logo mit Drache) oder via Rechtsklick auf den Desktop und "Terminal hier öffnen".

Zu Beginn wissen Sie nichts über Ihr Angriffsobjekt, es ruht irgendwo da draußen im Hacking-Netzwerk und läuft vor sich hin. Um die Ziel-VM zu finden, können Sie mit dem Befehl

sudo netdiscover -r 10.10.1.0/24

das Netzwerk nach aktiven Systemen scannen (die sudo-Abfrage bestätigen Sie mit dem Standard-Passwort "kali"). Der Befehl entdeckt unter anderem die IP-Adresse 10.10.1.3, hinter der sich Mr. Robot verbirgt. Wertvolle Informationen wie die IP-Adresse des Servers oder benutzte Befehle sollten Sie gleich mit Strg+Umschalt+C kopieren und in ein Textdokument einfügen. Das erleichtert Ihnen die folgenden Schritte und den Einstieg in weitere Übung-VMs, wenn Sie auf den Geschmack gekommen sind.

Tasten Sie sich langsam an die Maschine heran und klopfen Sie das Zielsystem auf erreichbare Ports ab, um herauszufinden, auf welchen Ports Server lauschen, die sich als Angriffsziel eignen. Dafür können Sie den Netzwerkscanner nmap benutzen. Ein Scan mit

nmap 10.10.1.3

spuckt drei erreichbare Ports aus, darunter die Ports 80 (http) und 443 (https). Auf dem Zielsystem läuft also wahrscheinlich mindestens ein Webserver, der eine Website ausliefert. Das können Sie mit dem Browser leicht überprüfen: Öffnen Sie ihn, indem Sie oben links auf der Menüleiste den Globus anklicken und die URL http://10.10.1.3 ansteuern. Die Website simuliert eine Shell, über die Sie mit dem ominösen "Mr. Robot" aus der gleichnamigen Amazon-Serie chatten und Videoclips aufrufen können. Das ist zwar schön und gut, aber die Oberfläche enthält keine offene Tür zum Server.

Öffnen Sie daher erneut das Kali-Terminal, um mit nmap noch tiefer zu graben. Diesmal ergänzen Sie den Befehl um den Parameter --script und das nmap-Skript "http-enum". Der Scan-Aufruf

nmap 10.10.1.3 --script=http-enum

probiert Hunderte gängiger URLs auf dem virtuellen Webserver aus. Damit Ihnen keine Informationen durchschlüpfen, starten Sie in einem neuen Terminal-Tab parallel einen Scan mit dem Website-Scanner nikto, der ähnlich vorgeht. Doppelt hält bekanntlich besser. Sie lassen nikto mit dem Befehl nikto -host 10.10.1.3 auf Mr. Robot los.

Die Kombination der beiden Scanner fördert eine Menge erreichbarer URLs zutage. Sie finden unter anderem heraus, dass auf dem Webserver WordPress installiert ist und sich unter der URL /wp-login.php das dazugehörige Login-Formular verbirgt. Außerdem fielen den Scannern interessante Adressen wie /readme.html, /license.txt oder /robots.txt auf. Über den Browser können Sie die Adressen ansteuern und ansehen. Während die URL http://10.10.1.3/readme.html eine Sackgasse ist, stellt sich die Datei robots.txt dagegen als Volltreffer heraus:

User-agent: *
fsocity.dic
key-1-of-3.txt

Sie haben damit nicht nur den Namen der Datei mit der ersten Flag gefunden (key-1-of-3.txt), sondern eine weitere Datei namens fsocity.dic, die den Scannern durch die Finger geglitten ist. Sie sollten beide Dateien mit wget in Ihr aktuell geöffnetes Arbeitsverzeichnis herunterladen, denn im Zweifel gilt "haben ist besser als brauchen". Das geht zum Beispiel mit wget 10.10.1.3/key-1-of-3.txt.

Damit Sie nicht ständig von der Konsole in den Dateimanager wechseln müssen, können Sie mit dem praktischen Befehl cat den Inhalt der Datei in der Konsole ausgeben. So zeigt cat key-1-of-3.txt folgende Zeichenfolge an: 073403c8a58a1f80d943455fb30724b9. Die zweite gefundene Datei fsocity.dic überflutet nach dem cat-Aufruf Ihre Konsole regelrecht. Es sieht so aus, als handele es sich um ein Wörterbuch mit Hunderttausenden Einträgen. Hier ein Auszug:

http
var
page
Robot
Elliot
styles
and
document
mrrobot
(...)