Escenario
Está trabajando como analista de soc en un Centro de operaciones de
seguridad (SOC) para una empresa con temática de Acción de Gracias. Una
tarde tranquila, escucha que alguien llama a la entrada del analista SOC. Al
abrir la puerta, un técnico exhausto del servidor de correo entra dando
tumbos y rápidamente cae al suelo. Susurra con voz temblorosa: "Los filtros
de correo están caídos... Spam en todas partes..."
Mientras lo ayudas a levantarse, mira al cielo y grita: "¡Se han abierto
las puertas del infierno!". El técnico vuelve a colapsar de inmediato y
susurra suavemente: "El horror... El horror...".
La interrupción del filtro de correo duró todo el día siguiente.
Afortunadamente, se reportaron muy pocos incidentes. Pero un ejemplo te
llamó la atención. Durante la interrupción del filtro de correo, uno de los
empleados de la empresa decidió jugar a la "ruleta del correo electrónico".
El empleado abrió uno de los correos electrónicos maliciosos de su bandeja
de entrada y lo trató como un mensaje legítimo.
TU ASIGNACIÓN
Adquirió cuatro correos electrónicos maliciosos que recibió el empleado.
También recibió un pcap de tráfico de su computadora infectada. ¿Tu tarea?
Averigüe qué correo electrónico se utilizó para comprometer el sistema.
Preguntas
c41-MTA5-email-01: ¿Cuál es el nombre del archivo malicioso?
El nombre del archivo malicioso es: 460630672421.exe. La información se obtuvo con la herramienta
emldump.py. Pero antes un poco de análisis.
Primero, con la herramienta files de Linux identificaremos a que
tipo de archivo corresponde.
Como se muestra en la imagen es un archivo de tipo email en la
RFC 822
hacer referencia a la sintaxis de dicho archivo.
Segundo, con la herramienta cat de Linux analizamos el contenido del
archivo c41-MTA5-email-01.eml.
|
|
Encabezado y cuerpo formato de correo
|
|
|
Encabezado de archivo adjunto formato correo
|
Como se observa en las imágenes se muestran el encabezado, cuerpo y
encabezados de archivo adjunto. Lo que nos interesa es el encabezado de
archivo adjunto en él se observa la codificación de contenido de
transferencia "Content-Transfer-Encoding" se nos indica que está en base64,
Luego se nos muestra el tipo de contenido "Content-Type" se indica que el
archivo adjunto es un archivo zip y se muestra el nombre del archivo zip.
Por último, se nos muestra la disposición del archivo que es un adjunto
"Content-Disposition".
Ahora con el la herramienta emldump.py el volcado del archivo zip.
Con la herramienta emldump.py primero ejecutamos el comando de la primera
imagen para ver la estructura del archivo c41-MTAS-email-01.eml, luego
ejecutamos el comando de la segunda imagen para extraer el archivo
zip.
Obtenemos el archivo zip con la herramienta unzip de Linux
descomprimimos el archivo zip.
ya podemos responder nuestra respuesta.
c41-MTA5-email-01: ¿Cuál es el nombre de la familia de troyanos a
la que pertenece el malware? (Según lo identificado por el conjunto
de reglas de amenazas emergentes).
La familia de troyano al cual pertenece el malware es: upatre.
Este tipo de malware permite al actor de amenaza descargar y ejecutar
malware adicionales. Principalmente se utilizan correos de e-mail para
su propagación.
c41-MTA5-email-01: El malware soltó dos archivos maliciosos con el
mismo hash pero con nombres diferentes. ¿Proporcionar el hash SHA256
de esos archivos? (Consulte el informe presentado en 2015).
El hash de los archivos con distintos nombres y mismo hash
es: d1818c3fbbb1f09d8998ad44d14ee9a4fbfae5a1bb58128c2ac077a06d7f84b9.
Para obtener estos hashes debemos enviar el archivo 460630672421.exe a hybrid-analysis y buscar el informe del año 2015.
Hacemos clic en dicho análisis y nos dirigimos a la parte del
informe Extracted Files.
c41-MTA5-email-01: ¿Cuántas solicitudes de DNS inició el malware?
(Consulte el informe presentado en 2015).
El número de solicitudes DNS que inicio el malware son: 3
solicitudes. La información se obtuvo del informe (2015) de
Hibrid-analysis en la sección Network Analysis.
c41-MTA5-email-02: Varias secuencias contienen macros en este
documento. Proporcione el número de la más alto.
El número más alto es: 20.
Con la herramienta emldump.py analizamos el archivo
c41-MTA5-email-02.eml.
Aquí el archivo que no interesa es el número 5
application/vnd.ms-excel(Bill Payment_000010818.xls). Con la
herramienta emldump.py realizaremos el volcado del archivo.
Luego con la herramienta oleid analizamos en archivo
extraído.
La herramienta nos indica que hay macros presentes en el
documento. Luego la herramienta oledump analizamos el documento
para proporcionar más alto.
c41-MTA5-email-02: La macro de Excel intentó descargar un
archivo. ¿Proporcionar la URL completa de este archivo?
La url completa del archivo:
http://advancedgroup.net.au/~incantin/334g5j76/897i7uxqe.exe. La
información se obtuvo con la herramienta Hybrid-Analysis.
Al ingresar al informe proporcionado por
Hybrid-Analysis en la parte Network Analysis/HTTP Traffic.
c41-MTA5-email-02: ¿Cuál es el nombre del objeto utilizado
para obtener datos de la URL de descarga?
El nombre del objeto es Microsoft.XMLHTTP. La
información se obtuvo con la herramienta libreoffice y su editor
de Macros.
Después de revisar cada uno de los módulos, el módulo llamado
Pochemu contiene el objeto utilizado para obtener los datos de
la url de descarga.
Aquí la líneas importantes son las líneas 9 y 443 del módulo
Pochemu.
Public Const zilibobe = "t" -> Declara una constantes de alcance pública nombrada
zilibobe
Set read_same_ch_from3 = CreateObject("Microsof" + zilibobe +
".XMLH" + UCase(zilibobe) + "TP")
-> Se crea el objeto utilizando para obtener los datos de url
de descarga.
Set: Se utiliza para asignar una referencia de objeto a
una variable o priedad.
CreateObject: Función que crea y devuelve una referencia
a un objeto ActiveX.
UCase: Función que devuelve un valor Variant que contiene
la cadena especificada como argumento, devuelve la cadena
convertida en Mayúscula.
Operador +: Operador de concatenación (unión) entre dos
cadenas, el lenguaje también permite utilizar el carácter
& (ampresand), como operador de
concatenación.
Como resultado de ejecutar todas las operación anteriormente descrita. La instrucción quedaría de la siguiente manera.
Set read_same_ch_from3 = CreateObject("Microsoft.XMLHTTP")
c41-MTA5-email-02: La macro de Excel escribe un archivo en la
carpeta temporal. ¿Proporcionar el nombre del archivo?
El nombre del archivo que se escribe en la carpeta temporal
es: tghtop.exe. La información se obtuvo con la
herramienta VirusTotal.
c41-MTA5-email-03: ¿Proporciona el FQDN utilizado por el
atacante para almacenar las credenciales de inicio de
sesión?
El FQDN utilizado por el atacante para almacenar las
credenciales es: jpmmotos.pt. La información se
obtuvo analizando el archivo adjunto del
archivo c41-MTA5-email-03.eml con la herramienta
emldump.py.
Con la herramienta emldump.py extraemos el archivo html
adjunto.
Una vez extraído el archivo adjunto con la herramienta strings y
grep de Linux analizamos el código fuente del archivo html.
Como se muestra en la imagen el sitio esta creado Wordpress y su
FQDN jpmmotos.pt.
c41-MTA5-email-04: ¿Cuántos FQDN están presentes en el js
malicioso?
El número de FQDN que están presente en el js malicioso son:
3. La información se obtuvo extrayendo el archivo adjunto
del archivo c41-MTA5-email-04.eml con la herramienta
emldump.py
Como se muestra en la imagen hay un archivo zip adjunto el cual
lo extraeremos.
Una vez extraído el archivo, lo descomprimimos. Como resultado
obtenemos el siguiente archivo.
Con la herramienta cat de Linux observamos el contenido del
archivo.
Como se puede observar al parecer es código javascript(js). Con
la herramienta js-Beatufy formatearemos el código.
Aquí se observa un código un poco confuso, toca analizar un
poco el código. En la primera imagen se observan un conjunto
de funciones que devuelven cadenas (strings). Luego, en la
segunda imagen se muestra las llamadas a las distintas
funciones y se concatenan en una única variable llamada
u7.
Vamos a modificar un poco el código javascript el código de la
segunda imagen vamos a envolver el código de la segunda imagen
en una función llamada decode y utilizaremos la instrucción de
javascript console.log para imprimir la variable u7 por
consola.
Posteriormente para ejecutar y depurar nuestro código
crearemos una carpeta llamada decodejs y dentro de esta
crearemos un archivo index.html y un archivo decode.js, este
último contendrá nuestro código javascript modificado. En
nuestro archivo index.html incluiremos nuestro archivo
decode.js y con las herramientas de desarrollo proporcionado
por nuestro navegador web depuraremos el código javascript.
Por último, abrimos el archivo index.html en nuestro
navegador web y abrimos las herramientas de desarrollo de
nuestro navegador.
Como se observa en la imagen al ejecutar la función
decode() en nuestro archivo decode.js se no muestra el
código javascript. Con la herramienta js-Beatufy formatearemos el código jsvascript.
Para finalizar, para obtener los FQDN utilizados por el
atacante, basta con observar la primera línea de código
javascript.
Como se observa en la imagen hay tres url separados por
un espacio.
c41-MTA5-email-04: ¿Cuál es el nombre del objeto
utilizado para manejar y leer archivos?
El nombre del objeto utilizado para manejar y leer
archivos es: ADODB.Stream. La información se
obtuvo del archivo que anteriormente estuvimos
analizando en la pregunta anterior en la quinta
línea.
El objeto ADODB.Stream en su versión ADO 2.5. Se
utiliza para leer, escribir y administrar un flujo de
datos binarios o texto.
El objeto Stream se obtener de tres maneras:
-
Desde una URL que apunta a un documento, una
carpeta o un objeto de registro.
-
Instanciando un objeto Stream para almacenar
datos para una aplicación.
-
Al abrir el objeto Stream predeterminado asociado
con un objeto Record.
c41-MTA5.pcap: La víctima recibió varios correos
electrónicos; sin embargo, el usuario abrió un solo
archivo adjunto. Proporcione el nombre del archivo
adjunto.
El nombre del archivo adjunto es:
fax000497762.zip. La información se obtuvo con
la herramienta BrimSecurity.
Como se puede ver en la imagen BrimSecurity alerta
de la presencia de malware. Aquí se debe analizar
las comunicaciones. Con la herramienta NetworkMiner
en su pestaña session filtraremos por los FQDN ya
extraído anteriormente del archivo js
malicioso.
Como se observa en la imagen hay FQDN que está
asociado a nuestro archivo js malicioso que a su
vez estaba como archivo adjunto en el
archivo fax000497762.zip
c41-MTA5.pcap: ¿Cuál es la dirección IP de la
máquina víctima?
La dirección IP de la máquina víctima es:
10.3.66.103. La información se obtener analizando los hallazgos
de la pregunta anterior.
c41-MTA5.pcap: ¿Cuál es el nombre de host de la
máquina víctima?
El nombre de host de la máquina víctima es:
Strout-PC. La información se obtuvo de los hallazgos de la
pregunta anterior.
c41-MTA5.pcap: ¿Cuál es el FQDN que alojó el
malware?
El FQDN que alojó el malware es:
kennedy.sitoserver.com. La información se obtuvo de los hallazgos de la
pregunta anterior.
c41-MTA5.pcap: El archivo adjunto abierto
escribió varios archivos en la carpeta TEMP.
Proporcione el nombre del primer archivo escrito
en el disco.
El primer archivo escrito en disco es: 7997551.exe. La información se obtuvo del
archivo js malicioso que esta como adjunto en el
archivo. fax000497762.zip.
c41-MTA5.pcap: Uno de los archivos escritos en el
disco tiene el siguiente hash md5
"35a09d67bee10c6aff48826717680c1c"; ¿Qué clave de
registro verifica este malware para determinar su
existencia?
La clave de registro que verifica el este malware
para determinar su existencia es:
interface\{9a83a958-b859-11d1-aa90-00aa00ba3258}. La información se obtuvo con la herramienta Wireshark
y pestr.
Primero extraemos todo los objetos con la
herramienta Wireshark (File/Export
Objects/HTTP).
Hacemos clic en el botón Save All seleccionamos el directorio donde queremos
guardar nuestros archivos, luego con la herramienta
md5sum de Linux calculamos los hashes de los
archivos y lo filtramos con el hash dado en nuestra
pregunta.
Una vez identificado el archivo con el respectivo
hash procedemos a cambiar de nombre para una mejor
manipulación en este caso utilizare el nombre
"extract_exe.exe".
Por último, con la herramienta pestr extraeremos
los string del archivo.
Obtenemos nuestra clave de registro que consulta
el malware para comprobar su existencia.
c41-MTA5.pcap: Uno de los archivos escritos en
el disco tiene el siguiente hash md5
"e2fc96114e61288fc413118327c76d93" envió una
solicitud de publicación HTTP a la página
"upload.php". Proporcione la IP del servidor
web. (IP no está en PCAP)
La dirección IP del servidor web es:
78.24.220.229. La información se obtuvo
enviando el hash a VirusTotal (recordar la IP no
está en el archivo PCAP).
c41-MTA5.pcap: El malware inició el tráfico de
devolución de llamada después de la infección.
Proporcione la IP del servidor de destino.
La dirección de IP del servidor de destino es:
109.68.191.31. La información se obtuvo con
la herramienta Wireshark.
Como se observa en la imagen se muestran un alto
número de paquetes entre el host infectado
(10.3.66.103) y el host resaltado en la
imagen.
Consultaremos si la dirección IP está en Lista
negra (BlackList).
La dirección IP se encuentra en lista
negra.
Happy Hack!!!
Comentarios
Publicar un comentario