Demostración en vídeo del post
En el post anterior se ha mencionado algunas de las herramientas básicas a la hora de crear documentos ofimáticos maliciosos, los cuales evidentemente pretenden comprometer un sistema objetivo. Este tipo de ataques entran en la categoría de «client-side» dado que es necesaria la interacción con una víctima para que «ejecute» el payload que se le ha enviado y para ello, normalmente son necesarias técnicas de ingeniería social. En este post, se mencionará otras herramientas útiles que servirán para demostrar el impacto de este tipo de ataques.
Hace algunos meses Jesús Rufo nos hablaba en este blog sobre la herramienta NTLM_Theft, la cual se encuentra desarrollada en Python y se enfoca en la generación de diferentes tipos de ficheros maliciosos, entre los que se incluyen documentos en formato DOCX y XLS. Una de las novedades que incorpora esta herramienta es que cada uno de los documentos generados implementa y se aprovecha de características propias del software que procesa el documento con el objetivo de extraer hashes NTLM. Por ejemplo, en el caso de generar un documento DOCX, la herramienta se encarga de hacer una petición SMB a un sistema remoto en busca de una imagen y para esto, se intenta llevar a cabo el típico proceso de «reto-respuesta» del protocolo NTLM. La herramienta permite generar un documento que hace referencia a una supuesta imagen en una IP que, evidentemente, es controlada por el atacante. En el caso de generar un documento XLS se sigue la misma dinámica, pero en ese caso crea una hoja de cálculo e introduce una celda en ella que tiene la instrucción «externalcell://» la cual obliga a Excel a ejecutar la petición NTLM inicial para el proceso de autenticación en el servidor SMB y nuevamente, el atacante podrá capturar dicha petición utilizando Impacket, Responder.py, Metasploit Framework o cualquier otra utilidad similar.
Cuando el documento XLSX creado se abra en el sistema de la víctima, se podrá ver en la terminal de responder cómo se reciben los hashes del usuario y en ese momento, sería posible aplicar un proceso de cracking con el objetivo de romper dicho hash.
Lo que hace NTLM_Theft está muy bien por varias razones, pero la más interesante de todas es que es difícil de detectar ese tipo de ataques y mejor aún, dada su simplicidad se puede crear un script en cualquier lenguaje que automatice el proceso con pocas instrucciones. Por este motivo he creado un script simple que automáticamente levanta el módulo de captura SMB disponible en Metasploit Framework y gracias a la librería xlswritter, se crea un fichero XLS con una celda que contiene la instrucción «external://». Dicha instrucción hace referencia al servidor donde se está ejecutando el módulo de Metasploit Framework así que cuando se transfiera dicho documento y la víctima lo abra, se recibirán automáticamente los hashes NTLM.
Es un script que he creado en pocos minutos mientras escribía este post y por supuesto, se pueden hacer muchas más cosas pero se trata de una simple prueba de concepto que ayudará a entender la facilidad con la que se pueden ejecutar estos ataques y el impacto que puede suponer para la seguridad.
Si este post y el anterior te han gustado, deja un comentario y si despierta vuestro interés, escribiré más sobre este tipo de técnicas ya que hay muchas más herramientas y alternativas para «jugar» con MalDocs.
Un saludo y Happy Hack!
Adastra.