Go-donut: Shellcode para Pentesting
Go-donut: Shellcode para Pentesting
Go-donut es la implementación en el lenguaje de programación Go de la herramienta original "Donut". Es una utilidad muy potente utilizada en ciberseguridad y pruebas de penetración (pentesting) dentro del ecosistema de Kali Linux.
Aquí tienes una guía clara sobre qué es, para qué sirve y cómo se utiliza.
¿Qué es Go-donut?
En términos sencillos, Go-donut permite convertir archivos ejecutables (como archivos .exe, DLLs o incluso código .NET) en Position Independent Code (PIC), comúnmente conocido como Shellcode.
Este shellcode resultante puede ser "inyectado" en la memoria de otros procesos legítimos de Windows. Es una técnica avanzada para ejecutar herramientas sin que estas toquen el disco duro, lo que ayuda a evadir sistemas de detección como antivirus o EDR.
Características principales:
Versatilidad: Soporta archivos .NET EXE/DLL, aplicaciones C/C++, y archivos VBScript o JScript.
Evasión: Permite comprimir el shellcode y cifrarlo (usando algoritmos como Chacha20) para dificultar su análisis.
Modularidad: Al estar escrito en Go, es fácil de integrar en otras herramientas de automatización.
Cómo instalarlo en Kali Linux
Aunque a veces puedes encontrarlo en los repositorios, la forma más común de obtener la versión de Binject es mediante el propio lenguaje Go.
Actualiza tu sistema:
Bashsudo apt update && sudo apt install golang -yDescarga e instala Go-donut:
Bashgo install github.com/binject/go-donut@latestNota: El binario se guardará usualmente en
~/go/bin/go-donut.
Uso Básico (Ejemplos)
La sintaxis general es: go-donut [opciones] -input archivo.
1. Convertir un ejecutable a Shellcode simple:
Si tienes un programa llamado herramienta.exe, puedes convertirlo así:
go-donut -input herramienta.exe -output payload.bin
2. Especificar la arquitectura (x32 o x64):
Si sabes que el proceso objetivo es de 64 bits:
go-donut -input herramienta.exe -arch x64 -output payload_x64.bin
3. Bypass de AMSI (Antimalware Scan Interface):
Una de las funciones más buscadas es desactivar los escaneos de memoria de Windows:
go-donut -input herramienta.exe -amsi 3 -output payload_evasivo.bin
Flujo de Trabajo Típico
Para que entiendas dónde encaja esta herramienta en un ataque de prueba:
Desarrollo: Creas un binario en C# o C++ que realiza una tarea (ej. un beacon de comando y control).
Conversión: Usas Go-donut para transformar ese
.exeen un bloque de datos (shellcode).Entrega: Utilizas un loader (cargador) para ejecutar ese shellcode directamente en la memoria RAM de una víctima.
Advertencia de Seguridad: Esta herramienta debe utilizarse exclusivamente en entornos controlados, laboratorios de ética y bajo autorización previa. El uso indebido para acceder a sistemas sin permiso es ilegal.