
pyshell2bin
Se lavori con exploit e shellcode, sai già cos'è lo shellcode e come gestirlo. A volte arriva insieme a exploit in C, Perl, Python… Di solito appare così:
payload = (b"xbfxabxd0x9ax5bxdaxc7xd9x74x24xf4x5ax2bxc9" + "xb1x45x83xc2x04x31x7ax11x03x7ax11xe2x5ex2c" + "x72xd2xa0xcdx83x85x29x28xb2x97x4dx38xe7x27" + ...
Ma a volte hai bisogno di una rappresentazione binaria di questo shellcode, per poterlo iniettare in un file, eseguirne il debug o per qualsiasi altro motivo. Esistono tutti i tipi di script in giro per gestire lo shellcode e svolgere diversi compiti. Da binario a shellcode, da shellcode a binario (solo per bash)… Ma non sono riuscito a trovare uno script semplice per farlo su Windows. Anche trovare il comando "xxd" (che genera un hexdump) portato su Windows è possibile ma non facile (sembra che venga incluso con Vim per Windows, ma una volta era disponibile con unixtools…).
Comunque, ecco un semplice script in Python che funziona su Windows e farà al caso tuo. Tollera shellcode "sporco" (spazi, ritorni a capo, comandi di concatenazione…) e terrà solo i caratteri esadecimali. Poi usa "write" con "wb" così ottieni un file binario. Veloce e sporco.