¿Cómo crear archivos maliciososde tipo RTF yarchivos indetectables por antivirus?

Share this…

El formato RTF siempre ha sido considerado como bastante seguro en comparación con otros formatos de MS Office. Es cierto que RTF no puede contener macros. Sin embargo, se sabe mucho menos que los documentos RTF pueden contener objetos OLE con contenido potencialmente malicioso. Y más específicamente, objetos OLE  pueden almacenar cualquier archivo, incluyendo los ejecutables y scripts según expertos de hacking ético y análisis de vulnerabilidades informáticas. Si el usuario final hace doble clic en un objeto tal, el archivo incrustado será abierto por el sistema. Esta característica se utiliza activamente para entregar el malware en la vida real, como veremos más adelante.

Según los expertos, al hacer una prueba muy rápida utilizando un simple RTF documento con un objeto OLE que contiene el archivo de prueba EICAR: en VirusTotal, 30 de los 56 motores antivirus detectan el archivo EICAR. Esto puede ser sorprendente como cabría esperar 100% de detección. Sin embargo, después de aplicar todos los trucos descritos en este artículo, sólo 6 motores antivirus de 56 detectan algo sospechoso. Pero fuera de esos 6, solo dos realmente detectan el archivo EICAR correctamente. Para los otros 4 informes, el archivo RTF es malformado o alterada.

Estos trucos descritos pueden utilizarse para ocultar cargas maliciosas que no serán recogidos por la mayoría de gateways de correo electrónico, proxy web y sistemas de detección de intrusos. Y ya han sido utilizados para varias campañas de malware acuerdo con las experiencias de expertos de hacking ético y análisis de vulnerabilidades informáticas. Siguientes son algunas técnicas que usted podría usar para insertar contenido potencialmente malicioso en archivos RTF.

Cabecera RTF incompleta

En lugar de comenzar con “{\rtf1” como se describe en las especificaciones de MS, algunas muestras comienzan con “{\rt0” o “{\rtvpn”. Por ejemplo éste (SHA256: 04beed90f6a7762d84a455f8855567906de079f48ddaabe311a6a281e90bd36f):

malwr

MS Word acepta como documentos RTF, mientras que muchas herramientas de análisis sólo verán archivos de texto y no van a analizar como RTF. Por ejemplo, este es el caso de malwr.com, como se muestra en la siguiente captura de pantalla:

malwr_

Se ve como analizador RTF de MS Word sólo busca “{\rt” para decidir si un archivo es realmente RTF.

Impar número de dígitos hexadecimales
Los datos codificados como bytes en formato hexadecimal deben tener siempre un número par de dígitos hexadecimales. Esto puede parecer obvio, pero si se añade un dígito hexadecimal extra al final de los datos hexadecimales codificados, algunos programas de análisis puede fallar durante la descodificación de los datos. Podrían aprender más de esta metodología durante el curso de hacking ético.

Extra espacio en blanco entre hexadecimal dígitos

Datos codificados en hexadecimal producidos por MS Word está perfectamente alineados, con todos los dígitos hexadecimales agrupados. Sin embargo, según pruebas con MS Word, en realidad permite insertar espacios en blanco (incluyendo el espacio, tabulación, nueva línea, etc.) entre los números hexagonales, e incluso entre los dos dígitos hexadecimales que representan un solo byte.

e44

Palabras de control RTF dentro de los datos codificados en hexadecimal

Acuerdo con las pruebas de  análisis de vulnerabilidades informáticas, mirando en la muestra presentado antes, podemos ver que es una palabra de control adicional “{\object}” ubicada dentro de los datos codificados en hexadecimal.

MS Word simplemente ignora cualquier palabra de control inesperado. Para hacerlo aún más complejo para los programas de análisis, esas palabras de control se pueden tener,por ejemplo “{\ foo {} {\ bar}}”.

010

Los datos binarios dentro de los datos codificados en hexadecimal

Otras muestras de RTF, como este contienen una palabra de control “\ bin”, seguido de un montón de ceros y unos caracteres binarios, justo en el medio de un objeto hexagonal codificado. Aunque las especificaciones no mencionan esa posibilidad para los objetos OLE, se ve como MS Word lo soporta. En la práctica, se permite cualquier combinación de datos hex-codificado y binarios menciona Dan Smith, experto de hacking ético y análisis de vulnerabilidades informáticas.

EF_