Français [NDH 2016][WEB 150 – Hello Friend] WRITE UP

Description

Une image JPG est mise à disposition pour ce challenge.
hellofriend

Resolution

Nous avons une image JPG à disposition :

hellofriend

J’ai commencé par jeter un coup d’oeil rapide au contenu de l’image :

curl http://static.wargame.ndh/hellofriend.jpg | more

On remarque qu’à la fin de l’image des chemins apparaissent :

WhoAmI.png
Hello_friend/
Hello_friend/0/
Hello_friend/0/64.png
Hello_friend/1/
Hello_friend/1/61.png
Hello_friend/2/
Hello_friend/2/72.png
Hello_friend/3/
Hello_friend/3/6b.png
Hello_friend/4/
Hello_friend/4/63.png
Hello_friend/5/
Hello_friend/5/30.png
Hello_friend/6/
Hello_friend/6/64.png
Hello_friend/7/
Hello_friend/7/65.png
Hello_friend/8/
Hello_friend/8/IsItReal.jpg

Je regarde le contenu exacte à l’aide de binwalk :

binwalk hellofriend.jpg
DECIMAL HEXADECIMAL DESCRIPTION
--------------------------------------------------------------------------------
0 0x0 JPEG image data, JFIF standard 1.01
382 0x17E Copyright string: "Copyright (c) 1998 Hewlett-Packard Company"
3192 0xC78 TIFF image data, big-endian, offset of first image directory: 8
116141 0x1C5AD Zip archive data, at least v2.0 to extract, compressed size: 6264, uncompressed size: 6376, name: WhoAmI.png
122445 0x1DE4D Zip archive data, at least v1.0 to extract, name: Hello_friend/
122488 0x1DE78 Zip archive data, at least v1.0 to extract, name: Hello_friend/0/
122533 0x1DEA5 Zip archive data, encrypted at least v2.0 to extract, compressed size: 4381, uncompressed size: 4882, name: Hello_friend/0/64.png
126981 0x1F005 Zip archive data, at least v1.0 to extract, name: Hello_friend/1/
127026 0x1F032 Zip archive data, encrypted at least v2.0 to extract, compressed size: 4381, uncompressed size: 4882, name: Hello_friend/1/61.png
131474 0x20192 Zip archive data, at least v1.0 to extract, name: Hello_friend/2/
131519 0x201BF Zip archive data, encrypted at least v2.0 to extract, compressed size: 4381, uncompressed size: 4882, name: Hello_friend/2/72.png
135967 0x2131F Zip archive data, at least v1.0 to extract, name: Hello_friend/3/
136012 0x2134C Zip archive data, encrypted at least v2.0 to extract, compressed size: 4381, uncompressed size: 4882, name: Hello_friend/3/6b.png
140460 0x224AC Zip archive data, at least v1.0 to extract, name: Hello_friend/4/
140505 0x224D9 Zip archive data, encrypted at least v2.0 to extract, compressed size: 4381, uncompressed size: 4882, name: Hello_friend/4/63.png
144953 0x23639 Zip archive data, at least v1.0 to extract, name: Hello_friend/5/
144998 0x23666 Zip archive data, encrypted at least v2.0 to extract, compressed size: 4381, uncompressed size: 4882, name: Hello_friend/5/30.png
149446 0x247C6 Zip archive data, at least v1.0 to extract, name: Hello_friend/6/
149491 0x247F3 Zip archive data, encrypted at least v2.0 to extract, compressed size: 4381, uncompressed size: 4882, name: Hello_friend/6/64.png
153939 0x25953 Zip archive data, at least v1.0 to extract, name: Hello_friend/7/
153984 0x25980 Zip archive data, encrypted at least v2.0 to extract, compressed size: 4381, uncompressed size: 4882, name: Hello_friend/7/65.png
158432 0x26AE0 Zip archive data, at least v1.0 to extract, name: Hello_friend/8/
158477 0x26B0D Zip archive data, encrypted at least v2.0 to extract, compressed size: 101679, uncompressed size: 133658, name: Hello_friend/8/IsItReal.jpg
260229 0x3F885 Zip archive data, at least v1.0 to extract, name: Hello_friend/9/
260274 0x3F8B2 Zip archive data, encrypted at least v2.0 to extract, compressed size: 286495, uncompressed size: 298687, name: Hello_friend/9/3xploits.jpg
549041 0x860B1 End of Zip archive

On constate que l’image contient un fichier zip, nous tentons de l’extraire avec la commande :

unzip hellofriend.jpg
=> [hellofriend.jpg] Hello_friend/0/64.png password:

Un mot de passe nous est demandé.
Pour trouver le mot de passe il a fallu le deviner (classique à la NDH).
En se référant à l’énoncé et au nom de l’image « Hello Friend », nous tombons rapidement sur la série TV « Mr Robots ».
En regardant la page wikipédia ( https://fr.wikipedia.org/wiki/Mr._Robot_(s%C3%A9rie_t%C3%A9l%C3%A9vis%C3%A9e) ) nous trouvons rapidement le mot de passe de l’archive : fsociety

unzip hellofriend.jpg
=> [hellofriend.jpg] Hello_friend/0/64.png password: fsociety

Une fois décompressé nous obtenons l’arborescence suivante :

.
├── Hello_friend
│   ├── 0
│   │   └── 64.png
│   ├── 1
│   │   └── 61.png
│   ├── 2
│   │   └── 72.png
│   ├── 3
│   │   └── 6b.png
│   ├── 4
│   │   └── 63.png
│   ├── 5
│   │   └── 30.png
│   ├── 6
│   │   └── 64.png
│   ├── 7
│   │   └── 65.png
│   ├── 8
│   │   └── IsItReal.jpg
│   └── 9
│   └── 3xploits.jpg
├── hellofriend.jpg
└── WhoAmI.png

A l’aide de binwalk nous identifions rapidement une archive dans l’image « 3xploits.jpg » :

binwalk Hello_friend/9/3xploits.jpg
DECIMAL HEXADECIMAL DESCRIPTION
--------------------------------------------------------------------------------
186158 0x2D72E Zip archive data, encrypted at least v2.0 to extract, compressed size: 112361, uncompressed size: 302979, name: d3bug.png
298665 0x48EA9 End of Zip archive

La encore l’archive est protégé par un mot de passe.

unzip Hello_friend/9/3xploits.jpg
=> [Hello_friend/9/3xploits.jpg] d3bug.png password:

Le nom des images png ressemble à de l’hexadecimal, nous tentons donc de convertir en chaine de caractère :

echo -en '6461726b63306465' | xxd -r -p
=> darkc0de

Nous tentons donc de mettre cette valeur en tant que mot de passe :

unzip Hello_friend/9/3xploits.jpg
=> [Hello_friend/9/3xploits.jpg] d3bug.png password: darkc0de

Le mot de passe est incorrect.

Une recherche sur Google nous amène vers un site « WPA / WPA2 Word List Dictionaries » sur lequel est à disposition un dictionnaire « darkc0de.lst ».
Je télécharge donc le dictionnaire.

Ensuite j’extrais le fichier ZIP afin de le bruteforcer avec fcrackzip :

binwalk -e Hello_friend/9/3xploits.jpg

Une extraction est réalisée par binwalk :

.
├── _3xploits.jpg.extracted
│   ├── 2D72E.zip
│   └── d3bug.png

Nous avons désormais le fichier ZIP à disposition, après installation de fcrackzip (via apt) nous pouvons bruteforcer le fichier zip :

fcrackzip -v -D -u -p ~/CTFs/passwords/darkc0de.lst _3xploits.jpg.extracted/2D72E.zip
found file 'd3bug.png', (size cp/uc 112361/302979, flags 9, chk be20)
PASSWORD FOUND!!!!: pw == How do you like me now?

Nous décompressons l’archive avec le mot de pass « How do you like me now? » :

unzip _3xploits.jpg.extracted/2D72E.zip
[_3xploits.jpg.extracted/2D72E.zip] d3bug.png password: How do you like me now?

Il nous reste plus qu’à regarder l’image PNG contenant le flag :

congratz

Une réflexion sur « [NDH 2016][WEB 150 – Hello Friend] WRITE UP »

Laisser un commentaire

Votre adresse de messagerie ne sera pas publiée. Les champs obligatoires sont indiqués avec *