Aller au contenu principal

CTF « L'affaire Duval » — Chapitre 1 : le scooter à vendre

Un commercial de l'imprimerie vend son scooter sur une plateforme d'annonces. La photo ne montre rien d'identifiable. Pourtant, quelqu'un a retrouvé où il habite.

info

Ce chapitre est un CTF : pas d'étapes guidées. Vous cherchez, vous trouvez un flag, puis vous le saisissez dans l'application Joligo, dans l'activité « Chapitre 1 : le scooter à vendre ». Maxime Leroy, ses photos et son annonce sont fictifs. Les coordonnées ont été placées sur des lieux publics connus : elles ne désignent l'adresse de personne.

attention

Ce défi se pratique uniquement sur les deux photos fournies. N'appliquez jamais cette démarche aux photos d'une personne réelle pour la localiser : ce serait de la surveillance.

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 aux métadonnées des photos :

  1. dans ~/tp-photos (à recréer avec l'étape 1 de la séance précédente s'il n'existe plus), lancer exiftool annonce_velo.jpg et lire le champ Artist
  2. afficher uniquement la position GPS de vacances_plage.jpg avec exiftool -GPSPosition vacances_plage.jpg
  3. citer la commande qui supprime toutes les métadonnées de annonce_velo.jpg, et le nom du fichier de sauvegarde qu'elle crée
📌 Réponse attendue

Votre mission​

Un virement suspect vient de partir de l'imprimerie Duval (vous l'examinerez au chapitre 2). Avant d'enquêter, la direction veut savoir si le commercial Maxime Leroy, qui a accès aux outils de l'entreprise, s'expose personnellement. Vous disposez de deux photos qu'il a publiées : celle de son annonce (annonce_scooter.jpg) et une photo de ses vacances (photo_vacances.jpg).

Retrouvez où a été prise la photo de l'annonce, quand il était absent de chez lui, puis conseillez-le.

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 libimage-exiftool-perl perl openssl
mkdir -p ~/ctf-duval/chapitre1
cd ~/ctf-duval/chapitre1
CODE=a1b2c3d4
attention

Le script ci-dessous fabrique les fichiers du scénario (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+JjI7IGV4aXQgMTsgZmkKS0VZPSJhMzcyYzM2NGY3NDU1ZjdkOTI4OCIK
RkxBRz0kKHByaW50ZiAlcyAiJENPREUiIHwgb3BlbnNzbCBkZ3N0IC1zaGEyNTYgLWhtYWMgIiRL
RVkiIC1yIHwgY3V0IC1jMS0xMikKYmFzZTY0IC1kID4gYW5ub25jZV9zY29vdGVyLmpwZyA8PCdG
SU4nCi85ai80UUVMUlhocFpnQUFUVTBBS2dBQUFBZ0FCZ0VPQUFJQUFBQWhBQUFBVmdFUEFBSUFB
QUFGQUFBQWR3RVFBQUlBQUFBRFdEVUEKQUFFeUFBSUFBQUFVQUFBQWZBRTdBQUlBQUFBTkFBQUFr
SWdsQUFRQUFBQUJBQUFBblFBQUFBQkJibTV2Ym1ObElITmpiMjkwWlhJZwpVa1ZHTFZoWVdGaFlX
RmhZV0ZoWVdBQlBjbUpwQURJd01qWTZNRGs2TVRJZ01EZzZNVFU2TXpBQVRXRjRhVzFsSUV4bGNt
OTVBQUFFCkFBRUFBZ0FBQUFKT0FBQUFBQUlBQlFBQUFBTUFBQURUQUFNQUFnQUFBQUpYQUFBQUFB
UUFCUUFBQUFNQUFBRHJBQUFBQUFBQUFEQUEKQUFBQkFBQUFLUUFBQUFFQUFBQUFBQUFBQVFBQUFB
SUFBQUFCQUFBQUV3QUFBQUVBQUFBSkFBQUFBZi9nQUJCS1JrbEdBQUVCQUFBQgpBQUVBQVAvYkFF
TUFFQXNNRGd3S0VBNE5EaElSRUJNWUtCb1lGaFlZTVNNbEhTZzZNejA4T1RNNE4wQklYRTVBUkZk
Rk56aFFiVkZYClgySm5hR2MrVFhGNWNHUjRYR1ZuWS8vYkFFTUJFUklTR0JVWUx4b2FMMk5DT0VK
alkyTmpZMk5qWTJOalkyTmpZMk5qWTJOalkyTmoKWTJOalkyTmpZMk5qWTJOalkyTmpZMk5qWTJO
alkyTmpZMk5qWS8vQUFCRUlBQWdBQ0FNQklnQUNFUUVERVFIL3hBQWZBQUFCQlFFQgpBUUVCQVFB
QUFBQUFBQUFBQVFJREJBVUdCd2dKQ2d2L3hBQzFFQUFDQVFNREFnUURCUVVFQkFBQUFYMEJBZ01B
QkJFRkVpRXhRUVlUClVXRUhJbkVVTW9HUm9RZ2pRckhCRlZMUjhDUXpZbktDQ1FvV0Z4Z1pHaVVt
SnlncEtqUTFOamM0T1RwRFJFVkdSMGhKU2xOVVZWWlgKV0ZsYVkyUmxabWRvYVdwemRIVjJkM2g1
ZW9PRWhZYUhpSW1La3BPVWxaYVhtSm1hb3FPa3BhYW5xS21xc3JPMHRiYTN1TG02d3NQRQp4Y2JI
eU1uSzB0UFUxZGJYMk5uYTRlTGo1T1htNStqcDZ2SHk4L1QxOXZmNCtmci94QUFmQVFBREFRRUJB
UUVCQVFFQkFBQUFBQUFBCkFRSURCQVVHQndnSkNndi94QUMxRVFBQ0FRSUVCQU1FQndVRUJBQUJB
bmNBQVFJREVRUUZJVEVHRWtGUkIyRnhFeUl5Z1FnVVFwR2gKc2NFSkl6TlM4QlZpY3RFS0ZpUTA0
U1h4RnhnWkdpWW5LQ2txTlRZM09EazZRMFJGUmtkSVNVcFRWRlZXVjFoWldtTmtaV1puYUdscQpj
M1IxZG5kNGVYcUNnNFNGaG9lSWlZcVNrNVNWbHBlWW1acWlvNlNscHFlb3FhcXlzN1MxdHJlNHVi
ckN3OFRGeHNmSXljclMwOVRWCjF0ZlkyZHJpNCtUbDV1Zm82ZXJ5OC9UMTl2ZjQrZnIvMmdBTUF3
RUFBaEVERVFBL0FNK2lpaXVZOXcvLzJRPT0KRklOCnBlcmwgLTA3NzcgLXBpIC1lICJzL1hYWFhY
WFhYWFhYWC8kRkxBRy8iIGFubm9uY2Vfc2Nvb3Rlci5qcGcKYmFzZTY0IC1kID4gcGhvdG9fdmFj
YW5jZXMuanBnIDw8J0ZJTicKLzlqLzRRRGVSWGhwWmdBQVRVMEFLZ0FBQUFnQUJRRVBBQUlBQUFB
RkFBQUFTZ0VRQUFJQUFBQURXRFVBQUFFeUFBSUFBQUFVQUFBQQpUd0U3QUFJQUFBQU5BQUFBWTRn
bEFBUUFBQUFCQUFBQWNBQUFBQUJQY21KcEFESXdNalk2TVRBNk1qQWdNVGM2TkRBNk1ESUFUV0Y0
CmFXMWxJRXhsY205NUFBQUVBQUVBQWdBQUFBSk9BQUFBQUFJQUJRQUFBQU1BQUFDbUFBTUFBZ0FB
QUFKWEFBQUFBQVFBQlFBQUFBTUEKQUFDK0FBQUFBQUFBQUNzQUFBQUJBQUFBSFFBQUFBRUFBQUFk
QUFBQUFRQUFBQUVBQUFBQkFBQUFJUUFBQUFFQUFBQWRBQUFBQWYvZwpBQkJLUmtsR0FBRUJBQUFC
QUFFQUFQL2JBRU1BRUFzTURnd0tFQTRORGhJUkVCTVlLQm9ZRmhZWU1TTWxIU2c2TXowOE9UTTRO
MEJJClhFNUFSRmRGTnpoUWJWRlhYMkpuYUdjK1RYRjVjR1I0WEdWblkvL2JBRU1CRVJJU0dCVVlM
eG9hTDJOQ09FSmpZMk5qWTJOalkyTmoKWTJOalkyTmpZMk5qWTJOalkyTmpZMk5qWTJOalkyTmpZ
Mk5qWTJOalkyTmpZMk5qWTJOalkvL0FBQkVJQUFnQUNBTUJJZ0FDRVFFRApFUUgveEFBZkFBQUJC
UUVCQVFFQkFRQUFBQUFBQUFBQUFRSURCQVVHQndnSkNndi94QUMxRUFBQ0FRTURBZ1FEQlFVRUJB
QUFBWDBCCkFnTUFCQkVGRWlFeFFRWVRVV0VISW5FVU1vR1JvUWdqUXJIQkZWTFI4Q1F6WW5LQ0NR
b1dGeGdaR2lVbUp5Z3BLalExTmpjNE9UcEQKUkVWR1IwaEpTbE5VVlZaWFdGbGFZMlJsWm1kb2FX
cHpkSFYyZDNoNWVvT0VoWWFIaUltS2twT1VsWmFYbUptYW9xT2twYWFucUttcQpzck8wdGJhM3VM
bTZ3c1BFeGNiSHlNbkswdFBVMWRiWDJObmE0ZUxqNU9YbTUranA2dkh5OC9UMTl2ZjQrZnIveEFB
ZkFRQURBUUVCCkFRRUJBUUVCQUFBQUFBQUFBUUlEQkFVR0J3Z0pDZ3YveEFDMUVRQUNBUUlFQkFN
RUJ3VUVCQUFCQW5jQUFRSURFUVFGSVRFR0VrRlIKQjJGeEV5SXlnUWdVUXBHaHNjRUpJek5TOEJW
aWN0RUtGaVEwNFNYeEZ4Z1pHaVluS0NrcU5UWTNPRGs2UTBSRlJrZElTVXBUVkZWVwpWMWhaV21O
a1pXWm5hR2xxYzNSMWRuZDRlWHFDZzRTRmhvZUlpWXFTazVTVmxwZVltWnFpbzZTbHBxZW9xYXF5
czdTMXRyZTR1YnJDCnc4VEZ4c2ZJeWNyUzA5VFYxdGZZMmRyaTQrVGw1dWZvNmVyeTgvVDE5dmY0
K2ZyLzJnQU1Bd0VBQWhFREVRQS9BTStpaWl1WTl3Ly8KMlE9PQpGSU4KZWNobyAiRmljaGllcnMg
Y3LDqcOpcyA6IGFubm9uY2Vfc2Nvb3Rlci5qcGcgZXQgcGhvdG9fdmFjYW5jZXMuanBnIgo=
EOF

Vous obtenez deux photos : annonce_scooter.jpg et photo_vacances.jpg.

Comment jouer​

  1. Lisez les métadonnées des deux photos et recoupez-les.
  2. Pour situer un lieu sur une carte, saisissez les coordonnées en degrés décimaux dans openstreetmap.org (la latitude Nord et la longitude Ouest se convertissent : 45°30'00" N vaut 45,5, et la longitude Ouest prend un signe négatif).
  3. Répondez aux questions de l'activité Joligo « Chapitre 1 : le scooter à vendre ».
  4. Le flag est la référence de l'annonce (12 caractères, lettres a à f et chiffres) écrite dans les métadonnées de annonce_scooter.jpg, après REF-. Saisissez ces 12 caractères dans Joligo.
Besoin d'un coup de pouce ?

Cette démarche a été vue dans la séance Ce que racontent vos photos.