Drücke „Enter”, um zum Inhalt zu springen.

OverTheWire Natas Level 0 – 13 Anleitung / Walkthrough

0

OverTheWire Natas Anleitung / Walkthrough

Einleitung Wargames

OverTheWire.org bietet über 15 verschiedene Wargames an, welche verschiedene Schwierigskeitgrade haben. Wenn du den Begriff „Wargame“ im Bezug zu Cyber Security zum ersten Mal hörst, fragst du dich bestimmt: „Was ist eigentlich ein Wargame?“.
Wargames sind Herausforderungen, entweder online oder offline als Virtuelle Maschine, in denen man versucht Sicherheitslücken auszunutzen und/oder Zugriff zu etwas zu erlangen. Sie sind teilweise sehr unterschiedlich was die benötigten Fähigkeiten, die Herausforderung und die Vorgehensweise anbelangt. Wargames werden von verschiedenen Internetseiten angeboten und haben teilweise eine große Community. Eine Liste von Wargame Anbietern kannst du hier finden.

Level 0

Anleitung: Level 0

Nachdem wir uns auf http://natas0.natas.labs.overthewire.org/ mit dem Nutzernamen natas0 und Password natas0 angemeldet haben, sehen wir eine Seite mit dem Text You can find the password for the next level on this page..  Wenn wir uns den Seitenquelltext anzeigen lassen, finden wir bei Zeile 16 folgendes:

Level 0 -> Level 1

Anleitung: Level 0 -> Level 1

Diesmal ist das Password für das nächste Level wieder im Seitenquelltext versteckt, allerdings wird der Rechtsklick der Maus blockiert. Das ist aber kein Problem für uns, da wir mit Strg + U uns trotzdem den Seitenquelltext anzeigen lassen können. Bei Zeile 17 finden wir dann folgendes:

Level 1 -> Level 2

Anleitung: Level 1 -> Level 2

Wir sehen uns wieder zuerst den Seitenquelltext an. In Zeile 15 finden wir folgendes:

Wenn wir nach http://natas2.natas.labs.overthewire.org/files/ gehen, sehen wir dort eine Datei users.txt.
In dieser steht:

Level 2 -> Level 3

Anleitung: Level 2 -> Level 3

Wenn wir uns den Seitenquelltext ansehen, finden wir diesmal nur den Kommentar <!– No more information leaks!! Not even Google will find it this time… –>.
Sehen wir uns doch mal die robots.txt Datei an, welche bestimmte User-Agenten ausschließen kann, z.B. auch die Bots von Suchmaschinen.

Der Ordner /s3cr3t/ wird also von Suchmaschinen ausgeschlossen… Sehen wir uns diesen mal an.
In dem Ordner befindet sich die Datei Users.txt mit dem Inhalt:

Level 3 -> Level 4

Anleitung: Level 3 -> Level 4

Bei diesem Level müssen wir den Referrer veränder. Um das zu machen brauchen wir die Hilfe von Burp. Mit Burp können wir den Datenverkehr unterbrechen und Anfragen bearbeiten.
Wenn wir auf Refresh Page klicken und Burp gerade unseren Verkehr unterbricht, können wir unter headers den Referrer von natas4 zu natas5 ändern.

burp

Danach müssen wir das Request nur noch weiterleiten und schon wird uns das Passwort angezeigt.

Level 4 -> Level 5

Anleitung: Level 4 -> Level 5

Wenn wir uns einloggen, steht auf der Seite, dass wir keinen Zugriff haben, weil wir nicht eingeloggt sind. Das könnte eventuell daran liegen, dass ein Cookie falsch gesetzt ist.
Mit dem Browser Addon EditThisCookie können wir den Inhalt von Cookies sehen und bearbeiten.

editthiscookie

Es gibt also einen Cookie der loggedin heißt  und den Wert 0 besitzt. Wenn wir den Wert auf 1 setzen und die Seite neu laden, wird uns das Passwort für das nächste Level angezeigt.

Level 5 -> Level 6

Anleitung: Level 5 -> Level 6

Bei diesem Level hier müssen wir das richtige Password für das für Input Secret finden. Im Quelltext steht in Zeile 17:

Wenn wir nun zu http://natas6.natas.labs.overthewire.org/includes/secret.inc gehen, finden wir:

Jetzt müssen wir nur noch das Secret einfügen, absenden und geschafft.

Level 6 -> Level 7

Anleitung: Level 6 -> Level 7

Im Seitenquelltext steht in Zeile 21:

Wenn wir auf Home klicken sehen wir die URL http://natas7.natas.labs.overthewire.org/index.php?page=home

Hier können wir eine LFI/RFI Schwachstelle ausnutzen. Dafür müssen wir nur folgende URL eingeben:

Jetzt wird uns das Password angezeigt: DBfUBfqQG69KvJvJ1iAbMoIpwSNQ9bWe

Level 7 -> Level 8

Anleitung: Level 7 -> Level 8

Im Seitenquelltext sehen wir, dass unser Input mit der Variable $encodedSecret verglichen wird. Dazu wird unser Input erst in Base64 enkodiert, dann umgedreht und schließlich werden die Binär Daten in Hex konvertiert. Um an das richtige Secret zu kommen, müssen wir diesen Prozess umkehren.

Dazu können wir den Interactiven Modus von PHP benutzen:

Das Secret ist also oubWYf2kBq.

Level 8 -> Level 9

Anleitung: Level 8 -> Level 9

In Zeile 29 vom Quelltext finden wir folgendes: passthru(„grep -i $key dictionary.txt“); Wobei $key unser Input ist.
Es wird also ein Linux Befehl ausgeführt. Das können wir ausnutzen. Suchen wir zum Testen mal nach ; ls.
Durch das Semikolon wird der grep-Befehl beendet und ls wird ausgeführt. Unter /etc/natas_webpass befinden sich die Passwörter für alle Level.
Wir haben immer nur die Rechte, die Datei für das derzeitige und das nächste Level zu lesen. Benutzen wir:

Als Ausgabe werden uns die Passwort-Dateien aller Level aufgelistet. Lassen wir uns natas10 doch mir cat ausgeben.

Level 9 -> Level 10

Anleitung: Level 9 -> Level 10

Die Zeichen ; und & werden in diesem Level gefiltert, weswegen wir hier nicht wie in Level 9 vorgehen können.
Allerdings können wir uns grep von nutzen machen. Der Befehl grep -i nimmt als ersten Parameter das Suchwort und alle danach folgenden als Datei in der gesucht werden soll. Also können wir einfach /etc/natas_webpass/natas11 als zu durchsuchende Datei hinzunehmen.

Geben wir a /etc/natas_webpass/natas11 ein…
Der Buchstabe a scheint nicht im Passwort vorhanden zu sein.

Probieren wir u /etc/natas_webpass/natas11 aus.

Möchtest du benachrichtigt werden, wenn ein neuer Artikel veröffentlicht wurde?

Level 10 -> Level 11

Anleitung: Level 10 -> Level 11

Platzhalter

Level 11 -> Level 12

Anleitung: Level 11 -> Level 12

Bei diesem Level können wir eine JPEG Datei hochladen. Sehen wir uns mal den Quelltext an.

Wenn wir eine Datei hochladen, wird bekommt diese einen zufälligen 10-stelligen Namen, die Endung .jpg und wird unter /upload/ gespeichert. Den Link zu der Datei bekommen wir danach angezeigt. Wir können ein PHP-Skript erstellen, welches für uns ein System-Kommando ausführt und müssen dafür sorgen, dass es mit der Endung .php in dem Ordner /upload/ gespeichert wird und nicht mit der Endung .jpg.

Durch dieses Kommando erstellen wir ein PHP-Skript welches auf dem Server cat /etc/natas_webpass/natas13 ausführen wird. Das \ ist bei echo ein escape character. Ohne das \ würde der echo Befehl bei system(„ enden. system führt bei PHP ein System Kommando aus und gibt den Output aus. Wird speichern das PHP-Skript als cutecat.jpg ab, wobei die Endung bei diesem Beispiel egal ist, da die Datei eh umbenannt wird und die Seite die Datei nicht auf ihre Endung überprüft.

Es gibt verschiedene Möglichkeiten, wie wir dafür sorgen können, dass unsere Datei nun als .php gespeichert wird.

Zum einen können wir Strg + Umschalt + I drücken um die Elemente der Seite zu untersuchen. Dann suchen wir nach dem verstecktem Input-Feld und können dort den Wert von filename ändern.

Element untersuchen

Danach müssen wir nur noch auf Upload File klicken, die Datei wird unter dem Namen gespeichert, welchen wir festgelegt haben und wenn wir durch den Link, welcher uns angezeigt wird, die Datei ausführen, bekommen wir das Passwort angezeigt.

Alternativ können wir auch Burp benutzen. Wenn wir das Upload Anfrage abfangen, können wir dort auch den Dateinamen ändern.

Burp

Wenn alles geklappt hat, bekommen wir das Password angzeigt.

Level 12 -> Level 13

Anleitung: Level 12 -> Level 13

Dieses Level ist eine Erweiterung zum vorherigen. Der Quelltext hat drei neue Zeilen dazu bekommen.

Jetzt wird bei der Datei, welche wir hochladen, zusätzlich überprüft um was für einen Bildtyp es sich bei der Datei handelt. Dies wird durch exif_imagetype(datei) realisiert. exif_imagetype liest die ersten Bytes der Datei aus und überprüft anhand der Signatur um welchen Dateityp es sich handelt. Wenn wir etwas anderes als eine Bilddatei hochladen erhalten wir nur die Rückmeldung File is not an image.

Auf Wikipedia können wir eine Liste mit Signatur für verschiedene Dateitypen finden. Die Signatur für JPEGs ist FF D8 FF DB.

Hier gibt es auch wieder verschiedene Möglichkeiten, wie wir die Signatur an den Anfang unserer Datei einfügen können, sodass diese als JPEG erkannt wird.

1.

Dadurch haben wir nun die JPEG Signatur in der Datei jpeg gespeichert. Jetzt müssen wir nur noch unser PHP-Skript erstellen und die beiden Dateien zusammenführen.

2. Wir können auch den Hexeditor dafür benutzen.

Viermal Strg + A drücken um null-Bytes zu erstellen, FF D8 FF DB eingeben und mit Strg + X speichern.

hexeditor

3. Wir laden unser Skript ganz normal hoch und fangen die Anfrage mit Burp ab. Wir kopieren dann die ASCII Kodierung der Signatur von Wikipedia und fügen diese vor dem Inhalt unserer Datei ein.

kopieren

einfügen bei burp

Natürlich dürfen wir nicht vergessen, wie im vorherigen Level, dafür zu sorgen, dass unsere Datei wieder mit der Endung .php gespeichert wird. Wenn alles funktioniert hat, bekommen wir wieder das Passwort angezeigt, wenn wir dem Link zu unserer Datei folgen.

Level 13 -> Level 14

Anleitung: Level 13 -> Level 14

 

 

 

Level 14 -> Level 15

Anleitung: Level 14 -> Level 15
 

 

 

 

 

Level 16 -> Level 17

Anleitung: Level 16 -> Level 17

 

 

 

 

Level 17 -> Level 18

Anleitung: Level 17 -> Level 18

 

 

 

 

Level 18 -> Level 19

Anleitung: Level 18 -> Level 19

Platzhalter

Level 19 -> Level 20

Anleitung: Level 19 -> Level 20

Platzhalter

Level 20 -> Level 21

Anleitung: Level 20 -> Level 21

Platzhalter

Level 21 -> Level 22

Anleitung: Level 21 -> Level 22

Platzhalter

Level 22 -> Level 23

Anleitung: Level 22 -> Level 23

Platzhalter

Level 23 -> Level 24

Anleitung: Level 23 -> Level 24

Platzhalter

Level 24 -> Level 25

Anleitung: Level 24 -> Level 25

Platzhalter

Level 25 -> Level 26

Anleitung: Level 25 -> Level 26

Platzhalter

Level 26 -> Level 27

Anleitung: Level 26 -> Level 27

Platzhalter

Level 27 -> Level 28

Anleitung: Level 27 -> Level 28

Platzhalter

Level 28 -> Level 29

Anleitung: Level 28 -> Level 29

Platzhalter

Level 29 -> Level 30

Anleitung: Level 29 -> Level 30

Platzhalter

Level 30 -> Level 31

Anleitung: Level 30 -> Level 31

Platzhalter

Level 31 -> Level 32

Anleitung: Level 31 -> Level 32

Platzhalter

Level 32 -> Level 33

Anleitung: Level 32 -> Level 33

Platzhalter

Teilen:

    Schreibe einen Kommentar

    Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert.

    14 + elf =