Instructions:
- Uncompress the lab (pass: cyberdefenders.org)
Scenario:
Your cybersecurity team has been alerted to suspicious activity on your organization’s network. Several employees reported unusual behavior in their browsers after installing what they believed to be a helpful browser extension named «ChatGPT». However, strange things started happening: accounts were being compromised, and sensitive information appeared to be leaking.
Your task is to perform a thorough analysis of this extension identify its malicious components.
#1 Respuesta: base64
Which encoding method does the browser extension use to obscure target URLs, making them more difficult to detect during analysis?
Obtención de la evidencia
Analizando el archivo app.js
, se identificó la función encryptPayload
, que utiliza el método .toString(CryptoJS.enc.Base64)
para codificar datos en formato Base64. Este método convierte los datos en un formato legible, pero no seguro, que puede dificultar su detección durante análisis superficiales.

#2 Respuesta: www.facebook.com
Which website does the extension monitor for data theft, targeting user accounts to steal sensitive information?
Obtención de la evidencia
En el análisis del archivo app.js
, se identificó la siguiente línea de código:
const targets = [_0xabc1('d3d3LmZhY2Vib29rLmNvbQ==')];

La cadena 'd3d3LmZhY2Vib29rLmNvbQ=='
está codificada en Base64. Utilizando la herramienta CyberChef con la receta «From Base64», se decodificó esta cadena obteniendo el valor:

Este resultado confirma que la extensión está diseñada específicamente para monitorear y realizar acciones maliciosas en el dominio www.facebook.com
.
#3 Respuesta: <img>
Which type of HTML element is utilized by the extension to send stolen data?
Obtención de la evidencia
En el código analizado, se encontró el uso de elementos <img>
para enviar datos robados a través de solicitudes GET ocultas. Estos elementos cargan imágenes desde URLs generadas dinámicamente que contienen datos exfiltrados codificados en la cadena de consulta.

#4 Respuesta: navigator.plugins.length === 0
What is the first specific condition in the code that triggers the extension to deactivate itself?
Obtención de la evidencia
El análisis del archivo app.js
reveló que la extensión verifica si navigator.plugins.length === 0
. Este comportamiento indica que la extensión está diseñada para desactivarse en entornos donde no hay plugins instalados, como navegadores en modo headless o entornos automatizados.

#5 Respuesta: submit
Which event does the extension capture to track user input submitted through forms?
Obtención de la evidencia
El archivo app.js
contiene un controlador que escucha eventos submit
en formularios HTML. Este evento es interceptado para capturar los datos ingresados por el usuario antes de enviarlos al servidor de destino legítimo, lo que permite su exfiltración.

#6 Respuesta: keydown
Which API or method does the extension use to capture and monitor user keystrokes?
Obtención de la evidencia
Se identificó un fragmento de código en el que se registra un evento keydown
. Este evento se utiliza para monitorear y capturar pulsaciones de teclas en tiempo real, permitiendo que la extensión registre información sensible como contraseñas o datos de inicio de sesión.

What is the domain where the extension transmits the exfiltrated data?
#7 Respuesta: Mo.Elshaheedy.com
Obtención de la evidencia
El análisis del código reveló que la exfiltración de datos se realiza enviando solicitudes al dominio Mo.Elshaheedy.com
. Este dominio aparece configurado explícitamente en las solicitudes de red realizadas por la extensión.

#8 Respuesta: exfiltrateCredentials(username, password);
Which function in the code is used to exfiltrate user credentials, including the username and password?
Obtención de la evidencia
En el archivo app.js
se encontró la función exfiltrateCredentials
, que toma como parámetros el nombre de usuario y la contraseña. Esta función envía las credenciales robadas al servidor malicioso utilizando un método de codificación y exfiltración previamente identificado.

9 Respuesta: AES
Which encryption algorithm is applied to secure the data before sending?
Obtención de la evidencia
El código fuente incluye el uso de la biblioteca CryptoJS
para realizar cifrado AES. Este algoritmo se utiliza para cifrar los datos antes de codificarlos en Base64 y enviarlos al servidor.

10 Respuesta: cookies
What does the extension access to store or manipulate session-related data and authentication information?
Obtención de la evidencia
El archivo manifest.json
de la extensión solicita explícitamente acceso a las cookies mediante la siguiente línea en el bloque de permisos:

Las cookies son utilizadas por los navegadores web para almacenar y gestionar información sobre la sesión del usuario, incluyendo datos de autenticación. El acceso a las cookies otorga a la extensión la capacidad de leer, modificar o exfiltrar dicha información, lo que podría ser explotado para acceder a cuentas de usuario o manipular sesiones.
Además, el archivo loader.js
, cargado como parte de la extensión según lo definido en el manifest.json
, configura el entorno para que el código central de la extensión (core/app.js
) se ejecute dinámicamente. Este archivo, al ser cargado, probablemente hace uso de los permisos solicitados, incluyendo el acceso a las cookies, para manipular y almacenar datos relacionados con la sesión del usuario.
Fragmento del manifest.json
relacionado:
"background": {
"scripts": ["system/loader.js"],
"persistent": true
}

:wq!