Category Archives: Writeups

plaidCTF 2012 –
Supercomputer 1

plaidCTF 2012 - Supercomputer 1 - task description

Bei dieser Challenge (Supercomputer 1) wird uns ein Programm zur Verfügung gestellt, dass angeblich vier riesige Zahlen berechnen soll. Um die Aufgabe zu lösen, müssen wir an die erste Zahl gelangen.

Bei der Software handelt es sich um ein 64bit-Linux-Binary mit einer Größe von circa 10 Kilobytes. Ein erster Testlauf in einer virtuellen Maschine liefert folgende Ausgabe:

rup0rt@linux64:~$ ./supercomputer
Calculating the first key......This could take long..........^C

Das Programm lässt sich also ausführen und scheint im Hintergrund irgendetwas zu tun, was eine entsprechend lange Zeit dauert bzw. dauern soll. Ein Blick auf die Prozessorauslastung zeigt jedoch, dass dieser nicht sonderlich beansprucht ist, was eher auf eine Pseudo-Berechnung hindeutet.
Continue reading

plaidCTF 2012 – Paste

plaidCTF 2012 - Paste - task description

Bei dieser Challenge (Paste) wird uns ein Webserver genannt, der eine Paste-Engine betreibt. Unser Auftrag ist es herauszufinden, welche Daten auf dieser Webseite ausgetauscht wurden. Dafür bekommen wir zusätzlich noch den Quellcode der Paste-Seite zur Verfügung gestellt.

Zunächst rufen wir die Webseite auf um uns einen Überblick zu verschaffen.

plaidCTF 2012 - Paste - website

Es handelt sich um eine Paste-Engine zum Einfügen von Quellcode. Dazu können die Pastes mit Beschreibungen versehen und bestehende Pastes mit weiteren Daten als Followup ergänzt werden. Um nicht per Hand nach möglichen Schwachstellen suchen zu müssen, sehen wir uns direkt die vorhandenen Quellcodes an.
Continue reading

plaidCTF 2012 – 3D

plaidCTF 2012 - 3D - task description

In dieser Challenge (3D) wird uns eine Datei mit der Information zur Verfügung gestellt, dass es sich um eine neue Kamera-Technologie handeln soll. Ziel für uns scheint es zu sein, die Datei zu analysieren und daraus irgendwie den Schlüssel zu extrahieren.

Erster Schritt ist die Datei grundlegend zu untersuchen und wenn möglich deren Dateityp festzustellen.

rup0rt@lambda:~/3d$ file edbd4701d0b9d2a33a743e96f7bc8f3b
edbd4701d0b9d2a33a743e96f7bc8f3b: JPEG image data, EXIF standard

rup0rt@lambda:~/3d$ ls -lh edbd4701d0b9d2a33a743e96f7bc8f3b
-rw-r--r-- 1 rup0rt rup0rt 6.1M Apr 28 11:12 edbd4701d0b9d2a33a743e96f7bc8f3b

Es handelt sich also um eine Bilddatei im JPEG-Format, die mit zusätzlichen Metadaten (EXIF) versehen zu sein scheint. Darüber hinaus ist auffällig, dass die Datei für ein JPEG-Bild relativ groß ist. Sehen wir uns zunächst noch die EXIF-Daten der Datei mit dem Werkzeug “exiftags” an.
Continue reading

plaidCTF 2012 – Shoulder Surfing

plaidCTF 2012 - Shoulder Surfing - task description

Bei dieser Challenge (Shoulder Surfing) wird uns die Frage gestellt:

What’s a password that polaroid head got from inside Ellingson?

Entweder man kennt nun den Film “Hackers” und kann sofort eine Verbindung zu “Ellingson” herstellen oder aber man sucht gezielt nach den Begriffen der Fragestellung und wird ebenfalls bei Auszügen zu diesem Film landen.

Doch worauf zielt diese Challenge ab? Der Begriff “Shoulder Surfing” aus dem Titel entspricht dem Beobachten von Personen während der Bedienung von IT-Systemen um so zum Beispiel an Passwörter oder PINs (vgl. Geldautomaten) zu gelangen. Werden in dem Film “Hackers” wohlmöglich durch eine Person, die als “Polaraid Head” bezeichnet wird, Passwörter durch “Shoulder Surfing” erlangt?
Continue reading

plaidCTF 2012 – Addition is Hard

plaidCTF 2012 - Addition is Hard - task description

Hier die “erste” Challenge (Addition is Hard) des diesjährigen Plaid CTF. Wie der Name bereits andeutet, geht es um eine Rechnenaufgabe. Ziel ist es, den Term

0x0 +0x7068703f = ?

zu lösen.

Im Nachhinein ist diese Aufgabe wohl lächerlich einfach, dennoch hat sie mir anfangs etwas Kopfzerbrechen bereitet. Denn nachdem alle Versuche, die Rechnung in verdiedensten Zahlensystemen zu lösen, mit “wrong key” beantwortet wurden, schien eine weitergehende Betrachtung für erforderlich.
Continue reading

Nuit du Hack 2012 Quals –
Strange binary file #2

Nuit du Hack 2012 - Strange binary file #2 - task description

Kaum haben wir die vorherige Challenge gelöst, meldet sich Jessica erneut mit einem Auftrag (Strange binary file #2). Sie sendet unter anderem eine weitere Binärdatei, über die sie Informationen verlangt. Da wir aus der Challenge “Strange binary file” nun bereits wissen, wie mit diesen .NDH-Dateien umzugehen ist, machen wir uns direkt ans Werk.

Bei der ersten Debug-Ausführung mit Eingabe eines beliebigen Passwortes fällt bereits auf, dass mehrfach folgende Überprüfung statt findet.

rup0rt@lambda:~/strange_binary_file_2$ ./vmndh -file executable2.ndh -debug
[Console]#> run
[...]
0x8538 > cmpb r0, #11
0x853c > jnz 0x03
0x8542 > cmpb r0, #1
0x8546 > jnz 0x07
0x8550 > cmpb r0, #2
0x8554 > jnz 0x07
0x855e > cmpb r0, #3
0x8562 > jnz 0x07
0x856c > cmpb r0, #4
0x8570 > jnz 0x07
0x857a > cmpb r0, #5
0x857e > jnz 0x07
0x8588 > cmpb r0, #6
0x858c > jnz 0x07
0x8596 > cmpb r0, #7
0x859a > jnz 0x07
0x85a4 > cmpb r0, #8
0x85a8 > jnz 0x07
0x85b2 > cmpb r0, #9
0x85b6 > jnz 0x07
[...]

Folgt man den einzelnen Sprungmarken, stellt man fest, dass hinter jeder Zahl verschiedene Anweisungen stecken, die das Kopieren von Daten, das Verschieben, Shiften oder anderweitige Manipulationen durchführen.
Continue reading

Nuit du Hack 2012 Quals –
Strange binary file

Nuit du Hack 2012 - Strange binary file - task description

Zeitgleich mit dem Dank die Challenge “Unknown zip archive” beendet zu haben, hat Jessica schon den nächsten Auftrag (Strange binary file) für uns. Diesmal geht es um eine merkwürdige Binärdatei, die uns als möglicherweise ausführbar, jedoch nicht als ELF-Datei, beschrieben wird.

Wir sehen uns als zuerst einmal den Inhalt der Datei etwas genauer an.

rup0rt@lambda:~/strange_binary_file$ xxd executable1.ndh
0000000: 2e4e 4448 8e04 1bdf 0301 0301 0103 0204  .NDH............
0000010: 0201 0000 0402 0200 0004 0a01 0017 0101  ................
[...]
00003e0: f8fe 1c0e 0000 001a 0402 0015 8419 04cf  ................
00003f0: fe07 0108 2004 0002 0804 0101 0004 0103  .... ...........
0000400: 1f04 0100 0330 0400 0002 1904 e0fe 1904  .....0..........
0000410: d2fe 1c02 0503 0708 0601 0953 6369 7465  ...........Scite
0000420: 656b 2070 726f 7465 6374 6564 2073 746f  ek protected sto
0000430: 7261 6765 2023 310a 456e 7465 7220 796f  rage #1.Enter yo
0000440: 7572 2070 6173 7377 6f72 643a 2000 7363  ur password: .sc
0000450: 6974 6565 6b2e 6e75 6974 6475 6861 636b  iteek.nuitduhack
0000460: 2e63 6f6d 3a34 3030 3100 6d79 787a 4a61  .com:4001.myxzJa
0000470: 4b45 2e74 7874 0047 6f6f 6420 7061 7373  KE.txt.Good pass
0000480: 776f 7264 0a00 4261 6420 7061 7373 776f  word..Bad passwo
0000490: 7264 0a00                                rd..

Was besonders auffällt, ist der Anfang, der mit den Buchstaben “NDH” beginnt und die an dieser Stelle höchst wahrscheinlich der “Nuit du Hack” zuzuordnen sind. Wir erinnern uns, dass ELF-Dateien ähnlich beginnen, indem bei diesen auch der Dateityp -“ELF”- am Anfang der Datei zu finden ist.
Continue reading

Nuit du Hack 2012 Quals –
Unknown zip archive

Nuit du Hack 2012 - Unknown zip archive - task description

In der Email von Jessica erhalten wir als weitere Challenge (Unknown zip archive) die Information, dass zusätzlich ein passwortgeschütztes Zip-Archive gefunden und bisher nicht entpackt werden konnte. Hierbei handelt es sich um eine RAR-Datei, bei der wir nun selbst versuchen werden, dass Passwort zu cracken und somit an den Inhalt zu gelangen.

rup0rt@lambda:~/privDatas$ ls -lh sp112.rar
-rw-r--r-- 1 rup0rt rup0rt 26K Mar 16 15:33 sp112.rar

rup0rt@lambda:~/privDatas$ file sp112.rar
sp112.rar: RAR archive data, vca,

rup0rt@lambda:~/privDatas$ unrar x sp112.rar
UNRAR 3.93 freeware      Copyright (c) 1993-2010 Alexander Roshal

Enter password (will not be echoed) for sp112.rar: 

Encrypted file:  CRC failed in sp112.rar (password incorrect ?)
No files to extract

Eine kurze Untersuchung der Datei ergibt nichts Auffälliges und bestätigt vielmehr die uns genannten Informationen, dass es sich tatsächlich um eine “normale” RAR-Datei handelt, die mit einem Passwort geschützt ist. Welche Möglichkeiten haben nur nun, dieses Archiv anzugreifen?
Continue reading

Nuit du Hack 2012 Quals –
Unknown text

Nuit du Hack 2012 - Unknown text - task description

Zu Beginn dieser Challenge (Unknown text) erhalten wir eine Email von Jessica, die uns mitteilt, dass sie einen unverständlichen -möglicherweise verschlüsselten- Text erhalten hat und beauftragt uns damit, weitere Informationen aus diesem Text zu gewinnen und im besten Fall zu entschlüsseln.

Ein ersten Blick auf den Text lässt uns sofort folgendes feststellen:
– bei den Buchstaben des Textes handelt es sich ausschließlich um Kleinbuchstaben
– die Verteilung der Leerzeichen zeigt, dass nur die Buchstaben verschlüsselt wurden
– die Sonderzeichen im unteren Teil lassen einen Quellcode (Assembler?) vermuten

Mein erster Gedanken bei solchen Texten geht immer in Richtung Caesar-Verschlüsselung und obwohl Wörter wie “nrnvlqqq” schon vermuten lassen, dass es sich nicht um Caesar handelt (da sonst wieder ein Wort mit drei gleichen Buchstaben am Ende entstehen würde) probieren wir es dennoch aus.
Continue reading

RuCTF 2012 Quals –
The password generator

RuCTF 2012 - The password generator - task description

Bei dieser Challenge (The password generator) geht es darum, an das Passwort eines Administrators zu gelangen. Alles, was wir kennen, sind die Kommandos, die verwendet wurden, um das Passwort zu generieren und der Hinweis auf ein “wohl bekanntes” Betriebssystem.

Beginnen wir also zunächst einmal, die angegebenen Kommandos nacheinander zu analysieren und deren Funktionsweise in einen Gesamtzusammenhang zu bringen.

cd ~

Relativ simpel – der Administrator wechselt zu Beginn der Operationen in sein Heimatverzeichnis.

vi ./.cshr

Als nächstes wir die Datei “.cshr” im Heimatverzeichnis editiert. Die gezielte Suche nach dieser Datei lässt einen Zusammenhang mit der “csh” (c-Shell) erkennen, die zumeist auf BSD-Systemen zum Einsatz kommt. Bei der Datei, die meist als “.cshrc” referenziert wird, scheint es sich um eine der Dateien zu handeln, die beim Login des Benutzers abgearbeitet werden und in der -ähnlich der “.bashrc”- Umgebungsvariablen und ähnliches gesetzt werden. Was genau hier editiert wurde, lässt sich nur erahnen.
Continue reading