Análisis de malware
Análisis de documentos maliciosos 2
septiembre 29, por Ninja de seguridad
En la parte anterior de esta serie de artículos, hemos visto algunos conceptos básicos y iniciales sobre el análisis de archivos maliciosos. En esta parte de la serie de artículos, consideraremos ejemplos más complejos y veremos los métodos para analizar el contenido de esos documentos maliciosos. En el artículo anterior, hemos visto ejemplos en los que se utiliza código VBA para descargar algunos binarios de Internet. Veamos ahora cómo se puede utilizar un código VBA para extraer un binario incrustado en el propio binario.
Antes de comenzar con un nuevo análisis, retrocedamos un poco al último artículo donde identificamos el archivo vbaProject.bin a partir de un documento malicioso. Analicemos un poco más ese vbaProject.bin.
¡Conviértete en un ingeniero inverso certificado!
Obtenga capacitación práctica en vivo sobre análisis de malware desde cualquier lugar y conviértase en un analista certificado de ingeniería inversa. Comienza a aprender
Si recuerdas, en el último artículo vimos otra URL que apunta al sitio de Softonic para descargar binarios, pero arriba vimos que la URL apunta a una URL de Dropbox. ¿Por qué? Veamos más sobre esto. Cargaremos el archivo vbaProject.bin en la herramienta SSView. Esta herramienta nos ayudará a ver todo el texto incrustado dentro de las transmisiones. Como podemos ver, la URL de Dropbox está incrustada dentro de la secuencia _SRP_0. Sin embargo, la pregunta aún sin respuesta es: ¿qué hace esta URL en la transmisión? Bueno, resulta que las secuencias SRP están disponibles en los documentos de Office cuando hay código de macro VBA incrustado en ellos y almacena la forma compilada de códigos de macro VBA en ellos. Esto revela la versión anterior de las macros utilizadas en el documento y es muy útil para que los analistas conecten los puntos.
Nota: analicé las otras transmisiones pero no encontré nada útil.
Ahora veamos cómo también podemos analizar los documentos que solo descargan el código pero también realizan la extracción del código incrustado y lo ejecutan.
A continuación se muestra un ejemplo de análisis de un documento malicioso utilizando otra herramienta conocida como olevba.py, escrita por Philippe Lagadec, que se utiliza para analizar automáticamente el contenido de documentos de Microsoft (tanto en formato binario OLE como nuevos documentos XML), extrae y muestra las macros incrustadas. . Este script también analiza varias partes del documento y muestra las partes riesgosas.
Por ejemplo, ejecutar olevba.py en el documento de muestra producirá el siguiente resultado.
Ejecutemos olevba.py en el archivo malicioso conocido anterior.
Ejecutar el siguiente comando producirá el siguiente resultado
Como podemos ver que el código malicioso
- La función se llama en Auto_Open que se ejecutará tan pronto como el usuario abra el documento y habilite las macros.
- Recorrer los párrafos del documento.
- Extrae los caracteres de los párrafos que representan el hexadecimal.
- Convierta los caracteres extraídos del punto 2 a formato binario sin formato.
- Guarde el archivo en la carpeta %USERPROFILE%.
También podemos ver el contenido del archivo incrustado simplemente descomprimiendo el contenido.
y abrirlos en el bloc de notas y luego analizarlos mediante un script y guardar el contenido analizado como un ejecutable para analizarlo como un ejecutable malicioso normal.
Ahora echemos un vistazo a algunos ejemplos más para el formato OLE SS, ya que la mayoría de los ataques a documentos de Office se centran en formatos binarios antiguos, en lugar de los nuevos basados en XML. El almacenamiento estructurado considera un único archivo como una colección de dos tipos de objetos: almacenamiento y flujos. Los diferentes tipos de Microsoft Office tienen diferente almacenamiento y transmisión, por ejemplo, el formato ppt almacena un «documento de PowerPoint», xls se almacena dentro de una secuencia de «libro de trabajo» y .doc usa varias secuencias.
En la siguiente sección, veremos un archivo ppt malicioso de muestra. Carguemos este archivo dentro de OffVis, que es una herramienta gratuita de Microsoft para observar el contenido sin procesar de un documento, lo analiza y puede decirle a un analista si el documento es malicioso o no. Por ejemplo, cargar el archivo sample.ppt en OffVis revela que tiene un exploit dirigido a CVE–0022. Tenga en cuenta que la funcionalidad de esta herramienta para verificar el código de explotación de un CVE se limita a verificar solo los CVE incrustados en el código.
También podemos utilizar el comando de escaneo de OfficeMalScanner para buscar patrones de firma conocidos dentro del documento. La opción de escaneo de OfficeMalScanner busca
- Datos OLE usando firma: xDOxCFx11xE0xA1xB1x1axE1
- Firma PE: MZ en el desplazamiento 00.
- Prólogos de funciones.
- Busca comparación de hashes.
- Llamadas API conocidas como UrlDownlodToFile, LoadLibrary, GetProcAddress, etc.
- Referencias FS[30],FS[0]
- Llamar a los patrones siguientes/POP, JMP []/CALL/POP.
Una de las limitaciones de utilizar solo el parámetro de escaneo es que solo puede funcionar con contenidos no cifrados. Si el documento tiene shellcode incrustado en formato cifrado, entonces podemos usar el parámetro ‘scan brute’ juntos como
y la salida será como la siguiente:
OfficeMalScanner prueba todas las combinaciones de claves de 1 byte que se pueden utilizar para cifrar el contenido del shellcode incrustado utilizando algoritmos de ofuscación comunes como XOR, ADD, ROL.
También podemos usar la función ‘depuración de escaneo’ de OfficeMalScanner para ver el código desensamblado que se encuentra en las ubicaciones anteriores como
y debajo están los patrones para CALL POP que nos dan una indicación de dónde podría residir el código shell.
¡Conviértete en un ingeniero inverso certificado!
Obtenga capacitación práctica en vivo sobre análisis de malware desde cualquier lugar y conviértase en un analista certificado de ingeniería inversa. Comienza a aprender
Entonces, en esta parte del artículo hemos visto algunas opciones más de OfficeMalScanner, como depuración, escaneo y bruto, que son funciones útiles; aprendió sobre estructuras, arroyos, etc. En la siguiente parte de esta serie, también veremos cómo podemos localizar y extraer el código shell de estos documentos. Además, también comenzaremos el análisis de documentos PDF.