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

OverTheWire Bandit Walkthrough – Alle Level

0

OverTheWire Bandit Anleitung / Walkthrough All Level

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.

Einleitung Bandit Wargame

Bandit ist, wie schon erwähnt, eines der Wargames von OverTheWire.org
Es ist ein Wargame für Beginner / Einsteiger und perfekt für welche, die noch keine Erfahrung mit Wargames haben. Es bringt einem die Grundlagen bei, die man benötigt, um andere Wargames erfolgreich zu absolvieren. Grundkenntnisse in Linux / Bash sind vorausgesetzt. Falls ihr bei einem Level nicht weiter kommen solltet, könnt ihr euch ansehen, wie ich das Level gelöst habe oder auch euren Ansatz mit meinem vergleichen. Bei Bandit geht es darum sich mit einem vorgegebenen Benutzernamen und Passwort über SSH sich zu einem Linux Server zu verbinden. Nun ist es die Aufgabe das Passwort herauszufinden, um sich als ein anderer Benutzer anzumelden.

Level 0

Hier kommst du zu der Internetseite von Bandit. Alles Relevante werde ich dir aber auch hier mitteilen.

Als erstes müssen wir uns über SSH mit dem Spiel verbinden. Die Adresse des Host ist bandit.labs.overthewire.org und der Port 2220. Der Benutzername ist bandit0 und das Passwort ebenfalls bandit0.

Wie kann ich eine SSH Verbindung herstellen / trennen?

Linux:
Um die SSH Verbindung zum Spiel herzustellen, benutzen wir folgendes:

In diesem Fall haben wir uns als Benutzer bandit0 angemeldet.

Um die Verbindung zu trennen um uns nachher als nächster Benutzer anzumelden, schreiben wir exit.

Level 0 -> Level 1

Nun müssen wir versuchen das Passwort für den nächsten Benutzer bandit1 herauszufinden.
Der Tipp zu diesem Level ist wie folgt:
Das Passwort können wir in einer Datei namens readme finden, welche im Homeverzeichnis liegt.

Anleitung: Level 0 -> Level 1

Als erstes benutzen wir den Befehl ls um herauszufinden, welche Dateien im aktuellen Verzeichnis zu finden sind.

Wir haben nun also die Datei readme gefunden, in welcher das Passwort gespeichert ist.
Jetzt können wir cat benutzen, um den Inhalt der Datei auszugeben.

Level 1 -> Level 2

Der Benutzername, mit dem wir uns für das nächste Level anmelden müssen, ist logischerweise bandit1. Das Passwort haben wir gerade herausgefunden. Es lautet: boJ9jbbUNNfktd78OOpsqOltutMc3MY1
Der Tipp zu diesem Level ist wie folgt:
Das Passwort liegt in einer Datei namens , welche im Homeverzeichnis liegt.

Anleitung: Level 1 -> Level 2

Wir benutzen erst einmal wieder ls um alle Dateien im aktuellen Verzeichnis anzeigen zu lassen.

Wir können nun aber nicht analog zum vorherigen Level cat – benutzen, um den Inhalt der Datei – auszugeben, da – ebenfalls dazu benutzt wird, um Optionen für Befehle anzugeben.
Stattdessen können wir cat ./- benutzen. ./ bezeichnet den aktuellen Ordner, in dem man sich befindet.

Alternativ können wir auch cat < – benutzen. < wird, unter Anderem, benutzt um den Inhalt einer Datei an einen Befehl umzuleiten. Weiter Informationen zu Umleitungen kannst du hier finden.

Level 2 -> Level 3

Wir melden uns nun als bandit2 mit dem Passwort CV1DtqXWVFXTvM2F0k09SHz0YwRINYA9 an.
Der Tipp zu diesem Level ist wie folgt:
Das Passwort ist in einer Datei namens spaces in this filename, welche im Heimverzeichnis liegt.

Anleitung: Level 2 -> Level 3

Wir benutzen erst einmal wieder ls , um alle Dateien im aktuellen Verzeichnis anzeigen zu lassen.

Hier haben wir jetzt verschiedene Möglichkeiten.
Die einfachste Möglichkeit ist cat „spaces in this filename“ oder cat ’spaces in this filename‘.
Alternativ geht auch cat spaces\ in\ this\ filename.

Level 3 -> Level 4

Wir melden uns nun als bandit3 mit dem Passwort UmHadQclWmgdLOKQ3YNgjWxGoRMb5luK an.
Der Tipp zu diesem Level ist wie folgt:
Das Passwort befindet sich in einer versteckten Datei (= hidden file), in dem inhere Ordner.

Anleitung: Level 3 -> Level 4

Wir fangen wieder mit dem alt bewährten ls an, um alle Dateien im aktuellen Verzeichnis anzeigen zu lassen.

Wir sehen nun den Ordner inhere. Um diesen zu öffnen, benutzen wir den Befehl cd

Wenn wir nun wieder ls benutzen, wird uns nichts angezeigt, da die Datei, welche wir suchen, versteckt wurde.
Deswegen benutzen wir die Option -a von dem Befehl ls. Das sorgt dafür, dass auch alle versteckten Dateien und Ordner angezeigt werden.

Da wir jetzt wissen, dass die Datei .hidden heißt und in dem aktuellen Ordner hier liegt, können wir den Inhalt wie gewohnt mit cat ausgeben lassen

Level 4 -> Level 5

Wir melden uns nun als bandit4 mit dem Passwort pIwrPrtPN36QITSp3EQaw936yaFoFgAB an.
Der Tipp zu diesem Level ist wie folgt:
Das Passwort befindet sich in der einzigen Datei, im inhere Ordner, welche für Menschen lesbar (= human-readable) ist.

Anleitung: Level 4 -> Level 5

Es kommt wieder zuerst das altbewährte ls zum Einsatz und danach cd um den Ordner inhere zu öffnen

Jetzt wieder ls um die Dateien im Ordner sehen zu können

Es befinden sich 10 Dateien in dem Ordner. Man könnte sich nun jede einzelne ansehen, aber das würde zu lange dauern und zu aufwändig sein.
Mit file können wir uns anzeigen lassen was für eine Art von Inhalt eine Datei enthält. ./* bezeichnet alle Dateien die im aktuellen Ordner sind.

./-file07: ASCII text sieht viel versprechend aus. Sehen wir uns die Datei mal genauer an mit Hilfe von cat.

Level 5 -> Level 6

Wir melden uns nun als bandit5 mit dem Passwort koReBOKuIDDepwhWk7jZC0RTdopnAYKh an.
Der Tipp zu diesem Level ist wie folgt:
Das Passwort ist wieder in einer Datei innerhalb des inhere Ordners.
Diese Datei hat folgende Eigenschaften:
– Sie ist für Menschen lesbar (= human-readable)
– Sie ist 1033 Bytes groß
– Sie ist nicht ausführbar (= not executable)

Anleitung: Level 5 -> Level 6

Als erstes begeben wir uns wieder in den inhere Ordner und schauen uns dessen Inhalt an.

Im inhere Ordner befinden sich also 20 weitere Ordner. Um die richtige Datei, welche das Passwort beinhaltet, schnell und einfach zu finden, können wir den Befehl find benutzen.
Wir benutzen den Befehl find mit folgenden Optionen:
-type f, da wir eine normale Datei suchen. f steht in diesem Fall einfach nur für file.
-readable, da die Datei für Menschen lesbar ist (= human-readable)
! -executable, da die Datei nicht ausführbar ist (= non executable). Das ! verneint in diesem Fall die Option -executable.
-size 1033c, da die Datei 1033 Bytes groß ist. c gibt in diesem Fall an, dass die Größe in Bytes gemeint ist.
Und natürlich auch ./, was einfach nur angibt, dass die Datei irgendwo innerhalb des aktuellen Ordners (inhere) zu finden ist.

Nun müssen wir nur noch den Inhalt der Datei .file2, welche sich im Ordner maybehere07 befindet, ausgeben.

Level 6 -> Level 7

Wir melden uns nun als bandit6 mit dem Passwort DXjZPULLxYr17uwoI01bNLQbtFemEgo7 an.
Der Tipp zu diesem Level ist wie folgt:
Die Datei, in welcher sich das Passwort befindet, ist irgendwo auf dem Server und hat folgende Eigenschaften:
– Sie ist im Besitz von dem Benutzer bandit7
– Sie ist im Besitz von der Gruppe bandit6
– Sie ist 33 Bytes groß

Anleitung: Level 6 -> Level 7

Hier kommt, wie im vorherigen Level, wieder der Befehl find zum Einsatz.
Diesmal mit folgenden Optionen:
/, damit der gesamte Server durchsucht wird
-user bandit7, da der Benutzer bandit7 als Besitzer eingetragen ist
-group bandit6, da ebenfalls die Gruppe bandit6 als Besitzer eingetragen ist
-size 33c, da die Datei 33 Bytes groß ist. c gibt in diesem Fall an, dass die Größe in Bytes gemeint ist.
2>/dev/null, diese Option ist dafür da jede Fehlermeldung umzuleiten, damit nicht jede einzelne wie z.B. „Zugriff verweigert“ in unserem Terminal ausgegeben wird. Weitere Informationen zu Umleitungen kannst du hier finden.

Jetzt wo wir die Datei gefunden haben, müssen wir wieder nur ihren Inhalt ausgeben.

Level 7 -> Level 8

Wir melden uns nun als bandit7 mit dem Passwort HKBPTKQnIay4Fw76bEy8PVxKEDQRKTzs an.
Der Tipp zu diesem Level ist wie folgt:
Das Passwort befindet sich in der Datei data.txt neben dem Wort millionth.

Anleitung: Level 7 -> Level 8

Mithilfe von grep können wir Input nach bestimmten Zeichen und Wörtern durchsuchen und nur Zeilen darstellen lassen, welche diese enthalten. Mithilfe von > leiten wir den Output von cat zu grep um. Mehr Informationen zu Umleitungen kannst du hier finden.

Level 8 -> Level 9

Wir melden uns nun als bandit8 mit dem Passwort cvX2JJa4CFALtqS87jk27qwqGhBM9plV an.
Der Tipp zu diesem Level ist wie folgt:
Das Passwort befindet sich in der Datei data.txt in der einzigen Zeile, die ein einziges Mal vorkommt.

Anleitung: Level 8 -> Level 9

Für dieses Level benutzen wir wie gewohnt:
– cat
– den Pipe-Operator |, dieser Leitet den Output eines Befehls direkt zu einem anderen Befehl weiter
sort, mithilfe von sort können wir Dateien zeilenweise sortieren.
uniq, mithilfe von uniq können wir Dateien ohne doppelte Zeilen ausgeben. Die Option -u sorgt dafür, dass nur Zeilen ausgegeben werden, welche nicht mehrmals vorkommen.

cat gibt den Inhalt der Datei data.txt an sort weiter.
sort sortiert diesen und gibt ihn an uniq -u weiter.
uniq -u gibt dann die nur die Zeilen aus, welche nicht mehrmals vorkommen

Level 9 -> Level 10

Wir melden uns nun als bandit9 mit dem Passwort UsvVyFSfZZWbi6wgC7dAFyFuR6jQQUhR an.
Der Tipp zu diesem Level ist wie folgt:
Das Passwort befindet sich in der Datei data.txt in einer der wenigen für Menschen lesbaren (= human-readable) Strings und beginnt mit mehreren =.

Anleitung: Level 9 -> Level 10

data.txt ist diesmal eine Binär-Datei. Wenn wir cat benutzen sehen wir nur ein unleserliches Wirrwarr. Stattdessen benutzen wir strings. Strings gibt nur Zeilen mit „druckbaren“/“lesbaren“ Charakteren aus.

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

Level 10 -> Level 11

Wir melden uns nun als bandit10 mit dem Passwort truKLdjsbJ5g7yyJ2X2R0o3a5HQJFuLk an.
Der Tipp zu diesem Level ist wie folgt:
Das Passwort befindet sich in der Datei data.txt, welche Base64 enkodierte Daten enthält.

Anleitung: Level 10 -> Level 11

Mithilfe von base64 -d können wir ganz einfach Strings und Dateien, welche mit Base64 enkodiert wurden, dekodieren.

Level 11 -> Level 12

Wir melden uns nun als bandit11 mit dem Passwort IFukwKGsFW8MOq3IRFqrxE1hxTNEbUPR an.
Der Tipp zu diesem Level ist wie folgt:
Das Passwort befindet sich in der Datei data.txt, allerdings wurden jeweils alle Kleinbuchstaben (a-z) und Großbuchstaben (A-Z) um 13 Positionen rotiert.

Anleitung: Level 11 -> Level 12

Hier wurde die bekannte ROT13 Caesar-Verschlüsselung benutzt. Diese können wir mithilfe von tr oder Python rückgängig machen.

Level 12 -> Level 13

Wir melden uns nun als bandit12 mit dem Passwort 5Te8Y4drgCRfCx8ugdwuEX8KFC6k2EUu an.
Der Tipp zu diesem Level ist wie folgt:
Das Passwort befindet sich in der Datei data.txt, welche ein Hexdump einer Datei ist, die mehrmals komprimiert wurde. Für dieses Level empfiehlt es sich, unter /tmp ein Verzeichnis zu erstellen, die Datei dort hinzukopieren und umzubenennen.

Anleitung: Level 12 -> Level 13

In diesem Level müssen wir Dateien mehrmals mithilfe von tar, gzip und bzip2 entpacken. Mithilfe von file, finden wir heraus, womit die Dateien komprimiert wurden.

Level 13 -> Level 14

Wir melden uns nun als bandit13 mit dem Passwort 8ZjyCRiBWFYkneahHwxCv3wb2a1ORpYL an.
Der Tipp zu diesem Level ist wie folgt:
Das Passwort für das nächste Level befindet sich in  /etc/bandit_pass/bandit14 und kann nur von dem Benutzer bandit14 gelesen werden. Allerdings bekommst du den privaten SSH key, mit welchem du dich als bandit14 einloggen kannst.

Anleitung: Level 13 -> Level 14

In diesem Level bekommen wir den privaten SSH key für das nächste Level. Mit ssh -i können wir den privaten SSH key um uns als bandit14 mit localhost zu verbinden.

Level 14 -> Level 15

Wir melden uns nun als bandit14 mit dem Passwort 4wcYUJFw0k0XLShlDzztnTBHiqxU3b3e an.
Der Tipp zu diesem Level ist wie folgt:
Das Passwort für das nächste Level bekommst du, indem du das Passwort des derzeitigen Levels zu dem Port 30000 auf dem lokalen Host einreichst.

Anleitung: Level 14 -> Level 15

Bei diesem Level senden wir mithilfe von nc ( netcat ) das Passwort an localhost 3000.

Level 15 -> Level 16

Wir melden uns nun als bandit15 mit dem Passwort BfMYroe26WYalil77FoDi9qh59eK5xNr an.
Der Tipp zu diesem Level ist wie folgt:
Das Passwort für das nächste Level erhältst du, indem du das Passwort des derzeitigen Levels zu dem Port 30001 auf dem lokal Host einreichst, während du SSL-Verschlüsselung benutzt.

Anleitung: Level 15 -> Level 16

Hier benutzen wir openssl s_client -connect localhost:30001 um eine SSL Verbindung mit localhost auf dem Port 30001 herzustellen.

Level 16 -> Level 17

Wir melden uns nun als bandit16 mit dem Passwort cluFn7wTiGryunymYOu4RcffSxQluehd an.
Der Tipp zu diesem Level ist wie folgt:
Die Zugangsdaten für das nächste Level erhältst du, indem du das Passwort des derzeitigen Levels zu einem Port auf dem lokalen Host in der Reichweite von 31000 bis 32000 einreichst. Zuerst musst du herausfinden auf welchem dieser Ports ein Server läuft und danach welcher SSL benutzt und welcher nicht. Es gibt nur einen Server der dir die Zugangsdaten zurücksendet, die anderen senden nur zurück, was du ihnen gesendet hast.

Anleitung: Level 16 -> Level 17

Mit nmap können wir nach offenen Ports scannen. Durch die Option -A ermittelt nmap unter anderem, welche Programme bei den offenen Ports laufen. -p legt fest welche Ports gescannt werden sollen. Wenn man -p weglässt, werden nur Ports gescannt, welche üblicherweise von Programmen benutzt werden.

Nur der Port 31790 scheint kein Echo zurückzugeben. Der nächste Schritt ist analog zum vorherigen Level.

Als nächstes erstellen wir ein neues Verzeichnis /tmp/shhkey/. Wir kopieren den SSH-Key und leiten ihn von echo zu der Datei sshkey.private um, welche dadurch erstellt wird.

Jetzt können wir uns wie bei Level 13 mithilfe der Datei sshkey.private eine Verbindung aufbauen.

Allerdings müssen wir noch die Berechtigungen der Datei ändern, sodass andere diesen nicht lesen können.

Mithilfe von chmod können wir Berechtigungen für Dateien ändern. Wir setzen die Berechtigungen so, dass die Datei nur gelesen werden darf, und dies auch nur von dem aktuellen Nutzer bandit16.

Level 17 -> Level 18

Wir melden uns nun als bandit17 mit dem Passwort xLYVMN9WE5zQ5vHacb0sZEVqbrp7nBTn an.
Der Tipp zu diesem Level ist wie folgt:
In dem Heimverzeichnis befinden sich 2 Dateien: passwords.old und passwords.new. Das Passwort für das nächste Level befindet sich in passwords.new und ist die einzige Zeile, welche sich von passwords.old unterscheidet.

Anleitung: Level 17 -> Level 18

Mit diff können wir den Inhalt von zwei Dateien vergleichen.

Level 18 -> Level 19

Wir melden uns nun als bandit18 mit dem Passwort kfBf3eYk5BPBRzwjqutbbfE887SVc5Yd an.
Der Tipp zu diesem Level ist wie folgt:
Das Passwort für das nächste Level befindet sich in einer Datei im Heimverzeichnis namens readme. Allerdings hat jemand .bashrc so modifiziert, dass du ausgeloggt wirst, wenn du dich über SSH einloggst.

Anleitung: Level 18 -> Level 19

Da wir uns nur für den Bruchteil einer Sekunde anmelden können, müssen wir einen anderen Weg kommen, um an das Password innerhalb der Datei readme zu kommen.
Indem wir cat readme an den SSH-Verbindungsbefehl hängen, wird dieser ausgeführt, nachdem wir das richtige Password eingegeben haben.

Level 19 -> Level 20

Wir melden uns nun als bandit19 mit dem Passwort IueksS7Ubh8G3DCwVzrTd8rAVOwq3M5x an.
Der Tipp zu diesem Level ist wie folgt:
Um Zugang zu dem nächsten Level zu erhalten, solltest du die setuid Binärdatei im Heimverzeichnis benutzen. Führe sie ohne Argumente aus, um herauszufinden wie man sie benutzt. Das Passwort für das nächste Level kann wie gewohnt in /etc/bandit_pass gefunden werden.

Anleitung: Level 19 -> Level 20
Wir haben die Binärdatei bandit20-do im Heimverzeichnis. Führen wir diese mal aus.
Anscheinend können wir dadurch Befehle als ein anderer Benutzer ausführen. Benutzen wir mal den Befehl der uns vorgeschlagen wird.
Wir können durch die Binärdatei also Befehle als bandit20 ausführen lassen. Dadurch können wir die Datei /etc/bandit_pass/bandit20 auslesen lassen, welche das Passwort für bandit20 enthält.

Level 20 -> Level 21

Wir melden uns nun als bandit20 mit dem Passwort GbKksEFF4yrVs6il55v6gwY5aVje5f0j an.
Der Tipp zu diesem Level ist wie folgt:
Im Heimverzeichnis befindet sich eine setuid Binärdatei welche folgendes macht: Sie stellt eine Verbindung zum lokalen Host auf dem Port auf, welchen du in der Kommandozeile als Argument spezifizierst. Sie liest dann den Text denn sie über diese Verbindung gesendet bekommt und vergleicht diesen mit dem Passwort des derzeitigen Levels. Wenn das Passwort korrekt ist, sendet es das Passwort für das nächste Level zurück.

Anleitung: Level 20 -> Level 21
Diesmal haben wir die Binärdatei suconnect im Heimverzeichnis.
Indem wir & an das Ende eines Befehls hängen, wird dieser im Hintergrund ausgeführt und wir können weitere Befehle eingeben. Durch nc -l 4444 & wartet netcat im Hintergrund auf eine Verbindung auf Port 4444.
Nun können wir die Binärdatei auch als Hintergrundprozess ausführen lassen und geben den Port 4444 an.
Durch fg %1 können wir den Prozess 1 wieder in der Vordergrund holen, in diesem Fall ist das unser Netcat-Listener, zu welchem suconnect eine Verbindung aufgebaut hat.
Jetzt müssen wir nur noch das Passwort des derzeitigen Levels eingeben und Enter drücken. Netcat sendet dieses dann an suconnect.

Level 21 -> Level 22

Wir melden uns nun als bandit21 mit dem Passwort gE269g2h3mw3pwgrj0Ha9Uoqen1c9DGr an.
Der Tipp zu diesem Level ist wie folgt:
Ein Programm wird in regelmäßigen Abständen von cron, dem zeitbasierten Job-Steuerer ausgeführt. Sieh in /etc/cron.d/ nach der Konfiguration und welches Kommando ausgeführt wird.

Anleitung: Level 21 -> Level 22

Sehen wir uns als erstes an, was wir in /etc/cron.d finden können.

cronjob_bandit22 sieht nach dem aus wonach wir suchen.

Der Cronjob cronjob_bandit22 führt regelmäßig das Bash-Skript /usr/bin/cronjob_bandit22.sh aus. Sehen wir uns dieses an.

Das Bash-Skript ändern die Zugriffsrechte der Datei /tmp/t7O6lds9S0RqQh9aMcz6ShpAoZKF7fgv. Was sich in dieser wohl befindet?

Level 22 -> Level 23

Wir melden uns nun als bandit22 mit dem Passwort Yk7owGAcWjwMVRwrTesJEwB7WVOiILLI an.
Der Tipp zu diesem Level ist wie folgt:
Ein Programm wird in regelmäßigen Abständen von cron, dem zeitbasierten Job-Steuerer ausgeführt. Sieh in /etc/cron.d/ nach der Konfiguration und welches Kommando ausgeführt wird.
Sich Shell-Skripts anzusehen, welche von anderen Leuten geschrieben wurden, ist eine hilfreiche Fähigkeit. Das Skript in diesem Level ist bewusst so gemacht, dass man es einfach lesen kann. Wenn du Probleme damit hast, zu verstehen was es macht, führe es aus und sieh dir die Debuginformationen an, welche es ausgibt.

Anleitung: Level 22 -> Level 23

Sehen wir uns zuerst wieder die Cronjobs an.

Der Cronjob cronjob_bandit23 führt regelmäßig das Bash-Skript /usr/bin/cronjob_bandit23.sh aus.

Das Skript macht folgendes. In der letzten Zeile kopiert es den Inhalt der Datei /etc/bandit_pass/bandit23, welche das Passwort von bandit23 enthält, nach /tmp/$mytarget.
Die Variable $mytarget setzt sich dadurch zusammen, dass von dem String I am user bandit23 zuerst eine md5sum gebildet wird. Durch cut mit der Option -d ‚ ‚ werden zuerst alle Leerzeichen entfernt und dann durch die Option -f 1 wird das erste Feld ausgewählt.
Um den Dateinamen herauszufinden, müssen wir das Echo Kommando, welches das Skript ausführt, einfach selber ausführen.

Jetzt wo wir den Dateinamen wissen, können wir den Inhalt wie gewohnt ausgeben lassen.

Level 23 -> Level 24

Wir melden uns nun als bandit23 mit dem Passwort jc1udXuA1tiHqjIsL8yaapX5XIAI6i0n an.
Der Tipp zu diesem Level ist wie folgt:
Ein Programm wird in regelmäßigen Abständen von cron, dem zeitbasierten Job-Steuerer ausgeführt. Sieh in /etc/cron.d/ nach der Konfiguration und welches Kommando ausgeführt wird.
Dieses Level erfordert von dir dein erstes eigenes Skript zu erstellen. Dies ist ein großer Schritt und du solltest Stolz auf dich sein, wenn du dieses Level schaffst!
Denke daran, dass dein Skript gelöscht wird sobald es ausgeführt wird. Also behalte besser eine Kopie davon.

Anleitung: Level 23 -> Level 24

Sehen wir uns zuerst wieder die Cronjobs an.

Das Skript führt also alle Skripts in /var/spool/bandit24 aus und löscht diese danach. Erstellen wir uns unter tmp ein neuen Verzeichnis, in welchem wir uns ein Skript erstellen können.

Mit vi givemepass.sh erstellen wir die Bash-Datei givemepass.sh und öffnen diese in dem Texteditor vi.

Unser Skript liest den Inhalt der Datei /etc/bandit_pass/bandit24 aus und sendet diesen an die Datei /tmp/script/pass. Jetzt müssen wir noch die Zugriffsrechte unseres Skripts ändern, damit dieses auch vom Skript von bandit24 ausgeführt werden kann. Außerdem ändern wir auch noch die Zugriffsrechte des von uns erstellten Verzeichnisses /tmp/script, damit bandit24 auch die Rechte hat dort die Datei pass zu erstellen.

Jetzt können wir unser Skript in das Verzeichnis /var/spool/bandit24 kopieren, damit es dort von bandit24 ausgeführt wird.

Nun müssen wir nur noch warten bis der Cronjob ausgeführt wird.

Level 24 -> Level 25

Wir melden uns nun als bandit24 mit dem Passwort UoMYTrfrBFHyQXmg6gzctqAwOmw1IohZ an.
Der Tipp zu diesem Level ist wie folgt:
Ein Daemon hört Port 30002 ab und gibt dir dass Passwort für bandit25, wenn du ihm das Passwort für bandit24 und einen geheimen 4-stelligen Zahlencode gibst. Es gibt keinen anderen Weg, als alle der 10000 Möglichkeiten des Zahlencodes durchzugehen. Ein selbstgeschriebenes Skript kann dir dabei helfen. Dies nennt man Brute-Forcing.

Anleitung: Level 24 -> Level 25

In diesem Level müssen wir ein kleines Brute-Force Skript erstellen. Ich habe Python dafür benutzt.

Level 25 -> Level 26

Wir melden uns nun als bandit25 mit dem Passwort uNG9O58gUE7snukf3bvZ0rxhtnjzSGzG an.
Der Tipp zu diesem Level ist wie folgt:
Sich als bandit26 einzuloggen von bandit25 aus sollte einfach sein… Allerdings ist die Shell für Benutzer bandit26 nicht /bin/bash, sondern etwas anderes. Finde heraus was es stattdessen ist, wie es funktioniert und wie man daraus herausbrechen kann.

Anleitung: Level 25 -> Level 26

Wie schon bei zwei vorherigen Leveln benutzen wir den SSH-Schlüssel um eine SSH-Verbindung aufzubauen.

Die Verbindung wird sofort geschlossen. Sehen wir uns mal /etc/passwd an und suchen da nach bandit26.

bandit26 hat nicht /bin/bash angegeben, wodurch wir eine Shell bekommen hätten, sondern /usr/bin/showtext. Sehen wir uns diese Datei mal an.

Hier müssen wir einen Trick anwenden. Und zwar müssen wir das Terminal kleiner machen, damit nicht mehr der gesamte Text angezeigt werden kann. Warum das so ist, weiß ich selber nicht 100%ig, falls du das weißt, kannst du es mir gerne mitteilen. 🙂

Terminal klein

Durch das drücken von v können wir den Text-Editor vim öffnen. Jetzt können wir folgendes eingeben um uns das Passwort ausgeben zu lassen:

Enter drücken:

Alternativ können wir uns auch eine Shell geben durch:

und danach

Nun haben wir eine Shell.

In diesem Level ist ein kleiner „Bonus“ vorhanden. In dem Heimverzeichnis befindet sich die Datei README.txt.

Level 26 -> Level 27

Wir melden uns nun als bandit26 mit dem Passwort 5czgV9L3Xx8JPOyRbXh6lQbmIOWvPT6Z an.
Der Tipp zu diesem Level ist wie folgt:
Das Level ist noch nicht verfügbar. Ich werde die Lösung für dieses Level veröffentlichen, sobald das Level verfügbar ist.

Anleitung: Level 26 -> Level 27

Level noch nicht verfügbar.

Teilen:

    Schreibe einen Kommentar

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

    zehn + 11 =

    Privacy Preference Center