Retour aux mises à jour
New releaseJul 31, 2026

yakit v1.4.8-0731

Plateforme de test d'intrusion tout-en-un avec proxy MITM, fuzzer web, gestionnaire de connexion inverse et système de plugins pour les tests de sécurité automatisés et l'exploitation.

Partager

Yakit – Plateforme de test de sécurité applicative interactive

Consulter le livre blancDocumentation officielleRetours / ProblèmesAccéder au site officielRejoindre la communautéArchitecture du projet

:book:Choix de la langue : English中文


Introduction à Yakit

La fusion sécurisée est une transformation de la gestion et des opérations de sécurité pour les entreprises dans le contexte de la nouvelle normalité, et elle constitue également une priorité urgente.

Fondée sur le concept de fusion sécurisée, l’équipe de Yaklang.io a développé Yaklang, un langage vertical dans le domaine de la cybersécurité. Pour les produits/outils qui ne peuvent pas être intégrés nativement dans la plateforme Yak, Yaklang permet de réécrire leurs « alternatives de haute qualité ». Pour les produits dont l’écosystème est complet et la reconnaissance élevée, Yaklang peut directement les compiler et les fusionner, en apportant les modifications nécessaires au code source pour mieux les adapter. Pour les professionnels de la sécurité qui ne souhaitent pas écrire de code, Yakit fournit une interface graphique adaptée à toutes les capacités de Yaklang ; celle-ci deviendra plus mature au fil des versions.

yakit-cdsl.png

Afin de rendre les capacités de sécurité de Yaklang plus proches de l’usage réel, nous avons développé un serveur gRPC pour Yak, et construit un client utilisant ce serveur : Yakit.

Architecture du projet

yakit-arch.jpg

Technologie de base : CDSL

CDSL signifie CyberSecurity Domain Specific Language, un langage de programmation dédié au domaine de la cybersécurité. Nous avons conçu une machine virtuelle à pile pour exécuter l’état d’exécution de ce langage Turing-complet. Nous souhaitons, via les moyens de « CDSL », réaliser la fusion des capacités de sécurité et l’unification de la plateforme sous-jacente.

Afin que le CDSL développé en propre dans le domaine de la sécurité soit plus proche des scénarios réels, nous avons écrit un serveur gRPC pour Yaklang, et construit le client Yakit sur ce serveur gRPC. En pratique, c’est l’interface graphique de Yakit qui pilote les capacités du moteur. Le serveur gRPC de Yakit permet un déploiement plus pratique et rapide, indépendant de la plateforme, avec possibilité de déploiement à distance ou en local sur la machine hôte.

yakit-gongneng.png

  1. Plateforme d’interception MITM qui peut remplacer à 100 % BurpSuite ;
  2. Interface graphique d’analyse passive MITM difficile à reproduire ;
  3. Intégration de scripts Yaklang pour déboguer dynamiquement le trafic ; exécution de code en temps réel ;
  4. Premier outil de fuzzing Web visuel au monde – Web Fuzzer ;
  5. Magasin de plugins Yakit ;
  6. Exécution de scripts ou plugins Yaklang personnalisés à n’importe quelle étape d’un test d’intrusion… ……

Aperçu des capacités de sécurité :

yaklang-caps.jpg

Technologies phares

Interception interactive MITM

La console MITM peut remplacer à 100 % BurpSuite pour toutes les opérations (téléchargement et installation de certificats, interception de requêtes, réponses, édition des paquets interceptés, etc.). Elle fournit également un flux de travail complet et fluide : Interception => Historique => Repeater/Intruder. Les données interceptées sont consultables dans l’historique ; vous pouvez sélectionner les paquets à « exploiter » et les envoyer vers Web Fuzzer pour les opérations Repeater/Intruder. En plus de ces scénarios typiques, le module MITM propose des fonctionnalités plus flexibles comme l’analyse passive par plugins, le chargement à chaud, le remplacement de paquets, le marquage, etc.

Le principe du module MITM de Yakit est de lancer un proxy HTTP qui transfère automatiquement le trafic. Lorsque l’utilisateur active l’interception manuelle, le transfert automatique est interrompu, la requête est bloquée, puis extraite de la pile, décompressée (Gzip), les chunks sont traités, le décodage est effectué, rendant la requête lisible et affichée sur l’interface utilisateur. L’utilisateur peut consulter, modifier ou rejouer la requête. Lors du rejeu, le paquet de requête HTTP construit par l’utilisateur est réparé pour garantir sa validité. Le moteur Yak implémente manuellement la bibliothèque HTTP, permettant ainsi à l’utilisateur de personnaliser des paquets de requête/réponse malformés pour l’exploitation de vulnérabilités dans des scénarios particuliers.

yakit-mitm.png

Rejeu interactif du trafic et fuzzing d’applications Web

Le module Web Fuzzer permet à l’utilisateur d’envoyer des requêtes HTTP en texte brut personnalisées. Pour simplifier l’utilisation et l’intuition, l’utilisateur n’a besoin de se soucier que des données pertinentes ; le backend de Yakit effectue de nombreuses corrections. Les informations nécessaires à la transmission et à l’analyse des données dans le texte HTTP brut sont corrigées/complétées par le backend de Yakit, par exemple la correction des CRLF, l’ajout de Content-Type, le transfert par chunk, l’ajout de boundary, la correction de Content-Length, etc.

webfuzzer.png

Technologie Fuzztag

Le module Web Fuzzer prend en charge les tags Fuzz, intégrant naturellement et parfaitement les fonctionnalités de Host collision, Intruder, dénombrement de répertoires, etc. Par exemple, dans le scénario de dénombrement à un seul paramètre (ex. : identifiant utilisateur), vous pouvez utiliser le tag {{int(1-10)}} pour générer automatiquement les identifiants à dénombrer. Pour les scénarios à plusieurs paramètres, le module utilise le produit cartésien comme paramètres de dénombrement, ce qui évite, par rapport au module Intruder de BurpSuite, le choix du mode de dénombrement et l’importation de dictionnaires, réduisant considérablement les opérations nécessaires, en phase avec les habitudes des utilisateurs. Bien sûr, en plus de générer automatiquement des paramètres via des tags, le module Web Fuzzer permet également d’importer des dictionnaires externes, par exemple {{file(/tmp/username.txt)}}. Pour des scénarios de données plus complexes, le module Web Fuzzer prend en charge l’insertion de tags de chargement à chaud ; par exemple, pour dénombrer des numéros de carte d’identité d’une région, vous pouvez insérer directement un script Yak dans le module Web Fuzzer pour générer les données à dénombrer. Avec le module Intruder de BurpSuite, il faudrait écrire du code pour générer un dictionnaire, puis l’importer.

fuzztag.png

Pour en savoir plus sur Fuzztag, consultez : Aperçu de Fuzztag

Technologie de retour de connexion inverse et de multiplexage de protocoles applicatifs

De nombreux scénarios d’exploitation de vulnérabilités nécessitent l’utilisation de connexions inverses pour différents protocoles. Les outils traditionnels d’exploitation doivent écouter un port pour chaque service sur un serveur public. Par exemple, pour l’exploitation de vulnérabilités de type LDAP, il faut démarrer un service HTTP, un service LDAP, puis envoyer la requête d’attaque. Les services traditionnels doivent attribuer un port unique à chaque service. La technologie de multiplexage de protocoles de ports de Yaklang permet d’écouter un seul port, d’identifier le protocole de la requête et d’y répondre. Parmi les avantages de cette technologie figurent l’économie de ressources système, la facilité des tests manuels, et surtout, comme les en-têtes de protocole sont reconnus manuellement, les paquets de divers protocoles peuvent être construits de manière flexible. Par exemple, vous pouvez construire des paquets malformés pour l’exploitation de vulnérabilités, ou transporter des données via des protocoles comme DNS ou ICMP, ce qui permet de maintenir un accès (backdoor) ou d’exploiter des vulnérabilités lorsque le protocole TCP n’est pas autorisé à sortir.

Parallèlement, Yakit implémente un module de connexion inverse basé sur la technologie de multiplexage de protocoles de ports, comprenant les fonctionnalités Reverse Shell, exploitation de connexion inverse et détection de connexion inverse. Le Reverse Shell permet d’écouter un port spécifique et de recevoir un shell inversé ; une fois reçu, il permet de contrôler le serveur distant comme avec SSH. Dans les besoins traditionnels de tests d’intrusion, il fallait utiliser Nc pour écouter un port, mais certaines touches (retour arrière, flèches) produisaient des caractères brouillés, et l’expérience du shell inversé différait considérablement de celle d’un SSH natif. Le Reverse Shell de Yakit offre une expérience proche de celle d’un SSH natif. La partie exploitation de connexion inverse permet d’écouter un port et de définir des Payloads pour différents protocoles ; lorsqu’une requête est reçue, le protocole est automatiquement identifié et le Payload correspondant est renvoyé, permettant ainsi l’exploitation de la vulnérabilité. La fonction de détection de connexion inverse fournit la détection TCP, DNSLog et ICMP, utilisable pour détecter l’exécution de commandes.

reverse.png

Utilisation

Pour plus de contenu technique :

Articles techniques Yakit

Livre blanc technique

Rejoindre la communauté

Pour toute suggestion constructive ou signalement de bug, n’hésitez pas à ouvrir une issue.

Vous pouvez également nous contacter via notre compte public WeChat, ou pour toute question sur les licences commerciales et la coopération.

Pour rejoindre le groupe de discussion ou si vous avez des questions à discuter avec les ingénieurs, veuillez ajouter notre compte opérationnel WeChat pour rejoindre la communauté :

Compte opérationnel WeChat : wechat2.png Code QR du compte public : wechat1.jpeg

Évolution du nombre d’étoiles

Évolution du nombre d’étoiles

Avertissement / Clause de non-responsabilité

  1. Cet outil est destiné uniquement aux actions de sécurité autorisées des entreprises et à l’apprentissage personnel. Si vous devez tester sa fonctionnalité, veuillez mettre en place votre propre environnement cible.

  2. Lors de l’utilisation de cet outil pour des tests, vous devez vous assurer que cette action est conforme aux lois et règlements locaux et que vous avez obtenu les autorisations nécessaires. Ne scannez pas de cibles non autorisées.

  3. Il est interdit d’effectuer du reverse engineering, de la décompilation, de tenter de déchiffrer le code source, d’intégrer des portes dérobées ou de diffuser des logiciels malveillants à partir de ce logiciel.

  4. Si vous avez besoin d’utiliser Yakit à des fins commerciales, assurez-vous d’avoir obtenu une autorisation officielle. Dans le cas contraire, nous nous réservons le droit de poursuivre les contrevenants.

Si l’un de ces comportements interdits est constaté, nous nous réservons le droit d’engager des poursuites judiciaires.

En cas d’acte illégal lors de l’utilisation de cet outil, vous assumez seul les conséquences ; nous déclinons toute responsabilité légale ou conjointe.

Avant d’installer et d’utiliser cet outil, veuillez lire attentivement et comprendre toutes les clauses.

Les clauses de limitation, d’exonération de responsabilité ou toute autre clause impliquant vos droits substantiels peuvent être mises en évidence en gras, avec soulignement, etc.

À moins que vous n’ayez lu, compris et accepté toutes les clauses du présent accord, veuillez ne pas installer ni utiliser cet outil. Votre utilisation ou toute autre indication explicite ou implicite d’acceptation de cet accord sera considérée comme votre engagement à respecter ses termes.

Catégories