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
pyrebox — Sandbox di Reverse Engineering scriptabile in Python, un framework di strumentazione e ispezione di macchine virtuali basato su QEMU | Kitploit
Strumenti/GitHubGitHub/cisco-talos/pyrebox
Analisi Dinamica (Sandboxing)Memory ForensicsReverse EngineeringDebuggerAnalisi MalwareDigital ForensicsAnalisi di BinariApprendimento e FormazioneArchived
GitHubcisco-talos/pyrebox

pyrebox

Sandbox di Reverse Engineering scriptabile in Python, un framework di strumentazione e ispezione di macchine virtuali basato su QEMU

1.7k25482 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 →
Vedi Repository
Sito web
Condividi

================ PROGETTO ARCHIVIATO

QUESTO PROGETTO È STATO ARCHIVIATO E LA SUA CODA DI ISSUE È BLOCCATA. IL PROGETTO SARÀ MANTENUTO PUBBLICO SOLO A SCOPO DI RIFERIMENTO.

.. image:: docs/media/pyrebox_logo_light_bg.png

.. _QEMU: http://qemu.org/ .. _DECAF: https://github.com/sycurelab/DECAF .. _S2E: https://github.com/dslab-epfl/s2e .. _AVATAR: https://github.com/avatartwo .. _PANDA: https://github.com/panda-re/panda .. _Volatility: http://www.volatilityfoundation.org/ .. _BUILD: BUILD.rst .. _here: https://github.com/Cisco-Talos/pyrebox/issues .. _slides: https://github.com/Cisco-Talos/pyrebox/tree/master/docs/pyrebox_hitb_ams.pdf .. _available: https://github.com/Cisco-Talos/pyrebox/tree/master/docs/pyrebox_euskalhack.pdf .. _scripts: https://github.com/Cisco-Talos/pyrebox/tree/master/scripts .. _readthedocs.io: https://pyrebox.readthedocs.io/en/latest/ .. _questions: https://github.com/Cisco-Talos/pyrebox/issues?utf8=%E2%9C%93&q=is%3Aissue%20label%3Aquestion%20 .. _presentation: https://www.youtube.com/watch?v=F2voG87obzM .. _Contest: https://volatility-labs.blogspot.com/2017/11/results-from-5th-annual-2017-volatility.html

PyREBox è un sandbox di Reverse Engineering scriptabile in Python. Si basa su QEMU e il suo obiettivo è quello di agevolare il reverse engineering fornendo capacità di analisi dinamica e debug da una prospettiva diversa. PyREBox consente di ispezionare una VM QEMU in esecuzione, modificarne la memoria o i registri e strumentare la sua esecuzione creando semplici script in Python per automatizzare qualsiasi tipo di analisi. QEMU (quando funziona come emulatore di sistema completo) emula un intero sistema (CPU, memoria, dispositivi...). Utilizzando tecniche VMI, non richiede alcuna modifica al sistema operativo guest, poiché recupera trasparentemente le informazioni dalla sua memoria in fase di esecuzione.

Molti progetti accademici come DECAF_, PANDA_, S2E_ o AVATAR_ hanno sfruttato in precedenza la strumentazione basata su QEMU per superare le sfide del reverse engineering. Questi progetti consentono di scrivere plugin in C/C++ e implementano diverse funzionalità avanzate come l'analisi dinamica del flusso dei dati (taint analysis), l'esecuzione simbolica, o addirittura la registrazione e riproduzione di tracce di esecuzione. Con PyREBox, intendiamo applicare questa tecnologia concentrandoci sul mantenere il design semplice e sull'usabilità del sistema per gli analisti di minacce.

PyREBox ha vinto il Volatility Plugin Contest_ nel 2017!

Questo strumento è stato presentato all'HITB Amsterdam 2018. Puoi vedere le slides_ o guardare la presentazione_. È stato anche presentato alla terza edizione dell'EuskalHack Security Congress (slides disponibili_).

Novità

Ricorda di ottenere l'ultima versione di PyREBox per godere delle sue funzionalità più recenti. PyREBox è in fase di sviluppo attivo e nuove interessanti funzionalità sono ancora in arrivo! Il ramo master dovrebbe sempre contenere una versione stabile, mentre i rami dev contengono le ultime funzionalità in fase di sviluppo. Il seguente elenco di annunci si riferisce al ramo master e alla data in cui le modifiche di sviluppo sono state unite in master.

  • [Dic 5, 2019] Versione beta di PyREBox3, pronta sul ramo python3migration. Lo strumento è stato portato a Python3 e Volatility3. I plugin non sono ancora stati portati.
  • [Giu 21, 2019] Aggiornato QEMU alla versione 4.0.0, con supporto MTTCG (multi-threaded TCG). Un ringraziamento speciale a @richsurgenor per i suoi preziosi contributi a questo aggiornamento.
  • [Giu 17, 2019] Unione del ramo dev (Malware monitor 2).
  • [Giu 17, 2019] Automazione del movimento del mouse.
  • [Giu 17, 2019] Volatility aggiornato.
  • [Ott 17, 2018] Aggiunta funzione API per ottenere l'ora di sistema dai guest Windows.
  • [Ott 17, 2018] Aggiunto supporto per simboli nella classe BP (breakpoint).
  • [Ott 17, 2018] Aggiunta cache dei simboli (file host). Vedi file di configurazione di esempio (pyrebox.conf.WinXPSP3x86).
  • [Ott 17, 2018] Cambiato il recupero dei simboli per ottenere file DLL dal disco.
  • [Ott 10, 2018] Aggiunto supporto sperimentale per recuperare pagine di memoria non mappate.
  • [0ct 10, 2018] Aggiunta integrazione con The Sleuth Kit
  • [Ago 02, 2018] Aggiunti script di avvio automatico.
  • [Lug 26, 2018] Caricate le slide della presentazione EuskalHack 2018.
  • [Lug 02, 2018] Correzioni per fornire supporto a CentOS 7.
  • [Giu 25, 2018] Aggiunti script presentati a EuskalHack 2018.
  • [Mag 31, 2018] Aggiornato a Qemu v2.12.0.
  • [Mag 29, 2018] Aggiunta la possibilità di chiamare funzioni trigger (in C/C++) da script Python.
  • [Mag 29, 2018] Modificato il formato dei parametri di callback. Vedi documentazione. Il default è ancora il vecchio stile.
  • [Apr 28, 2018] Creato un ramo di sviluppo per funzionalità nuove e potenzialmente instabili in PyREBox.
  • [Apr 13, 2018] Presentato PyREBox a HITB Amsterdam (traccia CommSec).
  • [Apr 13, 2018] Aggiunti script di monitoraggio malware (mw_mon).
  • [Mar 08, 2018] I trigger ora vengono chiamati per ogni processo nel sistema (non solo i processi monitorati). Vedi documentazione
  • [Mar 08, 2018] Modificati i parametri dei callback di lettura/scrittura memoria. Vedi documentazione ed esempi.
  • [Mar 08, 2018] Aggiunti breakpoint di lettura/scrittura su indirizzi di memoria fisica.
  • [Mar 08, 2018] Aggiunti callback di caricamento e rimozione moduli.
  • [Nov 02, 2017] Aggiunto guest agent per linux 32 e 64 bit.
  • [Ott 23, 2017] Aggiunto guest agent per Windows 32 e 64 bit.
  • [Ott 11, 2017] Aggiunto parsing dei simboli dei moduli linux.
  • [Set 22, 2017] Aggiunto supporto per il ricaricamento dei moduli.
  • [Set 20, 2017] Aggiunto callback di funzione personalizzata alla classe BP.
  • [Set 20, 2017] Aggiornato a Qemu v2.10.0.
  • [Ago 31, 2017] Supporto parziale per guest Linux.

Installazione

Viene fornito uno script di build. Per dettagli specifici sulle dipendenze, consultare BUILD_. Forniamo anche un Dockerfile.

Documentazione

La documentazione di questo progetto è ospitata su readthedocs.io_.

Bug, domande e supporto

Se pensi di aver trovato un bug, segnalalo qui_.

Prima di creare una nuova issue, consulta le domande_ aperte in precedenza da altri utenti.

Questo programma è fornito "COSÌ COM'È" e non è garantito alcun supporto. Detto questo, per aiutarci a risolvere i tuoi problemi, includi quante più informazioni possibile per riprodurre il bug:

  • Sistema operativo utilizzato per compilare ed eseguire PyREBox.
  • La versione specifica del sistema operativo e la destinazione di emulazione che stai utilizzando.
  • Comando shell / script / attività che stavi tentando di eseguire.
  • Qualsiasi informazione sull'errore, come messaggi di errore, traccia dello stack di Python (o IPython) o traccia dello stack di QEMU.
  • Qualsiasi altra informazione rilevante

Roadmap

  • Console di configurazione e gestione delle immagini VM.
  • Supporto per ARM, MIPS e altre architetture.
  • Completare il supporto per i sistemi guest GNU/Linux (vedi issue).

Avvio di una VM

PyREBox si basa su QEMU, quindi per avviare una VM in PyREBox, devi eseguirlo esattamente come se stessi avviando una VM QEMU. Sono forniti un paio di script di esempio: start_i386.sh, start_x86_64.sh, puoi usarli come esempio.

L'unica opzione del monitor di QEMU attualmente supportata è stdio (-monitor stdio).

Obiettivi di questo progetto

  • Fornire una piattaforma di emulazione di sistema completo con un'interfaccia semplice per ispezionare il sistema guest emulato.

    • Strumentazione granulare degli eventi di sistema.
    • Virtual Machine Introspection (VMI) integrata, basata su Volatility. Non è necessario installare alcun agente o driver nel guest.
    • Interfaccia shell basata su IPython.
    • Motore di scripting basato su Python, che permette di integrare negli script qualsiasi strumento di sicurezza basato su questo linguaggio (uno dei più grandi ecosistemi).
  • Avere un design pulito, disaccoppiato da QEMU. Molti progetti costruiti su QEMU non evolvono quando QEMU viene aggiornato, perdendo nuove funzionalità e ottimizzazioni, oltre agli aggiornamenti di sicurezza. Per raggiungere questo obiettivo, PyREBox è implementato come modulo indipendente che può essere compilato insieme a QEMU richiedendo un insieme minimo di modifiche.

  • Supporto per diverse architetture. Attualmente, PyREBox supporta solo Windows per architetture x86 e x86-64, ma il suo design consente di supportare altre architetture come ARM, MIPS o PowerPC, e altri sistemi operativi.

Shell IPython

Avviare una shell PyREBox è facile come digitare il comando sh sul monitor di QEMU. Verrà immediatamente avviata una shell IPython. Questa shell registra la cronologia dei comandi e le variabili definite. Ad esempio, puoi salvare un valore e recuperarlo in un secondo momento durante l'esecuzione, quando avvii di nuovo la shell. PyREBox sfrutta tutte le funzionalità disponibili in IPython come il completamento automatico, la cronologia dei comandi, la modifica multilinea e la generazione automatica dell'aiuto dei comandi.

PyREBox ti permetterà di debuggare il sistema (o un processo) in modo abbastanza invisibile. A differenza dei debugger tradizionali che risiedono nel sistema sottoposto a debug (modificando persino la memoria del processo debugato per inserire breakpoint), PyREBox rimane completamente all'esterno del sistema ispezionato e non richiede l'installazione di alcun driver o componente nel guest.

.. image:: docs/media/breakpoint.gif

PyREBox offre un set completo di comandi per ispezionare e modificare lo stato della VM in esecuzione. Basta digitare list_commands per ottenere un elenco completo. Puoi eseguire qualsiasi plugin di Volatility digitando vol e il corrispondente comando Volatility. Per un elenco completo dei plugin Volatility disponibili, puoi digitare list_vol_commands. Questo elenco viene generato automaticamente, quindi mostrerà anche qualsiasi plugin Volatility che installi nel percorso volatility/ di PyREBox.

Puoi anche definire i tuoi comandi! È semplice come dichiarare una funzione in uno script e caricarlo.

Se hai bisogno di qualcosa di più espressivo di un comando, puoi scrivere uno snippet Python sfruttando l'API. Per una descrizione dettagliata dell'API, consulta Documentazione_ o digita help(api) nella shell.

.. image:: docs/media/stack.gif

Scripting

PyREBox consente di caricare dinamicamente script che possono registrare funzioni callback chiamate quando si verificano determinati eventi, come istruzioni eseguite, memoria letta/scritta, processi creati/distrutti e così via.

Dato che PyREBox è integrato con Volatility, ti permetterà di sfruttare tutti i plugin Volatility per il memory forensics nei tuoi script Python. Molti dei più famosi strumenti di reverse engineering sono implementati in Python o hanno almeno binding Python. Il nostro approccio consente di integrare qualsiasi di questi strumenti in uno script.

Infine, dato che i callback Python possono introdurre un calo di prestazioni su eventi frequenti come le istruzioni eseguite, è anche possibile creare trigger. I trigger sono plugin in codice nativo (sviluppati in C/C++) che possono essere inseriti dinamicamente in fase di esecuzione su qualsiasi evento appena prima che venga eseguito il callback Python. Ciò consente di limitare il numero di eventi che raggiungono il codice Python, oltre a precalcolare valori in codice nativo.

In questo repository troverai script_ di esempio che possono aiutarti a scrivere il tuo codice. I contributi sono benvenuti!

Riconoscimenti

Innanzitutto, PyREBox non sarebbe possibile senza QEMU_ e Volatility_. Ringraziamo i loro sviluppatori e manutentori per un lavoro così eccezionale.

PyREBox è ispirato da diversi progetti accademici, come DECAF_ o PANDA_. Di fatto, molti dei callback supportati da PyREBox sono equivalenti a quelli presenti in DECAF_, e i concetti alla base della strumentazione si basano su questi lavori.

PyREBox beneficia di codice di terze parti, che può essere trovato nella directory pyrebox/third_party. Per ogni progetto di terze parti, includiamo un'indicazione della sua licenza originale, i file sorgente originali presi dal progetto, così come le versioni modificate dei file sorgente (se applicabili) utilizzate da PyREBox.

Scarica lo strumento