PROJET AUTOBLOG


Le blog de Seboss666

Site original : Le blog de Seboss666

⇐ retour index

Writeup #LeHACK 2019, WorldGolfChampion

dimanche 7 juillet 2019 à 08:06

En cette année 2019 le niveau des challenges était bien plus équilibré que l’année dernière qui était particulièrement ardue de l’aveu même des organisateurs. On a terminé cinquantième sur un peu plus de trois cents avec un score supérieur à zéro, et j’ai quelques faits d’arme à mon actif 🙂 Je ne vais pas tout écrire, à la limite je partagerai ceux des confrères (et je sauvegarderai aussi), on commence donc par un petit exercice au pays de Wireshark et de Keepass.

l’exercice repose donc sur un fichier pcap. L’analyse de celui-ci montre la présence d’une session telnet. On filtre donc dessus et on admire :

Ouais le thème de Wireshark en sombre c’est pas encore ça

Oui, connexion serveur avec login, mot de passe, pas pour rien qu’ont dit qu’il faut préférer SSH. En regardant les commandes il tente d’ouvrir un coffre fort Keepass, sans grand succès, manifestement il ne se souvient pas de son mot de passe, c’est dommage parce qu’à cause de telnet on voit pas mal de choses en clair. Pire, pour une raison que j’ignore, il nous affiche un base64 du fichier, c’est magique, on peut le récupérer :

$ echo "A9mimmf7S7UBAAMAAhAAMcHy5r9xQ1C........." |base64 -d > keepass.kdbx
$ file keepass.kdbx
keepass.kdbx: Keepass password database 2.x KDBX

Il reste alors à l’attaquer, sans surprise les mots de passes présents dans la capture ne fonctionnent pas. Il y a donc eu un petit moment de flottement à bases de recherche de techniques de bruteforce, via keepass2john, mais je n’ai pas réussi à le faire fonctionner. C’est alors qu’un voisin de circonstance, Gabin a eu l’idée déterminante : il s’avère que tous les mots de passe testés ont le même format (ouais la fatigue faisait déjà son office à ce moment-là), à savoir « woods » suivi de quatre chiffres. Il n’en fallait pas plus pour écrire un petit script de bruteforce à base de kpcli pour tester les 10000 combinaisons possibles, et bingo :

$ cat script.sh
#!/bin/bash

source /etc/profile

for i in $(seq -w 9999); do echo -ne "${i}\n"; echo "woods$i" | kpcli --kdb=keepass.kdbx && exit 0 ; done

$ ./script.sh
(...)
0179
Please provide the master password: *************************
Couldn't load the file keepass.kdbx: The database key appears invalid or else the database is corrupt.
0180
Please provide the master password: *************************
WARNING: There is an entry with a blank title in /Root/!

KeePass CLI (kpcli) v3.2 is ready for operation.
Type 'help' for a description of available commands.
Type 'help <command>' for details on individual commands.

kpcli:/>

Il y a trois mots de passe dans le coffre-fort, le premier sans nom (le « blank title ») est le bon 🙂

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:

Encore merci Gabin pour le temps gagné 🙂