Aller au contenu principal

CTF « L'audit des comptes de l'association »

Vendredi, fin de journée. L'association des Amis du Port crée un compte pour chaque nouveau responsable, avec un mot de passe initial tiré d'une liste. Le président veut savoir si ces mots de passe ont bien été changés. Il vous confie un audit des comptes.

info

Ce défi est un CTF (Capture The Flag) : il n'y a pas d'étapes guidées. Vous cherchez, vous trouvez un flag (un mot caché), puis vous le saisissez dans l'application Joligo, dans l'activité « L'audit des comptes ». L'association, ses comptes et ses mots de passe sont fictifs, construits pour l'exercice.

attention

Cet audit se pratique uniquement sur les empreintes fournies, dans votre propre VM. N'utilisez jamais un outil comme John the Ripper sur des empreintes qui ne vous appartiennent pas, sans autorisation écrite : c'est interdit par la loi.

Petite vérification​

Avant de commencer, vérifiez si vous savez encore réaliser ces 3 actions très simples, sur la séance précédente consacrée à John the Ripper :

  1. dans ~/tp-john, afficher une empreinte salée avec openssl passwd -6 'Mediatheque2024', puis relancer la commande
  2. lancer l'audit avec john --wordlist=mots_de_passe_courants.txt comptes_mediatheque.txt
  3. afficher les mots de passe déjà retrouvés avec john --show comptes_mediatheque.txt
📌 Réponse attendue

Votre mission​

Vous êtes l'administrateur système de l'association. Le fichier comptes_audit.txt contient les empreintes salées de trois comptes. L'association utilise des mots de passe initiaux tirés de la liste mots_de_passe_initiaux.txt, de la forme Bienvenue- suivie de 12 caractères.

Auditez les trois comptes : lesquels n'ont jamais changé leur mot de passe initial, lesquels utilisent un mot de passe courant, et lesquels résistent ? Relevez le mot de passe initial qui n'a pas été changé.

Le matériel​

Chaque participant reçoit un flag personnel : inutile de comparer avec vos voisins, le vôtre ne marcherait pas chez eux. Dans l'application Joligo, ouvrez l'onglet Profil et relevez votre code personnel (8 caractères, carte « Mon code personnel (défis CTF) »).

Dans votre VM Debian (remplacez a1b2c3d4 par votre code) :

sudo apt install john openssl
mkdir -p ~/ctf-audit-comptes
cd ~/ctf-audit-comptes
CODE=a1b2c3d4
attention

Le script ci-dessous fabrique les fichiers de l'audit (c'est le travail du « méchant » de l'histoire). Ne le décodez pas pour le lire : ce serait lire la solution avant d'avoir cherché. Analysez les fichiers produits.

base64 -d <<'EOF' | bash -s -- "$CODE"
Q09ERT0iJDEiCmlmIFsgLXogIiRDT0RFIiBdOyB0aGVuIGVjaG8gIlVzYWdlIDogYmFzaCAtcyAt
LSBWT1RSRV9DT0RFIiA+JjI7IGV4aXQgMTsgZmkKS0VZPSJjMzNjODJlNWYxMTA1M2NmOGIwOSIK
RkxBRz0kKHByaW50ZiAlcyAiJENPREUiIHwgb3BlbnNzbCBkZ3N0IC1zaGEyNTYgLWhtYWMgIiRL
RVkiIC1yIHwgY3V0IC1jMS0xMikKY2F0ID4gbW90c19kZV9wYXNzZV9pbml0aWF1eC50eHQgPDxG
SU4KQmllbnZlbnVlLWU1MmI5M2RlMjMzOQpCaWVudmVudWUtMDBmMGY4ZGY5NTAwCkJpZW52ZW51
ZS0xYzliNzRiMDNiY2UKQmllbnZlbnVlLWIwN2M2MTJjNTQ5MQpCaWVudmVudWUtZGMzZmFiZTYy
MjkzCkJpZW52ZW51ZS05YjRhNWY3YjkwNDcKQmllbnZlbnVlLTVjMzEwMzNiYmZjNApCaWVudmVu
dWUtNGI4M2U5ZDQwNDNmCkJpZW52ZW51ZS0ke0ZMQUd9CkJpZW52ZW51ZS1jMzczYTdjYjFjYzEK
QmllbnZlbnVlLTAwMGYxNjViMTZmNwpCaWVudmVudWUtMjQwMjM1NDQwMjNlCkJpZW52ZW51ZS0z
ODk1NTZmNDMwNzgKQmllbnZlbnVlLTQzYmZkZDJiNTllZgpCaWVudmVudWUtZDBmNjU0YjAwY2M1
CkJpZW52ZW51ZS1mMmMyMThkZjhiN2MKQmllbnZlbnVlLTM0ZTQ1OWM5MWNkMApCaWVudmVudWUt
MjBlNzY3YjUwNTFhCkJpZW52ZW51ZS1kMTcxNzk2NGQyZTAKQmllbnZlbnVlLTYwYWE2Y2JjYzdh
OApCaWVudmVudWUtYjU0OWNmMjlhOTBiCkJpZW52ZW51ZS0zYjZmNDIzMGM3NWEKQmllbnZlbnVl
LWNjMjNiM2M5YTAyMgpCaWVudmVudWUtZGU3YTQ3N2FkMThkCkJpZW52ZW51ZS1iM2MzODY4ODZh
YTUKRklOCmNhdCA+IG1vdHNfZGVfcGFzc2VfY291cmFudHMudHh0IDw8J0ZJTicKMTIzNDU2CnBh
c3N3b3JkCmF6ZXJ0eQpQYXNzd29yZDEKYm9uam91cjEyMwptb3RkZXBhc3NlCnF3ZXJ0eTEyMwpz
b2xlaWwyMDI0CkZJTgpwcmludGYgJ3RyZXNvcmllcjolc1xuYmVuZXZvbGU6JXNcbnByZXNpZGVu
dGU6JXNcbicgXAogICIkKG9wZW5zc2wgcGFzc3dkIC02IC1zYWx0IFhrOW1QMnFSICJCaWVudmVu
dWUtJEZMQUciKSIgXAogICIkKG9wZW5zc2wgcGFzc3dkIC02IC1zYWx0IHZUNG5CN3daICdhemVy
dHknKSIgXAogICIkKG9wZW5zc2wgcGFzc3dkIC02IC1zYWx0IGhMNmNKMXNEICdCcnVtZS1Db3Jt
b3Jhbi1QaGFyZS0yMDI2IScpIiA+IGNvbXB0ZXNfYXVkaXQudHh0CmVjaG8gIkZpY2hpZXJzIGNy
w6nDqXMgOiBjb21wdGVzX2F1ZGl0LnR4dCwgbW90c19kZV9wYXNzZV9pbml0aWF1eC50eHQgZXQg
bW90c19kZV9wYXNzZV9jb3VyYW50cy50eHQiCg==
EOF

Vous obtenez trois fichiers : comptes_audit.txt, mots_de_passe_initiaux.txt et mots_de_passe_courants.txt.

Comment jouer​

  1. Lancez John deux fois sur comptes_audit.txt, avec une liste puis avec l'autre (--wordlist=...), et affichez les résultats avec --show.
  2. Répondez aux questions de l'activité Joligo « L'audit des comptes » : certaines portent sur le flag, d'autres sur la démarche et les bons réflexes.
  3. Le flag est la partie variable du mot de passe initial qui n'a pas été changé (les 12 caractères après Bienvenue-) : il contient lettres a à f et chiffres. Dans Joligo, vous saisirez seulement ces 12 caractères.
Besoin d'un coup de pouce ?

Cette démarche a été vue dans la séance John the Ripper, après la séance Craquer un mot de passe. Si John affiche « No password hashes left to crack », les mots de passe sont déjà retrouvés : john --show comptes_audit.txt les affiche de nouveau. Un mauvais flag fait perdre une vie dans Joligo : réfléchissez avant de tenter au hasard, comme pour un vrai mot de passe.