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
Chimera — Strumento automatizzato per il sideloading di DLL con capacità di evasione dagli EDR | Kitploit
Strumenti/GitHubGitHub/georgesotiriadis/chimera
Generazione di PayloadExploitShellcodeRed Teaming
GitHubgeorgesotiriadis/chimera

Chimera

Strumento automatizzato per il sideloading di DLL con capacità di evasione dagli EDR

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

Chimera Unlea$ed 

Contesto dello strumento


Sebbene il DLL sideloading possa essere utilizzato per scopi legittimi, come il caricamento di librerie necessarie al funzionamento di un programma, può anche essere utilizzato per scopi dannosi. Gli aggressori possono utilizzare il DLL sideloading per eseguire codice arbitrario su un sistema di destinazione, spesso sfruttando vulnerabilità in applicazioni legittime utilizzate per caricare DLL.

Per automatizzare il processo di DLL sideloading e renderlo più efficace, è stato creato Chimera, uno strumento che include metodologie di evasione per bypassare i prodotti EDR/AV. Questo strumento può crittografare automaticamente uno shellcode tramite XOR con una chiave casuale e creare modelli di immagini che possono essere importati in Visual Studio per creare una DLL dannosa.

Inoltre, vengono utilizzate le Dynamic Syscalls di SysWhispers3 e una versione assembly modificata per eludere il pattern ricercato dall'EDR, vengono aggiunti NOP sled casuali e i registri vengono spostati. Inoltre, viene utilizzato anche Early Bird Injection per iniettare lo shellcode in un altro processo che l'utente può specificare, con meccanismi di evasione del sandbox come il controllo del disco rigido e se il processo è in fase di debug. Infine, nel loader è presente un attacco temporale che utilizza timer attendibili per ritardare l'esecuzione dello shellcode.

Questo strumento è stato testato e si è dimostrato efficace nel bypassare i prodotti EDR/AV e nell'eseguire codice arbitrario su un sistema di destinazione.

La versione aggiornata di Chimera Unleashed ha dimostrato significativi progressi nell'eludere sia l'analisi statica che dinamica, in particolare nel contesto del sistema Endpoint Detection and Response (EDR) di Microsoft 365. Le tecniche di sideloading dello strumento, anche se applicate a binari ben noti come OneDrive, sono riuscite a sfuggire al rilevamento. Tuttavia, è degno di nota che, mentre l'aspetto del sideloading è rimasto non rilevato, il processo di Early Bird Injection impiegato dallo strumento è stato identificato dal sistema EDR. Ciò evidenzia un'area per un ulteriore perfezionamento nel migliorare le capacità complessive di furtività dello strumento.

Utilizzo dello strumento


Aggiornamenti e caratteristiche principali:

  • Struttura riformattata: L'intero programma è stato ristrutturato per una maggiore facilità di sviluppo e manutenibilità futura.
  • Integrazione di codice polimorfico: Incorporazione di codice polimorfico, migliorando significativamente le capacità di evasione e rendendo lo strumento più resiliente contro l'analisi statica.
  • Integrazione di SysWhispers 3: Passaggio da SysWhispers 2 a una versione modificata di SysWhispers 3. Questo aggiornamento migliora la capacità dello strumento di eludere i meccanismi di riconoscimento dei pattern impiegati dai sistemi EDR, utilizzando syscall dinamiche e tecniche di assembly modificate.
  • Crittografia AES: Implementata la crittografia AES per proteggere lo shellcode, aggiungendo un ulteriore livello di sicurezza e offuscamento.
  • Early Bird Injection: Lo strumento utilizza tecniche di Early Bird Injection, consentendo un'esecuzione del codice più furtiva all'interno dei processi target.
  • Module Stomping: Verrà aggiunto in futuro; puoi anche implementare la tua tecnica di code injection nello strumento.

Chimera è scritto in Python3 e non è necessario installare dipendenze extra.

Chimera attualmente supporta due opzioni DLL: Microsoft Teams o Microsoft OneDrive.

Si può creare userenv.dll, che è una DLL mancante di Microsoft Teams, e inserirla nella cartella specifica:

%USERPROFILE%/Appdata/local/Microsoft/Teams/current

Per Microsoft OneDrive, lo script utilizza version.dll, che è comune perché manca dal binario, ad esempio onedriveupdater.exe.

Argomenti della riga di comando

Chimera Unleashed utilizza argparser per l'analisi degli argomenti da riga di comando. Sono disponibili i seguenti argomenti:

  • --raw o -r: Percorso del file contenente lo shellcode. Obbligatorio.
  • --path o -p: Percorso di output per il file template C. Obbligatorio.
  • --pname o -n: Nome del processo in cui iniettare lo shellcode. Obbligatorio.
  • --dexports o -d: Specifica quale export DLL utilizzare ('teams' o 'onedrive'). Obbligatorio.
  • --enc o -e: Specifica la crittografia preferita (XOR / AES). Obbligatorio.
  • --inj o -i: Specifica la tecnica di iniezione preferita (EB / MS). Obbligatorio.
  • --rshell o -s: [Opzionale] Sostituisci il nome della variabile shellcode con un nome univoco. Predefinito: 'encoded_shell'.

Esempio di utilizzo: python Chimera.py --raw <path_to_shellcode> --path <output_path> --pname <process_name> --dexports <exports_file> --enc AES --inj EB --rshell my_shellcode

Nota utile

Una volta completato il processo di compilazione, verrà generata una DLL, che dovrebbe includere "version.dll" per OneDrive o "userenv.dll" per Microsoft Teams. Successivamente, è necessario rinominare le DLL originali.

Ad esempio, la DLL originale "userenv.dll" dovrebbe essere rinominata in "tmpB0F7.dll", mentre la DLL originale "version.dll" dovrebbe essere rinominata in "tmp44BC.dll". Inoltre, hai la possibilità di modificare il nome della DLL proxy come desiderato modificando il codice sorgente degli export DLL invece di utilizzare i nomi predefiniti dello script.

Il file code.h contiene lo shellcode.

Configurazione del progetto Visual Studio


Step 1: Creazione di un nuovo progetto Visual Studio con template DLL

  1. Avvia Visual Studio e fai clic su "Create a new project" o vai su "File" -> "New" -> "Project."
  2. Nella finestra dei modelli di progetto, seleziona "Visual C++" dal lato sinistro.
  3. Scegli "Empty Project" tra i modelli disponibili.
  4. Fornisci un nome e una posizione adatti per il progetto, quindi fai clic su "OK."
  5. Nella finestra delle proprietà del progetto, vai su "Configuration Properties" -> "General" e imposta "Configuration Type" su "Dynamic Library (.dll)."
  6. Configura altre impostazioni del progetto come desiderato e salva il progetto.

Step 2: Importazione dei file nel progetto Visual Studio

  1. Individua la cartella "chimera_automation" contenente le immagini necessarie.
  2. Apri la cartella e identifica i seguenti file: main.c, syscalls.c, syscallsstubs.std.x64.asm.
  3. In Visual Studio, fai clic con il tasto destro sul progetto nel pannello "Solution Explorer" e seleziona "Add" -> "Existing Item."
  4. Sfoglia fino alla posizione di ciascun file (main.c, syscalls.c, syscallsstubs.std.x64.asm) e selezionali uno per uno. Fai clic su "Add" per importarli nel progetto.
  5. Crea una cartella denominata "header_files" all'interno della directory del progetto, se non esiste già.
  6. Individua il file header "syscalls_mem.h" nella cartella "header_files" della directory "chimera_automation".
  7. Fai clic con il tasto destro sulla cartella "header_files" nel pannello "Solution Explorer" di Visual Studio e seleziona "Add" -> "Existing Item."
  8. Sfoglia fino alla posizione di "syscalls_mem.h" e selezionalo. Fai clic su "Add" per importarlo nel progetto.

Step 3: Personalizzazione della build

  1. Nella finestra delle proprietà del progetto, vai su "Configuration Properties" -> "Build Customizations."
  2. Fai clic sul pulsante "Build Customizations" per aprire il dialogo di personalizzazione della build.

Step 4: Abilitazione di MASM

  1. Nel dialogo di personalizzazione della build, seleziona la casella accanto a "masm" per abilitarlo.
  2. Fai clic su "OK" per chiudere il dialogo.

Step 5: 

  1. Fai clic con il tasto destro sul file assembly -> proprietà e scegli le seguenti opzioni:
  2. Exclude from build -> No
  3. Content -> Sì
  4. Item type -> Microsoft Macro Assembler

Configurazione finale del progetto

Ottimizzazioni del compilatore


Step 1: Modifica dell'ottimizzazione

  1. In Visual Studio, scegli Project -> properties
  2. C/C++ Optimization e modifica come segue

Step 2: Rimozione delle informazioni di debug

  1. In Visual Studio, scegli Project -> properties
  2. Linker -> Debugging -> Generate Debug Info -> No

Contributori

Contributore originale:

  • George Sotiriadis
    • Rilascio iniziale e concept.
    • Refactoring del codice nella versione aggiornata.
    • SysWhispers3 modificato nella versione aggiornata.

Contributore:

  • Efstratios Chatzoglou
    • Aggiunto codice polimorfico, offuscatore e crittografia AES nella versione aggiornata.
    • Assistito nel refactoring del codice e nell'ulteriore sviluppo.

Dichiarazione di responsabilità:


Nella misura massima consentita dalla legge applicabile, io (George Sotiriadis) e/o gli affiliati che hanno inviato contenuti al mio repository, non saranno responsabili per danni indiretti, incidentali, speciali, consequenziali o punitivi, o per qualsiasi perdita di profitti o entrate, sostenuta direttamente o indirettamente, o per qualsiasi perdita di dati, uso, avviamento o altre perdite immateriali, risultanti da (i) il tuo accesso a questa risorsa e/o l'incapacità di accedervi; (ii) qualsiasi condotta o contenuto di terze parti referenziate da questa risorsa, inclusi senza limitazione, comportamenti diffamatori, offensivi o illegali di altri utenti o terze parti; (iii) qualsiasi contenuto ottenuto da questa risorsa.

Riferimenti


https://www.ired.team/offensive-security/code-injection-process-injection/early-bird-apc-queue-code-injection

https://evasions.checkpoint.com/

https://github.com/Flangvik/SharpDllProxy

https://github.com/jthuraisamy/SysWhispers2

https://systemweakness.com/on-disk-detection-bypass-avs-edr-s-using-syscalls-with-legacy-instruction-series-of-instructions-5c1f31d1af7d

https://github.com/Mr-Un1k0d3r

Scarica lo strumento
  • --rxor o -x: [Opzionale] Sostituisci il nome della crittografia xor con un nome univoco. Predefinito: 'do_xor'.
  • --rkey o -k: [Opzionale] Sostituisci il nome della variabile key con un nome univoco. Predefinito: 'key'.
  • --rsleep o -z: [Opzionale] Tempo di pausa totale da includere durante l'esecuzione (secondi). Predefinito: 4000.
  • --size o -f: [Opzionale] Dimensione del file di dati spazzatura in KB. Zero (0) disabilitato, uno (1) dimensione casuale. Predefinito: 0.