EscenarioDurante su turno como analista del SOC, el EDR de la empresa alertó de un
comportamiento sospechoso de un equipo de usuario final. El usuario indicó que
había recibido un correo electrónico reciente con un archivo DOC de un
remitente desconocido y le pasó el documento para que usted lo analizara.
Preguntas
¿Cuál
es el hash sha256 del archivo doc?
El Hash sha256 del archivo es ff2c8cadaa0fd8da6138cce6fce37e001f53a5d9ceccd67945b15ae273f4d751 este valor se obtuvo con la herramienta sha256sum en Linux.
Este documento contiene varias macros. Indique el número de la más baja.El flujo de macro más bajo que contine el documento es el flujo número 8.
¿Cuál
es la clave de descifrado del código ofuscado?
La clave de descifrado del código ofuscado es EzZETcSXyKAdF_e5I2i1. La
evidencia se obtuvo ejecutando el documento y depurando la Macro insertada en
el documento y con la herramienta cmdWatcher.
¿Cuál
es el nombre del archivo eliminado?
El nombre del archivo eliminado es maintools.js
¿Este
script usa qué lenguaje?
El lenguaje que utiliza este script es JScript. Es una implementación de MicroSoft de ECMAScript.
¿Cuál es el nombre de la variable a la que se asignan los argumentos de la línea de comandos?
El nombre de la variable a la que se le asignan los argumentos de la línea
de comandos es wvy1.
¿Cuántos argumentos de línea de comandos espera este script?
El número de argumentos de la línea de comando que espera el script es 1 argumento.
¿Qué
instrucción se ejecuta si este script encuentra un error?
La instrucción que ejecuta el script en caso de que se produzca un error es
WScript.Quit().
¿Qué función devuelve la siguiente etapa de código (es
decir, la primera ronda de código ofuscado)?
La función encargada de devolver la siguiente etapa de código es y3zb.
La función LXv5 es una función importante, ¿a qué
variable se le asigna un valor de cadena clave para determinar lo que hace esta
función?
El nombre de la variable es LUK7 la cual se le asigna el valor de
cadena.
¿Qué
esquema de codificación se encarga de descodificar esta función?
El esquema de codificación que se encarga de descodificar esta función es
Base64. Para comprobar el esquema de codificación se utilizó la herramienta
cyberchef.
¿En la función CpPT, los dos primeros bucles for son responsables de qué parte importante de esta función?
Los dos bucles for son
responsable de ejecutar los dos algoritmos que utiliza el cifrado RC4. El
primero emplea el algoritmo Key
Scheduling Algorithm (KSA) y el segunda emplea el Pseudo-Random Generation
Algorithm (PRGA).
La función CpPT requiere dos argumentos, ¿de dónde viene el valor del primer argumento?
El primer argumento proviene de la línea de comando (command-line), esto se deduce al analizar el código JScript.
La variable wvy1 recibe como parámetro WSscript.Argument y luego este se le asigna la variable ssWZ = wvy1(0) donde la función se pasa como parámetro el valor de 0 (cero), es decir, toma el primer parámetro ingresado desde la línea de comandos.
Para la función CpPT, ¿qué representa el primer argumento?
Representa la Key (clave) del algoritmo RC4, Key Scheduling Algorithm (KSA)
¿Qué algoritmo de cifrado implementa la función CpPT en este script?
Este script implementa el algoritmo de cifrado RC4.
¿Qué función se encarga de ejecutar el código desofuscado?
La función encargada de ejecutar la el código desofuscado es la función eval().
¿Qué programa Windows Script Host se puede usar para ejecutar este script en modo de línea de comandos?
El programa que se puede utilizar es cscript.exe que permite ejecutar script JScript.
¿Cuál es el nombre de la primera función definida en el código desofuscado?
El nombre de la primera función definida en el código desofuscado es UspD. Se obtuvo el nombre de la función con la herramienta cyberchef. Primero se uso un decodificador Base64, y luego se ejecutó el algoritmo RC4 con la key EzZETcSXyKAdF_e5I2i1.
Comentarios
Publicar un comentario