Los investigadores de ESET proporcionan un análisis de un ataque llevado a cabo por un actor de amenazas alineado con China, no revelado previamente, al que hemos llamado Blackwood, y que creemos que ha estado operando desde al menos 2018.
Los atacantes entregan un sofisticado implante, que llamamos NSPX30, a través de ataques adversary-in-the-middle (AitM) secuestrando solicitudes de actualización de software legítimo.
Puntos clave de este blogpost:
- Descubrimos que el implante NSPX30 se despliega a través de los mecanismos de actualización de software legítimo como Tencent QQ, WPS Office y Sogou Pinyin.
- Detectamos el implante en ataques dirigidos contra empresas chinas y japonesas, así como contra particulares ubicados en China, Japón y el Reino Unido.
- Nuestra investigación rastreó la evolución de NSPX30 hasta un pequeño backdoor de 2005 que hemos denominado Project Wood, diseñado para recopilar datos de sus víctimas.
- NSPX30 es un implante multietapa que incluye varios componentes, como un dropper, un instalador, loaders, un orquestador y un backdoor. Estos dos últimos tienen sus propios conjuntos de complementos.
- El implante se diseñó en torno a la capacidad de los atacantes para llevar a cabo la interceptación de paquetes, lo que permite a los operadores de NSPX30 ocultar su infraestructura.
- NSPX30 también es capaz de autoincluirse en la lista de servicios permitidos de varias soluciones antimalware chinas.
- Atribuimos esta actividad a un nuevo grupo APT al que hemos denominado Blackwood.
Perfil de Blackwood
Blackwood es un grupo APT alineado con China activo desde al menos 2018, que se dedica a operaciones de ciberespionaje contra individuos y empresas chinas y japonesas. Blackwood tiene capacidades para llevar a cabo ataques adversary-in-the-middle para entregar el implante que hemos denominado NSPX30 a través de actualizaciones de software legítimo, y para ocultar la ubicación de sus servidores de comando y control interceptando el tráfico generado por el implante.
Resumen de la campaña
En 2020, se detectó una oleada de actividad maliciosa en un sistema objetivo ubicado en China. La máquina se había convertido en lo que comúnmente denominamos un "imán de amenazas", ya que detectamos intentos de los atacantes de utilizar kits de herramientas de malware asociados a diferentes grupos APT: Evasive Panda, LuoYu y un tercer actor de amenazas al que rastreamos como LittleBear.
En ese sistema también detectamos archivos sospechosos que no pertenecían a los toolkits de esos tres grupos. Esto nos llevó a iniciar una investigación sobre un implante que denominamos NSPX30; pudimos rastrear su evolución hasta 2005.
Según la telemetría de ESET, el implante se detectó en un pequeño número de sistemas. Entre las víctimas se encuentran:
- individuos no identificados ubicados en China y Japón,
- un individuo no identificado de habla china conectado a la red de una universidad pública de investigación de alto perfil en el Reino Unido,
- una gran empresa de fabricación y comercio en China, y
- la oficina en China de una empresa japonesa del sector de la ingeniería y la fabricación.
También hemos observado que los atacantes intentan volver a comprometer los sistemas si se pierde el acceso.
La Figura 1 muestra la distribución geográfica de los objetivos de Blackwood, según la telemetría de ESET.
Evolución de NSPX30
Durante nuestra investigación sobre el implante NSPX30, trazamos su evolución hasta un antepasado primitivo, un simple backdoor al que hemos denominado Project Wood. La muestra más antigua de Project Wood que hemos podido encontrar se compiló en 2005, y parece que se utilizó como código base para crear varios implantes. Uno de estos implantes, a partir del cual evolucionó NSPX30, fue denominado DCM por sus autores en 2008.
La Figura 2 ilustra una cronología de estos desarrollos, basada en nuestro análisis de muestras de nuestra colección y en la telemetría de ESET, así como en documentación pública. Sin embargo, los eventos y datos aquí documentados siguen siendo una imagen incompleta de casi dos décadas de desarrollo y actividad maliciosa por parte de un número desconocido de actores de amenazas.
En las siguientes secciones describimos algunos de nuestros hallazgos en relación con Project Wood, DCM y NSPX30.
Project Wood
El punto de partida en la evolución de estos implantes es un pequeño backdoor compilado el 9 de enero de 2005, según las marcas de tiempo presentes en la cabecera PE de sus dos componentes: el loader y el backdoor. Este último tiene capacidad para recopilar información del sistema y de la red, así como para registrar pulsaciones de teclas y realizar capturas de pantalla.
Hemos llamado al backdoor Project Wood, basándonos en un nombre recurrente de mutex, como se muestra en la Figura 3.
Las marcas de tiempo de compilación son indicadores poco fiables, ya que pueden ser manipuladas por los atacantes; por lo tanto, en este caso concreto, consideramos puntos de datos adicionales. En primer lugar, las marcas de tiempo de la cabecera PE de las muestras de loader y backdoor; véase la Tabla 1. Sólo hay una diferencia de 17 segundos en el tiempo de compilación de ambos componentes.
Tabla 1. Marcas de tiempo de compilación PE en componentes de la muestra de 2005
SHA-1 |
Filename |
PE compilation timestamp |
Description |
9A1B575BCA0DC969B134 |
MainFuncOften.dll |
2005-01-09 08:21:22 |
Project Wood backdoor. The timestamp from the Export Table matches the PE compilation timestamp. |
834EAB42383E171DD6A4 |
N/A |
2005-01-09 08:21:39 |
The Project Wood loader contains the backdoor embedded as a resource. |
El segundo punto de datos procede de la muestra dropper que se comprimió utilizando UPX. Esta herramienta inserta su versión (Figura 4) en el archivo comprimido resultante - en este caso, la versión 1.24 de UPX, que se publicó en 2003, antes de la fecha de compilación de la muestra.
El tercer punto de datos son los metadatos válidos de las PE Rich Headers (Figura 5), que indican que la muestra se compiló utilizando Visual Studio 6.0, publicado en 1998, antes de la fecha de compilación de la muestra.
Consideramos que es poco probable que las marcas de tiempo, los metadatos Rich Headers y la versión UPX hayan sido manipulados por los atacantes.
Documentación pública
Según un documento técnico publicado por el SANS Institute en septiembre de 2011, se utilizó un backdoor sin nombre ni atribución (Project Wood) para atacar a una figura política de Hong Kong a través de correos electrónicos de spearphishing.
En octubre de 2014, G DATA publicó un informe sobre una campaña que denominó Operación TooHash, que desde entonces se ha atribuido al grupo Gelsemium APT. El rootkit que G DATA bautizó como DirectsX carga una variante del backdoor Project Wood (ver Figura 6) con algunas características vistas en DCM y posteriormente en NSPX30, como permitir su inclusión en listas de productos de ciberseguridad (detalladas más adelante, en la Tabla 4).
DCM alias Dark Specter
El primitivo project Wood sirvió de base de código para varios projects; uno de ellos es un implante llamado DCM (ver Figura 7) por sus autores.
El informe de Tencent de 2016 describe una variante de DCM más desarrollada que se basa en las capacidades AitM de los atacantes para comprometer a sus víctimas mediante la entrega del instalador de DCM como una actualización de software, y para exfiltrar datos a través de solicitudes DNS a servidores legítimos. La última vez que observamos DCM utilizado en un ataque fue en 2018.
Documentación pública
DCM fue documentado por primera vez por la empresa china Jiangmin en 2012, aunque se dejó sin nombre en ese momento, y más tarde fue nombrado Dark Specter por Tencent en 2016.
NSPX30
La muestra más antigua de NSPX30 que hemos encontrado fue recopilada el 6 de junio de 2018. NSPX30 tiene una configuración de componentes diferente a DCM porque su funcionamiento se ha dividido en dos etapas, confiando plenamente en la capacidad AitM del atacante. El código de DCM se dividió en componentes más pequeños.
Le pusimos los nombres de las rutas PDB encontradas en las muestras de plugins:
- Z:\Workspace\mm\32\NSPX30\Plugins\plugin\b001.pdb
- Z:\Workspace\Code\MM\X30Pro\trunk\MM\Plugins\hookdll\Release\hookdll.pdb
Creemos que NSP se refiere a su técnica de persistencia: la DLL del loader persistente, que en disco se llama msnsp.dll, internamente se llama mynsp.dll (según los datos de la tabla de exportación), probablemente porque está instalada como proveedor de espacio de nombres Winsock (NSP).
Por último, hasta donde sabemos, NSPX30 no ha sido documentado públicamente antes de esta publicación.
Análisis técnico
Utilizando la telemetría de ESET, determinamos que las máquinas se ven comprometidas cuando el software legítimo intenta descargar actualizaciones de servidores legítimos utilizando el protocolo HTTP (no cifrado). Las actualizaciones de software secuestradas incluyen las de software chino popular como Tencent QQ, Sogou Pinyin y WPS Office.
En la Figura 8 se muestra una ilustración de la cadena de ejecución vista en la telemetría de ESET.
En la Tabla 2, proporcionamos un ejemplo de URL y la dirección IP a la que se resolvió el dominio en el sistema del usuario en el momento en que se produjo la descarga.
Tabla 2. URL observada, dirección IP del servidor y nombre de proceso de un componente de descarga legítimo
URL |
First seen |
IP address |
ASN |
Downloader |
http://dl_dir.qq[.]com/ |
2021‑10‑17 |
183.134.93[.]171 |
AS58461 (CHINANET) |
Tencentdl.exe |
Según la telemetría de ESET y la información DNS pasiva, las direcciones IP observadas en otros casos están asociadas a dominios de empresas de software legítimas; hemos registrado hasta millones de conexiones en algunas de ellas, y hemos visto cómo se descargaban componentes de software legítimos desde esas direcciones IP.
Hipótesis de implantación de la red
Seguimos sin saber cómo exactamente los atacantes son capaces de distribuir NSPX30 como actualizaciones maliciosas, ya que aún no hemos descubierto la herramienta que permite a los atacantes comprometer inicialmente a sus objetivos.
Basándonos en nuestra propia experiencia con actores de amenazas alineados con China que muestran estas capacidades( Evasive Panda y TheWizards), así como en investigaciones recientes sobre implantes de routers atribuidos a BlackTech y Camaro Dragon (también conocido como Mustang Panda), especulamos que los atacantes están desplegando un implante de red en las redes de las víctimas, posiblemente en dispositivos de red vulnerables como routers o puertas de enlace.
El hecho de que no hayamos encontrado indicios de redirección de tráfico a través de DNS podría indicar que cuando el hipotético implante de red intercepta tráfico HTTP no cifrado relacionado con actualizaciones, responde con el dropper del implante NSPX30 en forma de DLL, un archivo ejecutable o un archivo ZIP que contiene la DLL.
Anteriormente, mencionamos que el implante NSPX30 utiliza la capacidad de interceptación de paquetes de los atacantes para anonimizar su infraestructura de C&C. En las siguientes subsecciones describiremos cómo lo hacen.
Interceptación HTTP
Para descargar el backdoor, el orquestador realiza una petición HTTP (Figura 9) al sitio web de Baidu -un motor de búsqueda y proveedor de software chino legítimo- con un User-Agent peculiar que se hace pasar por Internet Explorer en Windows 98. La respuesta del servidor se guarda en el disco duro del atacante. La respuesta del servidor se guarda en un archivo del que se extrae el componente backdoor y se carga en memoria.
El Request-URI es personalizado e incluye información del orquestador y del sistema comprometido. En las peticiones no interceptadas, la emisión de una petición de este tipo al servidor legítimo devuelve un código de error 404. El backdoor utiliza un procedimiento similar para descargar plugins, utilizando un Request-URI ligeramente diferente.
El implante de red simplemente tendría que buscar peticiones HTTP GET a www.baidu.com con ese User-Agent antiguo en particular y analizar el Request-URI para determinar qué carga útil debe enviarse.
Interceptación UDP
Durante su inicialización, el backdoor crea un socket de escucha UDP pasivo y deja que el sistema operativo asigne el puerto. Puede haber complicaciones para los atacantes que utilizan puertas traseras pasivas: por ejemplo, si los cortafuegos o enrutadores que utilizan NAT impiden la comunicación entrante desde fuera de la red. Además, el controlador del implante necesita conocer la dirección IP y el puerto exactos de la máquina comprometida para ponerse en contacto con la puerta trasera.
Creemos que los atacantes resolvieron este último problema utilizando el mismo puerto en el que el backdoor escucha comandos para exfiltrar también los datos recopilados, de modo que el implante de red sabrá exactamente a dónde reenviar los paquetes. El procedimiento de exfiltración de datos, por defecto, comienza tras la creación del socket, y consiste en consultas DNS para el dominio microsoft.com ; los datos recogidos se añaden al paquete DNS. La Figura 10 muestra una captura de la primera consulta DNS enviada por el backdoor.
La primera consulta DNS se envía a 180.76.76[.]11:53 (un servidor que, en el momento de escribir esto, no expone ningún servicio DNS) y para cada una de las siguientes consultas, la dirección IP de destino se cambia por la dirección siguiente, como se muestra en la Figura 11.
La red 180.76.76.0/24 es propiedad de Baidu, y curiosamente, algunos de los servidores en estas direcciones IP exponen servicios DNS, como 180.76.76.76, que es el servicio DNS público de Baidu.
Creemos que cuando se interceptan los paquetes de consulta DNS, el implante de red los reenvía al servidor de los atacantes. El implante puede filtrar fácilmente los paquetes combinando varios valores para crear una huella digital, por ejemplo
- dirección IP de destino
- Puerto UDP (observamos 53, 4499 y 8000)
- iD de transacción de la consulta DNS que coincide con 0xFEAD,
- nombre de dominio, y,
- Consulta DNS con datos extraños añadidos.
Reflexiones finales
El uso de la capacidad AitM de los atacantes para interceptar paquetes es una forma inteligente de ocultar la ubicación de su infraestructura de C&C. Hemos observado víctimas ubicadas fuera de China -es decir, en Japón y el Reino Unido- contra las que el orquestador pudo desplegar el backdoor. A continuación, los atacantes enviaron comandos al backdoor para descargar plugins; por ejemplo, la víctima del Reino Unido recibió dos plugins diseñados para recopilar información y chats de Tencent QQ. Por lo tanto, sabemos que el sistema AitM estaba instalado y en funcionamiento, y debemos suponer que el mecanismo de exfiltración también lo estaba.
Algunos de los servidores -por ejemplo, en la red 180.76.76.0/24- parecen ser anycasted, lo que significa que podría haber múltiples servidores geolocalizados en todo el mundo para responder a las solicitudes entrantes (legítimas). Esto sugiere que la interceptación de la red se realiza probablemente más cerca de los objetivos que de la red de Baidu. La interceptación desde un ISP chino también es improbable porque Baidu tiene parte de su infraestructura de red fuera de China, por lo que las víctimas de fuera de China pueden no pasar por ningún ISP chino para llegar a los servicios de Baidu.
NSPX30
En las siguientes secciones describiremos las principales etapas de ejecución del malware.
Fase 1
La Figura 12 ilustra la cadena de ejecución cuando el componente legítimo carga una DLL dropper maliciosa que crea varios archivos en el disco.
El dropper ejecuta RsStub.exe, un componente de software legítimo del producto antimalware chino Rising Antivirus, del que se abusa para cargar lateralmente el archivo malicioso comx3.dll.
La Figura 13 ilustra los principales pasos que se siguen durante la ejecución de este componente.
Cuando RsStub.exe llama a ExitProcess, se ejecuta la función loader del shellcode en lugar del código de función API legítimo.
El loader descifra la DLL instaladora del archivo comx3.dll.txt; a continuación, el shellcode carga la DLL instaladora en memoria y llama a su punto de entrada.
DLL de instalación
El instalador utiliza técnicas de evasión de UAC tomadas de implementaciones de código abierto para crear un nuevo proceso elevado. El proceso que utiliza depende de varias condiciones, como se muestra en la Tabla 3.
Tabla 3. Condición principal y sus respectivas sub-condiciones que deben cumplirse para aplicar una técnica de bypass UAC
Main condition |
Sub-conditions |
UAC bypass technique |
Process named rstray.exe exists |
- OS version is Windows 2000/XP/Vista |
|
- OS version is Windows 10 - Process named avp.exe exists |
||
- OS version is Windows 10 - Process named avp.exe does not exist |
||
- OS version is Windows 7/8/8.1/10 or Windows Server 2008 R1/2012 R2 |
||
Current process is not a member of the administrator group |
- OS version is Windows 10 - Process named avp.exe exists |
|
- OS version is Windows 10 - Process named avp.exe does not exist |
||
- OS version is Windows 7/8/8.1/10 or Windows Server 2008 R1/2012 R2 |
Las condiciones verifican la presencia de dos procesos: creemos que avp.exe es un componente del software antimalware de Kaspersky, y rstray.exe un componente de Rising Antivirus.
El instalador intenta desactivar el envío de muestras por parte de Windows Defender, y añade una regla de exclusión para el loader DLL msnsp.dll. Para ello, ejecuta dos comandos PowerShell a través de cmd.exe:
- cmd /c powershell -inputformat none -outputformat none -NonInteractive -Command Set-MpPreference -SubmitSamplesConsent 0
- cmd /c powershell -inputformat none -outputformat none -NonInteractive -Command Add-MpPreference -ExclusionPath "C:\Program Files (x86)\Common Files\microsoft shared\TextConv\msnsp.dll"
A continuación, el instalador coloca la DLL del loader persistente en C :\Program Files (x86)\Common Files\microsoft shared\TextConv\msnsp.dll y establece la persistencia para ella utilizando la API WSCInstallNameSpace para instalar la DLL como un proveedor de espacio de nombres Winsock llamado msnsp, como se muestra en la Figura 14.
Como resultado, la DLL se cargará automáticamente cada vez que un proceso utilice Winsock.
Finalmente, el instalador deposita la DLL loader a mshlp.dll y la DLL orquestadora cifrada WIN.cfg en C:\ProgramData\Windows.
Fase 2
Esta etapa comienza con la ejecución de msnsp.dll. La Figura 15 ilustra la cadena de carga en la Etapa 2.
Orquestador
La Figura 16 ilustra las principales tareas llevadas a cabo por el orquestador, que incluyen la obtención del backdoor y la carga de plugins.
Cuando se carga, el orquestador crea dos hilos para realizar sus tareas.
Hilo 1 del orquestador
El orquestador elimina el archivo dropper original del disco e intenta cargar el backdoor desde msfmtkl.dat. Si el archivo no existe o no se abre, el orquestador utiliza las API de Internet de Windows para abrir una conexión con el sitio web legítimo de la empresa china Baidu, como se ha explicado anteriormente.
La respuesta del servidor se guarda en un archivo temporal sujeto a un procedimiento de validación; si se cumplen todas las condiciones, la carga útil cifrada que se encuentra dentro del archivo se escribe en un nuevo archivo y se renombra como msfmtkl.dat.
Una vez creado el nuevo archivo con la carga útil cifrada, el orquestador lee su contenido y descifra la carga útil utilizando RC4. El PE resultante se carga en memoria y se ejecuta su punto de entrada.
Hilo orquestador 2
Dependiendo del nombre del proceso actual, el orquestador realiza varias acciones, incluyendo la carga de plugins y la adición de exclusiones para permitir la inclusión de las DLL del loader en las bases de datos locales de tres productos de software antimalware de origen chino.
La Tabla 4 describe las acciones realizadas cuando el nombre del proceso coincide con el de un paquete de software de seguridad en el que el orquestador puede incluir sus loaders en la lista de permitidos.
Tabla 4. Acciones del orquestador cuando se ejecuta en un proceso con el nombre de un software de seguridad específico
Process name |
Targeted software |
Action |
qqpcmgr.exe qqpctray.exe qqpcrtp.exe |
Attempts to load the legitimate DLL <CURRENT_DIRECTORY>\TAVinterface.dll to use the exported function CreateTaveInstance to obtain an interface. When calling a second function from the interface, it passes a file path as a parameter. |
|
360safe.exe 360tray.exe |
Attempts to load the legitimate DLL <CURRENT_DIRECTORY>\deepscan\cloudcom2.dll to use the exported functions XDOpen, XDAddRecordsEx, and XDClose, it adds a new entry in the SQL database file speedmem2.hg. |
|
360sd.exe |
Attempts to open the file <CURRENT_DIRECTORY>\sl2.db to adds a base64-encoded binary structure that contains the path to the loader DLL. |
|
kxescore.exe kxetray.exe |
Attempts to load the legitimate DLL <CURRENT_DIRECTORY>\security\kxescan\khistory.dll to use the exported function KSDllGetClassObject to obtain an interface. When it calls one of the functions from the vtable, it passes a file path as a parameter. |
La Tabla 5 describe las acciones realizadas cuando el nombre del proceso coincide con el del software de mensajería instantánea seleccionado. En estos casos, el orquestador carga los plugins desde el disco.
Tabla 5. Acciones del orquestador cuando se ejecuta en un proceso con el nombre de un software de mensajería instantánea específico
Process name |
Targeted software |
Action |
qq.exe |
Attempts to create a mutex named GET QQ MESSAGE LOCK <PROCESS_ID>. If the mutex does not already exist, it loads the plugins c001.dat, c002.dat, and c003.dat from disk. |
|
wechat.exe |
Loads plugin c006.dat. |
|
telegram.exe |
Loads plugin c007.dat. |
|
skype.exe |
Loads plugin c003.dat. |
|
cc.exe |
Unknown; possibly CloudChat. |
|
raidcall.exe |
||
yy.exe |
Unknown; possibly an application from YY social network. |
|
aliim.exe |
Loads plugin c005.dat. |
Después de completar las acciones correspondientes, el hilo vuelve.
Grupo de plugins "c"
A partir de nuestro análisis del código del orquestador, entendemos que podrían existir al menos seis plugins del grupo "c", de los cuales sólo conocemos tres en este momento.
La Tabla 6 describe la funcionalidad básica de los plugins identificados.
Tabla 6. Descripción de los plugins del grupo "c"
Plugin name |
Description |
c001.dat |
Steals information from QQ databases, including credentials, chat logs, contact lists, and more. |
c002.dat |
Hooks several functions from Tencent QQ’s KernelUtil.dll and Common.dll in the memory of the QQ.exe process, enabling interception of direct and group messages, and SQL queries to databases. |
c003.dat |
Hooks several APIs: - CoCreateInstance - waveInOpen - waveInClose - waveInAddBuffer - waveOutOpen - waveOutWrite - waveOutClose This enables the plugin to intercept audio conversations in several processes. |
Backdoor
Ya hemos compartido varios detalles sobre el propósito básico del backdoor: comunicarse con su controlador y exfiltrar los datos recopilados. La comunicación con el controlador se basa principalmente en la escritura de datos de configuración de plugins en un archivo no cifrado llamado license.dat, y en la invocación de funcionalidades de los plugins cargados. La Tabla 7 describe los comandos más relevantes manejados por el backdoor.
Tabla 7. Descripción de algunos de los comandos manejados por el backdoor
Command ID |
Description |
0x04 |
Creates or closes a reverse shell and handles input and output. |
0x17 |
Moves a file with paths provided by the controller. |
0x1C |
Uninstalls the implant. |
0x1E |
Collects file information from a specified directory, or collects drive’s information. |
0x28 |
Terminates a process with a PID given by the controller. |
Grupos de plugins "a" y "b"
El componente backdoor contiene sus propios plugins DLL (ver Tabla 8) que se escriben en el disco y le dan al backdoor sus capacidades básicas de espionaje y recolección de información.
Tabla 8. Descripciones de los grupos de plugins "a" y "b" incrustados en el backdoor
Plugin name |
Description |
a010.dat |
Collects installed software information from the registry. |
b010.dat |
Takes screenshots. |
b011.dat |
Basic keylogger. |
Conclusión
Hemos analizado los ataques y capacidades de un actor de amenazas al que hemos denominado Blackwood, que ha llevado a cabo operaciones de ciberespionaje contra individuos y empresas de China, Japón y Reino Unido. Hemos mapeado la evolución de NSPX30, el implante personalizado desplegado por Blackwood, desde 2005 hasta un pequeño backdoor que hemos denominado Project Wood.
Curiosamente, el implante Project Wood de 2005 parece ser obra de desarrolladores con experiencia en el desarrollo de malware, dadas las técnicas implementadas, lo que nos lleva a pensar que aún nos queda por descubrir más sobre la historia del backdoor primordial.
Para cualquier consulta sobre nuestra investigación publicada en WeLiveSecurity, por favor contáctenos en threatintel@eset.com.
ESET Research ofrece informes privados de inteligencia APT y fuentes de datos. Para cualquier consulta sobre este servicio, visite la página de ESET Threat Intelligence.
IOCs
Archivos
SHA-1 |
Filename |
ESET detection name |
Description |
625BEF5BD68F75624887D732538B7B01E3507234 |
minibrowser_shell.dll |
Win32/Agent.AFYI |
NSPX30 initial dropper. |
43622B9573413E17985B3A95CBE18CFE01FADF42 |
comx3.dll |
Win32/Agent.AFYH |
Loader for the installer. |
240055AA125BD31BF5BA23D6C30133C5121147A5 |
msnsp.dll |
Win32/Agent.AFYH |
Persistent loader. |
308616371B9FF5830DFFC740318FD6BA4260D032 |
mshlp.dll |
Win32/Agent.AFYH |
Loader for the orchestrator. |
796D05F299F11F1D78FBBB3F6E1F497BC3325164 |
comx3.dll.txt |
Win32/TrojanDropper.Agent.SWR |
Decrypted installer. |
82295E138E89F37DD0E51B1723775CBE33D26475 |
WIN.cfg |
Win32/Agent.AFYI |
Decrypted orchestrator. |
44F50A81DEBF68F4183EAEBC08A2A4CD6033DD91 |
msfmtkl.dat |
Win32/Agent.VKT |
Decrypted backdoor. |
DB6AEC90367203CAAC9D9321FDE2A7F2FE2A0FB6 |
c001.dat |
Win32/Agent.AFYI |
Credentials and data stealer plugin. |
9D74FE1862AABAE67F9F2127E32B6EFA1BC592E9 |
c002.dat |
Win32/Agent.AFYI |
Tencent QQ message interception plugin. |
8296A8E41272767D80DF694152B9C26B607D26EE |
c003.dat |
Win32/Agent.AFYI |
Audio capture plugin. |
8936BD9A615DD859E868448CABCD2C6A72888952 |
a010.dat |
Win32/Agent.VKT |
Information collector plugin. |
AF85D79BC16B691F842964938C9619FFD1810C30 |
b011.dat |
Win32/Agent.VKT |
Keylogger plugin. |
ACD6CD486A260F84584C9FF7409331C65D4A2F4A |
b010.dat |
Win32/Agent.VKT |
Screen capture plugin. |
Red
IP |
Domain |
Hosting provider |
First seen |
Details |
104.193.88[.]123 |
www.baidu[.]com |
Beijing Baidu Netcom Science and Technology Co., Ltd. |
2017‑08‑04 |
Legitimate website contacted by the orchestrator and backdoor components to download payloads. The HTTP GET request is intercepted by AitM. |
183.134.93[.]171 |
dl_dir.qq[.]com |
IRT‑CHINANET‑ZJ |
2021‑10‑17 |
Part of the URL from where the dropper was downloaded by legitimate software. |
Técnicas ATT&CK de MITRE
Esta tabla se ha elaborado utilizando la versión 14 del marco MITRE ATT&CK.
Tactic |
ID |
Name |
Description |
Resource Development |
Develop Capabilities: Malware |
Blackwood used a custom implant called NSPX30. |
|
Initial Access |
Supply Chain Compromise |
NSPX30’s dropper component is delivered when legitimate software update requests are intercepted via AitM. |
|
Execution |
Command and Scripting Interpreter: PowerShell |
NSPX30’s installer component uses PowerShell to disable Windows Defender’s sample submission, and adds an exclusion for a loader component. |
|
Command and Scripting Interpreter: Windows Command Shell |
NSPX30’s installer can use cmd.exe when attempting to bypass UAC. NSPX30’s backdoor can create a reverse shell. |
||
Command and Scripting Interpreter: Visual Basic |
NSPX30’s installer can use VBScript when attempting to bypass UAC. |
||
Native API |
NSPX30’s installer and backdoor use CreateProcessA/W APIs to execute components. |
||
Persistence |
Hijack Execution Flow |
NSPX30’s loader is automatically loaded into a process when Winsock is started. |
|
Privilege Escalation |
Event Triggered Execution |
NSPX30’s installer modifies the registry to change a media button key value (APPCOMMAND_LAUNCH_APP2) to point to its loader executable. |
|
Abuse Elevation Control Mechanism: Bypass User Account Control |
NSPX30’s installer uses three techniques to attempt UAC bypasses. |
||
Defense Evasion |
Deobfuscate/Decode Files or Information |
NSPX30’s installer, orchestrator, backdoor, and configuration files are decrypted with RC4, or combinations of bitwise and arithmetic instructions. |
|
Impair Defenses: Disable or Modify Tools |
NSPX30’s installer disables Windows Defender’s sample submission, and adds an exclusion for a loader component. NSPX30’s orchestrator can alter the databases of security software to allowlist its loader components. Targeted software includes: Tencent PC Manager, 360 Safeguard, 360 Antivirus, and Kingsoft AntiVirus. |
||
Indicator Removal: File Deletion |
NSPX30 can remove its files. |
||
Indicator Removal: Clear Persistence |
NSPX30 can remove its persistence. |
||
Indirect Command Execution |
NSPX30’s installer executes PowerShell through Windows’ Command Shell. |
||
Masquerading: Match Legitimate Name or Location |
NSPX30’s components are stored in the legitimate folder %PROGRAMDATA%\Intel. |
||
Modify Registry |
NSPX30’s installer can modify the registry when attempting to bypass UAC. |
||
Obfuscated Files or Information |
NSPX30’s components are stored encrypted on disk. |
||
Obfuscated Files or Information: Embedded Payloads |
NSPX30’s dropper contains embedded components. NSPX30’s loader contains embedded shellcode. |
||
System Binary Proxy Execution: Rundll32 |
NSPX30’s installer can be loaded through rundll32.exe. |
||
Credential Access |
Adversary-in-the-Middle |
The NSPX30 implant is delivered to victims through AitM attacks. |
|
Credentials from Password Stores |
NSPX30 plugin c001.dat can steal credentials from Tencent QQ databases. |
||
Discovery |
File and Directory Discovery |
NSPX30’s backdoor and plugins can list files. |
|
Query Registry |
NSPX30 a010.dat plugin collects various information of installed software from the registry. |
||
Software Discovery |
NSPX30 a010.dat plugin collects information from the registry. |
||
System Information Discovery |
NSPX30’s backdoor collects system information. |
||
System Network Configuration Discovery |
NSPX30’s backdoor collects various network adapter information. |
||
System Network Connections Discovery |
NSPX30’s backdoor collects network adapter information. |
||
System Owner/User Discovery |
NSPX30’s backdoor collects system and user information. |
||
Collection |
Input Capture: Keylogging |
NSPX30 plugin b011.dat is a basic keylogger. |
|
Archive Collected Data: Archive via Library |
NSPX30 plugins compress collected information using zlib. |
||
Audio Capture |
NSPX30 plugin c003.dat records input and output audio streams. |
||
Automated Collection |
NSPX30’s orchestrator and backdoor automatically launch plugins to collect information. |
||
Data Staged: Local Data Staging |
NSPX30’s plugins store data in local files before exfiltration. |
||
Screen Capture |
NSPX30 plugin b010.dat takes screenshots. |
||
Command and Control |
Application Layer Protocol: Web Protocols |
NSPX30’s orchestrator and backdoor components download payloads using HTTP. |
|
Application Layer Protocol: DNS |
NSPX30’s backdoor exfiltrates the collected information using DNS. |
||
Data Encoding: Standard Encoding |
Collected data for exfiltration is compressed with zlib. |
||
Data Obfuscation |
NSPX30’s backdoor encrypts its C&C communications. |
||
Non-Application Layer Protocol |
NSPX30’s backdoor uses UDP for its C&C communications. |
||
Proxy |
NSPX30’s communications with its C&C server are proxied by an unidentified component. |
||
Exfiltration |
Automated Exfiltration |
When available, NSPX30’s backdoor automatically exfiltrates any collected information. |
|
Data Transfer Size Limits |
NSPX30’s backdoor exfiltrates collected data via DNS queries with a fixed packet size. |
||
Exfiltration Over Alternative Protocol: Exfiltration Over Unencrypted Non-C2 Protocol |
NSPX30’s backdoor exfiltrates the collected information using DNS. |
CorregirBasicCerrarOrtografíaSe ha encontrado un posible error ortográfico.proyectoproyectaproyectóproyecteprovectaDescartar