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
Shhhloader — Syscall Shellcode Loader (En cours de développement) | Kitploit
Outils/GitHubGitHub/icyguider/shhhloader
Shellcode
GitHubicyguider/shhhloader

Shhhloader

Syscall Shellcode Loader (En cours de développement)

Voir le dépôt
1.3k198il 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

Shhhloader

Shhhloader est un chargeur de shellcode en cours de développement. Il prend du shellcode brut en entrée et compile une souche C++ qui effectue diverses opérations pour tenter de contourner les antivirus/EDR. Le générateur Python inclus fonctionnera sur tout système Linux disposant de Mingw-w64 installé.

Édition du 25/01/24 : Shhhloader prend désormais en charge la variante 7 de PoolParty ! Une option a également été ajoutée pour combiner PoolParty avec Module Stomping afin d'empêcher le shellcode exécuté de résider dans une mémoire non adossée. Voir ci-dessous une vidéo démontrant cette nouvelle méthode d'injection contre Defender ATP :

Voir la vidéo
root@kitploit:~
┳┻|
┻┳|
┳┻|
┻┳|
┳┻| _
┻┳| •.•)  - Chut, l'AV pourrait nous entendre ! 
┳┻|⊂ノ   
┻┳|
usage: Shhhloader.py [-h] [-p explorer.exe] [-m QueueUserAPC] [-u] [-w] [-nr] [-ns] [-l] [-v] [-sc GetSyscallStub] [-d] [-dp apphelp.dll] [-s domain]
                     [-sa testlab.local] [-o a.exe] [-pp explorer.exe] [-ppv] [-np] [-cp] [-td ntdll.dll] [-ef NtClose]
                     file

ICYGUIDER'S CUSTOM SYSCALL SHELLCODE LOADER

positional arguments:
  file                  File containing raw shellcode

options:
  -h, --help            show this help message and exit
  -p explorer.exe, --process explorer.exe
                        Process to inject into (Default: explorer.exe)
  -m QueueUserAPC, --method QueueUserAPC
                        Method for shellcode execution (Options: PoolPartyModuleStomping, PoolParty, ThreadlessInject, ModuleStomping, QueueUserAPC,
                        ProcessHollow, EnumDisplayMonitors, RemoteThreadContext, RemoteThreadSuspended, CurrentThread) (Default: QueueUserAPC)
  -u, --unhook          Unhook NTDLL in current process
  -w, --word-encode     Save shellcode in stub as array of English words
  -nr, --no-randomize   Disable syscall name randomization
  -ns, --no-sandbox     Disable sandbox checks
  -l, --llvm-obfuscator
                        Use Obfuscator-LLVM to compile stub
  -v, --verbose         Enable debugging messages upon execution
  -sc GetSyscallStub, --syscall GetSyscallStub
                        Syscall execution method (Options: SysWhispers2, SysWhispers3, GetSyscallStub, None) (Default: GetSyscallStub)
  -d, --dll             Generate a DLL instead of EXE
  -dp apphelp.dll, --dll-proxy apphelp.dll
                        Create Proxy DLL using supplied legitimate DLL (File must exist in current dir)
  -s domain, --sandbox domain
                        Sandbox evasion technique (Options: sleep, domain, hostname, username, dll) (Default: sleep)
  -sa testlab.local, --sandbox-arg testlab.local
                        Argument for sandbox evasion technique (Ex: WIN10CO-DESKTOP, testlab.local)
  -o a.exe, --outfile a.exe
                        Name of compiled file

PPID Spoofing:
  -pp explorer.exe, --ppid explorer.exe
                        Parent process to use for PPID Spoofing (Default: explorer.exe)
  -ppv, --ppid-priv     Enable spoofing for privileged parent process (Disabled by default)
  -np, --no-ppid-spoof  Disable PPID spoofing

ThreadlessInject:
  -cp, --create-process
                        Create process instead of injecting into existing one
  -td ntdll.dll, --target-dll ntdll.dll
                        Target DLL containing export function to overwrite
  -ef NtClose, --export-function NtClose
                        Export function to overwrite

Fonctionnalités :

  • 10 méthodes d'exécution de shellcode différentes (PoolParty, PoolPartyModuleStomping, ThreadlessInject, ModuleStomping, QueueUserAPC, ProcessHollow, EnumDisplayMonitors, RemoteThreadContext, RemoteThreadSuspended, CurrentThread)
  • Usurpation PPID (PPID Spoofing)
  • Blocage des DLL tierces
  • Détourage de NTDLL via KnownDLLs
  • SysWhispers2, SysWhispers3 et GetSyscallStub
  • Hachage d'API pour SW2 et SW3
  • Chiffrement des chaînes à la compilation
  • Prise en charge d'Obfuscator-LLVM (OLLVM)
  • Génération automatique de proxy DLL
  • Intégration du framework Havoc C2
  • Randomisation des noms de syscall
  • Stockage du shellcode sous forme de tableau de mots anglais
  • Encodage XOR avec génération de clé dynamique
  • Contournement de sandbox via DLL chargée, domaine, utilisateur, nom d'hôte et énumération du système

Voir ci-dessous une vidéo de preuve de concept de la méthode ThreadlessInject utilisée pour injecter un beacon Havoc dans IE sans générer d'alertes et avec un minimum d'événements dans Microsoft Defender for Endpoint (MDE) EDR (Enregistrée le 03/04/2023) :

Voir la vidéo

Voir la vidéo ci-dessous démontrant la technique d'injection Module Stomping exécutée via un proxy DLL (Enregistrée le 09/08/2022) :

Voir la vidéo

Shhhloader a également été intégré au framework Havoc C2 via un module par @jakobfriedl. Voir ci-dessous une vidéo démontrant le module :

Voir la vidéo

Problèmes connus / Remarques :

  • Les méthodes d'injection PoolParty sont actuellement configurées pour injecter dans un processus existant. Par conséquent, vous devez utiliser l'option -p pour fournir le nom d'un processus que vous savez ou soupçonnez être déjà en cours d'exécution sur le système cible.
  • Les méthodes d'injection PoolParty ne fonctionneront pas avec des fichiers shellcode volumineux comme sliver (~11 Mo).
  • La méthode d'exécution ThreadlessInject doit actuellement injecter dans un processus non suspendu. Ceci est fait automatiquement pour vous si l'option -cp est fournie. J'espère trouver un moyen de la faire fonctionner avec des processus suspendus bientôt.
  • Le module Havoc C2 plante actuellement lors de la spécification d'un Listener au lieu d'un fichier shellcode brut. Cela sera corrigé bientôt, espérons-le.
  • Windows Defender détectera la plupart des fichiers générés par cet outil, alors veuillez ne pas ouvrir un ticket disant « DÉTECTÉ !!! ». Jouez avec les nouvelles options et fonctionnalités jusqu'à obtenir quelque chose qui fonctionne ; elles ont été ajoutées pour une raison :). Exécuter le fichier généré en mémoire est également un bon moyen d'éviter ces détections.
  • Obfuscator-LLVM (OLLVM) n'est pas compatible avec SW2 et SW3 en raison de la manière dont clang gère l'assembly inline. Il n'est pas prévu de les rendre compatibles ; des contrôles ont été ajoutés pour empêcher l'utilisateur d'essayer d'utiliser ces fonctionnalités ensemble.
  • Il y a énormément de bugs dans mon code. Veuillez tout tester à l'avance avant d'utiliser pour quelque chose d'important, et FOURNISSEZ autant d'informations que possible lors de l'ouverture d'un ticket. (MERCI !)

Mises à jour prévues :

  • Option syscall par point d'arrêt matériel (HWBP)
  • Création de processus via syscall au lieu de la fonction WinAPI standard
  • Intégration de ThreadlessInject avec d'autres techniques d'injection de shellcode (ex. ModuleStomping)
  • Refactorisation du code pour le rendre plus modulaire et lisible
  • Correction des bugs dans le module Havoc C2
  • Correction d'innombrables bugs en apprenant à mieux programmer ;)

OPTIONNEL : Pour utiliser l'option Obfuscator-LLVM, vous devez l'avoir installé sur votre système ainsi que wclang. J'ai trouvé cela un peu pénible, mais vous devriez y arriver avec un peu de persévérance. Voici un guide étape par étape que j'ai utilisé pour installer la branche llvm-13.x d'OLLVM sur mon système Kali Linux :

Voir les détails
root@kitploit:~
# Clone and Run CMake
git clone -b llvm-13.x https://github.com/heroims/obfuscator.git
mkdir build
cd build
cmake -DCMAKE_BUILD_TYPE=Release -DLLVM_ENABLE_NEW_PASS_MANAGER=OFF ../obfuscator/llvm/

# Configure CMake and Compile OLLVM
export clang_build_dir=$(cd ../; pwd)/obfuscator/clang
sed -i 's/LLVM_TOOL_CLANG_BUILD:BOOL=OFF/LLVM_TOOL_CLANG_BUILD:BOOL=ON/g' CMakeCache.txt
sed -i "s|LLVM_EXTERNAL_CLANG_SOURCE_DIR:PATH=|LLVM_EXTERNAL_CLANG_SOURCE_DIR:PATH=$clang_build_dir|g" CMakeCache.txt
make -j7

# ONCE COMPILED, BACKUP ORIGINAL CLANG BINARIES
mv /usr/bin/clang /usr/bin/clang13.0.1
mv /usr/bin/clang++ /usr/bin/clang++13.0.1

# Then in OLLVM build/bin dir, copy the newly build clang bins
cp bin/clang /usr/bin/clang
cp bin/clang++ /usr/bin/clang++

# Then install wclang
cd ..
git clone https://github.com/tpoechtrager/wclang.git
cd wclang/
cmake -DCMAKE_INSTALL_PREFIX=_prefix_ .
make
make install
export wclang_path=$(pwd)/_prefix_/bin
echo "export PATH=$wclang_path:$PATH" >> ~/.bashrc
export PATH=$wclang_path:$PATH

# Then backup original lib files
cp -R /lib/llvm-13/lib/clang/13.0.1/include/ /lib/llvm-13/lib/clang/13.0.1/include_backup/

# Finally in the OLLVM build/bin/lib/clang/13.0.1/ dir, copy the include folder
cd ../build/lib/clang/13.0.1/
cp -R include/ /lib/llvm-13/lib/clang/13.0.1/

Il existe probablement une meilleure méthode, mais c'est celle qui a fonctionné pour moi. Si vous rencontrez des problèmes, continuez d'essayer et assurez-vous de pouvoir exécuter x86_64-w64-mingw32-clang++ -v et qu'il contienne soit « Obfuscator-LLVM » soit « heroims » dans la sortie. Malheureusement, je n'ai pas le temps d'aider individuellement les personnes qui auraient besoin de plus d'aide, mais vous pouvez essayer de lire ce ticket sur mon dépôt Nimcrypt2 où quelques utilisateurs ont réussi à le faire fonctionner sur leurs systèmes.

Salutations & Crédits :

  • @Jackson_T pour son incroyable projet SysWhispers : https://github.com/jthuraisamy/SysWhispers
  • @FalconForceTeam pour leur outil de génération de syscall supportant SysWhispers2 : https://github.com/FalconForceTeam/SysWhispers2BOF
  • @snovvcrash pour leur projet DInjector, que j'ai utilisé comme modèle pour plusieurs techniques d'inclusion : https://github.com/snovvcrash/DInjector
  • @Cerbersec pour leur projet Ares, dont j'ai utilisé le code pour l'usurpation PPID, le blocage des DLL tierces et le contournement de sandbox : https://github.com/Cerbersec/Ares
  • @spotheplanet pour son article de blog sur la récupération des stubs syscall de ntdll depuis le disque à l'exécution : https://www.ired.team/offensive-security/defense-evasion/retrieving-ntdll-syscall-stubs-at-run-time
  • @_RastaMouse pour son code et son article sur Module Stomping que j'ai porté en C++ : https://offensivedefence.co.uk/posts/module-stomping/
  • @s4ntiago_p pour leur projet NanoDump et le script randomize_sw2_seed.py en particulier : https://github.com/helpsystems/nanodump
  • @skadro-official pour leur projet skCrypter que cet outil utilise pour le chiffrement des chaînes à la compilation : https://github.com/skadro-official/skCrypter
  • @_EthicalChaos_ pour leur projet ThreadlessInject :
Télécharger l’outil
https://github.com/CCob/ThreadlessInject
  • 0xLegacyy pour leur version BOF de ThreadlessInject : https://github.com/iilegacyyii/ThreadlessInject-BOF
  • @D1rkMtr pour leur projet de collection de détourage de ntdll : https://github.com/TheD1rkMtr/ntdlll-unhooking-collection
  • @KlezVirus pour leur projet SysWhispers3 : https://github.com/klezVirus/SysWhispers3
  • @jakobfriedl pour avoir créé un module Havoc C2 pour Shhhloader
  • @_0xDeku pour leurs recherches et leur code concernant l'injection de processus via les pools de threads Windows (PoolParty) : https://github.com/SafeBreach-Labs/PoolParty
  • @0xEr3bus pour leur PoolParty BOF utilisé comme référence : https://github.com/0xEr3bus/PoolPartyBof