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
frostbyte — Combina l'iniezione di AppDomain Manager con l'embedding di shellcode in binari firmati per eludere il rilevamento EDR/AV per i payload di red team. | Kitploit
Strumenti/GitHubGitHub/pwn1sher/frostbyte
ShellcodeGenerazione di Shellcode
GitHubpwn1sher/frostbyte

frostbyte

Combina l'iniezione di AppDomain Manager con l'embedding di shellcode in binari firmati per eludere il rilevamento EDR/AV per i payload di red team.

Vedi Repository
3834664 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

FrostByte

Prologo:

Negli ultimi giorni ho sperimentato con la tecnica di iniezione del gestore AppDomain e ho ottenuto un discreto successo nei miei precedenti impegni Red Team contro alcuni EDR. Sebbene sia molto valida come vettore di accesso iniziale, volevo rilasciare un POC che possa aiutare a nascondere il proprio shellcode altrove. Niente più file DLL con shellcode incorporato!

Il problema!

Sebbene sia una tecnica eccellente se usata indipendentemente, quando abbinata a una tecnica di consegna come l'invio di un C# ClickOnce all'interno di un file ISO/ZIP/VHD/VHDX, il vero problema è che 1 volta su 10 la DLL per l'appdomain veniva rilevata dalle euristiche AI/ML dell'AV/EDR. Questo perché il file DLL deve essere rilasciato su disco prima di inizializzare l'appdomain. Tralasciando per ora i caricamenti remoti di DLL (percorsi UNC in .config), la DLL per l'appdomain conterrebbe lo shellcode e ho fortemente ritenuto che questa fosse la ragione di una probabile rilevazione statica, poiché il resto del codice, costituito da chiamate WINAPI, può essere risolto dinamicamente e abbastanza ben offuscato.

Volevo migliorare questa tecnica riducendo al minimo ciò che la DLL dovrebbe inizialmente contenere. Ho iniziato rilasciando shellcode crittografato in un file separato su disco insieme alla DLL injector, ma poi mi sono imbattuto in questo fantastico blog di Checkpoint sulla campagna di Zloader

Versione TLDR: Possiamo incorporare dati arbitrari in alcuni campi all'interno del PE in modo da non rompere la firma del file. Quindi i nostri dati verranno incorporati e l'exe rimarrà comunque firmato digitalmente.

Maggiori informazioni su questo - https://www.blackhat.com/docs/us-16/materials/us-16-Nipravsky-Certificate-Bypass-Hiding-And-Executing-Malware-From-A-Digitally-Signed-Executable-wp.pdf

Quindi l'idea è di incorporare uno stub di shellcode crittografato in un eseguibile firmato noto e riuscire comunque a mantenerlo firmato, come ha fatto il malware Zloader. In questo modo, la DLL del gestore AppDomain non conterrà più lo shellcode al suo interno, ma avrà solo la logica per analizzare lo shellcode dal binario PE che lo carica, decrittografarlo ed eseguirlo come thread separato. In questo modo si potrebbe ridurre il tasso di rilevamento statico per la DLL, mentre il tuo shellcode è ben posizionato all'interno di un binario firmato.

Stavo cercando di ottenere questo manipolando manualmente i campioni di ZLoader presi da VirusTotal, ma poi ho scoperto un progetto che aveva già implementato tutte queste tecniche molto bene - Sigflip. In questo POC ho sfruttato il codice loader di Sigflip per costruire la DLL AppDomain e l'injector SigFlip per incorporare lo shellcode crittografato nel nostro exe C#.

Vantaggi:

Grandi blob di shellcode come lo shellcode Stageless di Cobalt Strike non risiederanno più su una DLL non firmata sul disco, indipendentemente dalle tecniche di offuscamento/codifica utilizzate. La DLL è più pulita, più piccola e più furtiva con un codice minimo, riducendo così le possibilità di rilevamento.

Funzionamento

Diagramma

Passaggi per creare un eseguibile firmato con shellcode

  • Scegli un binario C# firmato x64 a tua scelta, un binario in cui desideri che risieda ed esegua il beacon di Cobalt Strike: Es.: CasPol.exe ecc.
  • Genera il tuo shellcode Stageless di Cobalt Strike - x64-stageless.bin
  • Mettili entrambi in una cartella dove è presente anche SigFlip ed esegui il comando seguente:
    SigFlip.exe -i "Z:\ZLoader\CasPol.exe" "Z:\ZLoader\x64-stageless.bin" "Z:\ZLoader\update.exe" "S3cretK3y"
  • Grazie a SigFlip ora hai un binario (firmato Windows?) chiamato update.exe che sarà un PE firmato digitalmente con shellcode crittografato incorporato.

Passaggi per creare la DLL loader AppDomain

  • Prendi il codice template C# da qui
  • Sostituisci la tua chiave segreta di crittografia con quella scelta durante l'esecuzione di SigFlip alla riga 163 (potrebbe essere necessario aggiustare alcuni byte per confermare che il tuo shellcode CS sia decrittografato correttamente)
  • Sostituisci il percorso del binario alla riga 146
  • Cambia i percorsi dei file di log alle righe 158,165
  • Compila il codice come DLL usando il seguente comando - csc /target:library /out:test.dll test.cs
  • Posiziona la DLL compilata e il file update.exe.config nella stessa cartella dove hai posizionato il tuo exe con shellcode firmato.
  • Esegui update.exe.

Conclusione:

Questo POC è solo un'idea che avevo in mente per unire due tecniche di evasione difensiva completamente diverse, che potrebbero aiutare me e altri Red Teamer a costruire migliori payload di esecuzione iniziale per le loro operazioni. Questo progetto utilizza l'iniezione del gestore AppDomain come esempio, ma questa idea è applicabile anche ad altre tecniche di iniezione come - DLL SideLoading, DLL Hijacking ecc.

Crediti:

Tutti i crediti a med0x2e, questo POC è basato sul suo progetto SigFlip

Riferimenti:

  • https://research.checkpoint.com/2022/can-you-trust-a-files-digital-signature-new-zloader-campaign-exploits-microsofts-signature-verification-putting-users-at-risk/
  • https://www.blackhat.com/docs/us-16/materials/us-16-Nipravsky-Certificate-Bypass-Hiding-And-Executing-Malware-From-A-Digitally-Signed-Executable-wp.pdf
  • https://pentestlaboratories.com/2020/05/26/appdomainmanager-injection-and-detection/
  • https://github.com/med0x2e/SigFlip
Scarica lo strumento