Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
CAPEv2 — Extraction de configuration et de payload de malware | Kitploit
Outils/GitHubGitHub/kevoreilly/capev2
Analyse Dynamique (Sandboxing)Criminalistique MémoireAnalyse des VulnérabilitésCriminalistique RéseauRétro-ingénierieDébogueursAnalyse ForensiqueAnalyse de MalwareApprentissage et ÉducationTop en Analyse de Malware n°20
3.4k59722il y a 16h 36mVérifié par Kitploit
GitHubkevoreilly/capev2

CAPEv2

Extraction de configuration et de payload de malware

Voir le dépôtSite web

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

CAPE : Extraction de Configuration et de Charge Utile de Malware - Documentation

CAPE est un bac à sable pour malwares.

Un bac à sable est utilisé pour exécuter des fichiers malveillants dans un environnement isolé tout en instrumentant leur comportement dynamique et en collectant des artefacts médico-légaux.

CAPE est dérivé de Cuckoo v1 qui propose les fonctionnalités de base suivantes sur la plateforme Windows :

  • Instrumentation comportementale basée sur le hooking d'API
  • Capture des fichiers créés, modifiés et supprimés pendant l'exécution
  • Capture du trafic réseau au format PCAP
  • Classification des malwares basée sur des signatures comportementales et réseau
  • Captures d'écran du bureau prises pendant l'exécution du malware
  • Dumps mémoire complets du système cible

CAPE complète la sortie traditionnelle du bac à sable de Cuckoo avec plusieurs ajouts clés :

  • Dépaquetage dynamique automatisé de malwares
  • Classification des malwares basée sur les signatures YARA des charges utiles dépaquetées
  • Extraction statique et dynamique de la configuration des malwares
  • Débogueur automatisé programmable via des signatures YARA, permettant :
    • Extracteurs personnalisés de dépaquetage/configuration
    • Contre-mesures anti-bac à sable dynamiques
    • Traces d'instructions
  • Bureau interactif

Il existe une instance de démonstration gratuite en ligne que tout le monde peut utiliser :

https://capesandbox.com - Pour l'activation du compte, contactez https://twitter.com/capesandbox

Télécharger l’outil

Un peu d'histoire

Cuckoo Sandbox a commencé en tant que projet Google Summer of Code en 2010 au sein de The Honeynet Project. Il a été initialement conçu et développé par Claudio Guarnieri, la première version bêta a été publiée en 2011. En janvier 2014, Cuckoo v1.0 a été publiée.

2015 a été une année charnière, avec un fork significatif dans l'histoire de Cuckoo. Le développement du moniteur original et de la méthode de hooking d'API a été arrêté dans le projet principal de Cuckoo. Il a été remplacé par un moniteur alternatif utilisant un format de signature restructuredText compilé via la chaîne d'outils Linux, créé par Jurriaan Bremer.

À peu près à la même époque, un fork appelé Cuckoo-modified a été créé par Brad « Spender » Spengler, poursuivant le développement du moniteur original avec des améliorations significatives, notamment le support 64 bits et surtout l'introduction du compilateur Microsoft Visual Studio.

Au cours de la même année, le développement d'un outil dynamique en ligne de commande d'extraction de configuration et de charge utile appelé CAPE a commencé chez Context Information Security par Kevin O'Reilly. Le nom a été inventé comme acronyme de « Config And Payload Extraction » et la recherche originale se concentrait sur l'utilisation de hooks d'API fournis par la bibliothèque Detours de Microsoft pour capturer les charges utiles et configurations de malwares dépaquetés. Cependant, il est devenu évident que les hooks d'API seuls offrent une puissance et une précision insuffisantes pour permettre le dépaquetage de charges utiles ou de configurations à partir de malwares arbitraires.

Pour cette raison, des recherches ont commencé sur un nouveau concept de débogueur permettant de contrôler et instrumenter précisément les malwares tout en évitant l'utilisation des interfaces de débogage Microsoft, afin d'être aussi furtif que possible. Ce débogueur a été intégré dans l'outil en ligne de commande preuve de concept basé sur Detours, combinant avec les hooks d'API et résultant en des capacités très puissantes.

Lorsque les premiers travaux ont montré qu'il serait possible de remplacer Microsoft Detours par le moteur de hooking d'API de Cuckoo-modified, l'idée de CAPE Sandbox est née. Avec l'ajout du débogueur, du dépaquetage automatisé, de la classification basée sur YARA et de l'extraction de configuration intégrée, en septembre 2016 à la 44con, CAPE Sandbox a été publiquement publié pour la première fois : CAPE version 1.

À l'été 2018, le projet a eu la chance de voir le début d'énormes contributions d'Andriy « doomedraven » Brukhovetskyy, un contributeur de longue date de Cuckoo. En 2019, il a commencé la tâche titanesque de porter CAPE vers Python 3 et en octobre de cette année-là, CAPEv2 a été publié.

CAPE a été continuellement développé et amélioré pour suivre le rythme des avancées tant dans les malwares que dans les capacités des systèmes d'exploitation. En 2021, la capacité de programmer le débogueur de CAPE pendant la détonation via des scans YARA dynamiques a été ajoutée, permettant la création de contournements dynamiques pour les techniques anti-bac à sable. Windows 10 est devenu le système d'exploitation par défaut, et d'autres ajouts significatifs incluent le bureau interactif, la capture de charge utile AMSI (Anti-Malware Scan Interface), le « syscall hooking » basé sur Microsoft Nirvana et les contre-mesures de syscall direct/indirect basées sur le débogueur.

Classification

image

Les malwares peuvent être classifiés dans CAPE via trois mécanismes :

  • Scans YARA des charges utiles dépaquetées
  • Scans Suricata des captures réseau
  • Signatures comportementales scannant la sortie des hooks d'API

Extraction de Configuration

image

L'analyse peut être effectuée à l'aide du propre framework de CAPE, alternativement les frameworks suivants sont supportés : RATDecoders, DC3-MWCP, MalDuck, ou MaCo

Note spéciale concernant les frameworks d'analyse de configuration :

  • En raison de la nature des malwares, comme ils changent constamment à chaque nouvelle version publiée, quelque chose peut devenir cassé !
  • Nous suggérons d'utiliser le framework de CAPE qui est simplement du Python pur avec le point d'entrée def extract_config(data): qui sera appelé par cape_utils.py et 0 complications.
    • En bonus, vous pouvez réutiliser vos extracteurs dans d'autres projets.

Dépaquetage Automatisé

image

CAPE tire parti de nombreuses techniques ou comportements de malwares pour permettre la capture de charges utiles dépaquetées :

  • Injection de processus
    • Injection de shellcode
    • Injection de DLL
    • Process Hollowing
    • Process Doppelganging
  • Extraction ou décompression de modules exécutables ou de shellcode en mémoire

Ces comportements entraîneront la capture des charges utiles injectées, extraites ou décompressées pour une analyse plus approfondie. De plus, CAPE crée automatiquement un dump de processus pour chaque processus, ou, dans le cas d'une DLL, l'image du module DLL en mémoire. Ceci est utile pour les échantillons empaquetés avec des packers simples, où souvent le dump de l'image du module est entièrement dépaqueté.

En plus des mécanismes de dépaquetage « passif » par défaut de CAPE, il est possible d'activer le dépaquetage « actif » qui utilise des points d'arrêt pour détecter l'écriture dans des régions mémoire nouvellement allouées ou protégées, afin de capturer les charges utiles dépaquetées le plus tôt possible avant l'exécution. Ceci est activé via la case à cocher de soumission web ou en spécifiant l'option unpacker=2 et est désactivé par défaut car cela peut affecter la qualité de la détonation.

CAPE peut être programmé via une signature YARA pour dépaquetter des packers spécifiques. Par exemple, les packers de type UPX sont très courants et, bien que dans CAPE ils entraînent la capture passive des charges utiles dépaquetées, la capture par défaut est effectuée après que la charge utile dépaquetée a commencé à s'exécuter. Par conséquent, en détectant dynamiquement les packers dérivés d'UPX via une signature YARA personnalisée et en définissant un point d'arrêt sur la dernière instruction du packer, il est possible de capturer la charge utile à son point d'entrée original (OEP) avant qu'elle n'ait commencé à s'exécuter.

image

image

L'option dump-on-api permet de dumper un module lorsqu'il appelle une fonction API spécifique qui peut être spécifiée dans l'interface web (par exemple dump-on-api=DnsQuery_A).

Débogueur

Le débogueur a permis à CAPE de continuer à évoluer au-delà de ses capacités originales, qui incluent désormais des contournements dynamiques anti-évasion. Étant donné que les malwares modernes tentent couramment d'éviter l'analyse dans les bacs à sable, par exemple en utilisant des pièges temporels pour la virtualisation ou la détection de hooks d'API, CAPE permet de développer des contre-mesures dynamiques combinant des actions du débogueur dans des signatures Yara pour détecter les malwares d'évasion pendant leur détonation, et effectuer une manipulation du flux de contrôle pour forcer l'échantillon à détoner complètement ou à sauter les actions d'évasion.

image image

Un accès rapide au débogueur est possible avec les options de soumission bp0 à bp3 acceptant des valeurs RVA ou VA pour définir des points d'arrêt, où une courte trace d'instructions sera produite, régie par les options count et depth (par exemple bp0=0x1234,depth=1,count=100). image

Pour définir un point d'arrêt au point d'entrée du module, ep est utilisé au lieu d'une adresse (par exemple bp0=ep). Alternativement, break-on-return permet un point d'arrêt sur l'adresse de retour d'une API hookée (par exemple break-on-return=NtGetContextThread). Un paramètre optionnel base-on-api permet de définir la base d'image pour les points d'arrêt RVA par appel API (par exemple base-on-api=NtReadFile,bp0=0x2345).

image

Les options action0 à action3 permettent d'effectuer des actions lorsque les points d'arrêt sont atteints, comme dumper des régions mémoire (par exemple action0=dumpebx) ou changer le flux de contrôle d'exécution (par exemple action1=skip). La documentation de CAPE contient d'autres exemples de telles actions.

capemon

Le dépôt contenant le code du moniteur de CAPE est distinct.

Résumé des mises à jour changelog

Contributions de la communauté

Il existe un dépôt communautaire de signatures contenant plusieurs centaines de signatures développées par la communauté CAPE. Toute nouvelle fonctionnalité communautaire doit être poussée vers ce dépôt. Plus tard, elles peuvent être déplacées vers le noyau si les développeurs sont capables et disposés à les maintenir.

Veuillez contribuer à ce projet en aidant à créer de nouvelles signatures, analyseurs ou contournements pour d'autres familles de malwares. Beaucoup sont en cours de développement, alors surveillez cet espace.

Un grand merci à @D00m3dR4v3n pour avoir porté seul CAPE vers Python 3.

Recommandations d'installation et scripts pour des performances optimales

  • Python3

    • agent.py est testé avec python (3.7.2|3.8) x86. Vous devez utiliser la version x86 de python à l'intérieur de la VM !
    • hôte testé avec python3 version 3.10, 3.12, mais les versions plus récentes devraient également fonctionner
  • Seul rooter doit être exécuté en tant que root, le reste en tant qu'utilisateur cape. L'exécution en tant que root va perturber les permissions.

  1. Familiarisez-vous avec la documentation et lisez TOUS les fichiers de configuration dans le dossier conf !
  2. Pour une meilleure compatibilité, nous recommandons fortement d'installer sur Ubuntu 24.04 LTS et d'utiliser Windows 10 ou Windows 11 23H2 comme cible.
  3. kvm-qemu.sh et cape2.sh DOIVENT ÊTRE exécutés depuis une session tmux pour éviter tout problème lié au système d'exploitation si la connexion ssh se coupe.
  4. KVM est recommandé comme hyperviseur.
  • Remplacez <username> par un modèle réel.
  • Vous devez remplacer tous les <WOOT> à l'intérieur !
  • Lisez-le ! Vous devez comprendre ce qu'il fait ! Il a une configuration dans l'en-tête du script.
  • sudo ./kvm-qemu.sh all <username> 2>&1 | tee kvm-qemu.log
  1. Pour installer CAPE lui-même, cape2.sh avec toutes les optimisations
    • Lisez et comprenez ce qu'il fait ! Ce n'est pas une solution miracle à tous vos problèmes ! Il a une configuration dans l'en-tête du script.
    • sudo ./cape2.sh base 2>&1 | tee cape.log
  2. Après avoir tout installé, sauvegardez les deux logs d'installation comme référence !
  3. Configurez CAPE en modifiant les fichiers de configuration dans le dossier conf.
  4. Redémarrez tous les services CAPE pour prendre en compte les modifications de configuration et exécuter CAPE correctement !
    • Services CAPE
      • cape.service
      • cape-processor.service
      • cape-web.service
      • cape-rooter.service
      • Pour redémarrer un service, utilisez systemctl restart <nom_du_service>
      • Pour voir le journal du service, utilisez journalctl -u <nom_du_service>
    • Pour déboguer un problème, arrêtez le service concerné et exécutez la commande qui exécute ce service à la main pour voir plus de logs. Consultez -h pour le menu d'aide. Exécuter le service en mode débogage (-d) peut également aider.
  5. Redémarrez et profitez !
  • Tous les scripts contiennent une aide -h, mais veuillez vérifier les scripts pour comprendre ce qu'ils font.

Comment créer des VM avec virt-manager voir la documentation pour la configuration

  • pas à pas

Dépendance principale de la machine virtuelle

  • choco.bat

Comment mettre à jour

  • CAPE : git pull
  • communauté : python3 utils/community.py -waf voir -h avant pour être sûr de comprendre

Comment mettre à niveau avec beaucoup de petites modifications personnalisées qui ne peuvent pas être publiques ?

Avec rebase

root@kitploit:~
git add --all
git commit -m '[STASH]'
git pull --rebase origin master
# résoudre les conflits (rebase) si nécessaire
git reset HEAD~1

Avec merge

root@kitploit:~
# assurez-vous que le dépôt kevoreilly a été ajouté en tant que remote (à faire une seule fois)
git remote add kevoreilly https://github.com/kevoreilly/CAPEv2.git
# assurez-vous que toutes vos modifications sont validées sur la branche que vous allez fusionner
git commit -a -m '<votre message de commit ici>'
# récupérez les modifications du dépôt kevoreilly
git fetch kevoreilly
# fusionnez la branche master de kevoreilly dans votre branche actuelle
git merge kevoreilly/master
# résolvez les conflits de fusion si nécessaire
# poussez vers votre dépôt si souhaité
git push

Comment citer ce travail

Si vous utilisez CAPEv2 dans votre travail, veuillez le citer comme spécifié dans le menu GitHub « Cite this repository ».

Note spéciale concernant les dépendances tierces :

  • Elles deviennent un casse-tête, surtout celles qui utilisent pefile car chacune épingle la version qu'elle souhaite.
    • Notre suggestion est de les cloner/forer, supprimer la dépendance pefile car vous l'avez déjà installée. Et voilà, plus de douleur.

Docs

  • ReadTheDocs
  • DeepWiki - Généré par IA, certains peuvent être faux mais généralement assez précis.