LeHack 19 - WorldGolfChampion

Posted on dim. 07 juillet 2019 in CTF

File : WorldGolfChampion.pcap

WorldGolfChampion
50 Points
Help me, i need this flag

Url: http://static.wargame.rocks/WorldGolfChampion.pcap

On ouvre la capture avec Wireshark. Afin de rendre l'ensemble plus lisible, on peut utiliser l'option pour suivre le flux TCP (CTRL + ALT + MAJ + T).

On peut alors lire le trafic telnet (qui est en clair).

On peut relever des informations intéressantes :

  • username : tiger
  • mot de passe : woods1275
  • commandes utilisées : keepass-cli, kpcli, base64 myecret.kdbx

On comprends avec l’enchaînement des commandes : il a perdu son mot de passe maître sur son fichier KeePass. Afin de le récupérer en local, il a encodé son fichier afin d'avoir la même chose sur son poste. On peut donc faire de même et avoir le fichier :

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
QtUzbXKNYw==

Les deux signes égaux en fin de chaîne confirme que c'est bien de la base64.

On le décode dans un fichier :

$ echo 'A9mimmf7S7UBAAMAA[...]QtUzbXKNYw==' | base64 -d > password.kdbx

Maintenant que l'on a le fichier, il faut trouver le mot de passe maître pour l'ouvrir. On voit que des tentatives avec des mots de passes similaires ont été faites : woods1077 et woods1282. On peut donc se douter que le mot de passe doit être le mot woods suivi de 4 chiffres.

Plusieurs outils existent pour faire ça. On peut utiliser par exemple https://github.com/asciimoo/exrex :

$ pip install exrex
$ exrex 'woods\d{4}' > wordlist

Ayant maintenant notre dictionnaire, nous pouvons essayer ces mots de passes un par un sur le fichier. Idem, des outils sont possibles. keepass_guesser fait parti de ces outils :

$ git clone https://github.com/csirac2/keepass_guesser
$ cd keepass_guesser
$ pip2 install -r requirements.txt
$ python2 keepass_guesser password.kdbx wordlist
SUCCESS after 181 attempts:
woods0180

On peut donc ouvrir le KeePass et afficher le contenu. On peut y voir trois entrée :

On affiche le mot de passe de la première et on notre flag : lh_{I1oVeG0lfAndSex..W4IT.MyWiFe}.

ps : hashcat marche également pour faire du brute force sur des fichiers KeePass. Cependant, lors d'essais sur ce fichier, aucun résultat n'est apparu. Même en forçant le mot de passe dans le dictionnaire, hashcat ne trouvait pas de correspondance avec le hash généré depuis la base64 décodée.