Tienda Wifi

Tienda Wifi
CiudadWireless es la tienda Wifi recomendada por elhacker.NET

Entradas Mensuales

Síguenos en:

Canal Oficial Telegram de elhacker.NET Grupo Facebook elhacker.NET Twitter elhacker.NET Canal Youtube elhacker.NET Comunidad Steam: Grupo elhacker.NET

Suscripción

¿Quieres recibir las últimas novedades del blog en tu correo?

¡Suscríbete al feed!

Entradas populares

PostHeaderIcon Herramientas para el análisis archivos de Microsoft Office y PDF




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.


DidierStevensSuite de DidierStevens (https://github.com/DidierStevens/DidierStevensSuite), de las que destaca su herramienta oledump.py para Python2

oletools de Philippe Lagadec (https://github.com/decalage2/oletools) para Python3.

Una vez se ha instalado el paquete, tenemos disponibles una serie de nuevos comandos:

  • oleid: permite analizar ficheros OLE para detectar características que normalmente se encuentran en ficheros maliciosos.
  • olevba: dispone de la capacidad de extraer y analizar las macros VBA de los ficheros de MS Office (OLE y OpenXML).
  • MacroRaptor: sirve para detectar las Macros VBA maliciosas.
  • msodde: proporciona la capacidad de detectar enlaces DDE/DDEAUTO de los ficheros de MS Office, RTF y CSV.
  • pyxswf: Detecta, analiza y extrae los objetos Flash (SWF) que pueden estar embebidos en ficheros con formato de MS Office y RTF.
  • oleobj: Extrae los ficheros embebidos de los ficheros OLE.
  • rtfobj: Lo mismo que el anterior pero con ficheros RTF.
  • olebrowse: Proporciona una interfaz gráfica simple para navegar por los ficheros OLE. Este permite visualizar y extraer partes concretas del fichero.
  • olemeta: Consigue los metadatos de los ficheros OLE.
  • oletimes: Extrae las marcas de tiempo del fichero como la fecha de creación, la fecha de modificación, etc.
  • oledir: Muestra todas las entradas de directorio de un archivo OLE.
  • olemap: Pinta una tabla con todos los sectores, y sus atributos, del fichero OLE.

Herramientas para el análisis archivos de Microsoft Office


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.27

DidierStevensSuite $ 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

XLMMacroDeobfuscator es una herramienta para extraer y desofuscar macros XLM  - Documentos maliciosos Macros de Excel 4.0 . Técnica utilizada campañas de malware como Trickbot y Qakbot

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/


Resumen Herramientas


zipdump.py file.pptxExamine contents of OOXML file file.pptx.
zipdump.py file.pptx -s 3 -dExtract file with index 3from file.pptx to STDOUT.
olevba file.xlsmLocate and extract macros from file.xlsm.
oledump.py file.xls -iList all OLE2 streams present in file.xls.
oledump.py file.xls -s 3-vExtract VBA source code from stream 3 in file.xls.
xmldump.py prettyFormat XML file supplied via STDIN for easier analysis.
oledump.py file.xls -p plugin_http_heuristicsFind obfuscated URLs in file.xls macros.
vmonkey file.docEmulate the execution of macros in file.doc to analyze them.
evilclippy -uu file.pptRemove the password prompt from macros in file.ppt.
msoffcrypto-tool infile.docm outfile.docm -pDecrypt outfile.docm using specified password to create outfile.docm.
pcodedmp file.docDisassemble VBA-stomped 
p-code macro from file.doc.
pcode2code file.docDecompile VBA-stomped 
p-code macro from file.doc.
rtfobj.py file.rtfExtract objects embedded into RTF file.rtf.
rtfdump.py file.rtfList groups and structure of RTF file file.rtf.
rtfdump.py file.rtf -OExamine objects in RTF file file.rtf.
rtfdump.py file.rtf -s 5 -H -dExtract hex contents from group in RTF file file.rtf.
xlmdeobfuscator --file file.xlsmDeobfuscate XLM (Excel 4) macros in file.xlsm.

PDF Keywords

  • /OpenAction and /AA specify the script or action to run automatically.
  • /JavaScript, /JS, /AcroForm, and /XFA can specify JavaScript to run.
  • /URI accesses a resource by its URL, perhaps for phishing.
  • /SubmitForm and /GoToR can send data to URL.
  • /RichMedia can be used to embed Flash in a PDF.
  • /ObjStm can hide objects inside an object stream.
  • /XObject can embed an image for phishing.
  • Be mindful of obfuscation with hex codes, such as /JavaScript vs. /J#61vaScript. (See examples.)

Useful PDF File Analysis Commands

pdfid.py file.pdf -nDisplay risky keywords present in file file.pdf.
pdf-parser.py file.pdf -aShow stats about keywords. Add “-O” to include object streams.
pdf-parser.py file.pdf -o idDisplay contents of object id. Add “-d” to dump object’s stream.
pdf-parser.py file.pdf -r idDisplay objects that reference object id.
qpdf --password=pass --decrypt infile.pdf outfile.pdfDecrypt infile.pdf using password pass to create outfile.pdf.

Shellcode and Other Analysis Commands

xorsearch -W -d 3 file.binLocate shellcode patterns inside the binary file file.bin.
scdbgc /f file.binEmulate execution of shellcode in file.bin. Use “/off” to specify offset.
runsc32 -f file.bin-nExecute shellcode in file.bin to observe behavior in an isolated lab.
base64dump.py file.txtList Base64-encoded strings present in file file.txt.
numbers-to-string.py fileConvert numbers that represent characters in file to a string.


Fuentes:

https://www.welivesecurity.com/la-es/2021/04/19/metodos-detectar-documento-office-malware/

https://codeby.net/threads/chitlist-po-analizu-vredonosnyx-dokumentov.61310/

https://ciberseguridad.blog/analizando-documentos-maliciosos-ofimaticos-y-de-scripting/

https://zeltser.com/analyzing-malicious-documents/


0 comentarios :

Publicar un comentario

Los comentarios pueden ser revisados en cualquier momento por los moderadores.

Serán publicados aquellos que cumplan las siguientes condiciones:
- Comentario acorde al contenido del post.
- Prohibido mensajes de tipo SPAM.
- Evite incluir links innecesarios en su comentario.
- Contenidos ofensivos, amenazas e insultos no serán permitidos.

Debe saber que los comentarios de los lectores no reflejan necesariamente la opinión del STAFF.