Plantillas con malas intenciones

Hace unos días analizando varios correos di con uno que contenía un adjunto sospechoso. Era un documento .docx que a simple vista no tenia nada dentro pero ocupaba 10 kb.

El correo había pasado todas las barreras, tanto SPF, como los dos antivirus que tienen las pasarelas, y también el filtro anti spam.

El fichero .docx se puede tratar como un comprimido. Una vez extraído su contenido, me puse a analizar todos los ficheros del directorio en busca de dominios o direcciones IP que se pudiesen ver en claro:

Y logré encontrar algo interesante dentro de la ruta word/_rels/document.xml.rels donde aparece lo siguiente:

En un momento se puede visualizar que se accede a un recurso directamente desde una dirección IP concreta, y ese recurso es un documento de Microsoft Word.

Ahora es cuando, lo que contiene ese documento, puede variar desde un documento .docx con macros a un RTF con exploit u otra variante.

En este caso, al hacer un file para ver qué tipo de fichero es, aparece lo siguiente:

Para analizar ficheros RTF se puede usar la tool rtfdump o rtfobject rtfobj plantilla_UOB.doc

Con la opción -s se hace un volcado del objeto 0 .

Al visualizar el contenido con un editor hexadecimal:

Lo que se ve es una URL con la cual contacta, y hace uso de la vulnerabilidad CVE-2017-0199. Por ello, y resumiendo, gracias a un engaño en el Content-Type dentro de la configuración del servidor web que lo aloja, es capaz de ejecutar directamente el código contenido en un fichero tipo .hta que suele contener código Visual Basic Script.

El fichero .hta contiene lo siguiente:

 

Y al decodificarlo:

Donde se puede ver la petición al binario malicioso.

¿Cómo se puede hacer frente a este tipo de plantillas? Pues posiblemente la mejor opción sea a través de reglas Yara o Scripts que busquen determinadas cadenas en el documento Word.

Por tanto, como se lee al principio del articulo, lo primero de todo es extraer el fichero docx, tratándolo como si fuera un zip.

Lo siguiente sería buscar en todos los ficheros dentro de los directorios una serie de cadenas dentro de la sección target como por ejemplo:

“<Relationships ” y “Relationship ” y “</Relationships>”

Y que a la vez también contenga las cadenas:

“Target=”  y “//” y “”TargetMode=\”External\””

Para tratar de generar el menor número de falsos positivos no basta con acotar la búsqueda a la sección target, y ampliarla a la sección Types, por tanto también se deberían incluir en la búsqueda los siguientes types:

 “http://schemas.openxmlformats.org/officeDocument/2006/relationships/oleObject”,

“http://schemas.openxmlformats.org/officeDocument/2006/relationships/frame”,

Referencias

Ver también en: