Skip to content
shellcodes

Glossary

Shellcode

El shellcode es un fragmento pequeño de código máquina independiente de posición que se usa como payload de un exploit — clásicamente para abrir una shell, de ahí el nombre.

El shellcode es un fragmento pequeño de código máquina independiente de posición que se usa como payload de un exploit. Cuando una vulnerabilidad te da el control de la ejecución, el shellcode es lo que realmente se ejecuta. El nombre viene de su propósito original: abrir una shell de comandos.

Un ejemplo mínimo en Linux x86 que llama a execve("/bin/sh") ocupa 25 bytes:

\x31\xc0\x50\x68\x2f\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x50\x53\x89\xe1\xb0\x0b\xcd\x80

El shellcode normalmente debe evitar ciertos bytes (a menudo 0x00), ejecutarse sin importar dónde caiga en memoria y ser pequeño. Los payloads modernos hacen mucho más que abrir una shell —conexiones reverse TCP, ejecución de comandos, cargadores por etapas—, pero el término se quedó.

Lee la guía completa: ¿Qué es el shellcode?