Articles

CTF Hacking : Qu’est-ce que Capture the Flag pour un débutant ?

Qu’est-ce que le piratage de capture the flag ?

Ce blog est conçu pour une personne qui est toute nouvelle dans le piratage de Capture The Flag (CTF) et explique les bases pour vous donner le courage de participer à un CTF et voir par vous-même ce que c’est que de participer. Les CTF sont des événements qui sont généralement organisés lors de conférences sur la sécurité de l’information, notamment les différents événements BSides. Ces événements consistent en une série de défis dont le degré de difficulté varie et qui exigent des participants qu’ils exercent différentes compétences pour les résoudre. Une fois qu’un défi individuel est résolu, un « drapeau » est donné au joueur et il soumet ce drapeau au serveur CTF pour gagner des points. Les joueurs peuvent être des loups solitaires qui tentent les différents défis par eux-mêmes, ou ils peuvent travailler avec d’autres personnes pour tenter de marquer le plus grand nombre de points en équipe.

Les événements CTF sont généralement chronométrés, et les points sont totalisés une fois le temps écoulé. Le joueur / l’équipe gagnant(e) sera celui ou celle qui aura résolu le plus de défis et ainsi obtenu le score le plus élevé.

Voici une capture d’écran d’un tableau de scores d’un événement CTF du BSides San Francisco :

CTF au Bsides San Francisco

Veuillez noter la phrase que j’ai marquée d’un encadré rouge. Comme vous le verrez rapidement, les tâches du CTF sont souvent basées sur des incidents/vulnérabilités du monde réel qui vous donnent une chance de voir comment cela se passe réellement et vous préparent mieux à défendre vos propres systèmes contre ces types d’attaques. Ainsi, non seulement les événements CTF sont amusants, mais ils peuvent également être éducatifs et professionnellement enrichissants.

Préparation au CTF

Si vous n’avez jamais expérimenté un événement CTF, ne soyez pas frustré et n’abandonnez pas, car la clé de tout type de piratage est la patience. Bien que cela soit parfois difficile à avoir, la seule façon d’apprendre est de persister et de s’entraîner par soi-même (voir ce post plus bas sur la façon de s’entraîner) et peut-être que la prochaine fois vous obtiendrez la première place ! Une chose que vous pouvez essayer de faire lors de votre premier événement CTF, si possible, est de trouver une équipe expérimentée qui est prête à vous laisser les rejoindre. Assurez-vous de bien préciser qu’il s’agit de votre premier événement CTF et que vous aimeriez vraiment qu’ils vous montrent les ficelles du métier.

D’après mon expérience, les membres de la communauté InfoSec sont généralement très disposés à partager leurs connaissances avec quiconque souhaite essayer d’apprendre et de se développer dans ce domaine. En même temps, cependant, un thème commun que vous entendez aussi souvent dans la communauté est qu’il y a une pénurie de talents. Il s’agit parfois d’une lutte bien réelle, et de nombreux professionnels qui ont gravi les échelons dans ce domaine ont consacré beaucoup de temps à cette tâche, sacrifiant beaucoup pour apprendre, pratiquer et affiner leur art. Pour cette raison, avant de demander de l’aide pour des questions de base, vous devriez d’abord faire des recherches sur le sujet et faire un effort pour comprendre les choses par vous-même.

Au sein de la communauté InfoSec, la confiance n’est pas quelque chose sur laquelle vous pouvez attribuer une valeur. Si votre travail consiste à pirater le réseau d’un client, la dernière chose que quiconque souhaite est que ces informations sensibles soient partagées avec quiconque en dehors de l’équipe. La confiance est un élément essentiel de cette relation et je ne saurais trop insister sur l’importance de rester éthique pendant les compétitions. Enfin, dernier point mais certainement pas le moindre : lorsque vous vous rendez à un événement CTF, n’oubliez pas d’apporter un ordinateur portable ou un autre ordinateur qui dispose d’un système d’exploitation avec divers outils déjà installés (plus d’informations à ce sujet ci-dessous) car sans cela, vous allez prendre un départ difficile.

En résumé, les CTF sont une excellente occasion d’apprendre, donc si vous n’avez jamais fait l’expérience d’un événement CTF ou même d’un événement BSides, je vous encourage fortement à sauter le pas et à en rejoindre un dès que vous le pouvez !

Service de simulation avancé

Permet aux clients de tester leurs opérations de sécurité et leurs capacités de détection contre des techniques avancées de test de pénétration.

En savoir plus

Types d’événements

Il existe généralement deux types différents d’événements CTF. Les deux types les plus courants sont :

  • Équipe rouge/équipe bleue
    • Dans ce style d’événement, l’équipe rouge tente de capturer des drapeaux tandis que l’équipe bleue tente de défendre les différents drapeaux contre la capture.
  • Équipe rouge
    • Ce style d’événement implique généralement une ou plusieurs personnes, travaillant seules ou en équipe, qui tentent de capturer divers drapeaux alors qu’aucune équipe ne les défend.

Chaque type d’événement présente divers avantages et inconvénients. Dans un scénario Équipe rouge contre Équipe bleue, les attaquants apprennent des techniques vitales tandis que les défenseurs ont la possibilité d’apprendre à défendre leurs systèmes contre une attaque active. Dans un scénario d’équipe rouge, cependant, tout le monde se ligue contre le pauvre hôte de la FCT et fait de son mieux pour qu’il divulgue chaque drapeau sur lequel les attaquants peuvent poser leurs griffes numériques.

Types de défis

Les FCT présentent généralement différents défis qui utilisent ou exercent des domaines d’intérêt spécifiques. Certains domaines d’intérêt populaires sont :

  • Programmation
    • Ces types de tâches nécessitent généralement une sorte de programmation pour les résoudre. Dans la plupart des cas, il s’agira d’un mélange de programmation et d’un peu de rétro-ingénierie.
  • « Crypto »
    • Ces défis mettent en scène des scénarios courants du « monde réel » qui incluent souvent le type de malware ransomware toujours populaire.
  • Exploitation

    • Ces tâches vous obligeront à déterminer comment exploiter (à l’aide d’un dépassement de tampon, d’un format de chaîne, d’une injection SQL, etc….) un processus en cours d’exécution donné sur la machine cible de la FFC.
  • L’ingénierie inverse
    • Pour des tâches de ce type, l’ingénierie inverse sera généralement nécessaire, par exemple lorsque le serveur vous envoie un exécutable.

Comment participer à un événement CTF?

Ma première expérience avec un CTF a eu lieu lors d’un événement BSides local. Je me suis rendu à l’événement BSides avec la pensée suivante :  » Il y aura probablement beaucoup de hackers compétents ici ; je pense que je vais prendre un ordinateur portable Tails qui me permettra de prendre des notes et de surfer sur le Web si nécessaire.  » Si la mentalité consistant à vouloir protéger mes appareils n’était pas exactement une mauvaise idée, le fait de dépendre d’un Tails m’a rendu la vie plutôt difficile lorsqu’il s’est agi de participer à l’événement CTF. Pour être honnête, je n’avais pas réalisé qu’il y aurait un événement CTF là-bas et je n’ai donc pas pensé à cet aspect de l’événement. Ce que je vous recommanderais d’utiliser lors de votre premier CTF, dans l’ordre du plus facile au plus difficile, serait l’un des suivants :

  • Kali Linux
    • Cette distribution est conçue spécialement pour les tests de pénétration. Elle est emballée avec tous les outils imaginables et probablement une tonne de plus que vous n’aurez jamais besoin d’utiliser.
  • BlackArch
    • Cette distribution est basée sur Arch Linux mais vient préconstruite, un peu comme Kali, avec des tonnes d’outils de sécurité.
  • Arch Linux
    • C’est une installation Linux de base qui est livrée avec des outils Linux standard. Si vous choisissez cette option, vous devrez faire le travail de jambe en installant tous les outils auxquels vous pensez et dont vous pourriez avoir besoin ou, au minimum, vous assurer que vous avez accès à une connexion Internet pour vous permettre d’installer rapidement les outils dont vous avez besoin lors de l’événement.

Exemples

Comme je l’ai mentionné précédemment, un événement BSides à San Francisco a accueilli une session CTF il y a quelques mois. Nous pouvons examiner de plus près cet événement pour vous donner une meilleure idée de ce qu’est la capture du drapeau.

Tout d’abord, la capture d’écran ci-dessus vous montre le tableau des scores finaux, que je vais également placer ici :

CTF pour les néophytes, capture that flag

Veuillez noter que le gagnant a gagné avec 6 773 000 points alors que le joueur le plus proche avait 5 178 000 points. C’est une sacrée avance qui me dit que dcua est probablement un hacker/joueur de CTF assez expérimenté. Maintenant, examinons les différents types de tâches dont nous avons parlé précédemment. Voici une liste des différentes tâches qui étaient disponibles dans cet événement CTF :

Comme vous pouvez le voir, il existe différents types de tâches et certaines d’entre elles se chevauchent en termes de compétences requises pour les résoudre. Examinons plus en détail certaines des tâches de cette liste. Nous n’en choisirons qu’une seule :

L’Oracle magique du drapeau de Taylor est une tâche basée sur la rétro-ingénierie et le codage qui vaut 150 points. Si vous cliquez sur le lien  » Tâche « , vous obtenez des informations détaillées sur ce qui est impliqué :

Points d'ingénierie inverse dans un CTF

Comme vous pouvez le voir, de nombreux détails sont fournis, y compris des conseils sur la façon de résoudre ce défi/tâche CTF. Comme cet événement est déjà terminé, il y a aussi une section « Writeups » dans laquelle différents joueurs ont soumis les étapes qu’ils ont utilisées pour résoudre le défi. Cette section peut donner lieu à des lectures très intéressantes et peut également vous aider si vous essayez le défi pour vous-même et que vous avez besoin d’un coup de pouce sur le bon chemin.

Regardons rapidement deux autres défis, puis je passerai aux ressources que vous pouvez utiliser pour en savoir plus sur les FFC, comment y participer, ou même comment en accueillir un.

Pour notre prochain exemple, il semble opportun de choisir la tâche  » xref  » étant donné toutes les nouvelles concernant les récentes infections par ransomware WannaCry :

Tâche 'xref' sélectionnée dans la FFC

Voici les détails pour ‘xref’:

Vous remarquerez que cette description ne fournit pas beaucoup d’éléments sur lesquels s’appuyer. C’est ce qui rend cette tâche particulièrement intéressante et constitue en quelque sorte un défi ; si vous ne l’avez jamais fait auparavant, il sera difficile de savoir même par où commencer. Heureusement, cependant, cet événement est terminé, nous allons donc utiliser l’une des rédactions pour avoir une idée de la façon dont le défi a été résolu.

L’URL ici : https://github.com/1337pwnie/ctf-writeups/tree/master/2017/UIUCTF fournit les détails. Dans ce cas, il y a un fichier README contenu dans le fichier .ZIP fourni qui donne un indice. Pour résoudre le défi, il faut écrire du code (bien qu’il semble manquer la balise « programmation » dans la tâche). Plutôt que de reprendre l’intégralité de l’écriture ici, n’hésitez pas à parcourir l’URL et la solution étape par étape.

Après, examinons notre dernière tâche :

Goodluck est une vulnérabilité au p0wn en CTF

Goodluck est une vulnérabilité au format chaîne de caractères  » p0wn « , ce qui signifie essentiellement que le fait de marquer contre elle crachera le drapeau. Dans le monde réel, idéalement, l’accomplissement d’une telle tâche vous donnerait un accès sans entrave à la machine cible. Voici les détails sur goodluck:

détails sur goodluck dans ctf

Pour résoudre cela, nous devons trouver comment utiliser une vulnérabilité de format de chaîne pour nous donner un drapeau. Les détails de ceci sont techniques et approfondis, alors veuillez consulter la section des ressources ci-dessous pour les liens vers les différents défis mentionnés dans ce post et vous pouvez ensuite utiliser les différents écrits sur les différentes solutions qui ont été utilisées pour résoudre les défis/tâches.

Comment puis-je en savoir plus sur la FFC ?

Il existe de nombreuses ressources à travers le web que vous pouvez utiliser pour déterminer comment jouer à une FFC ou comment accueillir une FFC. Interrogez Google et YouTube pour obtenir des détails sur les divers événements à venir auxquels vous pouvez participer. Beaucoup d’entre eux permettent aux joueurs à distance d’entrer dans le jeu, de sorte que vous n’avez pas nécessairement besoin d’assister physiquement à un événement pour y participer. La FFC spécifique que j’ai utilisée pour discuter du fonctionnement de la FFC et de mes expériences en la matière est tirée d’ici : https://ctftime.org/event/453.

Voici une autre ressource intéressante et utile qui pourrait vous être utile : http://www.amanhardikar.com/mindmaps/Practice.html. Cette URL vous donne accès à un large éventail d’outils impliquant tous des applications vulnérables, des applications web, des systèmes d’exploitation, etc. Ces ressources sont un excellent point de départ.

Si Google, YouTube et les autres ressources présentées ici ne répondent pas à vos questions, n’hésitez pas à me contacter directement et j’essaierai de vous aider autant que possible. Vous pouvez me contacter sur Twitter @CerebralMisjif. N’hésitez pas à me suivre ou à m’envoyer un ping là-bas et je ferai de mon mieux pour répondre à toutes vos questions.

Conclusion

Ce blog est conçu pour une personne tout à fait novice en matière de FFC, et il devrait vous donner le courage de participer à une FFC et de voir par vous-même à quoi cela ressemble. Les événements de la FFC sont d’excellents endroits pour rencontrer d’autres enthousiastes/professionnels de la sécurité de l’information, et ils offrent également de bonnes occasions de créer un réseau, de développer vos compétences dans un environnement sûr, et de vous amuser tout en le faisant. Dans certains cas, des récompenses sont remises au gagnant d’un événement de la FFC et celles-ci peuvent être très agréables à mettre en avant si vous cherchez à faire carrière dans le domaine de l’InfoSec.

J’espère que vous avez trouvé cet article utile, et éducatif. J’espère également que vous avez acquis une meilleure compréhension de ce qu’est un CTF, comment il peut aider à améliorer vos connaissances, vos compétences ainsi que votre capacité à défendre les systèmes actuels, et surtout, à quel point un CTF peut être amusant ! Comme je l’ai mentionné, certains sites commencent maintenant à permettre aux joueurs à distance de participer à des événements CTF, alors gardez l’œil ouvert si vous êtes intéressé. J’espère vous voir à l’un d’entre eux un jour ; n’hésitez pas à me contacter si vous serez présent à l’un des événements pour que nous puissions essayer de nous rencontrer.

Laisser un commentaire

Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *