Cyberdefenders – FakeGPT Lab writeup

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!

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *