Outil CLI
yaklang/yakit avatar
yaklang/yakit

Yakit : un client de test de sécurité interactif pour le moteur Yaklang

Yakit est une boîte à outils de cybersécurité construite autour d'un client modulaire qui prend en charge l'analyse des vulnérabilités, la recherche des menaces, l'analyse des actifs et les flux de travail opérationnels pour les équipes de sécurité.

7 738 étoiles824 forksTypeScriptAGPL-3.0
GitHub

En bref

De quoi s’agit-il ?
Yakit est un client graphique qui se connecte au moteur Yaklang via gRPC, couvrant l'interception MITM, le fuzzing web et les scénarios de connexion inverse.
À qui s’adresse-t-il ?
Le dépôt yaklang/yakit est implémenté en TypeScript et sous licence AGPL-3.0. Le README détaille les modules MITM, Web Fuzzer, Fuzztag et connexion inverse, mais ne donne pas de numéros de version spécifiques, d'exigences système ou de commandes d'installation ; ceux-ci doivent être vérifiés dans la documentation officielle ou les pages de version.
Puis-je l’utiliser commercialement ?
Oui, sous conditions strictes. AGPL-3.0 est une licence à copyleft réseau : si des personnes utilisent une version modifiée via un réseau, par exemple comme service hébergé, vous devez leur proposer son code source sous la même licence.
Est-il encore maintenu ?
Oui. Les derniers commits datent d’il y a 1 jour.
En quel langage est-il écrit ?
Principalement TypeScript, d’après les statistiques de langage de GitHub.

Ces réponses reposent sur les données GitHub du projet (dernière synchronisation le 14 septembre 2026) et sur notre analyse. Elles ne constituent pas un avis juridique.

ANALYSE OPEN SOURCE APPROFONDIE

Positionnement du dépôt et faits de base

yaklang/yakit est le dépôt du projet Yakit, décrit comme une « plateforme tout-en-un pour la cybersécurité » avec TypeScript comme langage principal. Au moment de la rédaction, le dépôt compte 7 664 étoiles, 820 forks et 138 problèmes ouverts sur GitHub, et il n'est pas archivé. Le README est principalement en chinois et propose un lien vers une version anglaise, mais ce contenu anglais ne faisait pas partie des documents examinés ici. Aucune URL de page d'accueil n'est répertoriée, et le dépôt ne déclare pas de versions de publication spécifiques ni de nombres de téléchargements ; ces détails devraient être obtenus séparément à partir de la page des versions de GitHub.

Relation entre Yakit et Yaklang

Le README décrit Yakit comme un client construit sur un serveur gRPC pour le moteur Yaklang. L'équipe a écrit ce serveur pour rapprocher les capacités de sécurité de Yaklang de l'utilisation réelle, puis a construit Yakit comme client par-dessus. Les utilisateurs pilotent le moteur via l'interface graphique de Yakit, et le serveur gRPC est décrit comme indépendant de la plateforme, prenant en charge le déploiement à distance ou le démarrage local sur la machine hôte. Yaklang lui-même est présenté comme un langage spécifique au domaine de la sécurité. Le README indique qu'il peut être utilisé pour réécrire des remplacements de haute qualité pour des outils qui ne peuvent pas être intégrés nativement, ou pour compiler et intégrer des produits à l'écosystème mature après modification de leur code source, mais il n'entre pas dans les spécifications du langage ni les détails de compilation.

CDSL et architecture du projet

Le README définit CDSL comme CyberSecurity Domain Specific Language, un langage de programmation dédié au domaine de la cybersécurité, et indique qu'une machine virtuelle à pile porte l'état d'exécution de ce langage Turing-complet. Un diagramme d'architecture montre la relation entre le moteur Yaklang et le client Yakit, bien que l'image elle-même ne puisse pas être reproduite ici. Le README indique que l'objectif de CDSL est d'intégrer les capacités de sécurité et d'unifier la plateforme sous-jacente. Il énumère plusieurs capacités de Yakit, notamment une plateforme d'interception MITM, une interface de scan passif, l'intégration de scripts Yaklang pour le débogage dynamique du trafic, un outil visuel de fuzzing web et une boutique de plugins. Ces éléments sont présentés sous forme de liste, sans benchmarks ni comparaisons avec d'autres produits.

Interception interactive MITM

Le module MITM est décrit comme capable de remplacer BurpSuite pour des opérations telles que le téléchargement et l'installation de certificats, l'interception de requêtes et de réponses, et la modification de paquets capturés. Il propose un flux de travail allant de l'interception à l'historique, puis au répéteur/intrus. Le principe est que Yakit démarre un proxy HTTP et transmet le trafic automatiquement ; lorsque l'interception manuelle est activée, il arrête la transmission, bloque la requête et la traite en décompressant Gzip, en gérant les morceaux et en décodant, afin que la requête devienne lisible. Les utilisateurs peuvent afficher, modifier ou rejouer les requêtes, et lors du rejeu, Yakit répare le paquet de requête HTTP pour le garder valide. Le README note spécifiquement que le moteur Yak implémente manuellement la bibliothèque HTTP, de sorte que les utilisateurs peuvent créer des paquets de requête et de réponse malformés pour l'exploitation de vulnérabilités dans des scénarios spéciaux.

Web Fuzzer et Fuzztag

Le module Web Fuzzer permet aux utilisateurs d'envoyer des requêtes HTTP brutes, le backend corrigeant automatiquement des détails tels que CRLF, Content-Type, le transfert par morceaux, la limite et Content-Length. La technologie Fuzztag génère des paramètres de force brute via des balises ; par exemple, {{int(1-10)}} génère une séquence d'identifiants. Pour la force brute à plusieurs paramètres, le produit cartésien des paramètres est utilisé. Des dictionnaires externes peuvent être importés avec des balises comme {{file(/tmp/username.txt)}}. Pour des scénarios de données plus complexes, des balises de chargement à chaud peuvent être insérées pour exécuter des scripts Yak qui génèrent des données directement dans le Web Fuzzer. Le README compare Fuzztag à l'Intruder de BurpSuite et affirme que cela supprime des étapes telles que la sélection d'un mode de force brute et l'importation de dictionnaires.

Connexions inverses et multiplexage de protocoles

Pour l'exploitation de vulnérabilités nécessitant des connexions de rappel, Yaklang implémente le multiplexage de protocoles par port : un port peut écouter, identifier le protocole des requêtes entrantes et répondre en conséquence. Le README indique que cette technique peut construire des paquets de protocole malformés ou transporter des données via les protocoles DNS et ICMP, ce qui peut être utilisé pour le maintien de privilèges ou l'exploitation lorsque TCP n'est pas disponible. Yakit construit un module de connexion inverse sur cette technique, comprenant Reverse Shell, l'exploitation de connexion inverse et la détection de connexion inverse. Reverse Shell écoute sur un port pour recevoir un shell inversé ; le README affirme que l'expérience est proche de SSH natif, tandis que les écouteurs Netcat traditionnels déforment souvent les touches de retour arrière et les flèches. L'exploitation permet de définir des charges utiles pour différents protocoles sur un seul port, et la détection propose des vérifications TCP, DNSLog et ICMP.

Utilisation, avertissement et licence

Pour l'utilisation, le README renvoie simplement au site officiel pour le téléchargement et à la documentation officielle pour l'apprentissage ; il ne contient pas de commandes d'installation ni d'exigences système. L'avertissement indique que l'outil est destiné uniquement au travail de sécurité d'entreprise légalement autorisé et à l'apprentissage personnel. Les utilisateurs doivent s'assurer que leurs tests respectent les lois locales et qu'ils disposent d'une autorisation suffisante ; le scan de cibles non autorisées est interdit. La rétro-ingénierie, la décompilation, les tentatives de déchiffrement du code source, l'intégration de portes dérobées et la propagation de logiciels malveillants sont également interdites. L'utilisation commerciale nécessite une autorisation officielle. Le dépôt est sous licence AGPL-3.0. Le texte de la licence explique que cette licence copyleft est conçue pour garantir que les utilisateurs de logiciels serveurs réseau reçoivent le code source modifié, mais la licence elle-même ne fait aucune promesse concernant la sécurité, le support ou la garantie.

Yakit doit être utilisé uniquement sur des cibles autorisées. Le README le décrit comme un client graphique pilotant le moteur Yaklang par gRPC, avec une console MITM, un Web Fuzzer, Fuzztag et des fonctions de connexion inverse. Le parcours MITM annoncé passe par l'interception, History, puis Repeater ou Intruder ; le proxy peut bloquer une requête, la rendre lisible et permettre sa modification ou son rejeu. Web Fuzzer accepte du HTTP brut et complète certains éléments comme CRLF, Content-Length, boundary et transfert chunked. Fuzztag permet notamment '{{int(1-10)}}' et '{{file(/tmp/username.txt)}}'. Ces capacités sont puissantes et risquées : installez Yakit dans un laboratoire isolé, documentez l'autorisation et vérifiez chaque requête avant l'envoi.

Conclusion éditoriale

Le dépôt yaklang/yakit est implémenté en TypeScript et sous licence AGPL-3.0. Le README détaille les modules MITM, Web Fuzzer, Fuzztag et connexion inverse, mais ne donne pas de numéros de version spécifiques, d'exigences système ou de commandes d'installation ; ceux-ci doivent être vérifiés dans la documentation officielle ou les pages de version.

Sources officielles

  1. Official README
  2. Project repository
  3. Release notes
Notes de la communauté

Notes de la communauté