sherlocked - Transforma cualquier script en un ejecutable ELF protegido, cifrado con anti-debugging

Esta herramienta o "script packer universal" tiene un par de años y sigue siendo bastante útil... Sherlocked es un protector de scripts de cualquier tipo (python, perl, shell etc.) que utiliza un simple XOR con contraseña. Al menos que se utilice la opción -r, la clave se almacenará cifrada dentro del binario y se ejecutará sin tener que ponerla manualmente.

Básicamente Sherlocked toma el script, lo cifra y lo guarda como un fichero ejecutable ELF x86_64 junto con código anti-debugging (inicialmente stripea de la tabla de símbolos y comprime con UPX) .
En runtime dicho ejecutable descifra el script y temporalmente lo escribe en un fichero aleatorio en /tmp. Luego pasa el script y argumentos en línea de comandos al interprete para que se lance y finalmente borra el script.

El único "pero" si utilizamos un fichero con contraseña (opción -r) es que no soporta argumentos en cmdline, aunque se podría implementar.
Y ya que estamos, para mejorarlo también se podría usar un cifrado de stream real como SALSA20 en lugar del simple XOR y, para los molestos AV, modificar el stub con gen_shellcode.c para convertir el ./stub compilado a un fichero stub_shellcode.h.

Compilar:
make

Uso:
./sherlocked [-r]

Opciones:

<infile>     <-> The script file
<outfile>     <-> The protected output file
<key>        <-> The key string used to encrypt the script
[-r]         <-> Require the user who runs the protected executable supplies the key for it to run I.E ./script.elf <key>

Ejemplo de uso protegiendo un script en Python:

ryan@elfmaster:~/git/sherlocked$ ./script.py
hello I am a python script
ryan@elfmaster:~/git/sherlocked$ ./sherlocked script.py script.elf p4ssw0rd /usr/bin/python -r
[+] The user who executes script.elf must supply password: p4ssw0rd
[+] Encoding payload data
[+] Encoding payload struct
[+] Building msg program
[+] utils/stripx exists, so using it to strip section headers off of DRM archive
[+] /usr/bin/upx exists, so using it to compress script.elf
                       Ultimate Packer for eXecutables
                          Copyright (C) 1996 - 2013
UPX 3.91        Markus Oberhumer, Laszlo Molnar & John Reiser   Sep 30th 2013

        File size         Ratio      Format      Name
   --------------------   ------   -----------   -----------
   5003224 ->    324236    6.48%  linux/ElfAMD   script.elf                    

Packed 1 file.
Successfully created script.elf
ryan@elfmaster:~/git/sherlocked$ ./script.elf
This message requires that you supply a key to decrypt
ryan@elfmaster:~/git/sherlocked$ ./script.elf p4ssw0rd
hello I am a python script
ryan@elfmaster:~/git/sherlocked$ 

Github: https://github.com/elfmaster/sherlocked

No os perdáis: http://www.bitlackeys.org/

1 comentarios :

  1. Necesito su ayudaaaa ya busque por la web y no encuentro nada, existe algun script para saber que pestañas se tienen abiertas, mmmm como explicarlo, asi como el scrip para obtener motor del navegador e ip, no hay un script para obtener las pestañas abiertas?

    ResponderEliminar