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
Strumenti/GitHubGitHub/boku7/bokuloader
Frameworks per Penetration TestingFramework di ExploitShellcodeAnalisi di BinariRed TeamingSviluppo Payload
GitHubboku7/bokuloader

BokuLoader

Un proof-of-concept di Reflective Loader per Cobalt Strike che mira a ricreare, integrare e migliorare le funzionalità di evasione di Cobalt Strike!

Vedi Repository
1.4k2752 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

BokuLoader : Caricatore Riflessivo per Cobalt Strike

Un prototipo Caricatore Riflessivo Definibile dall'Utente (UDRL) che mira a ricreare, integrare e potenziare le funzionalità di evasione di Cobalt Strike!

Contributori:

ContributoreTwitterContributi Notevoli
Bobby Cooke@0xBokuAutore originale e manutentore del progetto
Santiago Pecin@s4ntiago_pMiglioramenti significativi al Caricatore Riflessivo
Chris Spehn@ConsciousHackerScripting Aggressor
Joshua Magri@passthehashbrwnHooking IAT
Dylan Tran@d_tranmanSpoofing dello Stack di Chiamate Riflessivo
James Yeung@5cript1diotChiamate di Sistema Indirette

Considerazioni sull'Uso dell'UDRL

Il caricatore riflessivo integrato di Cobalt Strike è robusto e gestisce tutte le funzionalità di evasione PE Malleable che Cobalt Strike offre. Il principale svantaggio nell'utilizzare un UDRL personalizzato è che le funzionalità di evasione PE Malleable potrebbero essere supportate o meno così com'è.

L'obiettivo del progetto pubblico BokuLoader è assistere i red team nella creazione del proprio UDRL interno per Cobalt Strike. Il progetto mira a supportare tutte le funzionalità di evasione PE Malleable di CS che ne valgano la pena. Alcune funzionalità di evasione sfruttano l'integrazione con CS, altre sono state ricreate completamente, e alcune non sono supportate.

Prima di utilizzare questo progetto, in qualsiasi forma, dovresti testare adeguatamente che le funzionalità di evasione funzionino come previsto. Tra il codice C e lo script Aggressor, la compilazione con diverse versioni di sistemi operativi, compilatori e Java potrebbe dare risultati diversi.

Funzionalità di Evasione

Funzionalità di Evasione Specifiche di BokuLoader

  • Spoofing dello stack di chiamate riflessivo tramite frame sintetici.
  • Codice personalizzato del caricatore riflessivo in ASM/C
  • Chiamate di sistema NT indirette tramite le tecniche HellsGate & HalosGate
    • Tutte le modifiche alla protezione della memoria per tutte le opzioni di allocazione vengono eseguite tramite chiamata di sistema indiretta a NtProtectVirtualMemory
  • obfuscate "true" con implementazione personalizzata dello script Aggressor per UDRL.
  • NOHEADERCOPY
    • Il caricatore non copierà gli header della DLL beacon grezza nella DLL beacon virtuale. I primi 0x1000 byte saranno nulli.
  • XGetProcAddress per la risoluzione dei simboli
    • Non utilizza Kernel32.GetProcAddress
  • xLoadLibrary per la risoluzione dell'indirizzo base della DLL e il caricamento della DLL
    • Per le DLL caricate, ottiene l'indirizzo base della DLL da TEB->PEB->PEB_LDR_DATA->InMemoryOrderModuleList
    • Non utilizza Kernel32.LoadLibraryA
  • Cifrario di Cesare per l'offuscamento delle stringhe
  • Dimensione UDRL 100k
  • I nomi delle DLL importate e le stringhe dei nomi delle voci di importazione vengono sovrascritti nella DLL beacon virtuale.

Funzionalità di Evasione PE Malleable Supportate

Test

  • (22/02/23) Tutti e 4 i metodi di allocazione testati con threatexpress/malleable-c2/master/jquery-c2.4.7.profile

Origini del Progetto

  • Basato sull'incredibile progetto Reflective Loader di Stephen Fewer:
    • https://github.com/stephenfewer/ReflectiveDLLInjection
  • Creato inizialmente mentre si studiavano i video Reflective DLL di Renz0h del Corso Sektor7 Malware Developer Intermediate (MDI)

Utilizzo

  1. Compila il file oggetto BokuLoader con make
  2. Avvia il tuo Cobalt Strike Team Server
  3. All'interno di Cobalt Strike, importa lo script Aggressor BokuLoader.cna
  4. Genera il beacon x64 (Attacchi -> Pacchetti -> Eseguibile Windows (S))
  5. Usa la Console degli Script per assicurarti che BokuLoader sia stato implementato nella build del beacon
  • Non supporta l'opzione x86. Il binario x86 è il file oggetto originale del Reflective Loader.
  • Generare beacon RAW funziona subito. Quando si utilizza l'Artifact Kit per il caricatore del beacon, la variabile stagesize deve essere maggiore del predefinito.
    • Vedi la documentazione del Caricatore Riflessivo Definibile dall'Utente di Cobalt Strike per ulteriori informazioni

Guida al Rilevamento

Stringhe Codificate

  • BokuLoader modifica alcune stringhe comunemente rilevate in nuovi valori codificati. Queste stringhe possono essere utilizzate per creare firme per BokuLoader:
Stringa Originale di Cobalt StrikeStringa di Cobalt Strike di BokuLoader
ReflectiveLoaderBokuLoader
Microsoft Base Cryptographic Provider v1.012367321236742382543232341241261363163151d
(admin)(tomin)
beaconbacons

Allocatori di Memoria

Sovrascrittura del Modulo DLL

  • Viene chiamata Kernel32.LoadLibraryExA per mappare la DLL dal disco
  • Il 3° argomento di Kernel32.LoadLibraryExA è DONT_RESOLVE_DLL_REFERENCES (0x00000001)
    • il sistema non chiama DllMain
  • Non risolve gli indirizzi nella voce LDR del PEB come descritto da MDSec qui
  • Rilevabile scansione della memoria del processo con lo strumento pe-sieve

Allocazione Heap

  • Memoria eseguibile RX o RWX esisterà nell'heap se non viene utilizzato il kit sleepmask.

Allocatore Mappato

  • Vengono chiamate Kernel32.CreateFileMappingA e Kernel32.MapViewOfFile per allocare memoria per la DLL beacon virtuale.

Rilevamento Sleepmask

  • Se viene utilizzato il kit sleepmask, esistono metodi di rilevamento per questa allocazione di memoria indipendente come descritto da MDSec qui

Chiamate di Sistema Indirette

  • BokuLoader chiama le seguenti systemcall NT per configurare la memoria del beacon eseguibile caricato: NtAllocateVirtualMemory, NtProtectVirtualMemory
  • Vengono chiamate indirettamente dalla memoria eseguibile di BokuLoader.
  • Impostare hook in userland in ntdll.dll non rileverà queste systemcall.
  • Potrebbe essere possibile registrare callback del kernel utilizzando un driver del kernel per monitorare le systemcall di cui sopra e rilevarne l'uso.
  • BokuLoader stesso conterrà le istruzioni assembly mov eax, r11d; mov r11, r10; mov r10, rcx; jmp r11 nella sua memoria eseguibile.

Header della DLL Beacon Virtuale

  • I primi 0x1000 byte della DLL beacon virtuale sono zeri.

Codice Sorgente Disponibile

  • Il codice sorgente di BokuLoader è fornito all'interno del repository e può essere utilizzato per creare firme di memoria.
  • Se hai ulteriori guide per il rilevamento, sentiti libero di contribuire inviando una pull request.

Crediti / Riferimenti

Spoofing dello Stack di Chiamate Riflessivo

  • LoudSunRun: Spoofer di frame sintetici dello stack di chiamate con syscall indirette
  • SilentMoonwalk: Implementazione PoC di uno spoofing dello stack di chiamate completamente dinamico
  • Vulcan Raven: Implementazione PoC per lo spoofing di stack di chiamate arbitrari durante le syscall
  • CallStackMasker: Implementazione PoC per mascherare dinamicamente gli stack di chiamate con timer
  • ThreadStackSpoofer: PoC di spoofing dello stack di thread
  • Behind the Mask: Spoofing degli Stack di Chiamate Dinamicamente con Timer

Reflective Loader

  • https://github.com/stephenfewer/ReflectiveDLLInjection
  • Guarda questi video se sei interessato al Reflective DLL:
    • Ballando con la IAT - Corso Sektor 7 MDI
    • Attraversando la EAT - Corso Sektor 7 MDI
    • Iniezione Riflessiva Spiegata - Corso Sektor 7 MDI
    • Revisione del Codice Sorgente del ReflectiveLoader - Corso Sektor 7 MDI
  • TitanLdr
  • AceLdr
  • KaynLdr

HalosGate SysCaller

  • Reenz0h da @SEKTOR7net
    • Guarda i fantastici corsi e blog di Reenz0h!
    • Migliori corsi sullo sviluppo di malware che abbia mai seguito.
    • Creatore della tecnica halos gate. Il suo lavoro è stato inizialmente la motivazione per questo lavoro.
    • Blog HalosGate di Sektor7

HellsGate Syscaller

  • @smelly__vx & @am0nsec ( Creatori/Pubblicatori della tecnica Hells Gate )
    • Non avrei potuto realizzare la mia implementazione di HellsGate senza di loro :)
    • Lavoro fantastico su questo metodo, mi sono davvero divertito a studiarlo. Grazie!
    • https://github.com/am0nsec/HellsGate
    • Link al documento Hell's Gate: https://vxug.fakedoma.in/papers/VXUG/Exclusive/HellsGate.pdf

Scripting Aggressor

  • sinusoid @the_bit_diddler : returnIntegerFromArray

Caricatore Riflessivo Definibile dall'Utente di Cobalt Strike

  • https://www.cobaltstrike.com/help-user-defined-reflective-loader

Ottima Risorsa per Imparare l'ASM Intel

  • Pentester Academy - SLAE64

Bypass ETW e AMSI

  • @anthemtotheego inline-ExecuteAssembly
  • @mariuszbit - per l'idea fantastica di implementare i bypass nel caricatore riflessivo!
  • @XPN Nascondere il tuo .NET – ETW
  • ajpc500/BOFs
  • Offensive Security OSEP

Implementare ASM in Codice C con GCC

  • https://outflank.nl/blog/2020/12/26/direct-syscalls-in-beacon-object-files/
  • https://www.cs.uaf.edu/2011/fall/cs301/lecture/10_12_asm_c.html
  • http://gcc.gnu.org/onlinedocs/gcc-4.0.2/gcc/Extended-Asm.html#Extended-Asm

Profili C2 di Cobalt Strike

  • L'epico progetto SourcePoint di Tylous
  • threatexpress/malleable-c2/jquery-c2.4.7.profile
Scarica lo strumento
ComandoOpzioniSupportato
allocatorHeapAlloc, MapViewOfFile, VirtualAllocTutte supportate tramite implementazione BokuLoader
module_x64string (Nome DLL)Supportata tramite implementazione BokuLoader. Stessi requisiti di sovrascrittura DLL dell'implementazione CS
obfuscatetrue/falseBeacon HTTP/S supportati tramite implementazione BokuLoader. SMB/TCP attualmente non supportato per obfuscate true. Dettagli nell'issue. Accettiamo aiuto se puoi risolvere :)
entry_pointRVA come numero decimaleSupportata tramite implementazione BokuLoader
cleanuptrueSupportata tramite integrazione CS
userwxtrue/falseSupportata tramite implementazione BokuLoader
sleep_mask(true/false) or (Sleepmask Kit+true)Supportata. Quando si utilizza il default "sleepmask true" (senza sleepmask kit) impostare "userwx true". Quando si utilizza sleepmask kit che supporta RX beacon.text memory (src47/Ekko) impostare "sleepmask true" && "userwx false".
magic_mz_x64Stringa di 4 caratteriSupportata tramite integrazione CS
magic_peStringa di 2 caratteriSupportata tramite integrazione CS
transform-x64 prependStringa hex escapeModifica dello script Aggressor BokuLoader.cna
transform-x64 strrepstringa stringaModifica dello script Aggressor BokuLoader.cna
stomppetrue/falseNon supportata. BokuLoader non copia gli header della DLL beacon. I primi 0x1000 byte della DLL beacon virtuale sono 0x00
checksumnumeroSperimentale. Modifica dello script Aggressor BokuLoader.cna
compile_timestringa data-oraSperimentale. Modifica dello script Aggressor BokuLoader.cna
image_size_x64valore decimaleNon supportata
namestringaSperimentale. Modifica dello script Aggressor BokuLoader.cna
rich_headerstringa hex escapeSperimentale. Modifica dello script Aggressor BokuLoader.cna
stringwstringaNon supportata
stringstringaNon supportata