Hunt APT42 2022

10 minute read

Ultimate Football Hunt

Vers Juin 2022, APT42, association de cybersécurité de 42 Paris commenca à réfléchir à la création d’un nouveau CTF OSINT.
Une partie de l’équipe de création ayant participé à la Hunt de l’AEGE, l’idée de proposer un format similaire nous est tout naturellement venu. (CTF OSINT + Course d’orientation/chasse au trésor)

Chacun des admins à préparé une petite histoire, un lore sur lequelle baser nos épreuves, nous nous sommes tourné vers le thème du football de par la proximité temporelle avec la coupe du monde.

Un groupe, se nommant FSoccer, souhaite s’emparer de la coupe du monde afin de mettre en lumière le monde sombre qui entoure le football (viol clairefontaine, coupe du monde au quatar -> droits de la femme ? etc.), c’est aux titulaires du FC42, une agence de détectives privé de tenter d’enquêter sur les membres de cette organisation.

Après des mois de préparation, un framapad de 700 lignes impossible à edit sous peine de freeze, un apéro annulé, des comptes bannis à gogo et j’en passe… Voici le recit de FSoccer !

Vous pourrez trouver une ou plusieurs méthodes de résolution ainsi que mon avis personnelle sur l’épreuve. Ces avis n’engagent que moi.

FSoccer standing

Pendant ce CTF, les membres eurent la possibilité de gagner des points supplémentaires en prouvant leur allégance à FSoccer. Une liste de tâches était accompagné, en voici quelques unes:

  • Marquez un total de 50 buts dans n’importe quel jeu de foot. 10
  • Faites une vidéo de 3 minutes de sport en étant habillé·e avec un habit en lien avec le stéréotype du hacker. 30
  • Trouvez une query Google qui donne exactement 42 résultats. 25
  • Écrivez une fanfiction de 300 mots (minimum) avec Elliot Alderson jouant au foot. 35

(liste à retrouver ici)

Les gens se sont vraiment pris au jeu:

les tâches rendable physiquement

ici uniquement les tâches rendu irl.

OSINT 1

WHY-FI

énnoncé why-fi

Il suffisait d’aller scanner les réseaux wi-fi en e1r6p20, le flag était l’un SSID.

APT42{w1f1_t1me_h@s_c0m3}

Nous a permis de voir les équipes IRL et de confirmer leurs présence, ça, c’était la théorie, envrai c’etait un peu useless, bien que plutôt drôle de voir les participants venir nous voir sans savoir quoi faire (beaucoup n’avaient pas lu l’épreuve en entier).

Who’s in Paris

énnoncé who’s in paris

Avec cette photo link au challenge.

who’s in paris photo lie

Ainsi que cette vidéo youtube:

Sur le même compte youtube, on trouvait une autre vidéo youtube, un rush brut d’une des vidéos test d’FSoccer.

Sur cette vidéo, on entend 2 personnages donner des renseignements quant à l’endroit d’où est filmé la vidéo, on peut guess la localisation en s’aidant du quartier de la défense ainsi que de la localisation de la fameuse avenue des champs élysées. On pouvait aussi trouver via une query google bien ajusté, le nom du fameux hôtel.

APT42{The_Peninsula_Paris}

Bonne épreuve, demander l’hôtel, bien que pas réaliste vis à vis du lore, permet une mise en bouche du CTF.

Internship 1

énnoncé internship 1

On trouve dans les commentaires de la vidéo brut de FSoccer, un commentaire provenant d’un certain Messi Palaiseau

messi youtube

Dans quel autre école que 42 trouve t’on des gens faisant des “vidéos de stages”, de plus le tag “HUMINT” de l’épreuve pouvait nous mener sur la piste de l’intranet de 42.

C’est en cherchant mpalaise sur l’intranet de 42 que l’on tombe sur ce profil:

messi 42

En cliquant sur la valise (en haut a droite), on accède a son resume une page public ou l’on peut trouver un lien vers son linkedin.

On trouve le flag sur son profil.

messi linkedin

APT42{5up3rb3_v1d@10_d3_5t@g3!!}

Très bonne épreuve (la galère pour créer le compte intra tho) très bonne idée le compte intra.

Croiser les sources

énnoncé croiser les sources

Rechercher un autre élu donc ?
Ses 35 relations n’étant pas public, il nous reste son activité.

On tombe rapidement sur un commentaire de Messi Palaiseau sur le compte de Jean Neymar en fouillant son activité.

neymar linkedin

Jean Neymar nous annonce que l’épreuve n’allait pas être aussi simple que de simplement trouver son linkedin.

Heuresement, on trouve son CV avec une adresse mail, [email protected].
Grâce à leurs skills en OSINT, nos titulaires du FC42 n’ont eu aucun mal à utiliser Epieos afin de trouver d’autres potentiels comptes de Jean Neymar.

Epieos nous informe l’existence d’un flickr, en cherchant Jean Neymar, on trouve le compte flickr de Jean Neymar ainsi que le flag

neymar flickr

APT42{@_l0ng_but_5tr@1ght_w@y}

Début très moyen et trop classique, ce n’était pas le plan de base pour trouver Jean Neymar, compte de Jean Neymar pas assez fourni, la suite avec Epieos est TB.

Ctrl+Z

énnoncé ctrl z

En cherchant Jean Neymar sur mastodon.social, on tombe sur un de ses tweets parlant de flickr

neymar mastdon

Chall assez explicit, en allant sur wayback, on trouve une autre photo, et on se debrouille pour récuperer le flag. Flag dans la description de l’image, mais wayback casse tout)

neymar wayback

clique droit sur l’image -> ouvrir le lien dans une nouvelle fenêtre -> F12 -> search APT42

APT42{l@_r0ut3_?_l@_0u_0n_v@_0n_@_p@5_b3s01n_d3_r0ut3}

Bonne épreuve classique wayback.

Souriez et dites Ouistiti !

sourriez et dites ouistiti

Chall némésis de beaucoup de participants. Heuresement le hint rajouté au milieu du CTF (Trouvez la photo "original" pour avoir les metadatas.) en a aidé plus d’un.

Le chall indique 2 choses:

  • On doit trouver la ou le cliché a été pris
  • On doit trouver la personne posant à ses cotés

On obtient une info supplémentaire via le mastodon de Jean Neymar

sourriez et dites ouistiti

La personne posant à ses cotés serait sur Twitter.

Premier soucis, trouver les coordonnées de la photo, flickr gardant les exifs de la photo uniquement quand on lui demande de télécharger cette dernière, on se débrouille pour arriver sur la page wayback de telechargement de la photo supprimé (par exemple en ajoutant /sizes/o/ à la fin de l’URL de la solution du chall précedent)

neymar samuel wayback

On télécharge la photo et on lance exiftool qui nous informe des coordonées GPS de la photo.

1$ exiftool 52506266448_4b9fc82ce1_o.png
2[...]
3GPS Latitude                    : 39 deg 42' 20.69" N
4GPS Longitude                   : 31 deg 5' 6.39" W

On convertit les degrées minutes/secondes en décimal. (-31 car longitude W et non E)

coo conversion

Enfin on ajoute ces coordonnées dans la query twitter pour trouver des tweets à un endroit précis (trouvable sur ce site par exemple)

geocode:39.705747,-31.085108,10km

On rentre cela sur twitter, et on descend dans les environs du 17 novembre (date du tweet de Jean Neymar) (ou bien on trie par temporalité m’enfin…)

samuel twitter

Le flag est en base64 dans le second tweet.

APT42{geotaging_is_easy,_no_?}

Excellente épreuve, peut être trop de choses d’un coup mais sinon OMG.

Enjoy the ride

enjoy the ride

On comprend que Samuel est un fan de sport, particulièrement de vélo et de foot, on le voit citer un tweet de strava, en se rendant sur strava (il y a besoin d’un compte) on tombe sur 3 trajets qui contiennent le flag.

strava

APT42{w1ngstr@v@g@nz@}

Épreuve raté, beaucoup d’équipes ont skip cette épeuve car on avait le compte twitter de Messi (voir la suite) et c’était plus obvious de continuer la dessus.

IRL

Départ de 42

let the hunt begin

Malheursement étant organisateur de ce CTF je n’ai pas eu l’occasion de participer à la chasse :( sniff. je vais tant bien que mal tenter de la décrire histoire de laisser une trace…

Comme présenté ci-dessus, Samuel Osintiti passe souvent au même endroit, le square Jean Leclaire.

Jean Leclaire

Sur place, un des élus d’FSoccer les attends, un ballon de foot au pied pour réaliser les standing ainsi qu’un QR code.

qr code geocache: GC9RE9J

Avec les intêrets de Samuel sur twitter, on comprend que l’on à affaire à une geocache, un conteneur avec des trésors cachés sous le nez de tout le monde.

geocache app screenshot of the geocache

Dommage de pas avoir eu autre chose à faire à Jean Leclaire, une énigme peut être, idk.

Ateliers Berthier

Sur place, on trouve, on trouve un tupperware avec à l’intérieur, des cadenas et des crochets pour les standing, et l’historique des personnes ayant visité la géocache.

geocache

Au dos du papier, des coordonnée what3words afin de passer à l’étape suivante

geocache w3w

w3w marthin luther king

Très bonne idée la géocache, dommage de pas avoir eu assez d’effectif pour avoir une personne en permanence à la géocache.

MLK

Sur place, des membres de FSoccer avec des questions sur le football afin que les membres du FC42 puissent montrer leurs connaissances !

APT42{c'etait_une_bonne_rencontre}

TB.

OSINT 2

Come to the dork side

come to the dork side

Dans les abonnements de Samuel Osintiti, on peut trouver le compte twitter de Messi Palaiseau, ce dernier parlant quasi exclusivement de foot (beaucoup de gens sont passé à cette épreuve avant de trouver le strava malheuresement).

Twitter Messi Palaiseau: twitter mpalaise

2 tweets sortent de l’ordinaire: twitts mpalaise

Terre britanique d’outre mer de saint Helene gèrent le .sh -> avan.sh Pour une raison que j’ignore, le dork site:avan.sh ne fonctionne pas si l’on ajoute pas d’autre recherches en plus du dork (pour trouver le fameux article caché).

On tombe rapidement sur un article sortant du lot sur cette url et on obtient le flag (peut-être down idk).

APT42{g00gl3_d0rk5_@r3_n1c3}

Épreuve vraiment naze, mis uniquement dans le but d’avoir une épreuve en plus.

Destination finale

(Le hint indiquait de ne pas suivre la piste de l’album photo google) destination finale

La destination finale de quelques équipes malheuresement :(

Sur l’article au dessus, Messi Palaiseau, citait les réseaux de ses amis sur la photos, le twitter de Samuel, et le Facebook de “Franck”

facebook franck

Sur le facebook, on trouve ce post:

franck post

Il aurait laissé une review sur “ce petit bout de verdure” (au guessing, le coin sous l’aile en bas à gauche)

Avec un google lens du winglet ou même en tappant “winglet” sur internet, on trouve le nom de la compagnie

Obtention du portugal lens winglet

query: “winglet portugal” sur google query winglet portugal

TAP air, une compagnie portugaise, on pense directement Lisbon, cela se confirme par la topographie de l’arrière de la photo, il y a une sorte de baie / fleuve. (étendu d’eau trop grosse pour être un fleuve)

Au guessing, on retrouve ce batiment de la photo dans Lisbon... batimentlisbon

...et donc le musée, et non un stade, où l’on peut aller chercher dans les avis (via le mot “swag” ou en triant par date) celui de notre ami Franck !

reviewgmaps

On observe (ou pas #Uruguay) une sorte de bandeau rouge dans sa photo de profil, on peut (ou pas #Espagne) ouvrir la photo de profil dans un nouvel onglet et, l’agrandir en modifiant l’url (w36-h36-p-rp-mo-br100 -> w500-h500-p-rp-mo-br100 à la fin de l’url)

APT42{c0lp3j@t_d3_l'@l@}

Chall troooop bien, juste dommage de pas avoir été assez explicit sur ce qu’étais “le bout de verdure” le reste est god tier.

Geoguessing 1-4

Geoguessing 1 Photo 1
Geoguessing 2 Photo 2
Geoguessing 3 Photo 3
Geoguessing 4 Photo 4

Geoguessing 1

En retournant sur l’album photo google, un lieu grincheux, mais aucune indication quelconque quant à l’endroit.
En observant le panneau sur la gauche de l’image, on peut déchiffrer 42 Prague :D

APT42{42_prague}

Geoguessing 2

À l’arrière plan, on voit le logo d’une so-gé de prague, on peut chercher toutes les société générale de Prague et obtenir le nom du batiment situé derrière.

APT42{quadrio}

Geoguessing 3

Je l’ai pas fait, exercice donné au lecteur blablabla

Geoguessing 4

^^

Excellent.

La chance du débutant

la chance du débutant

Notre investigateur anonyme ainsi qu’ami de Samuel à réussi à trouver la personne présente avec lui pendant son voyage, sur son instagram, une photo d’un stickers holographique d’APT42 est en photo.

post instagram

Ce dernier, toujours en vente est à trouver, leboncoin, ebay, etsy, paruvendu ???????????? Pourquoi donc personne ne pense à Vinted ? (chercher “APT42” sur vinted)

vinted apt42

Sur son profil, il link son twitter ronaldingo vinted

Son twitter ronaldingo twitter

APT42{Th0s3_5t1ck3r5_4r3_b34ut1ful}

Bon challenge, rien à redire.

FC NFT

fc nft

Aie aie aie, le fameux challenge “simple” de wil (non)

chall simple wil

Il est encore temps de le tenter avant de regarder la solution !

https://goerli.etherscan.io/address/0x96a48e027849ce711d627862cbb7192b601f6013



non ?



Le lien pointe sur etherscan.io, un visualiseur web de la blockchain etherum, ici, le testnet, la branche test d’etherum.

Via le code source, on peut deduire que l’on doit obtenir les variables avec les commentaires en leatspeak (on obtient aussi un indice sur la suite du challenge avec l’import de base64 et une fonction rot13, randEncrypt).

Comme on sait que tout est public sur la blockchain :) on cherche en cliquant partout ou ces variables (_l, _d, _f, etc.) peuvent être.

On peut les trouver en cliquant:

  • sur le TXN
  • sur state
  • en étandant les storage address (flèche qui ouvre un menu déroulant)

voir ici pour mieux comprendre, merci wil !

En tentant de unhex toutes les strings qui nous tombe sous la main, on tombe sur celle-ci:

etherscan storage

Qui une fois passé au travers de cyberchef, nous donne le début du flag !

cyberchefstart

Ensuite, il ne reste plus qu’à faire de même pour tous les states suivants afin de reconstituer le flag (sans compter les ajouts de base64, rot13, shift & co, magic de cyberchef ainsi que notre cerveau sont indispensables pour résoudre ce chall !).

APT42{metamask_nft_help_trustwallet_recover_lost_hacked_bitcoin_coinbase_instagram_scamed}

Chall classique de wil, maxi hardcore, excellent mais je ne sais pas si c’est une bonne conclusion au CTF comme épreuve.

Fin

Après la complétion de FC NFT, les participants eurent la possibilité de rejoindre ou de dénoncer FSoccer. En fonction de leur choix, 2 articles s’offraient à eux.

Rejoindre FSoccer

Voir le site

Dénoncer FSoccer

Voir le site

LB

scoreboard

Conclusion

Ce ctf nous a demandé beaucoup de travail, mais cela en valait la peine, ce 16 décembre était mémorable ! Les équipes ont vraisemblablement adoré cette compétition, qu’ils soient débutants ou confirmés. De plus, voir des gens s’investir dans une compétition qui nous a demandé tant de travail est très encourageant pour la suite de nos activitées.

Merci beaucoup d’avoir lu !
Si vous avez participé, on espère que vous avez kiffé !
Si vous voulez vous inspirer pour créer vos ctf, n’hésitez pas à nous piquer des idées !

Merci aux bêta-testeurs, pour nous avoir donné un premier retour.
Merci à 42Paris pour l’instance et pour le compte intra.
Merci à mboivin, lpascrea, alagroy-, adconsta, jvaquer et wil pour avoir fait de ce projet une réalité.