Interesante artículo publicado en blog.elhacker.net
Algunos de los métodos que podríamos utilizar si recibimos un documento de una fuente sospechosa y queremos detectar si contiene código malicioso o no. Es importante recordar que los cibercriminales constantemente están creando nuevas técnicas de evasión u ofuscación, por lo que es posible que algunas de estas técnicas (o todas) no puedan aplicarse en algún caso particular. Una de las maneras más sencillas es analizar el Documento con VirusTotal, FOCA o DIARIO, pero a menudo, esto puede no ser suficiente.
Métodos para detectar si un documento de Office contiene código malicioso
Antes de mencionar los métodos que nos podrían ayudar a determinar si un documento tiene contenido malicioso o no, es importante tener presente algunas cuestiones relacionadas con estos:
- Archivos con extensión terminada en X (docx, xlsx, etc.):
Este tipo de archivos están organizados en una estructura con una colección de múltiples archivos con formato XML en base al estándar Office Open XML (OOXML) desarrollado por Microsoft. Por la convención adoptada en este estándar, los archivos OOXML son archivos ZIP, por ende, podemos abrir uno de estos archivos con alguna herramienta de compresión/descompresión. Por ejemplo, con 7zip.
Una vez descomprimido, observaremos la existencia de muchos archivos. Por ejemplo, el archivo [Content_Types].xml que contiene información de todo el documento; o archivos que terminan con la extensión “rels” (por ejemplo “document.xml.rels”) que son utilizados para establecer relaciones entre distintas secciones del documento —estilos, pie de página o URL con enlaces externos.
- Macros
Una macro es una serie de instrucciones agrupadas bajo un mismo comando que permiten ejecutar una tarea de forma automática en un documento. De esta manera, los cibercriminales desarrollan macros (por lo general utilizando el lenguaje de programación Visual Basic) para ponerlas dentro de documentos con fines maliciosos.
- Object Linking and Embedding (OLE)
OLE es una tecnología desarrollada por Microsoft que permite tomar un Objeto de un documento y colocarlo en otro; por ejemplo, incluir una tabla de una planilla de Excel en un documento de Word.
La inclusión puede hacerse por medio de la vinculación (linking) contra otra aplicación, permitiendo así que los datos no estén en el archivo original. Otra opción puede ser que estén incrustados (embedding) haciendo que sean parte del mismo documento y desligándolos de su archivo de origen.
Los criminales pueden utilizar estos objetos OLE para incluir código malicioso desarrollado, por ejemplo, en Visual Basic o JavaScript, para que se ejecute cuando el usuario interactúa con ellos.
Por último, si vamos a realizar un análisis sobre un documento es conveniente hacerlo dentro de una máquina virtual para evitar una posible infección sobre la computadora física.
A su vez, si uno recibe un documento cuya procedencia se desconoce, es recomendable no descargarlo ni tampoco ejecutarlo.
Analizar el archivo con Oletools y Oledump
En esta parte vamos a extraer y analizar objetos OLE o macros que estén dentro de un documento malicioso. Para ello, utilizaremos dos herramientas: oletools y oledump.py.
Para analizar un archivo con Oledump, primero vamos a ejecutar el programa y le indicamos el documento que deseamos analizar.
Herramientas para el análisis archivos de Microsoft Office
Munpack
Exiftool
Didier Stevens Suite
Olevba
msoffice-crypt
OfficeMalScanner
Hachoir-subfile
xxxswfpy
A grandes rasgos, todas las técnicas de análisis de archivos contemplan los siguientes elementos:
- Verificar el documento en busca de etiquetas y scripts peligrosos
- Detectar código en línea como shellcode, macro VBA, Javascript, Powershell y más
- Extraer el código u objeto sospechoso del archivo
- Si es posible, eliminar el código extraído (aunque, con un grado muy alto de probabilidad, el código ofuscado es dañino)
Oletools: Este es un poderoso kit de herramientas de Python para analizar archivos Microsoft OLE2, principalmente documentos de Microsoft Office como archivos de Word o Power Point, mencionan los expertos en forense digital.
Con el argumento -s <STREAM_NRO> podemos ubicarnos sobre alguno de estos streams y con el argumento -v podemos ver el código de la macro.
Oletools ofrece muchas herramientas. En este caso utilizaremos el script “olevba.py” para extraer y analizar macros de un documento.
Ejecutamos el script con el argumento -a para que analice el documento.
Podemos encontrar algunas cosas sospechosas en un archivo. Por ejemplo, las palabras claves Create o CreateObject, entre otras.
En este paquete podremos encontrar muchas otras herramientas, incluyendo:
PCODEDMP: Este es un desensamblador de código Pi (esencialmente un código de shell) de documentos. Los expertos en forense digital mencionan que esta herramienta requiere de oletooles para funcionar correctamente.
Oledump:
$ python oledump.py –version
oledump.py 0.0.27DidierStevensSuite $ python oledump.py -h
Usage: oledump.py [options] [file]
Analyze OLE files (Compound Binary Files)Options:
–version show program’s version number and exit
-h, –help show this help message and exit
-m, –man Print manual
-s SELECT, –select=SELECT
select item nr for dumping (a for all)
-d, –dump perform dump
-x, –hexdump perform hex dump
-a, –asciidump perform ascii dump
-v, –vbadecompress VBA decompression
–vbadecompresscorrupt
VBA decompression, display beginning if corrupted
-r, –raw read raw file (use with options -v or -p
-e, –extract extract OLE embedded file
-i, –info print extra info for selected item
-p PLUGINS, –plugins=PLUGINS
Detectar macros desde el documento
Este método requiere que abramos el documento, por ende, antes de abrirlo debemos tener habilitada la protección contra macros. Los pasos para habilitar la protección pueden encontrarse en el siguiente enlace.
Una vez que tengamos el documento abierto tenemos que ir a la sección View -> Macros -> View Macros.
Hecho esto, nos aparece un menú con las macros del documento. Para poder ver las macros vamos a tener que crear una nueva macro. Para ello, ponemos un nombre cualquiera en la sección “Macro name” y a su vez, en la sección “Macros in”, seleccionamos la opción “All active templates and documents”. Esto nos va a habilitar la opción “Create”, la cual usamos para abrir el Visual Basic for Applications.
Al abrirse el Visual Basic for Applications podemos ver el documento que estamos analizando y sus subcarpetas. Si seleccionamos cada elemento de sus subcarpetas podemos obtener el código fuente de cada macro en caso de existir.
Herramientas de análisis PDF
- PDF Stream Dumper: Esta es una utilidad GUI de Windows para el análisis de PDF muy popular entre la comunidad de especialistas en ciberseguridad.
- PDF-parser: Usar esta herramienta le permite a los expertos en forense digital extraer elementos individuales de un archivo PDF, como encabezados, enlaces y más, para su análisis detallado.
- PDFID: PDFID enumera todos los objetos del archivo PDF analizado.
- PEEPDF: Este es un marco de análisis bastante poderoso que incluye búsqueda de shellcode, Javascript y más. PEEPDF está habilitado de forma predeterminada en Kali Linux.
- PDFxray: Esta herramienta tiene la mayoría de las utilidades necesarias en forma de scripts de Python separados, pero requiere muchas dependencias, mencionan los expertos en forense digital.
¿Qué debemos buscar al analizar un documento PDF?
En primer lugar, los especialistas en forense digital recomiendan buscar los siguientes parámetros:
- /OpenAction y /AA, ya que pueden ejecutar scripts automáticamente
- /JavaScript y /JS respectivamente ejecutan js
- /GoTo, ya que esta acción cambia la página visible del archivo, puede abrir y redirigir automáticamente a otros archivos PDF
- /Launch es capaz de iniciar un programa o abrir un documento
- /SubmitForm y /GoToR pueden enviar datos por URL
- /RichMedia se puede utilizar para incrustar flash
- /ObjStm puede ocultar objetos
Prueba de seguridad
En este paso, usaremos un documento cargado con malware para explotar la falla identificada como CVE-2017-11882.
Revisemos los scripts de VBA:
olevba exploit.doc
Inmediatamente encontraremos toneladas de líneas de script VBA, y al final también muestran lo que hace. La siguiente prueba es analizar un archivo PDF usando PDFID para ver todos los objetos en el archivo.
Como se muestra a continuación, el archivo PDF contiene objetos /ObjStm. Para asegurarnos de que no impacten negativamente nuestros sistemas, podemos extraer estos objetos del archivo y los considerarlos por separado utilizando PDF-parser.
Detectar URL maliciosas en el documento
Algunas veces, los cibercriminales en vez de poner el código malicioso en el documento lo que hacen es invocar a otro documento mediante una URL maliciosa y al momento de abrirlo, no estamos viendo el contenido del documento en sí, sino que estamos viendo otro documento que se descargó de Internet. Esta técnica también es conocida como template injection.
Para buscar la existencia de estas URL, abrimos el documento con la herramienta 7zip y vamos a ir extrayendo los archivos que contiene. Partimos por extraer archivos como “document.xml.res” o “webSettings.xml.res” buscando tags o atributos como sourceFileName, attachedTemplate,Target,TargetMode.
También buscamos alguna URL que sea distinta a las oficiales de Microsoft. Ejemplo de URL oficiales pueden ser http://schemas.openxmlformats.org/, http://schemas.microsoft.com/.
Latest posts by Jose Miguel (see all)
- Artículo: Guía completa de seguridad en el uso de redes Wi-Fi en entornos empresariales y públicos. - 23 septiembre, 2024
- Artículo: Cómo reaccionar ante un ataque de Phishing: Guía para Usuarios Empresariales - 20 septiembre, 2024
- Artículo: Guía básica para la gestión de contraseñas y usuarios en navegadores populares. - 20 septiembre, 2024
- Artículo: La importancia de las copias de seguridad en la ámbito empresarial: Guía Práctica. - 18 septiembre, 2024
- Artículo: Mejorando la ciberseguridad en el entorno laboral: Guía práctica para Empleados. - 16 septiembre, 2024