Author Archives: Rup0rt

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

RuCTF 2012 Quals –
Discern utility

RuCTF 2012 - Discern utility - task description

Die Aufgabenstellung (Discern utility) spricht von einer aufgefundenen Datei und verlangt von uns festzustellen, was der deren Inhalt beschreibt. Bei dem Dokument selbst handelt es sich nur um eine Textdatei, deren Inhalt mit 73 Zeilen recht überschaubar ist. Ein erster Blick in die Daten zeigt uns:

brk(0)                                  = 0x2335000
access("/etc/ld.so.nohwcap", F_OK)      = -1 ENOENT (No such file or directory)
mmap(NULL, 8192, PROT_READ|PROT_WRITE, MAP_PRIVATE|MAP_ANONYMOUS, -1, 0) = 0x7f9bfad31000
access("/etc/ld.so.preload", R_OK)      = -1 ENOENT (No such file or directory)
open("/etc/ld.so.cache", O_RDONLY)      = 3
fstat(3, {st_mode=S_IFREG|0644, st_size=117316, ...}) = 0

Hierbei handelt es sich um “System Calls” (Syscalls), das heißt, rudimentäre Systemfunktionen, die im Kernel verankert sind und aus denen die Funktionalität aller komplexen Programme aufgebaut wird. Welche Syscalls ein Programm verwendet, lässt sich mit dem Werkeug “strace” herausfinden. Und genau dieses Werkzeug wurde auch hier verwendet um die Aufgabe dieser Challenge zu stellen.

Um die Aufgabe zu lösen müssen wir also herausfinden, welches Werkzeug die uns zur Verfügung gestellte strace-Ausgabe liefert. Sehen wir uns dazu die gesamte Textdatei an und versuchen, Merkmale des aufgerufenen Programmes zu identifizieren. Folgende Syscalls sollten hierbei auffallen:
Continue reading

CodeGate 2012 Quals –
forensics #3

CodeGate CTF 2012 - Forensics #3 - task description

In dieser Challenge (forensics #3) geht es darum, eine schadhafte URL ausfindig zu machen, die für die Infizierung des Zielsystem verantwortlich ist. Gemäß der Aufgabenstellung wurde die URL nach dem 9. Februar 2012 aufgerufen und die Spuren des Aufrufs möglicherweise nach der Infizierung gelöscht.

Das Entpacken der Datei liefert uns wieder ein Benutzerverzeichnis eines Windows-Systems. Es handelt sich erneut um die Daten, des uns bereits bekannten Benutzers “proneer”. Diesmal ist jedoch nicht das komplette “Users”-Verzeichnis enthalten, sondern nur die “Cookies”-Datei des Google Chrome Browsers.

rup0rt@lambda:~/forensic3$ file Cookies
Cookies: SQLite 3.x database

Eine erste Analyse der Datei zeigt uns, dass Google Chrome seine Cookies anscheinend in einer SQLite-Datenbank hinterlegt. Um diese Datei zu betrachten zu können und die darin enthaltenen Cookies auszulesen, verwenden wir das Werkzeug sqlitebrowser und erhalten eine Übersicht der insgesamt 109 gespeicherten Cookies.
Continue reading

CodeGate 2012 Quals –
forensics #2

CodeGate CTF 2012 - Forensics #2 - task description

In dieser Challenge (forensics #2) scheint es das Ziel zu sein, den Versuch eines SQL-Injection-Angriffes ausfindig zu machen. Als einzigen Hinweis erhalten wir die Information, dass der Browser beim Ausführen der SQL-Injection abgestürzt ist.

Beim Entpacken der Dateien stellen wir direkt fest, dass es sich (wieder) um das Benutzerverzeichnis eines Windows-Systems handelt. Wiederum sind es die Daten des Benutzers “proneer” (vermutlich war es sogar das selbe Archiv, wie in der Forensic #1 – Challenge).

Wonach suchen wir nun am cleversten in den Benutzerdaten? Wir wissen, dass der Browser beim SQL-Angriff abgestürzt ist und wir wissen auch – und kennen das vermutlich aus eigener Erfahrung -, dass Browser beim Schließen die letzten Sitzungen speichern und beim erneuten Öffnen dem Benutzer wieder anbieten. Unser Ziel ist es also, zuerst den verwendeten Browser zu identifizieren und in einem zweiten Schritt zu versuchen, die Aktionen der letzten Sitzung zu rekonstruieren.

rup0rt@lambda:~/forensic2/Users/proneer/AppData/Local$ ls
010 Editor           History                Temp
Adobe                IconCache.db           Temporary Internet Files
Apple                Microsoft              VirtualStore
Application Data     Microsoft_Corporation  VMware
GDIPFONTCACHEV1.DAT  Microsoft Help
Google               Mozilla
rup0rt@lambda:~/forensic2/Users/proneer/AppData/Local$ ls Google/
Chrome  CrashReports  Google Talk
rup0rt@lambda:~/forensic2/Users/proneer/AppData/Local$ ls Mozilla/
Firefox
rup0rt@lambda:~/forensic2/Users/proneer/AppData/Local$ ls Microsoft
Assistance    Feeds Cache           Office        Windows Mail
CoreCon       Internet Explorer     VisualStudio  Windows Media
Credentials   Media Player          VSA           Windows Sidebar
Event Viewer  Microsoft SQL Server  VSTAHost
Feeds         MSDN                  Windows

Ein Blick in die lokalen Anwendungsdaten zeigt uns, dass zumindest für die drei gängigsten Browser (Chrome, Firefox und Internet Explorer) Verzeichnisse existieren. Um herauszufinden, welcher zuletzt verwendet wurde, sehen wir uns die Zeitstempel der Sitzungsdateien an.
Continue reading

CodeGate 2012 Quals –
forensics #1

CodeGate CTF 2012 - Forensics #1 - task description

Das Ziel dieser Challenge (forensics #1) ist es also, eine Datei, sowie deren Größe zu finden, die vom System gestohlen wurde. Die Aufgabenstellung liefert uns die Dateien des angegriffenen Benutzers sowie die Information, dass es sich bei der gesuchten Datei um ein Excel-Dokument mit Finanzdaten handelt und auf dieses vermutlich nach 14.00 Uhr (UTC+9), also während des Diebstahls zuletzt zugegriffen wurde.

Wir entpacken also als erstes die mitgelieferte 7zip-Datei und verschaffen uns einen Überblick über deren Inhalt. Bereits beim Extrahieren fällt auf, dass es sich hauptsächlich um das Benutzerverzeichnis eines Windows-Systems handelt und hier insbesondere um den Benutzer “proneer”.

rup0rt@lambda:~/forensic1$ ls Users/
All Users  Default  Default User  desktop.ini  proneer  Public

rup0rt@lambda:~/forensic1$ ls Users/proneer/
AppData           Music             Pictures
Application Data  My Documents      PrintHood
Contacts          NetHood           Recent
Cookies           NTUSER.DAT        Saved Games
Desktop           NTUSER.DAT{6cced2f1-6e01-11de-8bed-001e0bcd1824}.TM.blf                                      
Documents         NTUSER.DAT{6cced2f1-6e01-11de-8bed-001e0bcd1824}.TMContainer00000000000000000001.regtrans-ms 
Downloads         NTUSER.DAT{6cced2f1-6e01-11de-8bed-001e0bcd1824}.TMContainer00000000000000000002.regtrans-ms 
Favorites         ntuser.dat.LOG1   Searches                                                                           
Links             ntuser.dat.LOG2   SendTo                                                                   
Local Settings    ntuser.ini        Start Menu
Templates         Videos

So, nun wissen wir entweder wo Office zuletzt verwendete Dokumente ablegt oder wir müssen das Dateisystem per Hand durchsuchen. Zuerst versuche ich mit dem Werkzeug “find” alle Excel-Dateien aufzulisten, was jedoch kein Ergebnis liefert. Also durchsuche ich im “grep” den Inhalt aller Dateien nach Hinweisen auf Excel-Dokumente.
Continue reading

CodeGate 2012 Quals – misc #4

Für die Aufgabe 4 der Kategorie “misc” gibt es keine Beschreibung oder Hinweise darauf, was als Lösung erwartet wird, sondern nur einen Link zu einer ZIP-Datei. Das Ziel der Challenge gilt es also selbst heraus zu finden.

Nachdem die Datei entpackt ist, stellt sich der Inhalt zunächst als Webseite dar. Anhand der Bezeichnung “codegate_homepage” kann hier schon vermutet werden, um was es sich wahrscheinlich handeln wird.

rup0rt@lambda:~/codegate_site$ ls -a *
codegate_homepage.htm

codegate_homepage_files:
.                 e_menu_2.gif         e_sub_top_img_2.jpg
..                e_menu_3.gif         inc_left.htm
codegate.css      e_menu_4.gif         inc_right.htm
codegate.js       e_menu_5.gif         main_bg_1.gif
copy_logo.gif     e_menu_6.gif         main_bg_2.gif
e_6.jpg           e_menu_7.gif         Thumbs.db
e_inc_bottom.htm  e_menu_8.gif         top_img.jpg
e_inc_sub_2.htm   e_sub_title_2_2.gif
e_menu_1.gif      e_sub_title_b.gif

Als erstes öffnen wir also die “codegate_homepage.htm” im Browser und verschaffen uns einen Überblick über den Inhalt.

CodeGate CTF 2012 - misc #4 - website

Bei der Webseite scheint es sich um die normale CodeGate-Homepage zu handeln. Auf den ersten Blick erscheint nichts auffällig. Außer dieser Seite scheinen auch keine weiteren Inhalte zu existieren, da die Links weiterhin auf die orginale Webseite im Internet und nicht auf lokale Dateien verweisen.
Continue reading

CodeGate 2012 Quals – misc #3

CodeGate CTF 2012 - misc #3 - task description

In dieser Aufgabe (misc #3) sollen wir nun also irgendein “Geheimnis” finden. Das Geheimnis scheint in einer Datei zu stehen und als Antwort dieser Challenge wird ein Passwort erwartet. Um uns einen Überblick zu verschaffen, öffnen wir zunächst das pcap-file mit Wireshark.

CodeGate CTF 2012 - misc #3 - wireshark protocol hierarchy

Ein Blick in die Protokoll-Statistik zeigt, dass es sich nur um HTTP-Verkehr (und die dazugehörigen TCP-Verbindungen) handelt. Also stellen wir zum Sichten des Datenverkehrs den Wireshark-Filter auf “http”.
Continue reading