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
Chimera — Outil automatisé de chargement latéral de DLL avec capacités d'évasion d'EDR | Kitploit
Outils/GitHubGitHub/georgesotiriadis/chimera
Génération de PayloadsExploitationShellcodeRed Teaming
GitHubgeorgesotiriadis/chimera

Chimera

Outil automatisé de chargement latéral de DLL avec capacités d'évasion d'EDR

Voir le dépôt
50758il y a 2 ansVérifié par Kitploit

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

Chimera Unlea$ed 

Contexte de l'outil


Bien que le DLL sideloading puisse être utilisé à des fins légitimes, comme le chargement de bibliothèques nécessaires au fonctionnement d'un programme, il peut également être utilisé à des fins malveillantes. Les attaquants peuvent utiliser le DLL sideloading pour exécuter du code arbitraire sur un système cible, souvent en exploitant des vulnérabilités dans des applications légitimes utilisées pour charger des DLL.

Pour automatiser le processus de DLL sideloading et le rendre plus efficace, Chimera a été créé, un outil qui inclut des méthodes d'évasion pour contourner les produits EDR/AV. Cet outil peut automatiquement chiffrer un shellcode via XOR avec une clé aléatoire et créer des images template pouvant être importées dans Visual Studio pour créer une DLL malveillante.

De plus, les appels système dynamiques de SysWhispers3 sont utilisés, ainsi qu'une version assembleur modifiée pour échapper au motif recherché par l'EDR, des NOP sled aléatoires sont ajoutés et les registres sont déplacés. En outre, l'injection Early Bird est également utilisée pour injecter le shellcode dans un autre processus que l'utilisateur peut spécifier, avec des mécanismes d'évasion de sandbox comme la vérification du disque dur et si le processus est débogué. Enfin, une attaque temporelle est placée dans le chargeur qui utilise des minuteurs d'attente pour retarder l'exécution du shellcode.

Cet outil a été testé et s'est avéré efficace pour contourner les produits EDR/AV et exécuter du code arbitraire sur un système cible.

La version mise à jour de Chimera Unleashed a démontré des avancées significatives dans l'évasion des analyses statiques et dynamiques, en particulier dans le contexte du système Endpoint Detection and Response (EDR) de Microsoft 365. Les techniques de sideloading de l'outil, même appliquées à des binaires bien connus comme OneDrive, ont réussi à échapper à la détection. Cependant, il est à noter que si l'aspect sideloading est resté non détecté, le processus d'injection Early Bird employé par l'outil a été identifié par le système EDR. Cela souligne un domaine à améliorer pour renforcer les capacités globales de furtivité de l'outil.

Utilisation de l'outil


Principales mises à jour et fonctionnalités :

  • Structure reformatée : L'ensemble du programme a été restructuré pour faciliter le développement et la maintenabilité future.
  • Intégration de code polymorphe : Incorporation de code polymorphe, améliorant considérablement les capacités d'évasion et rendant l'outil plus résistant à l'analyse statique.
  • Intégration de SysWhispers 3 : Passage de SysWhispers 2 à une version modifiée de SysWhispers 3. Cette mise à jour améliore la capacité de l'outil à échapper aux mécanismes de reconnaissance de motifs employés par les systèmes EDR, en utilisant des appels système dynamiques et des techniques d'assemblage modifiées.
  • Chiffrement AES : Implémentation du chiffrement AES pour sécuriser le shellcode, ajoutant une couche supplémentaire de sécurité et d'obscurcissement.
  • Injection Early Bird : L'outil utilise des techniques d'injection Early Bird, permettant une exécution de code plus furtive dans les processus cibles.
  • Module Stomping : Sera ajouté à l'avenir ; vous pouvez également implémenter votre propre technique d'injection de code dans l'outil.

Chimera est écrit en python3 et il n'est pas nécessaire d'installer de dépendances supplémentaires.

Chimera prend actuellement en charge deux options de DLL : Microsoft Teams ou Microsoft OneDrive.

On peut créer userenv.dll, une DLL manquante de Microsoft Teams, et l'insérer dans le dossier spécifique :

⁠%USERPROFILE%/Appdata/local/Microsoft/Teams/current

Pour Microsoft OneDrive, le script utilise version.dll, courante car elle est manquante dans le binaire, par exemple onedriveupdater.exe.

Arguments en ligne de commande

Chimera Unleashed utilise argparser pour l'analyse des arguments en ligne de commande. Les arguments suivants sont disponibles :

  • --raw ou -r : Chemin vers le fichier contenant le shellcode. Requis.
  • --path ou -p : Chemin de sortie pour le fichier template C. Requis.
  • --pname ou -n : Nom du processus dans lequel injecter le shellcode. Requis.
  • --dexports ou -d : Spécifier les exports DLL à utiliser ('teams' ou 'onedrive'). Requis.
  • --enc ou -e : Spécifier le chiffrement préféré (XOR / AES). Requis.
  • --inj ou -i : Spécifier la technique d'injection préférée (EB / MS). Requis.
  • --rshell ou -s : [Optionnel] Remplacer le nom de la variable shellcode par un nom unique. Par défaut : 'encoded_shell'.

Exemple d'utilisation : python Chimera.py --raw <chemin_vers_shellcode> --path <chemin_sortie> --pname <nom_processus> --dexports <fichier_exports> --enc AES --inj EB --rshell mon_shellcode

Note utile

Une fois le processus de compilation terminé, une DLL sera générée, qui doit inclure soit "version.dll" pour OneDrive, soit "userenv.dll" pour Microsoft Teams. Ensuite, il est nécessaire de renommer les DLL d'origine.

Par exemple, la DLL d'origine "userenv.dll" doit être renommée "tmpB0F7.dll", tandis que la DLL d'origine "version.dll" doit être renommée "tmp44BC.dll". De plus, vous avez la possibilité de modifier le nom de la DLL proxy comme vous le souhaitez en modifiant le code source des exports DLL au lieu d'utiliser les noms par défaut du script.

Le fichier code.h contient le shellcode.

Configuration du projet Visual Studio


Étape 1 : Création d'un nouveau projet Visual Studio avec le template DLL

  1. Lancez Visual Studio et cliquez sur "Créer un nouveau projet" ou allez dans "Fichier" -> "Nouveau" -> "Projet".
  2. Dans la fenêtre des modèles de projet, sélectionnez "Visual C++" sur la gauche.
  3. Choisissez "Projet vide" parmi les modèles disponibles.
  4. Donnez un nom et un emplacement appropriés au projet, puis cliquez sur "OK".
  5. Dans la fenêtre des propriétés du projet, accédez à "Propriétés de configuration" -> "Général" et définissez "Type de configuration" sur "Bibliothèque dynamique (.dll)".
  6. Configurez autres paramètres du projet selon vos souhaits et enregistrez le projet.

Étape 2 : Importation des fichiers dans le projet Visual Studio

  1. Localisez le dossier "chimera_automation" contenant les images nécessaires.
  2. Ouvrez le dossier et identifiez les fichiers suivants : main.c, syscalls.c, syscallsstubs.std.x64.asm.
  3. Dans Visual Studio, faites un clic droit sur le projet dans le panneau "Explorateur de solutions" et sélectionnez "Ajouter" -> "Élément existant".
  4. Accédez à l'emplacement de chaque fichier (main.c, syscalls.c, syscallsstubs.std.x64.asm) et sélectionnez-les un par un. Cliquez sur "Ajouter" pour les importer dans le projet.
  5. Créez un dossier nommé "header_files" dans le répertoire du projet s'il n'existe pas déjà.
  6. Localisez le fichier d'en-tête "syscalls_mem.h" dans le dossier "header_files" du répertoire "chimera_automation".
  7. Faites un clic droit sur le dossier "header_files" dans le panneau "Explorateur de solutions" de Visual Studio et sélectionnez "Ajouter" -> "Élément existant".
  8. Accédez à l'emplacement de "syscalls_mem.h" et sélectionnez-le. Cliquez sur "Ajouter" pour l'importer dans le projet.

Étape 3 : Personnalisation de la build

  1. Dans la fenêtre des propriétés du projet, accédez à "Propriétés de configuration" -> "Personnalisations de build".
  2. Cliquez sur le bouton "Personnalisations de build" pour ouvrir la boîte de dialogue de personnalisation de build.

Étape 4 : Activation de MASM

  1. Dans la boîte de dialogue de personnalisation de build, cochez la case à côté de "masm" pour l'activer.
  2. Cliquez sur "OK" pour fermer la boîte de dialogue de personnalisation de build.

Étape 5 :

  1. Faites un clic droit sur le fichier assembleur -> propriétés et choisissez les éléments suivants
  2. Exclure de la build -> Non
  3. Contenu -> Oui
  4. Type d'élément -> Microsoft Macro Assembler

Configuration finale du projet

Optimisations du compilateur


Étape 1 : Modification des optimisations

  1. Dans Visual Studio, choisissez Projet -> propriétés
  2. C/C++ -> Optimisation et modifiez comme suit

Étape 2 : Suppression des informations de débogage

  1. Dans Visual Studio, choisissez Projet -> propriétés
  2. Éditeur de liens -> Débogage -> Générer les informations de débogage -> Non

Contributeurs

Contributeur original :

  • George Sotiriadis
    • Version initiale et concept.
    • Refactorisation du code dans la version mise à jour.
    • SysWhispers3 modifié dans la version mise à jour.

Contributeur :

  • Efstratios Chatzoglou
    • Ajout du code polymorphe, de l'obscurcisseur et du chiffrement AES dans la version mise à jour.
    • Assistance pour la refactorisation du code et le développement ultérieur.

Clause de non-responsabilité :


Dans toute la mesure permise par la loi applicable, moi-même (George Sotiriadis) et/ou les affiliés qui ont soumis du contenu à mon dépôt, ne pourront être tenus responsables de tout dommage indirect, accessoire, spécial, consécutif ou punitif, ni de toute perte de profits ou de revenus, qu'elle soit directe ou indirecte, ni de toute perte de données, d'utilisation, de clientèle ou d'autres pertes immatérielles, résultant (i) de votre accès à cette ressource et/ou de votre incapacité à y accéder ; (ii) de tout comportement ou contenu d'un tiers référencé par cette ressource, y compris, sans limitation, tout comportement diffamatoire, offensant ou illégal d'autres utilisateurs ou tiers ; (iii) de tout contenu obtenu à partir de cette ressource.

Références


https://www.ired.team/offensive-security/code-injection-process-injection/early-bird-apc-queue-code-injection

https://evasions.checkpoint.com/

https://github.com/Flangvik/SharpDllProxy

https://github.com/jthuraisamy/SysWhispers2

https://systemweakness.com/on-disk-detection-bypass-avs-edr-s-using-syscalls-with-legacy-instruction-series-of-instructions-5c1f31d1af7d

https://github.com/Mr-Un1k0d3r

Télécharger l’outil
  • --rxor ou -x : [Optionnel] Remplacer le nom du chiffrement xor par un nom unique. Par défaut : 'do_xor'.
  • --rkey ou -k : [Optionnel] Remplacer le nom de la variable clé par un nom unique. Par défaut : 'key'.
  • --rsleep ou -z : [Optionnel] Temps de pause total à inclure pendant l'exécution (en secondes). Par défaut : 4000.
  • --size ou -f : [Optionnel] Taille du fichier de données factices en Ko. Zéro (0) désactive, un (1) donne une taille aléatoire. Par défaut : 0.