Cómo generar shellcode (3 formas, comparadas)
Compara formas de generar shellcode —msfvenom, ensamblador a mano y un generador en el navegador— con sus compromisos y cuándo usar cada una.
"Generar shellcode" puede significar tres flujos muy distintos. Intercambian control por velocidad y depositan distinta confianza en los bytes de otro. Si todavía no tienes claro qué es el shellcode, empieza por la guía.
Opción 1: ensamblador a mano
Escribes el ensamblador, lo ensamblas, extraes los bytes.
- A favor: control total, salida más pequeña, entiendes cada byte.
- En contra: lento, específico de arquitectura, fácil introducir bad bytes sin querer.
- Úsalo cuando: el tamaño es ajustado, necesitas una primitiva exótica o estás aprendiendo. Mira shellcode en Linux.
Opción 2: un framework (msfvenom)
El framework plantea un payload y lo codifica por ti.
- A favor: rápido, muchas combinaciones de payload/encoder.
- En contra: salida más grande, con firma para los defensores, y vive en un jump box compartido del que quizá no quieras depender. Sacar ese flujo del jump box es una discusión aparte: navegador vs msfvenom.
- Úsalo cuando: necesitas un payload estándar rápido y la firma no es preocupación.
Opción 3: un generador en el navegador
Un generador en el cliente ensambla y codifica en tu navegador — nada sale de la máquina.
- A favor: sin instalación, nada se sube, iteración rápida sobre formato y conjuntos de bad chars. Qué se queda en local y qué no está documentado en el modelo de amenazas.
- En contra: aun así debes verificar la salida tú mismo (cierto en cualquier opción).
- Úsalo cuando: quieres velocidad sin montar herramientas, o trabajas desde una estación restringida.
Elegir formato y encoders
Tomes el camino que tomes, siguen dos decisiones: el formato de salida (\x, 0x, raw, base64) para encajar donde vivirán los bytes, y los encoders para esquivar valores de byte prohibidos. El orden de los encoders importa — mira orden del pipeline de encoders.
Genera shellcode ahora
Construye, codifica y exporta un payload enteramente en el cliente con el builder de Shellcodes — elige la arquitectura, escoge un preset, define tus bad chars y exporta en el formato que necesites. Luego desensámblalo para confirmar los bytes antes de ejecutar nada. Solo pruebas autorizadas: uso responsable.