Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
pyrebox — Sandbox de ingeniería inversa programable en Python, un framework de instrumentación e inspección de máquinas virtuales basado en QEMU | Kitploit
Herramientas/GitHubGitHub/cisco-talos/pyrebox
Análisis Dinámico (Sandboxing)Forensia de MemoriaIngeniería InversaDepuradoresAnálisis de MalwareForensia DigitalAnálisis de BinariosAprendizaje y EducaciónArchived
GitHubcisco-talos/pyrebox

pyrebox

Sandbox de ingeniería inversa programable en Python, un framework de instrumentación e inspección de máquinas virtuales basado en QEMU

1.7k254hace 2 añosRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir
Ver Repositorio
Sitio web

================ PROYECTO ARCHIVADO

ESTE PROYECTO HA SIDO ARCHIVADO Y SU COLA DE INCIDENCIAS ESTÁ BLOQUEADA. EL PROYECTO SE MANTENDRÁ PÚBLICO SOLO CON FINES DE REFERENCIA.

.. 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 es un sandbox de ingeniería inversa programable en Python. Está basado en QEMU, y su objetivo es ayudar en la ingeniería inversa proporcionando capacidades de análisis dinámico y depuración desde una perspectiva diferente. PyREBox permite inspeccionar una máquina virtual QEMU en ejecución, modificar su memoria o registros, e instrumentar su ejecución mediante la creación de scripts simples en Python para automatizar cualquier tipo de análisis. QEMU (cuando funciona como emulador de sistema completo) emula un sistema completo (CPU, memoria, dispositivos...). Mediante técnicas VMI, no requiere realizar ninguna modificación en el sistema operativo invitado, ya que obtiene información de su memoria de forma transparente en tiempo de ejecución.

Varios proyectos académicos como DECAF_, PANDA_, S2E_ o AVATAR_ han aprovechado anteriormente la instrumentación basada en QEMU para superar tareas de ingeniería inversa. Estos proyectos permiten escribir plugins en C/C++ e implementan varias características avanzadas como análisis de flujo de datos dinámico, ejecución simbólica, e incluso grabación y reproducción de trazas de ejecución. Con PyREBox, buscamos aplicar esta tecnología centrándonos en mantener el diseño simple y en la usabilidad del sistema para analistas de amenazas.

¡PyREBox ganó el Concurso de Plugins de Volatility (Contest_) en 2017!

Esta herramienta fue presentada en HITB Amsterdam 2018. Puede ver las diapositivas (slides_) o ver la presentación_ (presentation). También fue presentada en la tercera edición del Congreso de Seguridad EuskalHack (diapositivas disponibles_).

Novedades

Recuerde extraer la última versión de PyREBox para disfrutar de sus últimas características. PyREBox está en desarrollo activo y ¡nuevas características interesantes están por venir! La rama master siempre debe contener una versión estable, mientras que las ramas dev contienen las últimas características en desarrollo. La siguiente lista de anuncios se refiere a la rama master y la fecha en que los cambios de desarrollo se fusionaron en master.

  • [Dec 5, 2019] Versión beta de PyREBox3, lista en la rama python3migration. La herramienta se ha portado a Python3 y Volatility3. Los plugins aún no se han portado.
  • [Jun 21, 2019] Actualizado QEMU a la versión 4.0.0, con soporte MTTCG (TCG multi-hilo). Agradecimientos especiales a @richsurgenor por sus valiosas contribuciones a esta actualización.
  • [Jun 17, 2019] Fusión de la rama dev (Monitor de malware 2).
  • [Jun 17, 2019] Automatización de movimiento del ratón.
  • [Jun 17, 2019] Volatility actualizado.
  • [Oct 17, 2018] Añadida función API para obtener la hora del sistema desde invitados Windows.
  • [Oct 17, 2018] Añadido soporte para símbolos en la clase BP (punto de interrupción).
  • [Oct 17, 2018] Añadida caché de símbolos (archivo host). Ver archivos de configuración de ejemplo (pyrebox.conf.WinXPSP3x86).
  • [Oct 17, 2018] Cambiada la obtención de símbolos para obtener archivos DLL del disco.
  • [Oct 10, 2018] Añadido soporte experimental para obtener páginas de memoria no mapeadas.
  • [Oct 10, 2018] Añadida integración con The Sleuth Kit
  • [Aug 02, 2018] Añadidos scripts de ejecución automática.
  • [Jul 26, 2018] Subidas diapositivas de la presentación de EuskalHack 2018.
  • [Jul 02, 2018] Correcciones para proporcionar soporte a CentOS 7.
  • [Jun 25, 2018] Añadidos scripts presentados en EuskalHack 2018.
  • [May 31, 2018] Actualizado a Qemu v2.12.0.
  • [May 29, 2018] Añadida la posibilidad de llamar a funciones activadoras (en C/C++) desde scripts de Python.
  • [May 29, 2018] Cambiado el formato de los parámetros de callback. Ver documentación. El formato antiguo sigue siendo el predeterminado.
  • [Apr 28, 2018] Creada una rama de desarrollo para características nuevas y potencialmente inestables en PyREBox.
  • [Apr 13, 2018] Presentado PyREBox en HITB Amsterdam (pista CommSec).
  • [Apr 13, 2018] Añadidos scripts de monitoreo de malware (mw_mon).
  • [Mar 08, 2018] Los triggers ahora se llaman para cada proceso en el sistema (no solo procesos monitoreados). Ver documentación
  • [Mar 08, 2018] Cambiados los parámetros de callback de lectura/escritura de memoria. Ver documentación y ejemplos.
  • [Mar 08, 2018] Añadidos puntos de interrupción de lectura/escritura en direcciones de memoria física.
  • [Mar 08, 2018] Añadidos callbacks de carga y descarga de módulos.
  • [Nov 02, 2017] Añadido agente invitado para Linux de 32 y 64 bits.
  • [Oct 23, 2017] Añadido agente invitado para Windows de 32 y 64 bits.
  • [Oct 11, 2017] Añadido análisis de símbolos de módulos Linux.

Instalación

Se proporciona un script de compilación. Para detalles específicos sobre dependencias, consulte BUILD_. También proporcionamos un Dockerfile.

Documentación

La documentación de este proyecto está alojada en readthedocs.io_.

Errores, preguntas y soporte

Si cree que ha encontrado un error, por favor repórtelo aquí_.

Antes de crear una nueva incidencia, revise las preguntas_ abiertas por otros usuarios anteriormente.

Este programa se proporciona "TAL CUAL", y no se garantiza soporte. Dicho esto, para ayudarnos a resolver sus problemas, incluya tanta información como sea posible para reproducir el error:

  • Sistema operativo utilizado para compilar y ejecutar PyREBox.
  • La versión específica del sistema operativo y el objetivo de emulación que está utilizando.
  • Comando de shell / script / tarea que intentaba ejecutar.
  • Cualquier información sobre el error, como mensajes de error, traza de pila de Python (o IPython) o traza de pila de QEMU.
  • Cualquier otra información relevante

Hoja de ruta

  • Configuración de imagen de VM y consola de gestión.
  • Soporte para ARM, MIPS y otras arquitecturas.
  • Finalizar el soporte para sistemas invitados GNU/Linux (ver incidencias).

Iniciar una VM

PyREBox está basado en QEMU, por lo que para iniciar una VM con PyREBox, debe ejecutarlo exactamente como si estuviera arrancando una VM de QEMU. Se proporcionan un par de scripts de ejemplo: start_i386.sh, start_x86_64.sh, puede usarlos como ejemplo.

La única opción de monitor de QEMU compatible actualmente es stdio (-monitor stdio).

Objetivos de este proyecto

  • Proporcionar una plataforma de emulación de sistema completo con una interfaz simple para inspeccionar el sistema invitado emulado.

    • Instrumentación de grano fino de eventos del sistema.
    • Introspección de máquina virtual (VMI) integrada, basada en Volatility. No es necesario instalar ningún agente o controlador en el invitado.
    • Una interfaz de shell basada en IPython.
    • Un motor de scripting basado en Python, que permite integrar en los scripts cualquiera de las herramientas de seguridad basadas en este lenguaje (uno de los ecosistemas más grandes).
  • Tener un diseño limpio, desacoplado de QEMU. Muchos proyectos construidos sobre QEMU no evolucionan cuando QEMU se actualiza, perdiendo nuevas características y optimizaciones, así como actualizaciones de seguridad. Para lograrlo, PyREBox se implementa como un módulo independiente que puede compilarse junto con QEMU requiriendo un conjunto mínimo de modificaciones.

  • Soporte para diferentes arquitecturas. Actualmente, PyREBox solo soporta Windows para arquitecturas x86 y x86-64 de 64 bits, pero su diseño permite soportar otras arquitecturas como ARM, MIPS o PowerPC, y otros sistemas operativos también.

Shell IPython

Iniciar un shell de PyREBox es tan fácil como escribir el comando sh en el monitor de QEMU. Iniciará inmediatamente un shell de IPython. Este shell registra el historial de comandos así como las variables definidas. Por ejemplo, puede guardar un valor y recuperarlo más tarde en un punto diferente de la ejecución, cuando inicie el shell nuevamente. PyREBox aprovecha todas las características disponibles en IPython, como autocompletado, historial de comandos, edición multilínea y generación automática de ayuda de comandos.

PyREBox le permitirá depurar el sistema (o un proceso) de una manera bastante sigilosa. A diferencia de los depuradores tradicionales que permanecen en el sistema que se está depurando (incluso modificando la memoria del proceso depurado para insertar puntos de interrupción), PyREBox permanece completamente fuera del sistema inspeccionado y no requiere la instalación de ningún controlador o componente en el invitado.

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

PyREBox ofrece un conjunto completo de comandos para inspeccionar y modificar el estado de la VM en ejecución. Simplemente escriba list_commands para obtener una lista completa. Puede ejecutar cualquier plugin de Volatility escribiendo vol y el comando de Volatility correspondiente. Para una lista completa de los plugins de Volatility disponibles, puede escribir list_vol_commands. Esta lista se genera automáticamente, por lo que también mostrará cualquier plugin de Volatility que instale en la ruta volatility/ de PyREBox.

¡También puede definir sus propios comandos! Es tan simple como declarar una función en un script y cargarlo.

Si necesita algo más expresivo que un comando, puede escribir un fragmento de Python aprovechando la API. Para una descripción detallada de la API, consulte Documentación_ o escriba help(api) en el shell.

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

Scripting

PyREBox permite cargar scripts dinámicamente que pueden registrar funciones de callback que se llaman cuando ocurren ciertos eventos, como instrucciones ejecutadas, memoria leída/escrita, procesos creados/destruidos, etc.

Dado que PyREBox está integrado con Volatility, le permitirá aprovechar todos los plugins de Volatility para análisis forense de memoria en sus scripts de Python. Muchas de las herramientas de ingeniería inversa más famosas están implementadas en Python o al menos tienen enlaces de Python. Nuestro enfoque permite integrar cualquiera de estas herramientas en un script.

Finalmente, dado que los callbacks de Python pueden introducir una penalización de rendimiento en eventos frecuentes como instrucciones ejecutadas, también es posible crear triggers. Los triggers son complementos de código nativo (desarrollados en C/C++) que pueden insertarse dinámicamente en tiempo de ejecución en cualquier evento justo antes de que se ejecute el callback de Python. Esto permite limitar el número de eventos que llegan al código de Python, así como precalcular valores en código nativo.

En este repositorio encontrará scripts_ de ejemplo que pueden ayudarle a escribir su propio código. ¡Las contribuciones son bienvenidas!

Agradecimientos

En primer lugar, PyREBox no sería posible sin QEMU_ y Volatility_. Agradecemos a sus desarrolladores y mantenedores por tan excelente trabajo.

PyREBox está inspirado en varios proyectos académicos, como DECAF_ o PANDA_. De hecho, muchos de los callbacks soportados por PyREBox son equivalentes a los encontrados en DECAF_, y los conceptos detrás de la instrumentación se basan en estos trabajos.

PyREBox se beneficia de código de terceros, que se puede encontrar en el directorio pyrebox/third_party. Para cada proyecto de terceros, incluimos una indicación de su licencia original, los archivos de código fuente originales tomados del proyecto, así como las versiones modificadas de los archivos de código fuente (si corresponde), utilizados por PyREBox.

Descargar herramienta
  • [Sep 22, 2017] Añadido soporte para recarga de módulos.
  • [Sep 20, 2017] Añadido callback de función personalizada a la clase BP.
  • [Sep 20, 2017] Actualizado a Qemu v2.10.0.
  • [Aug 31, 2017] Soporte parcial para invitados Linux.