Vous ouvrez un défi CTF et l'énoncé tient en une ligne incompréhensible : SGFja2VyRE5Be2ZpcnN0X3JlY2lwZX0=. Aucun indice, aucun fichier, rien d'autre. Apprendre à utiliser CyberChef, c'est transformer cette ligne en texte lisible en huit secondes environ, et rendre lisibles les versions à cinq couches qui, elles, ne cèdent pas autrement.
CyberChef est un outil web qui enchaîne des transformations de données dans ce qu'il appelle une recette. Vous collez quelque chose, vous empilez quelques opérations, et vous regardez la sortie se mettre à jour au fur et à mesure. C'est l'outil que la plupart des joueurs de CTF ouvrent avant tous les autres, et une fois que vous maîtrisez les quatre panneaux et l'opération Magic, vous couvrez environ 80 pour cent des besoins réels d'un débutant. Si la différence entre Base64 et AES reste floue, le chapitre encodage contre chiffrement de notre cours Hacking 101 vaut dix minutes avant de commencer.
En bref : CyberChef est une application web libre et gratuite publiée par le GCHQ, qui décode, déchiffre, analyse et transforme des données entièrement dans votre navigateur. Glissez des opérations dans le panneau recette, collez vos données dans l'entrée, lisez le résultat dans la sortie. Commencez par l'opération Magic pour identifier des données inconnues, puis construisez des recettes explicites une fois que vous savez ce que vous avez sous les yeux. L'outil fonctionne hors ligne sous la forme d'un simple fichier HTML, et il n'envoie jamais votre entrée où que ce soit.
Qu'est-ce que CyberChef ?
CyberChef est une application web gratuite et open source dédiée à l'encodage, au décodage, au chiffrement, à la compression et à l'analyse de données, développée par le GCHQ britannique et publiée sous licence Apache 2.0. Elle regroupe des centaines d'opérations dans une seule page et permet de les enchaîner en séquences appelées recettes. Le surnom du projet, le couteau suisse du cyber, est pour une fois mérité.
Le point le plus important pour votre façon de l'utiliser : tout s'exécute en local. Le README du projet est explicite : "aucune de vos configurations de recette ni de vos entrées (texte ou fichiers) n'est jamais envoyée au serveur web de CyberChef, tout le traitement se fait dans votre navigateur, sur votre propre ordinateur". Chargez la page une fois, coupez votre connexion réseau, et vous pouvez continuer à travailler.
La version 11.4.0 est la version actuelle. Il n'y a ni compte, ni offre payante, ni limite d'usage. Vous ouvrez gchq.github.io/CyberChef et vous commencez.
Un cadrage honnête avant de vous emballer sur les opérations de cryptographie : CyberChef est un outil de manipulation de données spectaculaire et un outil de cryptanalyse médiocre. Il décode, désamorce, analyse, extrait et reformate plus vite que n'importe quel script que vous pourriez écrire. Il ne cassera pas le chiffrement moderne, et les débutants qui cherchent un bouton "AES Decrypt" capable de retrouver la clé par magie vont être déçus.
Les quatre panneaux, en soixante secondes
L'interface paraît plus chargée qu'elle ne l'est. Quatre panneaux, et vous n'en manipulez que trois.
- Operations (tout à gauche). Toutes les opérations disponibles, réparties en catégories comme Data format, Encryption / Encoding, Hashing, Forensics et Flow control. Ignorez les catégories. Servez-vous du champ de recherche en haut, parce que taper "base" vous amène à
From Base64plus vite que n'importe quel défilement. - Recipe (au milieu). Votre chaîne d'opérations, exécutée de haut en bas. Glissez les opérations depuis la gauche, déplacez-les pour changer l'ordre, et sortez-les du panneau pour les supprimer.
- Input (en haut à droite). Collez du texte ici, ou déposez-y directement un fichier. Les fichiers jusqu'à 2 Go se chargent dans le navigateur.
- Output (en bas à droite). Le résultat. Il se met à jour automatiquement à chaque modification, un comportement que l'application appelle Auto Bake.
Deux commandes deviennent vite indispensables. L'icône de désactivation présente sur chaque opération permet de la couper sans la supprimer, ce qui sert à vérifier si une couche est vraiment nécessaire. L'icône de point d'arrêt met la recette en pause avant l'opération concernée, ce qui vous laisse inspecter la sortie intermédiaire au lieu de deviner quelle étape a cassé la chaîne.
Dans la pratique, le point d'arrêt est la fonction qui sépare ceux qui se battent avec CyberChef de ceux qui s'en servent. Quand une recette de cinq étapes renvoie n'importe quoi, poser un point d'arrêt sur l'étape trois vous dit en un clic si le problème est en amont ou en aval.
Votre première recette : Base64 en trois clics
Reprenez la chaîne du début. Collez SGFja2VyRE5Be2ZpcnN0X3JlY2lwZX0= dans le panneau d'entrée, tapez "base64" dans la recherche d'opérations, et double-cliquez sur From Base64. La sortie affiche immédiatement :
HackerDNA{first_recipe}
Le = final est du remplissage, et c'est l'un des moyens les plus rapides de reconnaître du Base64 à l'œil. Une chaîne mêlant majuscules, minuscules et chiffres, terminée par un ou deux signes égal, dont la longueur est divisible par quatre, est presque toujours du Base64.
Passons maintenant à la version qui apparaît réellement dans les défis. Collez ceci :
NjY2YzYxNjc3YjZjNjE3OTY1NzI3MzVmNjE2YzZjNWY3NDY4NjU1Zjc3NjE3OTVmNjQ2Zjc3NmU3ZA==
Lancez From Base64 et la sortie n'est pas un flag, c'est un autre mur de caractères :
666c61677b6c61796572735f616c6c5f7468655f7761795f646f776e7d
C'est de l'hexadécimal : uniquement les caractères 0 à 9 et a à f, et une longueur paire. Glissez From Hex sous l'opération existante et la recette exécute maintenant les deux étapes dans l'ordre :
flag{layers_all_the_way_down}
Toute l'idée est là. Chaque opération transmet sa sortie à la suivante, donc éplucher quatre couches d'encodage coûte quatre doubles-clics au lieu de quatre appels d'outils distincts. Une fois la recette au point, l'URL dans votre barre d'adresse contient à la fois la recette et l'entrée, donc copier cette URL partage la solution exacte avec un coéquipier. Retenez ce détail, il a une conséquence en matière de sécurité, abordée plus bas.
Magic : l'opération qui devine à votre place
Magic est une opération CyberChef qui examine votre entrée, détermine l'encodage le plus probable et propose la recette qui le décode. Déposez-la dans une recette vide avec des données inconnues en entrée, et elle renvoie une liste classée de décodages candidats, chacun étant un lien cliquable qui charge la recette correspondante.
Il vaut la peine de comprendre ce qu'elle fait, parce que cela vous dit quand lui faire confiance. D'après le wiki du GCHQ consacré à cette opération, Magic combine plusieurs signaux :
- Des expressions régulières écrites pour chaque opération dont l'entrée a une forme prévisible, ce qui lui permet de repérer Base64, l'hexadécimal et Gzip.
- L'exécution spéculative. Elle exécute réellement les opérations candidates et note si les résultats ressemblent à des données valides.
- Les octets magiques. Les signatures de fichier en tête des données décodées, ce qui permet d'identifier un blob Base64 comme un ZIP ou un PNG dissimulé.
- L'entropie de Shannon. Une entropie basse signale davantage de structure, et la structure signifie que le décodage a probablement fonctionné.
- L'analyse de fréquence des octets avec le test du chi carré de Pearson face aux fréquences de caractères attendues dans une langue, pour juger si la sortie ressemble à du vrai texte.
Deux arguments changent nettement son comportement. Depth fixe le nombre de niveaux de récursion tentés, donc l'augmenter permet de trouver des encodages imbriqués qu'une passe unique manque. Intensive mode active les méthodes lentes : force brute sur plus de 40 encodages de caractères, plus des tentatives de XOR et de rotation de bits. Depth à 3 avec Intensive mode coché est une bonne configuration par défaut quand vous bloquez.
Mon avis tranché : utilisez Magic en premier, et arrêtez de l'utiliser en second. C'est le bon coup d'ouverture sur des données inconnues, et c'est une mauvaise habitude comme méthode permanente. Magic échoue sur les clés XOR de plusieurs octets, sur le Base64 à alphabet personnalisé, sur tout ce qui a une entropie réellement élevée, et sur des données qui se décodent dans une langue qu'elle ne teste pas par défaut. Les joueurs qui stagnent sont ceux qui lancent Magic, n'obtiennent rien, et n'ont pas de deuxième idée. Apprenez à reconnaître les encodages vous-même et Magic redevient un raccourci plutôt qu'une béquille.
Les recettes à connaître par cœur
La plupart des défis pour débutants se ramènent à un petit nombre de schémas. Gardez ce tableau ouvert à côté de la liste des défis.
| Ce que vous avez sous les yeux | Opération à lancer |
|---|---|
Lettres et chiffres se terminant par = ou == |
From Base64 |
| Uniquement 0-9 et a-f, longueur paire | From Hex |
%41%42%43 ou des + à la place des espaces |
URL Decode |
Structure lisible, mauvaises lettres (Gur synt vf) |
ROT13, ou ROT13 Brute Force pour d'autres décalages |
Trois blocs séparés par des points commençant par eyJ |
JWT Decode |
| Une chaîne hexadécimale de 32, 40 ou 64 caractères | Analyse hash |
De longues suites de 01000001 |
From Binary |
| Rien de reconnaissable | Magic, Depth 3, Intensive mode activé |
Trois de ces cas méritent mieux qu'une ligne de tableau.
XOR Brute Force
Le XOR à un octet est le "chiffrement" le plus courant dans les défis de crypto pour débutants, et ce n'est pas du chiffrement du tout. Prenez cet hexadécimal :
624b49414f586e646b515245587543597544455e754f444958535a5e43454457
Lancez From Hex, puis ajoutez XOR Brute Force. L'opération essaie les 256 clés d'un octet possibles et affiche le résultat de chacune, il vous reste à parcourir la liste pour trouver la ligne qui ressemble à de l'anglais. Ici c'est la clé 2a, qui donne HackerDNA{xor_is_not_encryption}.
L'argument qui fait vraiment gagner du temps est Crib. Si vous savez que le format du flag commence par HackerDNA{ ou flag{, mettez cette chaîne dans le champ Crib et CyberChef n'affiche que les clés dont la sortie la contient. Sur un défi à 256 lignes candidates, le parcours devient un résultat unique.
Analyse hash
Déposez un hachage dans l'entrée, lancez Analyse hash, et CyberChef vous donne la longueur en bits ainsi que les algorithmes produisant des empreintes de cette taille. Une chaîne hexadécimale de 32 caractères est du MD5 ou l'un des candidats moins courants, 40 caractères correspond à SHA-1, 64 à SHA-256. CyberChef identifie le hachage, il ne le casse pas, c'est donc un point de passage et non une solution. Notre guide sur le cassage de hachages de mots de passe couvre les outils qui prennent le relais.
Detect File Type et Extract Files
Quand un défi vous remet un fichier avec une extension fausse ou absente, déposez-le sur le panneau d'entrée et lancez Detect File Type. L'opération lit les octets magiques et vous dit ce que vous tenez réellement. Enchaînez avec Extract Files et CyberChef sort les fichiers embarqués qu'il trouve à l'intérieur, ce qui équivaut à lancer binwalk -e dans le navigateur, souvent plus vite pour un échantillon unique.
Ce dernier duo fait basculer CyberChef vers l'analyse forensique. Si le fichier se révèle être une image et que le flag n'est pas dans les métadonnées, notre guide de détection de stéganographie prend la suite.
Trois opérations que les débutants ne trouvent jamais
Elles se trouvent dans la catégorie Flow control, que presque personne n'ouvre, et ce sont elles qui séparent celui qui a découvert CyberChef il y a cinq minutes de celui qui résout des défis que tous les autres ont abandonnés.
Fork découpe votre entrée selon un séparateur et exécute le reste de la recette sur chaque morceau indépendamment. Collez cent chaînes Base64, une par ligne, ajoutez Fork avec un saut de ligne comme séparateur, puis From Base64, et vous décodez les cent d'un coup au lieu d'une à la fois. C'est le plus gros gain de temps de tout l'outil.
Subsection applique les opérations suivantes uniquement aux parties de l'entrée qui correspondent à une expression régulière. Quand un fichier de journalisation contient des blobs Base64 dispersés dans du texte par ailleurs lisible, Subsection décode seulement les blobs et laisse les lignes autour intactes. Sans elle, vous recopiez des fragments à la main.
Register capture une valeur dans vos données à l'aide d'une expression régulière et la stocke pour la réutiliser comme argument d'une opération ultérieure. C'est ainsi que l'on traite un fichier qui transporte sa propre clé de déchiffrement dans un en-tête : capturez la clé avec Register, puis référencez-la dans l'étape de déchiffrement. Il faut quelques essais pour s'y sentir à l'aise, et c'est l'opération qui rend CyberChef programmable.
Aucune des trois n'est une opération de premier jour. Ce sont celles vers lesquelles revenir en troisième semaine, quand vous butez sur le problème qu'elles existent pour résoudre.
Là où CyberChef bat le terminal, et là où il perd
CyberChef gagne sur la vitesse d'itération. Tester six hypothèses de décodage dans un REPL Python signifie six cycles d'édition et de relance. Dans CyberChef, cela signifie six doubles-clics avec la réponse qui se redessine à chaque fois, et la chaîne visuelle vous laisse voir où l'hypothèse a cassé au lieu de le déduire d'une trace d'erreur. Il fonctionne aussi sur un ordinateur portable d'entreprise verrouillé où vous ne pouvez rien installer, ce qui compte plus qu'il n'y paraît.
Il perd sur trois points, et il perd nettement.
- Les gros fichiers. Tout vit dans la mémoire du navigateur. Des entrées de plusieurs centaines de mégaoctets rendront l'onglet poussif ou le feront planter, et Auto Bake qui retraite à chaque frappe aggrave le problème. Désactivez Auto Bake et lancez le traitement manuellement quand vous travaillez sur du volume.
- Tout ce que vous devez exécuter deux fois. Une recette n'est pas un script. Si une transformation fait partie d'un processus répétable, portez-la en Python ou en pipeline shell. CyberChef sert à déterminer quelle est la transformation, pas à l'héberger ensuite.
- La logique sur mesure. Dès que votre problème demande une boucle avec une condition pour laquelle CyberChef n'a pas d'opération, vous ferez mieux d'écrire dix lignes de Python que de vous battre avec Conditional Jump.
La méthode qui tient vraiment la route : prototypez dans CyberChef, puis réécrivez la chaîne validée sous forme de script une fois que vous savez qu'elle est correcte. L'outil est un laboratoire, pas une chaîne de production.
Faire tourner CyberChef hors ligne
Le lien en haut à gauche de l'application télécharge une copie complète et autonome sous la forme d'un unique fichier HTML. Enregistrez-le, ouvrez-le dans n'importe quel navigateur, et vous avez l'outil entier sans aucune connexion réseau. Toutes les opérations fonctionnent encore, puisqu'elles s'exécutaient déjà en local.
Deux situations font passer cette copie du confort à la seule option acceptable.
La première est l'analyse de quoi que ce soit de réellement suspect. Travailler depuis un fichier local dans une machine virtuelle isolée maintient l'analyse confinée, et supprime le risque qu'une extension de navigateur oubliée lise la page.
La seconde concerne les données d'un client ou d'un employeur. Même si rien ne quitte votre machine, la plupart des contrats de mission et des politiques internes interdisent de coller des données clients sur un site tiers, et "le traitement est côté client" n'est pas l'argument que vous voulez avoir à défendre après coup. Utilisez la copie hors ligne et la question ne se pose jamais.
Si vous préférez une instance partagée pour une équipe plutôt qu'un fichier par personne, le GCHQ publie une image de conteneur officielle :
docker run -it -p 8080:8080 ghcr.io/gchq/cyberchef:latest
Cela sert l'outil sur http://localhost:8080 sans dépendance externe. Le fichier HTML hors ligne est aussi utile à garder sur une clé USB avant un CTF où le Wi-Fi du lieu est incertain. Cela a fait gagner une heure à plus d'une équipe.
Considérations légales et éthiques
Rappel essentiel : obtenez toujours une autorisation écrite explicite avant de tester un système. Décoder des données est passif, mais leur provenance ne l'est pas, et détenir ou exploiter des données obtenues sans permission engage la même responsabilité juridique quel que soit l'outil utilisé pour les lire.
CyberChef lui-même ne touche au système de personne, ce qui le place dans une position plus douce que la plupart des outils offensifs. Les risques portent sur les données que vous lui donnez, et deux d'entre eux prennent les gens au dépourvu.
Le premier est l'URL partageable. Quand vous copiez la barre d'adresse pour envoyer une recette à un coéquipier, le fragment d'URL contient votre entrée en plus de votre recette. Collez ce lien dans un Discord public, un message de forum ou un compte rendu et vous avez publié tout ce qui se trouvait dans le panneau d'entrée. C'est la façon la plus courante de divulguer accidentellement un échantillon ou un identifiant avec cet outil, et c'est entièrement évitable une fois que vous le savez.
Le second concerne ce que vous faites de la sortie. Décoder un identifiant que vous avez trouvé est trivialement facile et ne vous donne pas le droit de l'utiliser.
Les cas clairement autorisés
- Les défis CTF et les plateformes d'entraînement, ce à quoi l'essentiel de ce guide s'adresse
- Les fichiers et le trafic issus de systèmes que vous possédez ou qu'une mission signée couvre par écrit
- Les échantillons de logiciels malveillants, dans un environnement d'analyse isolé
- Vos propres données, y compris comprendre ce qu'une application a stocké à votre sujet dans un cookie
La limite ne tient pas à l'outil. Si votre périmètre ne nomme pas le système d'où viennent les données, ces données ne sont pas les vôtres à décoder.
Questions fréquentes
À quoi sert CyberChef ?
À encoder et décoder des données, chiffrer et déchiffrer avec des clés connues, compresser, hacher, analyser des formats comme JWT et X.509, et extraire des fichiers de blobs binaires. Les joueurs de CTF s'en servent pour les défis de crypto et de forensique, les analystes SOC pour désamorcer des URL et décoder des scripts obscurcis, et les développeurs comme convertisseur de formats rapide.
CyberChef est-il sûr avec des données sensibles ?
Tout le traitement a lieu dans votre navigateur et aucune entrée n'est envoyée au serveur CyberChef. Cela dit, utilisez la copie hors ligne téléchargeable pour des données clients ou des échantillons malveillants, car la plupart des contrats de mission interdisent de coller des données clients sur un site tiers, quel que soit l'endroit où le traitement se déroule.
Comment utiliser l'opération Magic dans CyberChef ?
Collez vos données inconnues dans le panneau d'entrée, cherchez "Magic" dans la liste des opérations et double-cliquez dessus. Elle renvoie des décodages candidats classés sous forme de liens cliquables qui chargent la recette proposée. Augmentez l'argument Depth pour trouver les encodages imbriqués et activez Intensive mode pour forcer les encodages de caractères et les clés XOR.
Peut-on utiliser CyberChef hors ligne ?
Oui. Le lien en haut à gauche de l'application télécharge l'outil entier sous la forme d'un unique fichier HTML. Ouvrez-le dans n'importe quel navigateur sans connexion réseau et toutes les opérations fonctionnent normalement. Vous pouvez aussi l'héberger vous-même ou le lancer depuis un conteneur Docker.
CyberChef est-il gratuit ?
Oui. Il est publié par le GCHQ sous licence Apache 2.0, avec le code source sur GitHub. Il n'y a ni compte, ni offre payante, ni limite d'usage, et vous êtes libre de le forker ou d'exécuter votre propre instance.
CyberChef peut-il casser du chiffrement ?
Non, et c'est le malentendu le plus répandu à son sujet. CyberChef déchiffre quand vous fournissez la clé, et il force les schémas triviaux comme le XOR à un octet ou les chiffres par rotation. Il n'a aucune capacité contre AES, RSA ou n'importe quel algorithme moderne dont la clé est inconnue.
Vos prochaines étapes
Savoir utiliser CyberChef tient à une boucle courte que vous répéterez pendant des années : reconnaître l'encodage à l'œil quand c'est possible, lancer Magic avec Depth 3 quand ça ne l'est pas, enchaîner les opérations qui épluchent chaque couche, et poser un point d'arrêt dès que la sortie cesse d'avoir du sens. Fork, Subsection et Register vous attendent quand les recettes simples ne suffisent plus.
Lire un article sur le décodage n'a rien à voir avec le fait de rester bloqué devant une chaîne qui refuse de se décoder. Essayez le lab Base64 Detective pour l'encodage en couches, puis Caesar Shift Decoder pour les chiffres classiques. Les deux tournent dans le navigateur sur l'offre gratuite de HackerDNA, sans carte bancaire et sans installation, et notre cours Hacking 101 construit les fondamentaux autour si vous partez de zéro.
Articles liés :
- Outils CTF
- Catégories CTF
- CTF pour débutants
- Comment utiliser CyberChef
- Comment utiliser ExifTool
- Stéganographie
- Cassage de hachages