Descaro sin límites. Detectado en GitHub un troyano dirigido a expertos en seguridad informática

Amenazas corrientes | Últimas noticias | Todas las noticias

Los repositorios infectados de GitHub llamaron la atención de los expertos del laboratorio antivirus de Doctor Web. En ellos se detectaron proyectos del entorno de desarrollo Microsoft Visual Studio con código malicioso incluido en los archivos .suo y .csproj, así como en archivos de código fuente en Python y Go. La carga útil final es la aplicación Microsoft.exe, capaz de esquivar de forma ingeniosa las capas de protección para realizar funciones de backdoor y clipper y robar datos valiosos de los usuarios. El detalle más intrigante de este caso es que los proyectos maliciosos están dirigidos a usuarios interesados en los criptojuegos y a… expertos en seguridad informática. En el momento del análisis, había más de 2000 equipos infectados.

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

Indicadores de compromiso

0
Últimas noticias Todas las noticias