Aller au contenu principal

Introduction aux CTF

Notions théoriques

Les Capture The Flag (CTF) sont des compétitions de cybersécurité où les participants doivent résoudre des défis pour trouver des "flags" (indicateurs secrets).

remarque

Ces compétitions permettent d'apprendre et de pratiquer différentes techniques de hacking éthique.

Types de CTF

Il existe plusieurs types de CTF, chacun mettant l’accent sur des compétences spécifiques.

  • Jeopardy : Une série de défis indépendants classés par catégories (cryptographie, exploitation, forensic, Web, etc.).
  • Attack-Defense : Chaque équipe défend son infrastructure tout en attaquant celles des adversaires.
  • Boot2Root : Un système est mis à disposition et le but est d’obtenir un accès administrateur en exploitant ses vulnérabilités.

Catégories de défis courants

Les défis de CTF couvrent plusieurs domaines :

  • Cryptographie : Déchiffrer des messages codés.
  • Forensic : Analyser des fichiers suspects à la recherche d’indices.
  • Reverse Engineering : Comprendre le fonctionnement d’un programme sans le code source.
  • Exploitation : Trouver et exploiter des failles de sécurité.
  • Web : Identifier des vulnérabilités dans des applications Web.

Format des flags

Les flags sont généralement des chaînes de caractères formatées de manière spécifique, comme :

FLAG{exemple_de_flag}

Ils sont cachés dans des fichiers, du code source, des bases de données ou des applications Web.

Techniques utilisées en CTF

Le forensic et le reverse engineering sont 2 techniques essentielles en cybersécurité, chacune avec un objectif distinct :

Forensic

Le forensic, également appelé analyse forensique ou investigation numérique, est un examen méthodique et approfondi des actes effectués sur un système informatique après une attaque.

Son objectif principal est de reconstituer le déroulement de l'intrusion et de collecter des preuves numériques fiables.

Cette technique permet de :

  • Déterminer les causes racines des incidents identifiés
  • Évaluer l'impact de l'incident sur le plan technique et pour les différents métiers
  • Livrer une analyse détaillée des actions menées par l'attaquant

L'analyse forensique utilise diverses techniques, notamment :

  • Récupération des données supprimées ou cachées
  • Traitement et analyse des données collectées
  • Établissement d'une timeline détaillée des événements

Reverse Engineering

Le reverse engineering, ou rétro-ingénierie, est un processus qui vise à remonter à l'origine d'un programme ou d'un logiciel.

Dans le contexte de la cybersécurité, il s'agit d'analyser une attaque en étudiant les différentes étapes de sa réalisation.

Les objectifs du reverse engineering incluent :

  • Décomposer et analyser une attaque, un virus ou un logiciel malveillant
  • Comprendre le mode de fonctionnement d'une attaque
  • Établir les différentes étapes d'une intrusion
  • Revenir à l'origine de la faille de sécurité[4]

Le reverse engineering est particulièrement utile pour l'analyse de programmes malveillants, permettant d'établir des signatures de détection et d'améliorer les mesures de protection contre les cyberattaques[4].

Outils utilisés en CTF

Les compétiteurs utilisent divers outils pour résoudre les défis :

  • Wireshark : Analyse de trafic réseau.
  • Burp Suite : Tests de sécurité Web.
  • John the Ripper : Cassage de mots de passe.
  • Ghidra : Reverse engineering de binaires.
  • CyberChef : Manipulation de données et cryptographie.

Les CTF permettent d'améliorer ses compétences en cybersécurité et sont un bon entraînement pour les métiers de la sécurité informatique.


Exemple pratique

Il est possible de résoudre un défi simple de CTF en analysant un fichier texte contenant un flag caché.

1. Récupération du fichier

Télécharger un fichier texte contenant un flag caché :

wget https://exemple.com/fichier_ctf.txt

2. Recherche du flag dans le fichier

Afficher le contenu du fichier :

cat fichier_ctf.txt

Si le flag n’est pas visible immédiatement, rechercher un motif spécifique :

grep -oE "FLAG\{.*\}" fichier_ctf.txt

3. Analyse avancée

Si le flag est encodé, utiliser CyberChef ou la commande base64 :

cat fichier_ctf.txt | base64 -d

Une fois le flag trouvé, il peut être soumis sur la plateforme du CTF.

Test de mémorisation/compréhension


Quel est le but principal d’un CTF ?


Quel type de CTF implique la défense et l’attaque d’infrastructures ?


Quel format a généralement un flag en CTF ?


Quel outil est utilisé pour analyser le trafic réseau ?


Quelle commande permet de rechercher un flag dans un fichier texte ?


Quelle catégorie de CTF consiste à comprendre le fonctionnement d’un programme sans son code source ?


Quel outil est utilisé pour tester la sécurité des applications Web ?


Quelle commande permet de décoder un texte encodé en base64 ?


Quel type de CTF consiste à obtenir un accès administrateur sur une machine cible ?


Quel outil est couramment utilisé pour casser des mots de passe en CTF ?



TP pour réfléchir et résoudre des problèmes

Retrouver un flag caché dans un fichier texte

Objectif

Ce TP a pour but de retrouver un flag caché dans un fichier texte en utilisant différentes techniques d’analyse et de manipulation de données.

Vous apprendrez à rechercher des motifs, analyser des fichiers et décoder des informations.

Étape 1 : Télécharger le fichier contenant le flag

Le fichier contenant le flag est hébergé sur un dépôt public GitHub.

Il faut le récupérer sur la machine locale :

  1. Ouvrir un terminal.

  2. Télécharger le fichier avec la commande suivante :

    wget https://raw.githubusercontent.com/OpenCTF/exercices/main/fichier_ctf.txt
  3. Vérifier que le fichier est bien téléchargé :

    ls -l fichier_ctf.txt
Une solution

Étape 2 : Analyser le contenu du fichier

Avant de chercher le flag, il est nécessaire d’examiner le fichier :

  1. Afficher son contenu avec :

    cat fichier_ctf.txt
  2. Si le fichier est trop long, afficher uniquement les 10 premières lignes :

    head fichier_ctf.txt
  3. Vérifier si le flag est directement visible.

Une solution

Étape 3 : Rechercher un flag caché dans le fichier

Si le flag n’est pas visible immédiatement, il peut être dissimulé dans le texte :

  1. Rechercher une chaîne correspondant à un flag avec grep :

    grep -oE "FLAG\{.*\}" fichier_ctf.txt
  2. Si aucun résultat n’apparaît, essayer avec une recherche insensible à la casse :

    grep -i "flag" fichier_ctf.txt
  3. Si le fichier est volumineux, utiliser less pour une navigation plus facile :

    less fichier_ctf.txt
Une solution

Étape 4 : Vérifier si le flag est encodé

Si le flag n’est pas trouvé, il peut être caché sous une forme encodée :

  1. Vérifier si le fichier contient du texte encodé en base64 :

    cat fichier_ctf.txt | base64 -d
  2. Si le texte décodé contient un flag, le noter.

  3. Si le flag n’apparaît toujours pas, tester un encodage hexadécimal :

    xxd -r -p fichier_ctf.txt
Une solution

Étape 5 : Vérifier s'il y a des métadonnées cachées

Le flag peut être dissimulé dans les métadonnées du fichier :

  1. Examiner les informations du fichier avec :

    file fichier_ctf.txt
  2. Vérifier les métadonnées avec strings :

    strings fichier_ctf.txt | grep "FLAG"
  3. Si le fichier est une image ou un document, utiliser exiftool :

    exiftool fichier_ctf.txt
Une solution

Étape 6 : Soumettre le flag

Une fois le flag trouvé, il doit être soumis sur la plateforme de CTF :

  1. Copier le flag trouvé.

  2. Se connecter à la plateforme de CTF.

  3. Coller le flag dans le champ prévu et valider.

Une solution

À vous de jouer !

Résolvez le défi CTF de la Marine Nationale

https://marine.pro.root-me.org/

Vous avez déjà un titre Bac+2 (BTS CIEL, SIO ou une autre formation) ou êtes en bonne voie pour l'obtenir d'ici la fin de l'année scolaire ? Alors participez à un challenge immersif organisé par le Commandement de la Cyberdéfense au profit de la Marine nationale. C’est l’occasion parfaite de découvrir les compétences attendues pour participer à des opérations militaires en tant qu'officier marinier (sous-officier de la Marine nationale) ! Missions exceptionnelles, environnement hors du commun, serez-vous prêts à vous engager ? Si vous souhaitez postuler, pensez à bien conserver les flags et solutions que vous avez utilisées pour mener à bien cette mission.