Hunt APT42 2022
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:
ici uniquement les tâches rendu irl.
OSINT 1
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
Avec cette photo link au challenge.
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
On trouve dans les commentaires de la vidéo brut de FSoccer, un commentaire provenant d’un certain Messi Palaiseau
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:
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.
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
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é.
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
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
En cherchant Jean Neymar sur mastodon.social, on tombe sur un de ses tweets parlant de flickr
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)
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 !
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
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)
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)
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…)
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
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.
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
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.
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.
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.
Au dos du papier, des coordonnée what3words afin de passer à l’étape suivante
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
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:
2 tweets sortent de l’ordinaire:
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)
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”
Sur le facebook, on trouve ce 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
query: “winglet portugal” sur google
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...
...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 !
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
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.
Ce dernier, toujours en vente est à trouver, leboncoin, ebay, etsy, paruvendu ???????????? Pourquoi donc personne ne pense à Vinted ? (chercher “APT42” sur vinted)
Sur son profil, il link son twitter
Son twitter
APT42{Th0s3_5t1ck3r5_4r3_b34ut1ful}
Bon challenge, rien à redire.
FC NFT
Aie aie aie, le fameux challenge “simple” de wil (non)
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:
Qui une fois passé au travers de cyberchef, nous donne le début du flag !
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
Dénoncer FSoccer
LB
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é.