Imaginary C2 es una herramienta de Python cuyo objetivo es ayudar en el análisis comportamental (de red) del malware. Imaginary C2 aloja un servidor HTTP que captura solicitudes HTTP hacia dominios/IPs seleccionados selectivamente. Además, la herramienta busca facilitar la reproducción de respuestas de comando y control capturadas/payloads servidos.
author: Felix Weyne (sitio web) (Twitter)
Imaginary C2 es una herramienta Python cuyo objetivo es ayudar en el análisis del comportamiento (de red) del malware.
Imaginary C2 aloja un servidor HTTP que captura las solicitudes HTTP hacia dominios/IPs seleccionados selectivamente. Además, la herramienta facilita la reproducción de respuestas de Comando y Control (C&C) y payloads servidos previamente capturados.
Al usar esta herramienta, un analista puede alimentar al malware con respuestas de red consistentes (por ejemplo, instrucciones C&C para que el malware las ejecute). Adicionalmente, el analista puede capturar e inspeccionar solicitudes HTTP hacia un dominio/IP que no está disponible en el momento del análisis.

Imaginary C2 proporciona dos scripts para convertir capturas de paquetes (PCAPs) o Archivos de Sesión de Fiddler en definiciones de solicitud que pueden ser interpretadas por Imaginary C2. A través de estos scripts, el usuario puede extraer URLs de solicitudes HTTP y dominios, así como respuestas HTTP. De esta manera, se pueden reproducir rápidamente respuestas HTTP para una solicitud HTTP dada.
requisitos: Imaginary C2 requiere Python 2.7 y Windows.
módulos: Actualmente, Imaginary C2 contiene tres módulos y dos archivos de configuración:
| Nombre de archivo | Función |
|---|---|
| 1. imaginary_c2.py | Aloja el servidor HTTP simple de Python. Módulo principal. |
| 2. redirect_to_imaginary_c2.py | Modifica el archivo hosts de Windows y la tabla de enrutamiento (IP) de Windows. |
| 3. unpack_fiddler_archive.py & unpack_pcap.py | Extrae respuestas HTTP de capturas de paquetes. Agrega los dominios y URLs de solicitud HTTP correspondientes a los archivos de configuración. |
| 4. redirect_config.txt | Contiene dominios e IPs que deben ser redirigidos a localhost (al servidor HTTP de Python). |
| 5. requests_config.txt | Contiene definiciones de rutas de URL con las fuentes de datos correspondientes. |
definiciones de solicitud: Cada solicitud (HTTP) definida en la configuración de solicitudes consta de dos parámetros:
Parámetro 1: Ruta de URL de solicitud HTTP (también conocido como urlType)
| Valor | Significado |
|---|---|
| fixed | Define la ruta de la URL como una cadena literal |
| regex | Define un patrón de expresión regular para coincidir con la ruta de la URL |
Parámetro 2: Fuente de respuesta HTTP (también conocido como sourceType)
| Valor | Significado |
|---|---|
| data | Imaginary C2 responderá con el contenido de un archivo en disco |
| python | Imaginary C2 ejecutará un script de Python. La salida del script de Python define la respuesta HTTP. |
Imaginary C2 se puede utilizar para simular el alojamiento de componentes y archivos de configuración de TrickBot. Además, también se puede utilizar para simular los servidores de inyección web de TrickBot.
Al ejecutarse, el descargador de TrickBot se conecta a un conjunto de IPs hardcodeadas para obtener algunos archivos de configuración. Uno de estos archivos de configuración contiene las ubicaciones (direcciones IP) de los servidores de complementos de TrickBot. El descargador de TrickBot descarga los complementos (módulos) de estos servidores y los descifra. Luego, los módulos descifrados se inyectan en una instancia de svchost.exe.

Uno de los complementos de TrickBot se llama injectdll, un complemento responsable de las inyecciones web de TrickBot. El complemento injectdll obtiene periódicamente un conjunto actualizado de configuraciones de inyección web. Para cada sitio web (bancario) objetivo en la configuración, se define la dirección de un servidor webfake. Cuando una víctima navega a un sitio web (bancario) que es objetivo de TrickBot, su navegador es redirigido secretamente al servidor webfake. El servidor webfake aloja una réplica del sitio web objetivo. Este sitio web réplica se utiliza generalmente en un ataque de ingeniería social para defraudar a la víctima.
El video a continuación muestra el descargador de TrickBot ejecutándose dentro de svchost.exe y conectándose a Imaginary C2 para descargar dos módulos. Cada módulo descargado se inyecta en una instancia recién creada de svchost.exe. El módulo de inyección web intenta robar las contraseñas guardadas del navegador y las exfiltra al servidor de TrickBot. Al visitar un sitio web bancario objetivo, TrickBot redirige el navegador al servidor webfake. En la demostración, el servidor webfake aloja el mensaje: "Respuesta predeterminada del servidor Imaginary C2" (video completo).
