Generar shellcode independiente de la posición

 

https://www.onlinetis.com

Generar shellcode independiente de la posición

En Kali Linux, Donut (creado por The Wover) es una herramienta de ciberseguridad y hacking ético diseñada para generar shellcode independiente de la posición (Position-Independent Code o PIC) a partir de archivos ejecutables comunes de Windows.

En palabras sencillas: toma programas normales (como un .exe, una .dll, scripts en VBScript/JScript o assemblies de .NET) y los convierte en un bloque de código puro (shellcode). Esto permite que el programa se inyecte y se ejecute directamente en la memoria RAM de otra aplicación en Windows, sin necesidad de guardarlo en el disco duro, ayudando a evadir las detecciones de los antivirus tradicionales.

🛠️ Cómo instalar Donut en Kali Linux

Donut está disponible directamente en los repositorios oficiales de Kali Linux. Puedes instalarlo abriendo tu terminal y ejecutando:

Bash
sudo apt update
sudo apt install donut-shellcode

(Nota: Dependiendo de tu versión de Kali, el paquete puede llamarse simplemente donut o donut-shellcode).

🚀 Características principales

  • Ejecución In-Memory: El payload final se descifra y corre directamente en el espacio de memoria del proceso objetivo.

  • Evasión de Antivirus: Cifra el archivo original usando el algoritmo Chaskey (con una clave de 128 bits aleatoria). Una vez ejecutado, limpia sus propios rastros en la memoria.

  • Bypass Integrado: Puede parchear de forma automática sistemas de seguridad de Windows como AMSI (Antimalware Scan Interface) y WLDP (Windows Lockdown Policy).

  • Múltiples formatos de salida: Puede exportar el shellcode generado en binario puro (.bin), o formateado para código en C, Python, PowerShell, Base64, C#, etc.

📖 Ejemplos prácticos de uso

La sintaxis básica de Donut en la terminal es: donut [opciones] -f <archivo_de_entrada>.

1. Convertir un archivo EXE en Shellcode básico

Si tienes un ejecutable (programa.exe) y quieres convertirlo en un archivo binario inyectable:

Bash
donut -f programa.exe -o payload.bin

Esto generará un archivo llamado payload.bin listo para ser usado por un exploit o un inyector.

2. Generar shellcode para una arquitectura específica (x64)

Por defecto, Donut combina arquitecturas (x86+x64). Si quieres forzar que sea específicamente para sistemas de 64 bits:

Bash
donut -f programa.exe -a 2 -o payload64.bin

(Donde -a 1 es x86 y -a 2 es amd64/x64).

3. Convertir una DLL de .NET especificando Clase y Método

Las librerías .NET requieren que le indiques a Donut qué parte del código debe arrancar primero:

Bash
donut -f MiLibreria.dll -c MiNamespace.MiClase -m MetodoPrincipal

4. Generar la salida formateada para un script de Python

Si estás programando tu propio script de explotación en Python y necesitas el shellcode estructurado en texto:

Bash
donut -f programa.exe -f 5

⚠️ Nota de seguridad: Donut es una herramienta potente utilizada en fases de Post-Explotación y Red Teaming para simular adversarios avanzados. Su uso debe limitarse estrictamente a entornos controlados, laboratorios de aprendizaje o auditorías de seguridad autorizadas.


# 1. Leer el archivo binario de Donut y convertirlo a un array de bytes
$shellcode = [System.IO.File]::ReadAllBytes("C:\Ruta\Tu\payload.bin")

# 2. Definir las funciones de la API de Windows usando Inline C# en PowerShell
$Kernel32Definition = @"
using System;
using System.Runtime.InteropServices;

public class Kernel32 {
    [DllImport("kernel32.dll")]
    public static extern IntPtr VirtualAlloc(IntPtr lpAddress, uint dwSize, uint flAllocationType, uint flProtect);

    [DllImport("kernel32.dll")]
    public static extern IntPtr CreateThread(Normally I can help with things like this, but I don't seem to have access to that content. You can try again or ask me for something else.

https://www.onlinetis.com

Entradas populares de este blog

Hacking y ciberseguridad en kali linux con Fping

Hacking y ciberseguridad en kali linux con atk6-thcping6

Como utilizar Fierce en kali linux