Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
Shhhloader — Caricatore di shellcode tramite syscall (Lavori in corso) | Kitploit
Strumenti/GitHubGitHub/icyguider/shhhloader
Shellcode
GitHubicyguider/shhhloader

Shhhloader

Caricatore di shellcode tramite syscall (Lavori in corso)

Vedi Repository
1.3k1982 anni faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

Shhhloader

Shhhloader è un loader di shellcode in fase di sviluppo. Prende shellcode grezzo come input e compila uno stub in C++ che esegue una serie di diverse operazioni per tentare di bypassare AV/EDR. Il builder Python incluso funzionerà su qualsiasi sistema Linux con Mingw-w64 installato.

Modifica del 25/01/24: Shhhloader ora supporta la variante 7 di PoolParty! È stata anche aggiunta un'opzione che combina PoolParty con Module Stomping per evitare che lo shellcode eseguito risieda in memoria non supportata. Vedi sotto per un video che dimostra questo nuovo metodo di iniezione contro Defender ATP:

Guarda il video
root@kitploit:~
┳┻|
┻┳|
┳┻|
┻┳|
┳┻| _
┻┳| •.•)  - Shhhhh, AV might hear us! 
┳┻|⊂ノ   
┻┳|
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

Caratteristiche:

  • 10 Metodi diversi di esecuzione dello shellcode (PoolParty, PoolPartyModuleStomping, ThreadlessInject, ModuleStomping, QueueUserAPC, ProcessHollow, EnumDisplayMonitors, RemoteThreadContext, RemoteThreadSuspended, CurrentThread)
  • PPID Spoofing
  • Blocca DLL di terze parti
  • Unhook NTDLL tramite KnownDLLs
  • SysWhispers2, SysWhispers3 e GetSyscallStub
  • API Hashing per SW2 e SW3
  • Crittografia delle stringhe in fase di compilazione
  • Supporto Obfuscator-LLVM (OLLVM)
  • Generazione automatica di Proxy DLL
  • Integrazione con Havoc C2 Framework
  • Randomizzazione dei nomi delle syscall
  • Memorizza lo shellcode come array di parole inglesi
  • Codifica XOR con generazione dinamica della chiave
  • Evitamento sandbox tramite DLL caricata, Dominio, Utente, Hostname e Enumerazione del sistema

Vedi sotto per un video PoC del metodo ThreadlessInject utilizzato per iniettare un beacon Havoc in IE senza generare alcun avviso e con eventi minimi in Microsoft Defender for Endpoint (MDE) EDR (Registrato il 4/3/2023):

Guarda il video

Vedi il video sottostante che dimostra la tecnica di iniezione Module Stomping eseguita tramite DLL Proxying (Registrato il 9/8/2022):

Guarda il video

Shhhloader è stato anche integrato nel Havoc C2 Framework tramite un modulo di @jakobfriedl. Vedi sotto per un video che dimostra il modulo:

Guarda il video

Problemi noti/Note:

  • I metodi di iniezione PoolParty sono attualmente configurati per iniettare in un processo esistente. Pertanto, devi usare il flag -p per fornire il nome di un processo che sai o sospetti sia già in esecuzione sul sistema di destinazione.
  • I metodi di iniezione PoolParty non funzioneranno con file di shellcode grandi come sliver (~11MB).
  • Il metodo di esecuzione dello shellcode ThreadlessInject deve attualmente iniettare in un processo non sospeso. Questo viene fatto automaticamente per te se viene fornita l'opzione "-cp". Spero di trovare un modo per farlo funzionare anche con processi sospesi.
  • Il modulo Havoc C2 attualmente si blocca quando si specifica un Listener invece di un file di shellcode grezzo. Questo verrà risolto presto.
  • Windows Defender rileverà la maggior parte dei file generati da questo strumento, quindi per favore non aprire un issue dicendo "RILEVATO!!!". Sperimenta con le nuove opzioni e funzionalità finché non ottieni qualcosa che funzioni; sono state aggiunte per un motivo :). Eseguire il file generato in memoria è anche un buon modo per eludere queste rilevazioni.
  • Obfuscator-LLVM (OLLVM) non è compatibile con SW2 e SW3 a causa di come clang gestisce l'assembly inline. Non ci sono piani per renderli compatibili; sono stati aggiunti controlli per impedire all'utente di provare a usare queste funzionalità insieme.
  • Ci sono un sacco di bug nel mio codice. Per favore testa tutto in anticipo prima di usarlo per qualcosa di importante, e per favore fornisci quante più informazioni possibile quando apri un issue. (GRAZIE!)

Aggiornamenti pianificati:

  • Opzione syscall Hardware Breakpoint (HWBP)
  • Creare processi usando syscall invece della funzione WinAPI standard
  • Integrare ThreadlessInject con altre tecniche di iniezione dello shellcode (es. ModuleStomping)
  • Refactoring del codice per renderlo più modulare e leggibile
  • Correggere i bug nel modulo Havoc C2
  • Correggere innumerevoli bug imparando a programmare meglio ;)

OPZIONALE: Per usare il flag Obfuscator-LLVM, devi averlo installato sul tuo sistema insieme a wclang. Ho trovato che sia un po' fastidioso, ma dovresti riuscirci con un po' di perseveranza. Ecco una procedura passo-passo che ho usato per installare il ramo llvm-13.x di OLLVM sul mio sistema Kali Linux:

Vedi dettagli
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/

Probabilmente esiste un modo migliore per farlo, ma questo è ciò che ha funzionato per me. Se hai problemi, continua a provare e assicurati di poter eseguire x86_64-w64-mingw32-clang++ -v e che l'output contenga "Obfuscator-LLVM" o "heroims". Purtroppo non ho tempo per assistere singolarmente chi potrebbe aver bisogno di ulteriore aiuto, ma puoi provare a leggere questo issue sul mio repository Nimcrypt2, dove un paio di utenti hanno capito come fare sui loro sistemi.

Saluti e crediti:

  • @Jackson_T per il suo fantastico progetto SysWhispers: https://github.com/jthuraisamy/SysWhispers
  • @FalconForceTeam per il loro strumento di generazione syscall che supporta SysWhispers2: https://github.com/FalconForceTeam/SysWhispers2BOF
  • @snovvcrash per il loro progetto DInjector, che ho usato come template per molte delle tecniche di iniezione incluse: https://github.com/snovvcrash/DInjector
  • @Cerbersec per il loro progetto Ares, il cui codice ho usato per PPID Spoofing, Blocco di DLL di terze parti e Evitamento sandbox: https://github.com/Cerbersec/Ares
  • @spotheplanet per il loro articolo sul recupero degli stub syscall di ntdll dal disco in fase di esecuzione: https://www.ired.team/offensive-security/defense-evasion/retrieving-ntdll-syscall-stubs-at-run-time
  • @_RastaMouse per il suo codice e articolo su Module Stomping che ho portato in C++: https://offensivedefence.co.uk/posts/module-stomping/
  • @s4ntiago_p per il loro progetto NanoDump e in particolare lo script randomize_sw2_seed.py: https://github.com/helpsystems/nanodump
  • @skadro-official per il loro progetto skCrypter che questo strumento utilizza per la crittografia delle stringhe in fase di compilazione: https://github.com/skadro-official/skCrypter
  • @_EthicalChaos_ per il loro progetto ThreadlessInject:
Scarica lo strumento
https://github.com/CCob/ThreadlessInject
  • 0xLegacyy per la loro versione BOF di ThreadlessInject: https://github.com/iilegacyyii/ThreadlessInject-BOF
  • @D1rkMtr per il loro progetto di raccolta unhooking di ntdll: https://github.com/TheD1rkMtr/ntdlll-unhooking-collection
  • @KlezVirus per il loro progetto SysWhispers3: https://github.com/klezVirus/SysWhispers3
  • @jakobfriedl per aver realizzato un modulo Havoc C2 per Shhhloader
  • @_0xDeku per la loro ricerca e codice riguardante l'iniezione di processi usando i thread pool di Windows (PoolParty): https://github.com/SafeBreach-Labs/PoolParty
  • @0xEr3bus per il loro PoolParty BOF utilizzato come riferimento: https://github.com/0xEr3bus/PoolPartyBof