Skip to content
KitploitKITPLOIT
StrumentiExploitsBlog
Log in
Invia
StrumentiExploitsBlog
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.

FeedContattoPrivacy© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
DotDumper — Un unpacker e logger automatico per file destinati a DotNet Framework | Kitploit
Strumenti/GitHubGitHub/advanced-threat-research/dotdumper
Analisi Dinamica (Sandboxing)Memory ForensicsReverse EngineeringDebuggerInformatica ForenseAnalisi MalwareAnalisi di Binari
GitHubadvanced-threat-research/dotdumper

DotDumper

Un unpacker e logger automatico per file destinati a DotNet Framework

Vedi Repository
26631263 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
Il logo di DotDumper, un camion per scaricare

DotDumper

Uno strumento automatico per unpacking e logging di file destinati al DotNet Framework! Questo strumento è stato presentato al Black Hat USA 2022. Al Black Hat Asia 2023, sono stati pubblicati DotDumperGUI e DotDumperNative, insieme alla versione 1.1-stable di DotDumper. Questi tre strumenti sono pensati per essere usati insieme, dove DotDumper 1.1-stable richiede la presenza delle DLL di DotDumperNative, mentre DotDumperGUI è inteso come interfaccia grafica per aprire e filtrare l'output JSON delle esecuzioni di DotDumper.

Il rilevamento e la classificazione automatici di qualsiasi file in modo affidabile è spesso considerato il Santo Graal dell'analisi malware. Le prove e le tribolazioni per arrivarci sono molte, motivo per cui la creazione di un tale sistema è tenuta in grande considerazione. Quando si tratta di binari destinati a DotNet, il nostro nuovo strumento open-source DotDumper mira ad assistere in diversi passaggi cruciali lungo il percorso: registrare l'attività (in memoria), scaricare segmenti di memoria interessanti ed estrarre caratteristiche dal campione dato.

Indice dei contenuti

  • Perché DotDumper?
  • Caratteristiche
    • Utilizzo dell'interfaccia a riga di comando
    • Registrazione e dumping
    • Reflection
    • Hook (non) gestiti
    • Facilmente estendibile
  • Supporto timeout sandbox
  • Differenze con gli strumenti noti
  • Lavori futuri

Perché DotDumper?

In breve, l'unpacking manuale è un processo noioso che consuma una quantità di tempo sproporzionata per gli analisti. I binari offuscati aumentano ulteriormente il tempo che un analista deve dedicare per decomprimere un dato file. Scalando questo, le organizzazioni hanno bisogno di numerosi analisti che analizzano il malware quotidianamente, probabilmente in combinazione con una sandbox scalabile. Il tempo prezioso perso potrebbe essere utilizzato per approfondire campagne o campioni interessanti per scoprire nuove minacce, piuttosto che il malware generico e banale ampiamente diffuso. Dopotutto, gli analisti cercano i pochi aghi nel pagliaio.

Allora, che differenza fa DotDumper? Eseguire un campione malware basato su DotNet tramite DotDumper fornisce file di log di chiamate di funzione cruciali, contestualizzanti e comuni in tre formati (testo semplice leggibile dall'uomo, JSON e XML), oltre a copie di segmenti di memoria utili. In questo modo, un analista può scorrere il registro delle chiamate di funzione. Inoltre, i file scaricati possono essere scansionati per classificarli, fornendo ulteriori informazioni sul campione malware e sui dati che contiene. Ciò riduce il tempo vitale per i processi di triage e risposta agli incidenti e libera il tempo degli analisti SOC e dei ricercatori per esigenze di analisi più sofisticate.

Caratteristiche

Per registrare e dumpare le chiamate di funzione contestualizzanti e i loro risultati, DotDumper utilizza una miscela di reflection e hook gestiti, tutti scritti in puro C#. Di seguito, le caratteristiche chiave verranno evidenziate e approfondite, in combinazione con estratti dei risultati di DotDumper su un campione di AgentTesla stealer impacchettato, i cui hash sono riportati di seguito.

Tipo di hashValore hash
SHA-256b7512e6b8e9517024afdecc9e97121319e7dad2539eb21a79428257401e5558d
SHA-1c10e48ee1f802f730f41f3d11ae9d7bcc649080c
MD-523541daadb154f1f59119952e7232d6b

Utilizzo dell'interfaccia a riga di comando

DotDumper è accessibile tramite un'interfaccia a riga di comando, con una varietà di argomenti. L'immagine seguente mostra il menu di aiuto. Nota che non tutti gli argomenti verranno discussi, ma piuttosto quelli più usati.

Menu dell'interfaccia a riga di comando di DotDumper

Il requisito minimo per eseguire un dato campione è fornire l'argomento “-file”, insieme a un nome file o un percorso file. Se viene fornito un percorso completo, viene utilizzato. Se viene fornito un nome file, vengono controllati la directory di lavoro corrente e la cartella della posizione dell'eseguibile di DotDumper.

A meno che non venga fornito un nome di directory, il nome della cartella “-log” viene impostato uguale al nome del file del campione senza estensione (se presente). La cartella si trova nella stessa cartella in cui risiede DotDumper, ed è lì che verranno salvati i log e i file dumpati.

Nel caso di una libreria o di un punto di ingresso alternativo in un binario, è necessario sovrascrivere il punto di ingresso usando “-overrideEntry true”. Inoltre, bisogna fornire la classe completamente qualificata, che include il namespace usando “-fqcn My.NameSpace.MyClass”. Questo dice a DotDumper quale classe selezionare, da cui viene recuperato il nome della funzione fornito (usando “-functionName MyFunction”).

Se la funzione selezionata richiede argomenti, bisogna fornire il numero di argomenti usando “-argc” e il numero di argomenti richiesti. I tipi e i valori degli argomenti devono essere forniti come “string|myValue int|9”. Nota che quando vengono usati spazi nei valori, l'argomento nell'interfaccia a riga di comando deve essere racchiuso tra virgolette per garantire che venga passato come un singolo argomento.

Altre opzioni meno usate come “-raceTime” o “-deprecated” sono sicure nelle loro impostazioni predefinite ma potrebbero richiedere modifiche in futuro a causa di cambiamenti nel DotNet Framework. Sono attualmente esposte nell'interfaccia a riga di comando per consentire facilmente modifiche, se necessario, anche se si sta utilizzando una versione precedente di DotDumper quando arriva il momento.

Registrazione e dumping

La registrazione e il dumping sono le due funzionalità principali di DotDumper. Per ridurre al minimo il tempo impiegato dall'analisi, la registrazione dovrebbe fornire contesto all'analista. Questo viene fatto fornendo all'analista le seguenti informazioni per ogni chiamata di funzione registrata:

  • Una traccia dello stack basata sul chiamante della funzione
  • Informazioni sull'oggetto assembly da cui ha avuto origine la chiamata, come nome, versione e hash crittografici
  • L'assembly genitore, da cui ha origine la chiamata se non è il campione originale
  • Il tipo, il nome e il valore degli argomenti della funzione
  • Il tipo, il nome e il valore del valore di ritorno della funzione, se presente
  • Un elenco di file che vengono dumpati su disco e che corrispondono alla chiamata di funzione data

Nota che per ogni file dumpato, il nome del file è uguale all'hash SHA-256 del file.

Per chiarire quanto sopra, viene fornito di seguito un estratto di un log. L'estratto mostra i dettagli per il suddetto campione AgentTesla, dove carica il secondo stadio usando la funzione Assembly.Load di DotNet.

Il log per una chiamata alla funzione Assembly.Load(byte[] rawAssembly) intercettata

Scarica lo strumento