
Análisis de Triage de Alto Octanaje
[][docs]
[
][tests]
[
][codecov]
[
][pypi]
__ __ High Octane Triage Analysis __
|| _||______ __ __________ _____ ||
|| \||___ \__| ____/ ______/___ / ____\ ||
==||=====|| | __/ |/ \ /==| / __ \ __\===]|
'======|| | \ | | \_ _| \ ___/| | ||
||____ /__|___|__/ / | \____]| | ||
=========''====\/=========/ /==|__|=====|__|======'
\ /
\/
Binary Refinery™ es una colección de scripts de Python que implementan transformaciones de datos binarios como compresión y cifrado.
A menudo nos referiremos a él simplemente como refinery, que también es el nombre del paquete correspondiente.
Los scripts están diseñados para leer la entrada exclusivamente desde stdin y escribir la salida en stdout.
La filosofía principal es que cada script debe ser una unidad en el sentido de que hace un trabajo,
y las unidades individuales pueden combinarse en pipelines con el operador de tubería | en la línea de comandos para realizar tareas más complejas.
El enfoque principal del proyecto es el triaje de malware,
y es un intento de implementar algo como CyberChef en la línea de comandos.
Crea un entorno virtual de Python. Necesitas Python 3.11 o posterior. Instala refinery así:
python -m pip install -U pip
python -m pip install -U binary-refinery[extended]
Ejecuta las unidades con -h para aprender cómo funcionan, busca en la [documentación][docs] o usa el comando binref para encontrarlas.
Mira [un vídeo reciente][VOD3] si quieres verlo en acción.
Pero también, lee el resto de este readme.
No hay un calendario de lanzamientos, pero las versiones se publican con mucha frecuencia y se recomienda actualizar periódicamente. Las correcciones de errores no se documentan fuera de GIT, pero todos los demás cambios (es decir, nuevas funcionalidades) se documentan en el changelog. Sígueme en [Mastodon][] para actualizaciones sobre versiones especialmente relevantes.
El texto de ayuda que se muestra al ejecutar una unidad con el modificador -h o --help es su documentación principal.
La [documentación generada automáticamente][docs] contiene una recopilación de esa salida para cada unidad en el nivel superior,
pero también contiene la especificación de los tres conceptos fundamentales del toolkit:
[framing][frame], [argumentos multibin][argformats] y [meta variables][meta].
La búsqueda de texto completo de la descripción y el texto de ayuda de cada unidad también está disponible en la línea de comandos,
a través del comando binref proporcionado. Reconociendo el hecho de que la documentación de referencia puede ser algo árida,
hay un esfuerzo continuo por producir una serie de tutoriales; recomiendo mucho echarles un vistazo.
Además de eso, recopilo recursos adicionales (incluidos algunos producidos por terceros) a continuación.
[!NOTE]
Refinery todavía está en alpha y la interfaz puede cambiar a veces, es decir, las unidades y los parámetros pueden eliminarse o renombrarse. Por lo tanto, puede ocurrir que líneas de comandos específicas de vídeos y publicaciones de blog antiguos ya no funcionen.
2021/08] [OALabs][OA] tuvo la amabilidad de dejarme [mostrar el toolkit en un vídeo destacado][VOD1].
En el vídeo, básicamente trabajo con el contenido de
el primer tutorial.2021/11] [Johannes Bader][JB] escribió una increíble [publicación de blog][BLOG] sobre el análisis de malspam con binary refinery.2024/03] [Malware Analysis For Hedgehogs][MH] hizo [un vídeo sobre el desempaquetado de una muestra de XWorm][VOD2] usando refinery.2024/11] [the CyberYeti][CY] me invitó [a presentar refinery en directo][VOD3].2025/06] Estuve [de nuevo en directo][VOD4] con [the CyberYeti][CY], este es un poco más crudo.
Todos los errores que puedes ver aquí fueron corregidos. 😉Las demostraciones incluyen de nuevo muestras de la sección de ejemplos a continuación y de los tutoriales.
The Binary Refinery es (c) 2019 Jesko Hüttenhain, y se publica bajo una [Licencia BSD de 3 Cláusulas][license]. Este repositorio también contiene una copia del texto completo de la licencia. Si quieres hacer algo con él que no esté cubierto por esta licencia, no dudes en contactar al autor.
Refinery requiere al menos Python 3.11. Se recomienda instalarlo en su propio [entorno virtual][venv]: El paquete puede arrastrar muchas dependencias, e instalarlo en tu Python global es algo propenso a conflictos de versiones. Además, dado que el toolkit introduce un gran número de comandos nuevos, hay una buena probabilidad de que algunos de estos entren en conflicto en algunos sistemas, y mantenerlos en su propio entorno virtual separado es una forma de prevenirlo.
Si quieres tener todos los comandos de refinery disponibles en tu shell en todo momento (es decir, sin tener que cambiar a un entorno virtual personalizado),
también tienes la opción de elegir un prefijo para la instalación,
que se colocará delante de cada shim de comando que se instale.
Por ejemplo, si eliges r. como prefijo, entonces la unidad [emit][] se instalará como el comando r.emit.
Un beneficio adicional es que puedes escribir r. y pulsar Tab dos veces para obtener una lista de todos los comandos de refinery disponibles.
Sin embargo, ten en cuenta que no se asume ningún prefijo en la documentación y es un objetivo de desarrollo de refinery no entrar en conflicto en la mayoría de los sistemas.
El autor no usa un prefijo y proporciona esta opción como una red de seguridad.
La forma más directa de instalar y actualizar refinery es mediante pip. Asegúrate de ejecutar primero la última versión:
python -m pip install -U pip
Luego simplemente instala el paquete refinery:
pip install -U binary-refinery
Si quieres elegir un prefijo para todas las unidades, puedes especificarlo mediante la variable de entorno REFINERY_PREFIX.
Por ejemplo, el siguiente comando instalará refinery en el entorno Python actual con el prefijo r. en Linux:
REFINERY_PREFIX=r. pip install -U binary-refinery
En Windows, tendrías que ejecutar los siguientes comandos:
set REFINERY_PREFIX=r.
pip install -U binary-refinery
Especificar el prefijo especial ! tendrá el efecto de que no se cree ningún comando de shell en absoluto,
y binary refinery se instalará solo como biblioteca.
Si quieres instalar el HEAD actual de refinery, puedes repetir todos los pasos anteriores, especificando este repositorio en lugar del paquete pip.
Por ejemplo, lo siguiente instalará el commit más reciente de refinery:
pip install -U git+git://github.com/binref/refinery.git
Finalmente, si estás usando [REMnux][remnux-main], puedes usar su [contenedor docker de refinery][remnux].
Si quieres enseñar a tu [claude][] local de análisis de malware a usar binary refinery, echa un vistazo a la [Binary Refinery Skill][agent].
Lo siguiente es un resumen de qué tan bien están soportados actualmente varios entornos de shell: