
pyshell2bin
Si trabajas con exploits y shellcode, ya sabes qué es el shellcode y cómo lidiar con él. A veces viene con exploits en C, Perl, Python… Normalmente se ve así:
payload = (b"xbfxabxd0x9ax5bxdaxc7xd9x74x24xf4x5ax2bxc9" + "xb1x45x83xc2x04x31x7ax11x03x7ax11xe2x5ex2c" + "x72xd2xa0xcdx83x85x29x28xb2x97x4dx38xe7x27" + ...
Pero a veces necesitas una representación en archivo binario de ese shellcode, para poder inyectarlo en algún archivo, depurarlo o por cualquier otra razón. Hay todo tipo de scripts por ahí para tratar con shellcode y realizar distintas tareas. De binario a shellcode, de shellcode a binario (solo para bash)… Pero no pude encontrar un script sencillo para hacerlo en Windows. Incluso encontrar el comando “xxd” (para hacer un volcado hexadecimal) portado a Windows es posible pero no fácil (parece que viene incluido con Vim para Windows, pero solía estar disponible con unixtools…).
De todos modos, aquí tienes un script sencillo en Python que funciona en Windows y hará el trabajo. Tolerará shellcode sucio (espacios, retornos, comandos de concatenación…) y solo conservará los caracteres hexadecimales. Luego usa “write” con “wb” para que obtengas un archivo binario. Rápido y sencillo.