Skip to content
KitploitKITPLOIT
HerramientasExploitsBlog
Log in
Enviar
HerramientasExploitsBlog
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
1122323hace 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):

"\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:

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:

"\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:

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:

./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

git clone https://github.com/therealdreg/shellex.git

Para Windows:

binario:

shellex\bins\shellex.exe

Para Linux

Dependencias:

sudo apt-get install tcc

binario:

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:
"\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:
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:
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:
"\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:
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":
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:

restore /tmp/sc binary $eip
x/30b $eip
x/15i $eip

para 64 bits:

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:

wc -c /tmp/sc

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

sudo apt-get install nasm

Para 32 bits:

ndisasm -b32 /tmp/sc
ndisasm -b32 /tmp/sc | wc -l

Para 64 bits:

ndisasm -b64 /tmp/sc
ndisasm -b64 /tmp/sc | wc -l

Pegar y ejecutar shellcode en gdb-gef

  • ejecuta shellex
  • introduce el shellcode:
"\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"
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:

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:

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:
"\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:
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:

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:

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:
"\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:

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:

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:
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:

Input Length = 92
Output Length = 30
CertUtil: -decodehex command completed successfully.
Descargar herramienta