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
CAPEv2 — Configurazione del Malware ed Estrazione del Payload | Kitploit
Strumenti/GitHubGitHub/kevoreilly/capev2
Analisi Dinamica (Sandboxing)Memory ForensicsAnalisi delle VulnerabilitàNetwork ForensicsReverse EngineeringDebuggerInformatica ForenseAnalisi MalwareApprendimento e Formazione
GitHubkevoreilly/capev2

CAPEv2

Configurazione del Malware ed Estrazione del Payload

3.4k5972 giorni 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
Vedi RepositorySito web

CAPE: Estrazione di Configurazione e Payload dei Malware - Documentazione

CAPE è una sandbox per malware.

Una sandbox viene utilizzata per eseguire file malevoli in un ambiente isolato, monitorando il loro comportamento dinamico e raccogliendo reperti forensi.

CAPE deriva da Cuckoo v1, che offre le seguenti capacità fondamentali sulla piattaforma Windows:

  • Strumentazione comportamentale basata su API hooking
  • Acquisizione di file creati, modificati ed eliminati durante l'esecuzione
  • Cattura del traffico di rete in formato PCAP
  • Classificazione del malware basata su firme comportamentali e di rete
  • Screenshot del desktop acquisiti durante l'esecuzione del malware
  • Dump completi della memoria del sistema target

CAPE completa l'output tradizionale della sandbox di Cuckoo con diverse aggiunte chiave:

  • Unpacking dinamico automatizzato del malware
  • Classificazione del malware basata su firme YARA dei payload decompressi
  • Estrazione statica e dinamica della configurazione del malware
  • Debugger automatizzato programmabile tramite firme YARA, che consente:
    • Estrattori personalizzati di unpacking/configurazione
    • Contromisure dinamiche anti-sandbox
    • Tracce di istruzioni
  • Desktop interattivo

Esiste un'istanza dimostrativa gratuita online che chiunque può utilizzare:

https://capesandbox.com - Per l'attivazione dell'account contatta https://twitter.com/capesandbox

Un po' di storia

Cuckoo Sandbox è nato come progetto Google Summer of Code nel 2010 all'interno di The Honeynet Project. È stato originariamente progettato e sviluppato da Claudio Guarnieri, la prima beta è stata pubblicata nel 2011. Nel gennaio 2014 è stata rilasciata Cuckoo v1.0.

Il 2015 è stato un anno cruciale, con un fork significativo nella storia di Cuckoo. Lo sviluppo del monitoraggio originale e del metodo di API hooking è stato interrotto nel progetto principale di Cuckoo. È stato sostituito da un monitor alternativo che utilizza un formato di firma basato su restructuredText compilato tramite toolchain Linux, creato da Jurriaan Bremer.

Nello stesso periodo, un fork chiamato Cuckoo-modified è stato creato da Brad 'Spender' Spengler, continuando lo sviluppo del monitor originale con miglioramenti significativi, incluso il supporto a 64 bit e, cosa importante, l'introduzione del compilatore Microsoft Visual Studio.

Nello stesso anno è iniziato lo sviluppo di uno strumento dinamico da riga di comando per l'estrazione di configurazioni e payload chiamato CAPE presso Context Information Security da Kevin O'Reilly. Il nome è stato coniato come acronimo di 'Config And Payload Extraction' e la ricerca originale si è concentrata sull'uso degli API hook forniti dalla libreria Detours di Microsoft per catturare payload e configurazioni di malware decompressi. Tuttavia, è diventato evidente che i soli API hook non forniscono potenza e precisione sufficienti per consentire l'unpacking di payload o configurazioni da malware arbitrario.

Per questo motivo è iniziata la ricerca su un innovativo concetto di debugger per consentire al malware di essere controllato e strumentato con precisione, evitando l'uso delle interfacce di debug di Microsoft, per essere il più furtivo possibile. Questo debugger è stato integrato nello strumento proof-of-concept basato su Detours, combinato con API hook, ottenendo capacità molto potenti.

Quando il lavoro iniziale ha mostrato che sarebbe stato possibile sostituire Microsoft Detours con il motore di API hooking di Cuckoo-modified, è nata l'idea di CAPE Sandbox. Con l'aggiunta del debugger, dell'unpacking automatico, della classificazione basata su YARA e dell'estrazione integrata della configurazione, nel settembre 2016 al 44con, CAPE Sandbox è stata rilasciata pubblicamente per la prima volta: CAPE versione 1.

Nell'estate del 2018 il progetto ha avuto la fortuna di vedere l'inizio di enormi contributi da parte di Andriy 'doomedraven' Brukhovetskyy, un contributore di lunga data di Cuckoo. Nel 2019 ha iniziato l'immane compito di portare CAPE su Python 3 e nell'ottobre di quell'anno è stato rilasciato CAPEv2.

CAPE è stato continuamente sviluppato e migliorato per tenere il passo con i progressi sia del malware che delle capacità del sistema operativo. Nel 2021 è stata aggiunta la possibilità di programmare il debugger di CAPE durante la detonazione tramite scansioni YARA dinamiche, consentendo di creare bypass dinamici per le tecniche anti-sandbox. Windows 10 è diventato il sistema operativo predefinito, e altre aggiunte significative includono desktop interattivo, cattura di payload AMSI (Anti-Malware Scan Interface), 'syscall hooking' basato su Microsoft Nirvana e contromisure per syscall dirette/indirette basate sul debugger.

Classificazione

image

Il malware può essere classificato in CAPE tramite tre meccanismi:

  • Scansioni YARA dei payload decompressi
  • Scansioni Suricata delle catture di rete
  • Firme comportamentali che scansionano l'output degli API hook

Estrazione della Configurazione

image

L'analisi può essere effettuata utilizzando il framework di CAPE stesso, oppure sono supportati i seguenti framework: RATDecoders, DC3-MWCP, MalDuck, o MaCo

Nota speciale sui framework di parsing delle configurazioni:

  • A causa della natura del malware, poiché cambia costantemente quando viene rilasciata una nuova versione, qualcosa potrebbe rompersi!
  • Suggeriamo di utilizzare il framework di CAPE, che è semplicemente Python puro con punto di ingresso def extract_config(data): che verrà chiamato da cape_utils.py e 0 complicazioni.
    • Come bonus, puoi riutilizzare i tuoi estrattori in altri progetti.

Unpacking Automatico

image

CAPE sfrutta molte tecniche o comportamenti del malware per consentire la cattura del payload decompresso:

  • Iniezione di processo
    • Iniezione di shellcode
    • Iniezione di DLL
    • Process Hollowing
    • Process Doppelganging
  • Estrazione o decompressione di moduli eseguibili o shellcode in memoria

Questi comportamenti porteranno alla cattura dei payload iniettati, estratti o decompressi per ulteriori analisi. Inoltre CAPE crea automaticamente un dump del processo per ogni processo, o, nel caso di una DLL, l'immagine del modulo DLL in memoria. Questo è utile per campioni impacchettati con packer semplici, dove spesso il dump dell'immagine del modulo è completamente decompresso.

Oltre ai meccanismi di unpacking 'passivo' predefiniti di CAPE, è possibile abilitare l'unpacking 'attivo' che utilizza breakpoint per rilevare la scrittura in regioni di memoria appena allocate o protette, al fine di catturare i payload decompressi il prima possibile prima dell'esecuzione. Questa opzione è abilitata tramite una casella di spunta nell'invio web o specificando l'opzione unpacker=2 ed è disattivata per impostazione predefinita poiché potrebbe influire sulla qualità della detonazione.

CAPE può essere programmato tramite firma YARA per decomprimere packer specifici. Ad esempio, i packer di tipo UPX sono molto comuni e, sebbene in CAPE ciò porti alla cattura passiva dei payload decompressi, la cattura predefinita viene effettuata dopo che il payload decompresso ha iniziato l'esecuzione. Pertanto, rilevando dinamicamente i packer derivati da UPX tramite una firma YARA personalizzata e impostando un breakpoint sull'ultima istruzione del packer, è possibile catturare il payload al suo punto di ingresso originale (OEP) prima che inizi l'esecuzione.

image

image

L'opzione dump-on-api consente di scaricare un modulo quando chiama una specifica funzione API che può essere specificata nell'interfaccia web (ad esempio dump-on-api=DnsQuery_A).

Debugger

Il debugger ha permesso a CAPE di continuare ad evolversi oltre le sue capacità originali, che ora includono bypass anti-evasione dinamici. Poiché il malware moderno cerca comunemente di eludere l'analisi all'interno delle sandbox, ad esempio utilizzando trappole temporali per la virtualizzazione o il rilevamento di API hook, CAPE consente di sviluppare contromisure dinamiche combinando azioni del debugger all'interno delle firme Yara per rilevare il malware evasivo mentre detona e manipolare il flusso di controllo per forzare il campione a detonare completamente o saltare azioni elusive.

image image

L'accesso rapido al debugger è reso possibile con le opzioni di invio bp0 fino a bp3 che accettano valori RVA o VA per impostare breakpoint, dopodiché verrà emessa una breve traccia di istruzioni, governata dalle opzioni count e depth (ad esempio bp0=0x1234,depth=1,count=100). image

Per impostare un breakpoint al punto di ingresso del modulo, si usa ep invece di un indirizzo (ad esempio bp0=ep). In alternativa, break-on-return permette di impostare un breakpoint sull'indirizzo di ritorno di un API hook (ad esempio break-on-return=NtGetContextThread). Un parametro opzionale base-on-api consente di impostare la base immagine per i breakpoint RVA tramite chiamata API (ad esempio base-on-api=NtReadFile,bp0=0x2345).

image

Le opzioni action0 - action3 consentono di eseguire azioni quando vengono raggiunti i breakpoint, come scaricare regioni di memoria (ad esempio action0=dumpebx) o cambiare il flusso di controllo dell'esecuzione (ad esempio action1=skip). La documentazione di CAPE contiene ulteriori esempi di tali azioni.

capemon

Il repository che contiene il codice per il monitor di CAPE è separato.

Riepilogo degli aggiornamenti changelog

Contributi della comunità

Esiste un repository comunitario di firme contenente diverse centinaia di firme sviluppate dalla comunità di CAPE. Tutte le nuove funzionalità della comunità dovrebbero essere inviate a quel repository. In seguito possono essere spostate nel core se gli sviluppatori sono in grado e disposti a mantenerle.

Si prega di contribuire a questo progetto aiutando a creare nuove firme, parser o bypass per ulteriori famiglie di malware. Ce ne sono molti in lavorazione attualmente, quindi tenete d'occhio questo spazio.

Un enorme ringraziamento a @D00m3dR4v3n per aver portato CAPE su Python 3 da solo.

Raccomandazioni di installazione e script per prestazioni ottimali

  • Python3

    • agent.py è testato con python (3.7.2|3.8) x86. Dovresti usare la versione python x86 all'interno della VM!
    • host testato con python3 versioni 3.10, 3.12, ma versioni più recenti dovrebbero funzionare
  • Solo rooter dovrebbe essere eseguito come root, il resto come utente cape. Eseguire come root causerà problemi con i permessi.

  1. Diventa familiare con la documentazione e leggi TUTTI i file di configurazione all'interno della cartella conf!
  2. Per la migliore compatibilità suggeriamo vivamente di installare su Ubuntu 24.04 LTS e utilizzare Windows 10 o Windows 11 23H2 come target.
  3. kvm-qemu.sh e cape2.sh DOVREBBERO ESSERE eseguiti da una sessione tmux per prevenire problemi al sistema operativo se la connessione ssh si interrompe.
  4. KVM è raccomandato come hypervisor.
  • Sostituisci <username> con un pattern reale.
  • Devi sostituire tutti i <WOOT> all'interno!
  • Leggilo! Devi capire cosa fa! Ha una configurazione nell'intestazione dello script.
  • sudo ./kvm-qemu.sh all <username> 2>&1 | tee kvm-qemu.log
  1. Per installare CAPE stesso, cape2.sh con tutte le ottimizzazioni
    • Leggi e capisci cosa fa! Non è una soluzione magica per tutti i tuoi problemi! Ha una configurazione nell'intestazione dello script.
    • sudo ./cape2.sh base 2>&1 | tee cape.log
  2. Dopo aver installato tutto, salva entrambi i log di installazione come oro!
  3. Configura CAPE apportando modifiche ai file di configurazione all'interno della cartella conf.
  4. Riavvia tutti i servizi CAPE per applicare le modifiche alla configurazione ed eseguire CAPE correttamente!
    • Servizi CAPE
      • cape.service
      • cape-processor.service
      • cape-web.service
      • cape-rooter.service
      • Per riavviare qualsiasi servizio usa systemctl restart <nome_servizio>
      • Per vedere il log di un servizio usa journalctl -u <nome_servizio>
    • Per debug di qualsiasi problema, ferma il servizio rilevante ed esegui manualmente il comando che esegue quel servizio per vedere più log. Controlla -h per il menu di aiuto. Eseguire il servizio in modalità debug (-d) può aiutare.
  5. Riavvia e divertiti!
  • Tutti gli script contengono help -h, ma per favore controlla gli script per capire cosa fanno.

Come creare VM con virt-manager vedi la documentazione per la configurazione

  • passo dopo passo

Dipendenza core della macchina virtuale

  • choco.bat

Come aggiornare

  • CAPE: git pull
  • community: python3 utils/community.py -waf vedi -h prima per assicurarti di capire

Come aggiornare con molte piccole modifiche personalizzate che non possono essere pubbliche?

Con rebase

root@kitploit:~
git add --all
git commit -m '[STASH]'
git pull --rebase origin master
# fix conflict (rebase) if needed
git reset HEAD~1

Con merge

root@kitploit:~
# make sure kevoreilly repo has been added as a remote (only needs to be done once)
git remote add kevoreilly https://github.com/kevoreilly/CAPEv2.git
# make sure all your changes are commited on the branch which you will be merging
git commit -a -m '<your commit message goes here>'
# fetch changes from kevoreilly repo
git fetch kevoreilly
# merge kevoreilly master branch into your current branch
git merge kevoreilly/master
# fix merge conflicts if needed
# push to your repo if desired
git push

Come citare questo lavoro

Se usi CAPEv2 nel tuo lavoro, per favore citarlo come specificato nel menu GitHub 'Cite this repository'.

Nota speciale sulle dipendenze di terze parti:

  • Stanno diventando un mal di testa, specialmente quelli che usano pefile poiché ognuno blocca la versione che vuole.
    • Il nostro suggerimento è clonarli/forkarli, rimuovere la dipendenza pefile poiché la hai già installata. Voilà, niente più dolore.

Documentazione

  • ReadTheDocs
  • DeepWiki - Generato da AI, alcuni potrebbero essere errati ma generalmente abbastanza accurato.
Scarica lo strumento