# Spying Challenge 2019 Dans le cadre de [**LeHack**](https://lehack.org/en) un challenge a été proposé pour la 3ème fois : le [**Spying Challenge**](https://spyingchallenge.com/). Il met à l'epreuve les participants sur de l'OSINT (Open Source INTelligence), du social-engineering, du tracking, du hacking, de l'intrusion physique, du contract-killing etc. Ce write-up a pour objectifs de raconter notre expérience, d'expliquer les techniques utilisées, et en somme, d'apporter de la matière aux curieux et aux expérimentés. ![](https://i.imgur.com/YDGJDmB.png) *(Logo du Spying Challenge)* Le challenge se découpait en plusieurs phases: - **Phase 1** : une semaine de prise d'information OSINT et phishing/vishing avant l'évènement. - **Phase 2** : quelques heures de social-engineering, tracking et spying sur place. - **Phase 3** : missions d'intrusion physique, contract-killing et tracking. - **Phase finale** : une mission de libération d'otage qui a tourné au guet-apens. ## L'équipe Avant le début de la mission, il a fallu monter une équipe de choc de 4 agents. | Agent | Compétences | |----------------------------------------------|------------------------------------------------------------------------------------------------------------------------------------| | [Shutdown](https://twitter.com/_nwodtuhs) | Social-Engineering, OSINT, lockpicking, combat rapproché, hacking | | [Siras](https://twitter.com/EnlargeYourGeek) | [Gagnant du Spying Challenge 2018 OSINT](https://spyingchallenge.com/en/hall-of-fame-2/), Social-Engineering, lockpicking, hacking | | [Duty](https://twitter.com/dutyfruit_Pwned) | Hacking, expériences militaires | | Okapi | Expériences militaires, filature, radiocomm, "sans-visage" | | [mcandberry](https://twitter.com/mcandberry) | H4x0r de l'extrême | *"Mais on voit 5 personnes là"* me direz-vous. Oui c'est exact. Entre deux missions, nous avons du faire un changement. Notre fidèle [Siras](https://twitter.com/EnlargeYourGeek) étant absent physiquement à LeHack ce jour-là, nous avons dû trouver, sur le tas, un volontaire pour le remplacer, et ainsi participer physiquement à 4. Merci à [mcandberry](https://twitter.com/mcandberry) d'avoir rejoint l'équipe à la dernière minute ! ## Annexes Ici vous pourrez trouver les rapports rendus (plus quelques correctifs apportés post-challenge pour une meilleure compréhension/lisibilité) et autres annexes plus détaillées. Toutes les techniques utilisées (notamment pour l'OSINT) sont expliquées dans les rapports. Il ne s'agit que des phases 1 et 2. Dans les phases suivantes, il n'y avait pas de rapports à rendre. Le lien : https://mega.nz/#F!7bYFXSxC!SCsAi4v_Jus2q1HIk4HPeg # Phase 1 ## Ordre de mission Jeudi 27 juin 2019 à 18:24, heure de Paris : nous avons reçu un mail des agents Dupont et Martin. Notre mission a commencé. Nos cibles étaient claires: - Lictor (lictor.fr): service d'ordre des bérets jaunes; - Gustave Leproleau : un des fondateurs de bérets jaunes, en relation ambiguë avec Lictor. Nous avions une semaine pour terminer la mission : récupérer un maximum d'informations sur ces cibles. Tout au long de cette mission, nous avons utilisé l'outil Maltego pour tracer les liens identifiés entre les différentes cibles et organiser chaque action. ## Lictor ### Site web Lictor était le service d'ordre des bérets jaunes. Sur leur site internet, nous avons trouvé pas mal d'informations et une vidéo de promotion présentait les services que l'entreprise proposait. ![](https://i.imgur.com/Er34h3k.png) Cette vidéo nous a notamment permis de situer quelques endroits grâce à de la recherche inversée d'images (Yandex, Google, Bing, TinEye) et à de l'imagerie satellite (Google Maps, Street View etc.). On a alors pu commencer à dresser le profil de certains collaborateurs de Lictor (apparence, spécialités). Il nous a suffi de porter attention à chaque image de la vidéo et de chercher ce qu'on pouvait en tirer. ![](https://i.imgur.com/tFPgMB8.jpg) La vidéo nous a également permis d'obtenir quelques informations sur une commande Colt (entreprise américaine d'armes à feu) et sur un courrier en provenance d'une ambassade du Venezuela. Nous avons exploité ces informations pour nous faire passer pour un représentant de l'ambassade dans le but d'obtenir plus d'informations sur la commande d'armes. Le site était également mal configuré (présence du fichier d'indexation `robots.txt`) et on pouvait retrouver 4 vues satellites (probablement des missions passées/actuelles/à venir). L'utilisation de recherche inversée d'images et de culture générale nous a permis de localiser 3 des 4 photos. ![](https://i.imgur.com/acRKCHb.jpg) ### LinkedIn Par la suite, une recherche sur LinkedIn nous permettait de lister quelques employés (Jacques Poireaux, Talisa Nala, Jack Barrel, Liliana Deloup etc.). Quelques profils contenaient des informations intéressantes (email, mot de passe, compte instagram, photo de profil, expériences passées etc.). ![](https://i.imgur.com/0TOIE2h.png) La création de faux profils et l'invitation de quelques membres nous ont permis, si cette dernière était acceptée, de parfois récupérer plus d'informations de contact. ![](https://i.imgur.com/4NBsN3w.png) Des prises de contact par messages privés nous permettaient d'ailleurs de récupérer plus d'informations sur le fonctionnement de Lictor, ses activités etc. ![](https://i.imgur.com/Wx8NEdw.png) Pour cela, nous utilisions de faux profils, parfois créés pour une utilisation bien précise et unique, dont le parcours était réfléchi et préparé pour coller à la situation. Nous avons par exemple créé le profil d'un certain "Fabrice Berthiaume", ancien militaire, souhaitant se diriger dans le privé. - Nous avons généré une fausse photo de profil avec thispersondoesnotexist.com (IA combinant aléatoirement plusieurs photos de visages pour en créer un unique fictif et réaliste). - Nous avons utilisé fakenamegenerator.com ou fakepersongenerator.com pour générer aléatoirement un faux profil complet (nom, prénom, adresse, profession etc.) dans lequel nous avons gardé quelques éléments. - Nous avons imaginé un parcours réaliste en nous basant sur notre culture personnelle et sur ce qu'Internet sait. - Nous avons généré le CV grâce à la fonctionnalité prévue pour par LinkedIn. - Nous avons alimenté le profil en connexions légitimes. Pour cela, rien de compliqué, LinkedIn propose d'inviter des profils similaires, d'anciens "collègues" etc. En quelques heures, nous avons obtenu un réseau d'une vingtaine de connexions légitimes. - Nous avons révisé le profil imaginé pour le connaître sur le bout des doigts. - Nous avons pris contact et restons en veille pour capter une réponse potentielle. Pour gérer les multiples identités créées au cours du challenge, nous avons utilisé l'extension Firefox "Multi-Account Containers" qui a permis, sur une seule fenêtre, de gérer en parallèle plusieurs identités parfois présentes sur des plateformes communes (Twitter, LinkedIn, Facebook etc.). ![](https://i.imgur.com/28rDsam.png) ### Twitter Une recherche sur le hashtag `#lictor` nous a permis de trouver quelques intéressés. Des recherches approfondies sur le profil de chaque cible potentielle nous ont permis d'identifier leur caractère, faiblesses, goûts, attitude etc. Nous avons même pu trouver des informations potentiellement confidentielles (contact avec un client russe). ![](https://i.imgur.com/M39Hpy7.png) Nous avons également pu trouver le compte de Liliana Deloup, une employée de Lictor. Un post de sa part demandant des conseils sur l'achat de compléments alimentaires nous a permis de rentrer en contact privé avec elle. Pour cela, nous avons créé l'identité de Fred Algan, coach sportif. Nous avons utilisé une autre de nos fausses identités créées précédemment (cf. partie Facebook), Matilda Chesney, pour inviter Fred Algan dans les commentaires, et ainsi rendre l'implication du coach moins suspecte. ![](https://i.imgur.com/V1IM0VW.png) Au final, nous avons pu rentrer en contact avec Liliana par messages privés et obtenir quelques informations intéressantes de sa part sur ses habitudes sportives. ### Facebook Après avoir recherché quelques membres avons pu trouver qu'un des employés, Jacques Poireaux, disposait d'un compte Facebook. Un rapide étude de son mur, de ses partages, de ses amis et de ses posts nous permet de dresser le profil d'un homme autoritaire, macho et sensible aux femmes. Nous avons ainsi créé l'identité de Matilda Chesney, jeune étudiante lilloise sur le point de déménager à Paris, celibataire depuis peu, en découverte des réseaux sociaux, d'un caractère facile et naïf. Nous avons alors invité Jacques comme ami (il a accepté), et avons pu lui soutirer certains informations sensibles (cf. [Rapport phase 1](https://mega.nz/#F!7bYFXSxC!SCsAi4v_Jus2q1HIk4HPeg). Cette plateforme nous aura au final permis d'en savoir plus sur les activités de Lictor et de disposer d'une multitude d'informations sensibles sur Jacques (numéro de téléphone, adresse, travail, date de naissance etc.). ![](https://i.imgur.com/JBQ8EmV.png) ### Instagram Sur LinkedIn, nous avons trouvé le profil Instagram de l'employée de Lictor Talisa Nala. Son fil de publications nous indiquait son email, son téléphone pro, qu'elle était marriée, qu'elle aimait voyager, qu'elle semblait aimer la Grèce (et notamment Santorin) etc. ![](https://i.imgur.com/u6pQ8iu.jpg) Nous avons exploité ces informations pour préparer un appel la ciblant. Le scénario était le suivant : son mari a participé à un jeux concours et le couple a gagné quelques jours à Santorin, Grèce, tous frais payés. Cet appel nous a permis de récupérer le nom du mari ainsi que l'adresse de Lictor (appel disponible [ici](https://mega.nz/#F!7bYFXSxC!SCsAi4v_Jus2q1HIk4HPeg)). ## Gustave Leproleau En ce qui concerne Gustave Leproleau, nous avons eu beaucoup de mal à trouver des informations intéressantes sur lui. Sa présence sur le site Doctissimo ne nous a pas aidé, et ses vidéos sur Youtube ne nous ont pas permis de rentrer en contact direct avec lui. Ses vidéos nous indiquaient les éléments suivants: - fondateur du mouvement des "bérets jaunes" - s'est mis en retrait par rapport au mouvement initial et a créé le mouvement des "bérets tout court" - est armé d'un revolver à poudre noire - a une femme coiffeuse - est originaire de Tourcoing - est un ancien technicien fraiseur - a une fille, Ashley, et un fils Deux de ses vidéos sorties peu de temps avant la fin de la première phase nous ont permis de le localiser. Une adresse donnée par son GPS lors d'une vidéo et les éléments d'arrière-plan dans une autre (architecture, église, étages, fenêtres) ont divulgé sa localisation exacte à Strasbourg. ![](https://i.imgur.com/uMTMHId.png) Nous avons utilisé cette information sensible pour Lictor pour obtenir les informations suivantes: - Lictor était bel et bien intéressé par la localisation de Gustave, ce qui confirme leur lien - L'identité "Gérard Kawami" est un fake, probablement créé par une équipe adverse pour brouiller les pistes. ## Conclusion Nous avons pu exploiter d'autres plateformes et les informations données ici sont peu détaillées mais le rapport rendu au bout des 7 jours ([ici](https://mega.nz/#F!7bYFXSxC!SCsAi4v_Jus2q1HIk4HPeg)) est plus explicite. Le rapport détaille d'ailleurs les échanges que nous avons eu avec les équipes adverses. Le graphique Maltego est également disponible sur le partage. ![](https://i.imgur.com/Oyypi22.jpg) # Phase 2 ## Ordre de mission La phase 2 s'est déroulée à Paris, à la Cité des Sciences et de l'Industrie, à l'occasion de l'évènement **LeHack**. Le Samedi 06 Juillet, de 10h à 12h, nous avions les missions suivantes: - intéragir avec les employés de Lictor afin de récupérer de nouvelles informations sur les cibles - identifier et prendre en photo Jack Barrel, employé de Lictor apparu dans la phase 1 - nous rendre à un point donné à 11h25 pour une rencontre avec le PDG de Lictor. ## Reconnaissance Aux alentours de 10h30, Okapi et moi-même avons pu rejoindre Duty sur les lieux. Ayant déjà commencé son enquête il nous a briefé sur ses résultats et nous avons continué la missions. Siras était notre opérateur distant. N'ayant pas la possibilité d'être physiquement sur place le jour-j, il a pu nous aider à distance pour réunir des informations, faire des recherches, et préparer à la vollée, un rapport sur cette phase 2 que nous devions rendre pour 13h30. Nous étions donc 3 agent sur place et 1 en distant. Très rapidement, nous avons pu identifier la plupart des employés de Lictor apparu dans la phase 1 (Liliana Deloup, Jacques Poireaux, Talisa Nala et Fikret Spirital). Deux visages inconnu nous ont interpellé. D'après les informations de l'agence, Jack Barrel et le PDG ne portaient pas de casquette ce jour-là. ![](https://i.imgur.com/1LvEAsM.png) Nous avons alors réutilisé les identités, créées en phase 1, de Nikolai Gorbaciov et Fabrice Berthiaume, pour obtenir plus d'informations. Nous avons également exploité des informations que nous avons obtenu lors de la missions de 11h25 (rencontre avec le PDG). Nous avons alors identifié un des inconnus comme étant Bryan, expert en sécurité rapprochée. ## Jack Barell Par élimination, il nous parraissait donc logique que l'autre inconnu était Jack Barell. Nous apprendrons plus tard (phase 3) que nous nous étions trompé. ## Le PDG A 11h25, nous avons rejoint les agents Dupont et Martin à un point communiqué par mail. Ils nous ont permis d'identifier le PDG de Lictor et nous ont donné la mission suivante : faire diversion auprès du PDG, subtiliser son sac à dos posé à ses côtés, ouvrir le sac et intervertir deux disques. Rapidement, nous avons du trouver et exploiter un scénario. Nous avions peu de temps. - Duty, équipé d'un sac à dos militaire camouflage, a abordé la cible, qui portait une veste camouflage. Son point d'accroche était tout trouvé : "Vous êtes militaire ? Moi aussi ! Qu'est-ce qui vous amène à cet évènement ?". Il avait pour objectif de faire diversion. Il était également chargé de ne pas parler de Lictor en premier, et de ne pas paraître informé de l'existence de ce groupe afin de ne pas éveillé les soupçons. - Okapi et moi-même sommes passés derrière le PDG. L'agent Dupont nous avait fourni un stylo et le CD d'échange. Nous avons subtilisé le sac à dos, utilisé le stylo pour ouvrir la poché zippée protégée par un cadenas, échangé les CDs, et refermé la poche. Nous avons également profité pour fouiller le reste du sac et trouver des cagoules, des bouteilles et un béret jaune. Nous avons pris ces éléments en photo, avons replacé le sac, et sommes partis remettre le disque à l'agent Dupont. *(Merci aux orgas du Spying Challenge pour les photos)* ![](https://i.imgur.com/7TQj6Rn.jpg) ![](https://i.imgur.com/u9OOL3Y.jpg) ![](https://i.imgur.com/R5s2T0G.jpg) Après briefing avec Duty, il nous a révélé certaines informations utiles que le PDG lui avait données. Il avait pu récupérer le surnom du PDG "Ange" que nous avons pu utiliser par la suite pour aborder des employés de Lictor "avec l'aval d'Ange". ## Conclusion En conclusion, cette phase fut intense mais nous avons tout de même eu du temps pour nous balader un peu sur les stands de l'évènement et profiter de **LeHack**. Le rapport détaillant les missions est disponible sur le partage ([ici](https://mega.nz/#F!7bYFXSxC!SCsAi4v_Jus2q1HIk4HPeg)). Les enregistrements des conversations faites dans cette phase étant longs et de faible qualité, ils ne sont pas disponibles sur le partage. # Phase 3 À 14h19, nous avons eu la confirmation de notre sélection pour participer à la phase 3. Ayant été informés, par l'agent Dupont, qu'il serait très compliqué de n'être que 3 agents physiquement sur place, nous avons dépêché mcandberry. Il a accepté de remplacer Siras pour les étapes suivantes. Nous l'avons alors briefé sur la situation et nous sommes préparés pour les missions à venir. ## Mission 1 : infiltration et contract-kill A 15h45, nous nous sommes rendus au point de rendez-vous communiqué par mail pour recevoir nos instructions. Nous avions 10 minutes pour: - nous infiltrer dans une salle gardée par Jacques Poireaux, et dénicher 3 micros - empoisonner Jack Barrel (l'agent Dupon nous a alors montré une photo de la cible) ### Objectif 1 : Infilration Le temps pressait et nous commencions une mission à risque. Nous avons dû trouver un scénario réaliste pour faire de cette mission un succès. #### Diversion Lors de la phase 2, Duty avait pu discuter avec Jacques Poireaux, se faisant passer pour notre fausse identité de Fabrice Berthiaume. Nous avons exploité cette couverture pour faire diversion auprès de Jacques qui gardait la pièce dans laquelle nous devions nous infiltrer. Mcandberry était chargé de simuler un malaise important dans un coin éloigné du site. Duty était chargé d'alerter Jacques et de lui demander de l'aide pour aider son ami (mcandberry) alors dans un état inexplicable. #### Recherche Okapi était chargé de rentrer dans la pièce, une fois Jacques parti. Il a pu y rencontrer un agent qui lui a fourni un outil de détection de micros. Il a ainsi pu trouver les micros cachés. #### Protection & Diversion De mon côté, ayant coordonné les opérations, je suis resté devant la salle pour monter la garde et protéger Okapi. Lors de la rentrée d'Okapi dans la pièce, l'agent Dupont m'a informé que des membres de Lictor étaient sur leur chemin et que je devais monter la garde. J'ai donc dû trouver un plan rapide pour faire diversion. Je disposais alors d'un sac à dos militaire noir bien rempli. Je l'ai fait glisser dans un coin et me suis mis à tourner en rond, inquiété et stressé. À l'arrivée des membres de Lictor, je devais alors les prendre à part (leur faire croire que je les prenais pour des agents de sécurité) et les alerter sur le sac à dos suspect. Au final, Okapi a rapidement terminé sa mission, m'a téléphoné pour demander confirmation que la voie était libre, et m'a rejoint. Nous sommes allés faire signe à mcandberry et Duty que le premier objectif était validé. ### Objectif 2 : Contract-kill Très rapidement, nous avons cherché à localiser Jack Barrel pour l'empoisonner. Une fois trouvé, nous avons remarqué qu'il avait avec lui un verre de bierre. Notre poison étant de la même couleur, nous avons décidé de glisser celui-ci dans son verre. Nous l'avons filé et avons attendu le moment le plus opportun. Pendant que Duty faisait diversion en demandant une cigarette, j'ai ainsi pu verser le poison. ![](https://i.imgur.com/uEZeUrO.jpg) Nous avions alors terminé nos deux objectifs dans les temps. ## Mission 2 : filature A 16h30, nous nous sommes rendus au point de rendez-vous communiqué par mail pour recevoir nos instructions pour cette seconde mission. Nous avons été informés que Gustave Leproleau était retenu en otage par Lictor. Nous avions pour mission de prendre en filature 7 membres de Lictor jusqu'à trouver la localisation de Gustave. Avant la mission, nous avions organisé notre équipe. Nous avions mis en place un système d'appel en conférence pour se tenir informés de l'avancée de la filature. Habitué des filatures, Okapi s'est placé sur un point haut pour repérer un maximum de mouvements et guider les actions de mcandberry, duty et moi-même. De mon côté, je faisais un point régulier pour connaitre le statut des filatures. Toutes les 20 secondes, j'interrogeais alors à tour de rôle mcandberry, Duty et Okapi pour faire un point et rediriger les opérations. Je me suis rapidement concentré sur Bryan, le dernier employé de Lictor identifié, qui me semblait être un personnage important. Spécialisé en sécurité rapprochée, équipé d'une sorte de holster militaire, et d'une carrure imposante, dans une situation de kidpanning, il me semblait être un des employés à garder à l'oeil. Nous avions pour objectif d'envoyer à l'agence une photo de la localisation de Gustave avant 17h. À 16h52, mcandberry avait soudainement perdu la trace de Talisa, j'avais perdu la trace de Bryan, et Okapi nous informait alors de beaucoup de mouvement. À 16h53, j'ai retrouvé Bryan qui était à un étage et qui faisait rentrer de force Gustave dans une pièce. À 16h54, j'ai pu envoyer la photo. ![](https://i.imgur.com/VvFGJzK.jpg) Mission terminée, phase 3 terminée... Ouf... # Phase 4 (finale) À 17h25, nous avons été informés que nous faisions partie des 3 équipes sélectionnées pour participer à la denière phase : la libération de Gustave Leproleau. À 18h15, nous nous sommes rendus au point de rendez-vous communiqué par mail pour recevoir nos instructions pour cette mission finale. Nous devions nous rendre dans la pièce dans laquelle se trouvait Gustave pour le libérer. À notre arrivée sur les liens, nous nous sommes rendu compte que c'était un guet-apens. Des agents de Lictor, encagoulés, nous ont accueillis. Ayant eu pour interdiction d'utiliser la force, mcandberry et moi-même n'avons eu d'autre choix que de nous laisser faire (dommage on aurait bien posé quelques enchainements de Krav Maga **`(╯°□°)╯︵ ┻━┻`**). J'ai été pris à part pour subir un polygraphe tandis que Mcandberry, Okapi et Duty ont été enfermés dans une autre. À l'issue de mon polygraphe, j'avais une minute pour ouvrir un cadenas à code **à l'aide d'un crochet** ([lire ça](https://www.lockpickingfrance.org/serruresacombinaison.html)). La tâche s'est avérée ardue... La difficulté combinée à la chaleur de la pièce : j'ai raté la mission. ![](https://i.imgur.com/6lsSSrH.jpg) De leur côté, mcandberry avait été attaché avec des menottes, Duty avec du scotch et Okapi avec un collier serre flex. Les trois ont pu se défaire de leurs contraintes assez rapidement (cf. Google) et ont pu s'atteler à leur dernier objectif : ouvrir un coffre-fort à fermeture magnétique. Ici, il fallait provoquer un choc suffisamment important pour décoller les aimants assurant la fermeture. Dans le même temps, il fallait tenter d'ouvrir le coffre. Ils ont raté cette mission (mais pour leur défense, ils ont bien amoché le coffre). ## Fin de la mission Les deux autres équipes ont réussi à ouvrir le coffre. Aucune n'a pu ouvrir le cadenas mais une équipe a pu trouver 2 chiffres sur 4. Nous avons donc terminé 3ème ! # Conlusion Sur 60 équipes inscrites au challenge, une trentaine a rendu un rapport à l'issue de la première phase. Au fur et à mesure des missions et des sélections, nous avons toujours terminé 3ème. Nous ne sommes donc pas la meilleure équipe, mais bien la plus stable (faut bien positiver **`¯\_(ツ)_/¯`**). Note intéressante, lors de l'évènement, les participant de **LeHack** n'étaient pas forcément tous au courant de l'existence même du Spying Challenge. C'était plutôt amusant de voir les (non-)réactions des gens lors du vol de sac, de mcandberry qui faisait une sale mine de gars bourré en plein après-midi, lors du versement du poison dans le verre de Jack Barrel, lors des filatures etc. Etant dans une situation de challenge, on ne cherchait pas à se cacher du public et ça rendait les choses encore plus drôles (et effrayantes à la fois : personne n'est jamais intervenu). Merci à Duty, Okapi, Siras et mcandberry ! Merci aux orgas du Spying Challenge, c'était fou ! À l'année prochaine ! *Shutdown.*