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
Nimcrypt2 — Packer/chargeur de shellcode .NET, PE et Raw Shellcode écrit en Nim | Kitploit
Outils/GitHubGitHub/icyguider/nimcrypt2
Outils DéfensifsOutils de Chiffrement/DéchiffrementGénération de PayloadsExploitationShellcodeAnalyse de BinairesRed TeamingGénération de ShellcodeDéveloppement de Charges Utiles
GitHubicyguider/nimcrypt2

Nimcrypt2

Packer/chargeur de shellcode .NET, PE et Raw Shellcode écrit en Nim

824129il y a 4 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
Voir le dépôt

Nimcrypt2

Nimcrypt2 est un autre packer/chargeur PE conçu pour contourner les AV/EDR. Il s'agit d'une amélioration de mon projet original Nimcrypt, les principales améliorations étant l'utilisation d'appels système directs et la capacité de charger des fichiers PE réguliers ainsi que du shellcode brut.

Avant d'aller plus loin, je dois reconnaître ceux qui ont fait la GRANDE majorité du travail et de la recherche dont ce projet dépend. Tout d'abord, je dois remercier @byt3bl33d3r pour son repo Offensive Nim, et @ShitSecure pour tous les extraits de code qu'il a publiés publiquement. C'est à partir de cela que la version originale de cet outil a été créée, et la version actuelle n'est pas différente. Notamment, la nouvelle fonctionnalité de chargement PE utilisée dans cet outil n'est qu'une implémentation du code Nim-RunPE récemment publié par ShitSecure. Depuis le 14/03/22, ce code utilise également son code GetSyscallStub pour l'utilisation dynamique des appels système. Je vous encourage vivement à le sponsoriser pour accéder à son propre Nim PE Packer, qui est sans doute une version bien meilleure et plus riche en fonctionnalités de celui-ci.

De plus, je tiens à remercier @ajpc500 pour son projet NimlineWhispers2 que cet outil utilise pour les appels système directs. Je ne saurais trop insister sur le fait que ce projet n'est qu'une amalgamation des travaux publics des personnes mentionnées précédemment, et tout le crédit leur revient donc.

root@kitploit:~
                      ___                                           
                   .-'   `'.                                        
                  /         \                                       
                  |         ;                                       
                  |         |           ___.--,                     
         _.._     |0) ~ (0) |    _.---'`__.-( (_.                   
  __.--'`_.. '.__.\    '--. \_.-' ,.--'`     `""`                   
 ( ,.--'`   ',__ /./;   ;, '.__.'`    __                            
 _`) )  .---.__.' / |   |\   \__..--""  ""'--.,_                    
`---' .'.''-._.-'`_./  /\ '.  \ _.-~~~````~~~-._`-.__.'             
      | |  .' _.-' |  |  \  \  '.               `~---`              
       \ \/ .'     \  \   '. '-._)                                  
        \/ /        \  \    `=.__`~-.   Nimcrypt v2               
   jgs  / /\         `) )    / / `"".`\                             
  , _.-'.'\ \        / /    ( (     / /  3-in-1 C#, PE, & Raw Shellcode Loader
   `--~`   ) )    .-'.'      '.'.  | (                              
          (/`    ( (`          ) )  '-;                             
           `      '-;         (-'                                   

Nimcrypt v 2.0

Utilisation : nimcrypt -f file_to_load -t csharp/raw/pe [-o ] [-p ] [-n] [-u] [-s] [-e] [-g] [-l] [-v] [--no-ppid-spoof] nimcrypt (-h | --help)

Options : -h --help Afficher cet écran. --version Afficher la version. -f --file filename Fichier à charger -t --type filetype Type de fichier (csharp, raw ou pe) -p --process process Nom du processus pour l'injection de shellcode -o --output filename Nom du fichier pour l'exe compilé -u --unhook Décrocher ntdll.dll -v --verbose Activer les messages de débogage pendant l'exécution -e --encrypt-strings Chiffrer les chaînes avec le module strenc -g --get-syscallstub Utiliser GetSyscallStub au lieu de NimlineWhispers2 -l --llvm-obfuscator Utiliser Obfuscator-LLVM pour compiler le binaire -n --no-randomization Désactiver la randomisation des noms d'appels système -s --no-sandbox Désactiver les vérifications de sandbox --no-ppid-spoof Désactiver l'usurpation de PPID

Fonctionnalités :

  • Exécution de shellcode via NtQueueApcThread avec usurpation de PPID et blocage de DLL tierces
  • NimlineWhispers2 et GetSyscallStub pour l'utilisation d'appels système
  • Randomisation des noms d'appels système
  • Capacité de charger des fichiers .NET et PE réguliers
  • Chiffrement AES avec génération dynamique de clés
  • Compatibilité avec Obfuscator-LLVM
  • Chiffrement des chaînes
  • Évitement de sandbox

Testé et confirmé fonctionnel sur :

  • Windows 11 (10.0.22000)
  • Windows 10 21H2 (10.0.19044)
  • Windows 10 21H1 (10.0.19043)
  • Windows 10 20H2 (10.0.19042)
  • Windows 10 19H2 (10.0.18363)
  • Windows Server 2019 (10.0.17763)

Installation/Dépendances :

Nimcrypt2 est conçu pour être utilisé sur des systèmes Linux avec Nim installé. Avant d'installer Nim, vous devez vous assurer que les paquets suivants sont installés via votre gestionnaire de paquets :

root@kitploit:~
sudo apt install gcc mingw-w64 xz-utils git

Pour installer Nim, je préfère utiliser choosenim comme suit :

root@kitploit:~
curl https://nim-lang.org/choosenim/init.sh -sSf | sh
echo "export PATH=$HOME/.nimble/bin:$PATH" >> ~/.bashrc
export PATH=$HOME/.nimble/bin:$PATH

Nimcrypt2 dépend également de quelques paquets qui peuvent être installés via Nimble. Cela peut être fait comme ceci :

root@kitploit:~
nimble install winim nimcrypto docopt ptr_math strenc

Avec toutes les dépendances maintenant installées, Nimcrypt2 peut être compilé comme ceci :

root@kitploit:~
nim c -d=release --cc:gcc --embedsrc=on --hints=on --app=console --cpu=amd64 --out=nimcrypt nimcrypt.nim

OPTIONNEL : Pour utiliser le drapeau Obfuscator-LLVM, vous devez l'avoir installé sur votre système en plus de wclang. J'ai trouvé cela un peu pénible mais vous devriez pouvoir y parvenir avec un peu de persévérance. Voici un guide rapide étape par étape qui a fonctionné sur mon système Kali Linux :

  1. Clonez la version souhaitée d'Obfuscator-LLVM et construisez-la
  2. Une fois compilé, sauvegardez la version existante de clang et déplacez la nouvelle version d'Obfuscator-LLVM de clang vers /usr/bin/
  3. Installez wclang et ajoutez ses binaires à votre PATH
  4. Sauvegardez les fichiers de bibliothèque clang existants, copiez les nouveaux fichiers d'inclusion de bibliothèque d'Obfuscator-LLVM vers /usr/lib/clang/OLD_VERSION/

De plus, vous devez ajouter les lignes suivantes à votre fichier nim.cfg pour pointer nim vers vos binaires wclang :

root@kitploit:~
amd64.windows.clang.exe = "x86_64-w64-mingw32-clang"
amd64.windows.clang.linkerexe = "x86_64-w64-mingw32-clang"
amd64.windows.clang.cpp.exe = "x86_64-w64-mingw32-clang++"
amd64.windows.clang.cpp.linkerexe = "x86_64-w64-mingw32-clang++"

Il existe probablement une meilleure façon de faire cela, mais c'est ce qui a fonctionné pour moi. Si vous rencontrez des problèmes, continuez à essayer et assurez-vous de pouvoir exécuter x86_64-w64-mingw32-clang -v et qu'il affiche "Obfuscator-LLVM" dans la sortie. Assurez-vous également que MinGW utilise les fichiers de bibliothèque Obfuscator-LLVM : Nim vous donnera une erreur dans le cas contraire.

Bugs connus :

  • Comme décrit par ShitSecure, si la version de distribution de mimikatz est chargée via le chargeur PE, elle n'acceptera pas les commandes pour une raison inconnue. Utiliser une version de mimikatz compilée à partir des sources corrige ce problème.

Salutations et crédits :

  • @byt3bl33d3r pour son projet Offensive Nim : https://github.com/byt3bl33d3r/OffensiveNim
  • @ShitSecure pour son projet Nim-RunPE : https://github.com/S3cur3Th1sSh1t/Nim-RunPE
  • @ShitSecure à nouveau pour son projet GetSyscallStub : https://github.com/S3cur3Th1sSh1t/NimGetSyscallStub
  • @ajpc500 pour son projet NimlineWhispers2 : https://github.com/ajpc500/NimlineWhispers2
  • @Snovvcrash pour son projet NimHollow : https://github.com/snovvcrash/NimHollow
Télécharger l’outil