Descaro sin límites. Detectado en GitHub un troyano dirigido a expertos en seguridad informática
Amenazas corrientes | Últimas noticias | Todas las noticias
Origen de la infección
Los primeros repositorios infectados aparecieron hace dos años. Las primeras versiones estaban dirigidas a usuarios de monederos de criptomonedas, ya que los ciberdelincuentes publicaban repositorios con proyectos de Visual Studio relacionados con criptojuegos, así como bots y trucos para estos juegos.
Un ejemplo de repositorio infectado para el juego de Telegram Catizen
Estos repositorios contienen:
- un archivo .csproj con una instrucción PreBuildEvent que ejecuta código malicioso antes de compilar el proyecto,
- archivos .suo con un comando de PowerShell integrado.
Los ciberdelincuentes incluso se «preocuparon» por los usuarios sin los conocimientos técnicos suficientes para ejecutar el proyecto por su cuenta y adjuntaron instrucciones para instalar Visual Studio y clonar el repositorio.
Un archivo .csproj con código malicioso
Sin embargo, los creadores de virus han redirigido ahora sus troyanos a otro público objetivo: los expertos en seguridad informática. Ahora el malware se oculta en proyectos de automatización de escaneos, pruebas de seguridad de sistemas y análisis de registros. A la carga útil anterior se han añadido archivos .go y .py en los que el código malicioso se oculta tras una gran cantidad de espacios en blanco. En los repositorios infectados se han detectado varias direcciones de los ciberdelincuentes:
- muckanthropic[.]com
- muckduck.duckdns[.]org
- muckcoding[.]com
- muckdeveloper[.]com
- 130.12.182[.]172
Un repositorio infectado que contiene un script para analizar, limpiar y formatear los resultados de Fscan
Un archivo de Python con código malicioso insertado
Un archivo de Go con código malicioso insertado
Esquema de infección
PowerShell.Packed.270
Tras descargar los archivos infectados, se ejecuta un script de PowerShell en el equipo del usuario. Ejemplos de posibles rutas:
- C:\Users\Public\Pictures\t.ps1,
- C:\Users\Public\Pictures\L.ps1.
PowerShell.Packed.270
El script puede conectarse tanto a los servidores de los ciberdelincuentes como a servicios legítimos: YouTube, Telegram, Documentos de Google, GitCode y Pastebin.
Una cadena cifrada en el servicio Pastebin
De allí, el troyano obtiene una cadena que, una vez descifrada, se convierte en un enlace al archivo comprimido Quixo.7z. A continuación, el archivo se descarga de los servidores de los ciberdelincuentes o de GitHub y se descomprime en el directorio C:\ProgramData\Windows.Microsoft.Photos.
Microsoft.exe (Trojan.Loader.3261)
El archivo comprimido contiene una aplicación desarrollada con el framework Electron, que es la que causa los daños. El troyano tiene una estructura modular compleja y, en el momento de redactar este artículo, su versión más reciente es la 1.4.5. Trojan.Loader.3261 cuenta con una amplia variedad de funciones:
- descarga el archivo Nexara.7z que contiene una carga útil cifrada, configuraciones y archivos auxiliares;
- recopila información sobre el equipo y la envía a los ciberdelincuentes a través de un bot de Telegram;
- se configura para ejecutarse automáticamente al iniciar el sistema;
- mejora sus privilegios de dos formas distintas;
- desactiva Windows Defender, UAC, las notificaciones, System Restore, VSS;
- añade excepciones a Windows Defender;
- inyecta archivos maliciosos en procesos legítimos (BackDoor.AsyncRAT.115, Trojan.InjectNET.14);
- descomprime y ejecuta una carga útil adicional del archivo Nexara/Nvdia.7z (JS.Stealer.191);
- desinstala los antivirus McAfee, ESET y Malwarebytes;
- modifica el archivo ubicado en C:\windows\system32\drivers\etc\hosts.
Los creadores de virus llamaron mode3, mode2, mode3non y handler a los métodos de inyección de archivos maliciosos. Los analizaremos uno por uno.
Mode3
Los desarrolladores programaron este modo para intentar esquivar los sistemas de protección. Para ello, emplea varias técnicas.
- PPID spoofing — suplanta el PID del proceso padre por el identificador de explorer.exe.
- Smart App Control bypass — esquiva la función de protección Smart App Control que bloquea los programas que no son de confianza o que son potencialmente peligrosos antes de que se ejecuten. Para ello, el troyano modifica el valor del parámetro VerifiedAndReputablePolicyState en el registro de Windows.
- Ntdll.dll unhooking — neutraliza los hooks instalados en la biblioteca del sistema ntdll por ejemplo, por un sistema EDR. El troyano lee el archivo original ntdll.dll del disco y lo compara con la versión cargada en el proceso. Si detecta diferencias que parecen instrucciones de hooks, las sobrescribe con los datos originales de la biblioteca.
- Halo's Gate — permite llamar funciones del sistema de Windows directamente mediante syscall, lo que dificulta que los sistemas EDR intercepten las llamadas. El troyano extrae los números SSN de las funciones NT necesarias para realizar las inyecciones.
- ETW patch — desactiva la telemetría de Event Tracing for Windows mediante la aplicación de un parche a ntdll.dll!EtwEventWrite en la memoria del proceso.
- AMSI patch — modifica la función AmsiScanBuffer de la biblioteca amsi.dll de modo que los scripts que se ejecutan en el proceso no se envían al antivirus para su análisis.
En caso de conseguir esquivar las protecciones, el troyano elige uno de los siguientes procesos en el que inyectarse: RegAsm.exe, dwwin.exe, dwm.exe. Los módulos maliciosos están en los archivos extraídos de Nexara.7z: boot_f, kernel_f, thread_f. Están cifrados y sus claves de cifrado se encuentran en Nexara /manifest/config.json, en los valores b_f, k_f, t_f.
Tras inyectarse en los procesos, el troyano comprueba las conexiones con el servidor de control mediante un script de PowerShell y la utilidad Netstat. Si falla la inyección de al menos una de las cargas útiles, el script puede enviar un informe de error al bot de Telegram.
Mode2
El troyano utiliza este modo si no ha conseguido ejecutar la carga útil. Mode2 sigue estos pasos:
- descifra y comprueba los archivos thumbcache_{11..20}.dll del archivo comprimido Nexara.7z, que contienen las funciones de inyección;
- añade regasm.exe y dwm.exe a las excepciones de Windows Defender;
- descifra los fragmentos de un script de PowerShell (PowerShell.Inject.245) almacenados en la configuración, guarda el script en la carpeta temp con un nombre aleatorio y lo ejecuta. A su vez, el script descifra los archivos boot_f, kernel_f, thread_f y los inyecta en el proceso RegAsm.exe;
- busca el archivo cryptwizard, lo descifra y lo inyecta en el proceso dwwin.exe. En el momento de redactar esta noticia, este archivo no existe y su indicador de ejecución está establecido en false;
- comprueba las conexiones con el servidor C2 mediante un script de PowerShell y la utilidad Netstat.
Mode3non
Reproduce las funciones de Mode3, excepto las técnicas de esquivar las protecciones.
Handler
Reproduce el procedimiento de ejecución de módulos maliciosos descrito para Mode2. Este modo es menos flexible y modular que Mode2. Por ejemplo, no utiliza configuraciones: todos los datos están incorporados directamente en el código. Es posible que se trate de una versión antigua del procedimiento de ejecución que los creadores de virus decidieron conservar en el código.
El objetivo principal de todos los modos descritos anteriormente es ejecutar tres cargas útiles maliciosas: dos archivos BackDoor.AsyncRAT.115 y Trojan.InjectNET.14.
BackDoor.AsyncRAT.115
Un toyano que proporciona a los ciberdelincuentes acceso completo al equipo infectado. Se inyectan en los procesos dos archivos maliciosos idénticos que solo se diferencian en los puertos de conexión. Probablemente, para que dos operadores puedan controlar un mismo equipo de forma simultánea.
Trojan.InjectNET.14
Este troyano inyecta en el proceso regasm.exe el archivo Trojan.Clipper.688 que suplanta las direcciones de los monederos de criptomonedas en el portapapeles. Durante la suplantación, realiza una captura de pantalla y la envía al bot de Telegram junto con información sobre la versión del clipper, el nombre de la ventana activa, el nombre de usuario y su dirección IP.
Tras inyectar las cargas útiles, el troyano extrae del archivo comprimido Nexara/Nvdia.7z otro programa desarrollado con el framework Electron: el stealer JS.Stealer.191.
JS.Stealer.191
El troyano comprueba si se está ejecutando en un entorno virtual aislado (sandbox) o en una máquina virtual, recopila información sobre el equipo infectado y roba datos del usuario:
- datos de los navegadores;
- archivos XML del programa FileZilla;
- el archivo MobaXterm.ini del programa MobaXterm;
- el archivo wcx_ftp.ini del programa TotalCommander;
- configuraciones de VPN;
- archivos de aplicaciones de mensajería;
- cuentas de juegos;
- cuentas de servicios de juegos;
- tokens de Discord.
Los datos robados se comprimen y se envían a los ciberdelincuentes a través de un bot de Telegram.
Si en el equipo infectado están instalados los antivirus ESET, McAfee o Malwarebytes, el troyano intenta desinstalarlos.
Código de desinstalación de los antivirus
El troyano añade al archivo del sistema system32\drivers\etc\hosts una entrada para bloquear varios dominios de proveedores de antivirus. Además, el malware elimina todos los archivos y carpetas del directorio system32\drivers\etc\, salvo los archivos permitidos hosts, networks, protocol, services, lmhosts.sam, con el fin de impedir que el usuario recurra a las copias de seguridad.
Futuras funciones
Los ciberdelincuentes modifican constantemente el código y añaden nuevas funciones al troyano. Por ejemplo, los investigadores detectaron funciones sin utilizar destinadas a descargar y ejecutar otro archivo comprimido — Lodge.7z. Este solo contiene un proyecto desarrollado con el framework Electron que aún está en desarrollo. Su archivo ejecutable es WUDFHost.exe. El código permite identificar algunas de sus futuras funciones:
- creación de un servicio mediante la utilidad sc.exe para garantizar la persistencia de Microsoft.exe;
- comprobación de la presencia de Microsoft.exe en el disco y nueva descarga si no se encuentra;
- supervisión del inicio automático;
- instalación de sus propias actualizaciones.
Como puede verse en la descripción de sus funciones, el troyano supone un grave peligro incluso para los usuarios avanzados, incluidos los expertos en seguridad informática. Para evitar la infección del equipo, recomendamos actualizar las bases de datos de virus de forma periódica y analizar todos los archivos descargados de Internet. Los antivirus Dr.Web Security Space y Dr.Web Desktop Security Suite detectan este troyano y eliminan rápidamente los archivos infectados.
Más información sobre Trojan.Loader.3261
Más información sobre Trojan.Clipper.688
Más información sobre JS.Stealer.191