# NDH 2019
Voici l'énonce du challenge :
## Au service de la france - partie 1
```
context
Vous êtes Jean-Michel, barbouze aguerrie de notre cher Pays. Vu que vous n'êtes pas très doué en langues étrangères, vous vous êtes spécialisé en informatique. Vous êtes devenu le Kev (Mitnick, pas Adams) de l'agence, et aujourd'hui le travail hardu, c'est pour vous...
a propos
Ce challenge est le premier d'une série de quatre challenges, qui vous permettra de récupérer suffisamment d'information pour contrer une attaque russe contre la France! Chaque challenge peut se faire de manière indépendante. Cependant, pour inciter les gens à réaliser les challenges dans l'ordre, chaque résolution du challenge numéro N vous donnera un indice pour résoudre le challenge N+1.
challenge
Le téléphone sonne de manière répétée depuis 10 minutes... Pourtant, il est 5h du matin, vous êtes encore complètement grisé du pot de départ de la veille... Après s'être levé et décrocher le combiné, moment qui vous a paru être une éternité, vous entendez une voix robotique : "- Bon..jour mon..sieur H. Le pi..geon a de..co..llé." Pas le temps de dire "allo?" que ça a raccroché... Cependant, vous savez de qui il s'agit, c'est votre employeur! et ce genre de message ça signifie pas bon... Vous enfilez votre peignoir, et ouvrez votre boîte mail anonymisée gmail. Dedans, vous trouvez le message suivant:
'''
To: jeanmichel78@gmail.com
From: juliettedu38@gmail.com
Objet: Hey cousin, vas mater ma nouvelle vidéo!
Salut cousin,
j'ai sorti une nouvelle vidéo. Faudrait vraiment que tu la regarde!
je te fais plein de bisous
Juliette Comme tu m'a appris la dernière fois qu'on s'est vu, ma signature pour dire que c'est bien moi! :
PT09PT09PSBCRUdJTiBFTkNSWVBURUQgUExBWUZBSVIgTUVTU0FHRSBJRDo4MzM1ODQ0ODQwODcxMDkyODcxMSAgICAgPT09PT09PQ0KDQpSWVBYVkZOUFZYRUFWQ1pJVkJESFRaVkJET0FWREhDRlJYWEZQQ1RNVFZSTUdCRVZaUlRLQ0FXSE5QQ1RaSENGVENUTVRWTFRUVkVBWUJWSVNGR0NDQU9FVkVLVlJaTlBTWVpTQ0VOVFFUQ1RUQ1JaUEdDWUtQUlpOVEZaUEdCS1lCSUJQTkhaTlpFR1BDRUFVWlFJRUFUTFlCREhUQ0NCS0hWVFlCVkVUTFpHVFZUVlRDWllXSEdQVFJUQ0NBQ0lWRUtWRVBFS1pUWUdHWFRTWEZQQ0VBS09DWUhWTFNFR0tWVE1ESFpPVkVESFFWT1RFVldIS1BWQ0NUUkVWVEdFWk5QTlBDRUFMU1FZQkdUVkZaQ1BWQ1NFTlBHREVYVE5FUFpHTlROUkVBSUJRSUhCRE9BVkRIQ1NESEFWT1RQTlFUSUhaU1hGUENJUFNRUEVSU0VBSUJUVkJGSVBUVlNWUEVFUEtFSFhTUVNST0RCS1BJR0RBTVNOVExaR1RWS1ZWWFBRRVBaRlZRREhBTVJOVkNPVElCS05IU05MRVZWQ0lCSVBCS1FJSFpUVkJGSVBUVkFRVkVUTFpHVFZHWktQWFRCVFBLSUJFQVhHS1RFQVVaUENDRlRTVFBaRkFRQ1RHRVBFS0VGWVFNS1JLSQ0KDQo9PT09PT09PT09PT09PT09PT09PT09RU5EIE1FU1NBR0U9PT09PT09PT09PT09PT09PT09PT09PQ==
encore des bisous!
```
Une fois le base 64 decode on obtenais un message chiffré en PLAYFAIR
```csharp
======= BEGIN ENCRYPTED PLAYFAIR MESSAGE ID:83358448408710928711 =======
PXVFNPVXEAV.....SEJBVZBIAEFAEENIRS
============================================================================
```
Few moment later ... Apres quelques heures de recherche sur la mathode de chiffrement je tombe sur un git afin de le bruteforce
git clone https://github.com/N8Stewart/PlayfairCrack.git
```csharp
echo RYPXVFNPVXEAVCZI...I > cipher.txt
./crack < cipher.txt
```
```csharp
user@parrot]─[~/Downloads/PlayfairCrack]
└──╼ $./crack < chip.txt
Attempting to crack the following ciphertext with key: ABCDEF..
Iteration: 337507, best score: -3041.5569, Current key: RXVNLPQUSYDFHIZAMGBEKWOTC
Iteration: 365548, best score: -3024.3524, Current key: QMOLZXNCEVUHDPFBAST
Possible Plaintext found using key:
K X I O D
Y F G H U
A S T R Z
N C E V B
L M P Q W
AHMICHELCONTENTDEVOUSREVOIRNOUSXSOMXMESPRESQUECERTAINSQUELESRUSXSESPREPARENTUNEOFXFENSIVECONTRELAFRANCEAPRESSETREINFILTREAUSEINDUNDELEURBATIMENTDUPONTAPUNOUSENVOYERUNECAPTURERESEAUQUIESTSENSEXECONTENIRSUFFISAMXMENTDINFORMATIONSPOURDECOUVRIRCEQUILENESTVERITABLEMENTMALHEUREUSEMENTCELUICIAETETUEAVANTDEPOUVOIRNOUSFOURNIRLEPROGRAMXMEPERMETTANTDERECUPERERCETTEINFORMATIONDEPUISLACAPTUREONCOMPTESURVOUSLAVENIRDELAFRANCEENDEPENDPOURRECUPERERLECAPTUREUTILISEZLIDENTIFIANTDUMESXSAGESURLESITETINYUPLOADX
```
... UTILISEZ L IDENTIFIANT DU MESXSAGE SUR LE SITE TINYUPLOADX
Un petit tour sur tiny upload pour télécharger le fichier avec l'ID et on récupere le flag :)
```csharp
──╼ $cat flag.txt
Bien joué, tu as résolu le premier challenge! Après avoir rentré le flag, n'hésite pas à continuer, mais je te préviens, ce sera plus dur! Pour la suite de l'histoire, va voir la page du challenge "au service de la france - partie 2".
Indice pour la suite: Le flag est présent au sein d'un protocole que l'on a pas l'habitude de voir.
voici le flag: LH{awmerbx2cft4u5uqgnde}
```
## Woods
A9mimmf7S7UBAAMAA....PWmCETygnKQM9KViCbKr/QtUzbXKNYw==
Base64 to file
File is a pcap
pcap contain some connexion to
### Première methode
```bash
#!/bin/sh
while read i
do
echo "Using password: \"$i\""
echo "$i" | kpcli --kdb=$1 && exit 0
done < $2
```
Au vu des combinaisons possibles cette methode et beaucoup trop longue, je crée donc un dico perso afin de bruteforce le hash du keypass
```python
──╼ $cat kdb | base64 -d > secret.kdbx
──╼ $crunch 4 4 0123456789 -o date.lst
#!/usr/bin/env python3
with open("date.lst") as f:
for line in f:
print ("woods"+line)
──╼ $keepass2john mysecret.kdbx
mysecret:$keepass$*2*100000*0*8f9ff5c0beb19d907a4efd440fa6a13cb4617d3fe69c65b81a2355a0da86293e*fb0fdb881ae37cddc010f3fa6364e998594c7ee2c8443830643086b1fab79cd1*26cbe9eda1e382bf94446787b015a4db*0ced75d26cad9e29643cf1dfdebe029309b09637f4ea591323da4f8a7cba90d0*7e63a8b1c6a489e6b9fb08bdd891c49f0220496a182263858a8be91d38c49b0
```
[Crack avec hashcat]
Boom ! woods0180
Le reste était plutot simple il suffisait de l'ouvrir et la premiere ligne vide contenait le flag :)
```csharp
──╼ $kpcli --kdb=mysecret.kdbx
kpcli:/> ls
=== Groups ===
Root/
kpcli:/> cd Root/
kpcli:/Root> ls
=== Entries ===
0.
1. My Best Friend
2. My best plan boards.4channel.org/sp
kpcli:/Root> show -f 0
Title:
Uname:
Pass: lh_{I1oVeG0lfAndSex..W4IT.MyWiFe}
URL:
Notes:
```
## Forensic
Le challenge de forensic mettait à disposition une archive ZIP.
Let's Forensic :D
```bash
└──╼ $file 103_spx.zip
103_spx.zip: Zip archive data, at least v2.0 to extract
```
Un petit binwalk afin de savoir que ce cache dans le bouzin !
```csharp
└──╼ $binwalk 103_spx.zip
DECIMAL HEXADECIMAL DESCRIPTION
--------------------------------------------------------------------------------
0 0x0 Zip archive data, at least v2.0 to extract, compressed size: 4049816, uncompressed size: 260046848, name: USB_a_analyser
4049972 0x3DCC34 End of Zip archive, footer length: 22
```
Avec l'option **-e** on peut extraire les fichiers, et ainsi les explorer
```bash
─[user@parrot]─[~/Downloads/FORENSIC/_103_spx.zip.extracted]
└──╼ $ls
0.zip Peugeot103SPXFILI.jpg
image.dd.deletedfile.txt 'Peugeot 103 SPX : tous les modèles de 1987 à 2003 | Actualités de la mobylette par Mobylette Mag_files'
logins.txt USB_a_analyser
message.txt YOLO
```
```bash
┌─[✗]─[user@parrot]─[~/Downloads/FORENSIC/_103_spx.zip-0.extracted]
└──╼ $ls
0.zip USB_a_analyser
```
On apprend que du chiffrement est de mise, on obtien un secret et une piste sur la methodo de chiffrement **openssl**
```bash
┌─[user@parrot]─[~/Downloads/FORENSIC/_103_spx.zip.extracted]
└──╼ $cat message.txt
Si un jour je relis ce message, le mot de passe utilisé pour chiffrer mon plus grand secret était "vgrohhfyek0wkfi5fv13anexapy3sso6" et j'avais utilisé openssl.
En revanche, j'ai effacé par erreur le fichier contenant mon plus grand secret (voir s'il existe des techniques de la mort pour le retrouver mon fichier secret.xz sha256(0fb08681c2f8db4d3c127c4c721018416cc9f9b369d5f5f9cf420b89ee5dfe4e) de 136 octets) et de toute façon, impossible de me rappeler de l'algo utilisé -_- (donc si je le retrouve... il faudra aussi retrouver l'algo pour utiliser ce mot de passe).
```
```bash
ls
dr-xr-xr-x 0 0 0 6-Jul-2019 08:14 .
dr-xr-xr-x 0 0 0 6-Jul-2019 08:14 ..
dr-xr-xr-x 0 0 0 6-Jul-2019 08:14 .Trash-1000
dr-xr-xr-x 0 0 0 6-Jul-2019 08:12 Peugeot 103 SPX : tous les modèles de 1987 à 2003 | Actualités de la mobylette par Mobylet
-r--r--r-- 0 0 68873 6-Jul-2019 08:12 Peugeot 103 SPX : tous les modèles de 1987 à 2003 | Actualités de la mobylette par Mobylet
-r--r--r-- 0 0 15041 5-Jul-2019 19:46 Peugeot103SPXFILI.jpg
-r--r--r-- 0 0 577 6-Jul-2019 08:10 message.txt
```
Dans les fichier suprrimer
Directory /.Trash-1000/files
```bash
dr-xr-xr-x 0 0 0 6-Jul-2019 08:14 .
dr-xr-xr-x 0 0 0 6-Jul-2019 08:14 ..
dr-xr-xr-x 0 0 0 6-Jul-2019 08:13 CERT-FR – Centre gouvernemental de veille, d'alerte et de réponse aux attaques informatiqu
dr-xr-xr-x 0 0 0 6-Jul-2019 08:12 Peugeot 103 — Wikipédia_files
-r--r--r-- 0 0 32828 6-Jul-2019 08:13 CERT-FR – Centre gouvernemental de veille, d'alerte et de réponse aux attaques informatiqu
-r--r--r-- 0 0 154178 6-Jul-2019 08:12 Peugeot 103 — Wikipédia.html
-r--r--r-- 0 0 136 6-Jul-2019 08:09 secret.xz
```
─[user@parrot]─[~/Downloads/FORENSIC/_103_spx.zip-0.extracted]
└──╼ $ls
0.zip
message.txt
Peugeot103SPXFILI.jpg
'Peugeot 103 SPX : tous les modèles de 1987 à 2003 | Actualités de la mobylette par Mobylette Mag_files'
USB_a_analyser
### STEP 2 – FINDING FILES & RESTORING
L'extraction avec **testdisk** n'as pas fonctionner il m'a fallut trouver un autres moyens d'extraire la data supprimé
```csharp
fls -rd USB_a_analyser > USB.deletedfile.txt
└──╼ $cat USB.deletedfile.txt
r/- * 0: .Trash-1000/info/secret.xz.trashinfo.ntfs-3g-0000000005
-/r * 138-128-2: .Trash-1000/info/Peugeot 103 — Wikipédia.html.trashinfo.ntfs-3g-0000000003
-/r * 144-128-2: .Trash-1000/info/Peugeot 103 — Wikipédia_files.trashinfo.ntfs-3g-0000000004
-/r * 152-128-2: .Trash-1000/info/secret.xz.trashinfo.ntfs-3g-0000000005
r/- * 0: secret.xz
r/r * 66-128-2(realloc): secret.xz
-/r * 16: $OrphanFiles/OrphanFile-16
-/r * 17: $OrphanFiles/OrphanFile-17
-/r * 18: $OrphanFiles/OrphanFile-18
-/r * 19: $OrphanFiles/OrphanFile-19
-/r * 20: $OrphanFiles/OrphanFile-20
-/r * 21: $OrphanFiles/OrphanFile-21
-/r * 22: $OrphanFiles/OrphanFile-22
-/r * 23: $OrphanFiles/OrphanFile-23
icat USB_a_analyser 66-128-2 > secret.txt
└──╼ $cat secret.txt
�7zXZ�ִF!t/�OSalted__��k��.�@���>�#��z���
�S�n���!��O�ND�5����k�b=��N-�㖿�,��s�٪W9v�4���hPp����}YZ
```
5H 30 Du mat je dois arrêté pour reprendre le train pour rentrer sur lyon pas le temps de bruteforcer l'openssl :/ Mais ce fut une belle journée
boucle pour trouver le bon openssl
https://blog.seboss666.info/2019/07/writeup-lehack-2019-103spx/