Cualquiera que trabaje con exploits y shellcode, ya sabrá lo que son y cómo prepararlos. A veces los exploits vienen en C, Perl, Python… y son algo así:

payload = (b"xbfxabxd0x9ax5bxdaxc7xd9x74x24xf4x5ax2bxc9" + "xb1x45x83xc2x04x31x7ax11x03x7ax11xe2x5ex2c" + "x72xd2xa0xcdx83x85x29x28xb2x97x4dx38xe7x27" + ...

Pero a veces se necesita una representación en fichero binario de ese shellcode para poder inyectarlo en un fichero, depurarlo o por cualquier razón. Existen toda clase de scripts ahí fuera para trabajar con shellcode y realizar diferentes tareas. Binario a shellcode, shellcode a binario (solo para bash). Pero no hemos sido capaces de encontrar un script simple para conseguirlo bajo Windows. Incluso encontrar el comando “xxd” (realizar un volcado hexadecimal) portado a Windows es posible pero no sencillo (parece que viene con Vim para Windows, y que antes estaba disponible junto a las unixtools…).

En cualquier caso, este es un script simple en Python que funciona en Windows y hará el trabajo. Tolera shellcode sucio (con espacios, retornos de carro, comandos de concatenación…) y solo se quedará con los caracteres hexadecimales. Después utiliza un “write” con “wb” para obtener un fichero binario. Quick and dirty.

Aquí está el pequeño código. Se puede copiar y pegar simplemente en un fichero .py. Comprobado en la rama 2.7.

import binascii
import fileinput
import os
import re
import sys

def shell2bin(args):
if len(args) < 2:
print "Usage: %s shellcodefile binfile" % args[0]
return
else:
try:
with open(sys.argv[1], "r") as fileshell:
flux = fileshell.read()
flux = re.sub("[^0-9,^a-f,^A-F]", "",flux)
with open(sys.argv[2], "wb") as filebin:
filebin.write(binascii.unhexlify(flux))
print "Done!"
except IOError as e:
print "I/O error({0}): {1}".format(e.errno, e.strerror)
except:
print "Unexpected error:", sys.exc_info()[0]
if __name__=='__main__':
shell2bin(sys.argv)

PyShell2Bin

Te puede interesar

  • infografia-future-workplace

    The Future of Workplace: Conectamos el talento con los objetivos empresariales

  • dossier-servicios-soluciones-ciberseguridad

    Dossier de servicios y soluciones de ciberseguridad

  • informe-estado-seguridad-h1-2023

    Informe sobre el estado de la seguridad 2023 H1