← Retour aux writeups

Vieille Complicité

WRITEUP OSINT SOCMINT TECHINT

Énoncé

Bienvenue dans ce deuxième writeup dédié au BreizhCTF 2026 !

énoncé du challenge

Pour ce challenge, il faut retrouver la ville où habite Mr O, le chef adjoint de la BZH Mafia. Un extrait de SMS interceptés est fourni comme point de départ :

Le SMS le plus intéressant mentionne le pseudo paulifonta35 et une plateforme de critiques de livres.

Identification de la cible

Je dresse une liste des principales plateformes de critiques littéraires : Babelio, Livraddict, Booknode, SensCritique, Goodreads, StoryGraph, LibraryThing. J'ai le réflexe de lancer un scan WhatsMyName sur le pseudo, sans succès. Je teste donc les plateformes une par une, et je finis par trouver ce compte sur Goodreads :

compte Goodreads de paulifonta35

goodreads.com/user/show/198943764-paulifonta35

En parcourant ses critiques de livres, celle sur Vendredi ou la Vie Sauvage de Michel Tournier attire mon attention : elle mentionne « mon ami Octave ». On cherche un « Mr O » pour « Mr Octave » — ça colle.

critique évoquant Octave

Paulifonta35 mentionne aussi son collège, le collège des Horizons Lumineux. Un Google dork sur ces informations permet d'obtenir plus de détails sur Octave :

google dork sur Octave

Je tombe sur un compte Copains d'Avant :

compte Copains d'Avant

Sa description contient un indice précieux : « Je n'utilise plus Twitter, je poste uniquement sur un nouveau réseau décentralisé. » Je pense directement à Bluesky, et une recherche permet de retrouver son profil :

profil Bluesky d'Octave

bsky.app/profile/justoctave.bsky.social

posts du profil Bluesky

Le compte ne contient que quelques posts. Puisqu'on cherche sa ville de résidence, le post le plus récent semble être la piste à suivre, car il contient une photo d'un colis qu'il vient de recevoir.

Décodage du colis

Avant de me lancer dans du GEOINT classique, je préfère d'abord analyser en détail la photo du colis :

photo du colis avec code-barres

À première vue, je ne reconnais pas ce type de code, et mon téléphone n'arrive pas à le scanner. Après quelques recherches sur les différents types de QR codes, je comprends qu'il s'agit en réalité d'un MaxiCode, un format créé et utilisé par UPS.

identification du MaxiCode

J'utilise une plateforme en ligne pour décoder le MaxiCode :

décodage en ligne du MaxiCode

J'obtiens la chaîne suivante :

[)>~03001~0292645520~029250~029999~02948197Z7781~029UPSN~029R84M7

résultat brut du décodage

(structure de référence trouvée sur neodynamic.com)

Cette documentation détaille la structure des MaxiCode, mais en essayant d'extraire les différentes parties de la chaîne (par exemple 02948197Z00007781), je reste bloqué : impossible d'avancer plus précisément dans le décodage.

Je retourne sur le post Bluesky pour chercher d'autres indices, et je remarque que le texte alternatif de l'image contient en réalité deux liens :

texte alternatif contenant deux liens

La documentation de barcodefaq.com précise que « MaxiCode Mode 2 and Mode 3 shall be reserved for use as a destination sortation symbol for use by carriers in the transport industry. » J'en déduis qu'il s'agit bien d'un MaxiCode de mode 2 ou 3 :

structure du MaxiCode mode 2/3

La structure de la chaîne pour ces modes utilise des séparateurs GS. Or notre chaîne ne contient pas de « GS » mais des « ~ ».

Après une recherche sur internet, je découvre que ~029 représente le caractère de contrôle ASCII non imprimable GS.

En remplaçant chaque séparateur :

[)>~03001~0292645520~029250~029999~02948197Z7781~029UPSN~029R84M7

devient :

[)>RS01GS2645520GS250GS999GS48197Z7781GSUPSNGSR84M7

décodage final de la chaîne

Le décodage révèle enfin la ville recherchée.

Flag

Célébration