En respuesta a mi post anterior un lector pedía un ejemplo práctico del uso de Metasploit. Y como el blog es de temática militar vamos a empezar por ahí. En futuros artículos intentaré explicar a con más detalles técnicos cómo podemos utilizar Metasploit en la práctica.
Decíamos
metafóricamente que Metasploit sería el equivalente en ciberguerra a lo que es un destructor a nivel naval; ¿Pero qué características tiene en común con un destructor?
Que me corrijan los expertos en tecnología naval, pero a groso modo los destructores son buques rápidos y versátiles pero con gran potencia de fuego.
Metasploit como decíamos cumple estas características: Es una herramienta flexible (de código libre), de uso simple (aunque para especialistas por supuesto) y que puede ser equipada con múltiples exploits (potencia de fuego) para atacar objetivos importantes.
El escenarioPor ejemplo supongamos que tenemos un escenario donde nuestro objetivo es conseguir acceso a la correspondencia de un alto directivo (este será nuestro objetivo primario).
Analizado el escenario, con información obtenida de fuentes públicas en Internet, decidimos que la forma más sencilla de conseguir este objetivo es infiltrar un troyano en el equipo de algún colaborador directo de ese directivo (estos serán los objetivos intermedios). Ya que hemos averiguado que se utilizan habitualmente en la compañía sistemas Windows antiguos sin parchear.
Para conseguir infectar estos equipos necesitaremos aprovechar una vulnerabilidad que nos permita introducir un malware en el sistema. Aquí es donde entra en juego Metasploit.
Tenemos 2 formas principales de lanzar un exploit contra el equipo que queremos infectar:
• Enviar el exploit directamente a la víctima. Por ejemplo dentro de un email.
• Que la víctima recoja el exploit. Por ejemplo dejándolo en un servidor web y convenciendo a la víctima para que visite la página donde está.
Optamos por la segunda opción ya que los clientes de correo habituales como Outlook o Thunderbird pueden ser difíciles de explotar y los antivirus de correo podrían parar el ataque (aunque hay formas de saltárselos).
El exploitAsí que lo que haremos será configurar un servidor en Internet en el que instalaremos:
• Un pequeño servidor web que al recibir una conexión detectara la versión del navegador que conecta, seleccionara el exploit más adecuado y le pasara la orden a Metasploit.
• Una instancia de Metasploit framework que generara el exploit adecuado y que en caso de tener éxito se encargará de ejecutar el payload en el equipo atacado.
El exploit a utilizar dependerá de varios factores: La versión del navegador, el tipo de sistema operativo, si el usuario utiliza antivirus, etc. Podremos incluso lanzar varios a la vez para aumentar las probabilidades de éxito. Todo ello será necesario programarlo en Metasploit.
Podremos también utilizar los exploits que ya vienen programados con Metasploit o desarrollar los nuestros propios. Esto nos llevara más tiempo, pero reducirá las posibilidades de ser detectados.
También necesitaremos que el usuario visite nuestro servidor web “trampa”. Para hacerlo necesitaremos algo de ingeniería social para convencer a los usuarios de que visiten con su navegador la dirección de una página cebo.
Para ello podremos por ejemplo publicar una nota en un foro que sabemos es frecuentado por los trabajadores de la empresa a atacar, con la esperanza de que alguno visite nuestra página.
El payloadComo el objetivo es instalar un troyano en el equipo atacado. La función del payload será sencilla, consistirá en descargar y ejecutar el instalador del malware.
El propio Metasploit ya incorpora un payload con esta funcionalidad (download_exec) de forma que no necesitaremos desarrollo adicional.
Aunque también podríamos añadirle funciones avanzadas, como por ejemplo que el payload desactive el antivirus del equipo antes de descargar el instalador.
La infecciónUna vez esta todo montado solo tenemos que esperar a que alguien visite la dirección de nuestra página y ver si el exploit ha funcionado.
Para ello utilizaremos una herramienta de control remoto o RAT (como por ejemplo PoisonIvy o el propio módulo Meterpreter de Metasploit) configurada para conectar a otro equipo que tendremos conectado en Internet con el software de control.
Si todo ha ido bien y se han conseguido infectar algunos equipos, habrá que comprobar si los sistemas infectados corresponden a los usuarios que eran nuestro objetivo intermedio.
El objetivo finalSi hemos tenido suerte y alguno de los equipos infectados es de un colaborador directo del usuario a monitorizar, tendremos acceso a los segmentos internos de la red de la empresa. Y si el equipo infectado comparte el mismo segmento de red que el equipo del objetivo primario podremos utilizar un sniffer para espiar su correo.
Un sniffer es un programa que se encarga de recoger y analizar el tráfico de una red. En las redes que habitualmente encontraremos en una empresa (de tipo Ethernet) un sniffer normalmente solo puede ser utilizado dentro del segmento local de red.
ConseguidoSi todo sale según lo previsto tendremos acceso al correo del directivo capturando el tráfico con su servidor de email.
Además lo habremos conseguido sin atacar directamente su equipo, reduciendo la probabilidad de ser detectados. Y todo gracias a la versatilidad y potencia de Metasploit.