Volver

2026/11/11

La herramienta de seguridad que descargó es el malware: repositorios falsos en GitHub infectan más de 2.000 PC con Windows

Doctor Web halló herramientas de seguridad falsas en GitHub que ejecutan malware al compilarlas. Cómo funciona la trampa y qué revisar antes de compilar.

Encuentra en GitHub una pequeña utilidad que ordena la salida de un escáner de red. Tiene un README, un proyecto de Visual Studio e instrucciones de compilación. La clona y pulsa Build. Nada parece fuera de lugar, pero cuando el compilador arranca, un comando oculto ya se ha ejecutado en su estación de trabajo.

Esa es la trampa que Doctor Web describió el 5 de noviembre de 2026. Sus investigadores encontraron repositorios de GitHub que se hacían pasar por herramientas de automatización de escaneos, pruebas de seguridad y análisis de registros, y contabilizaron más de 2.000 PC con Windows infectados en el momento de la investigación. Este artículo explica cómo funciona la trampa, por qué cae en ella incluso personal técnico con experiencia y qué revisar antes de compilar código que acaba de clonar.

Puntos clave

  • Los repositorios se hacen pasar por herramientas de seguridad, y el comando malicioso se ejecuta durante la compilación o al iniciar un script, sin ningún programa aparte que lanzar.
  • El código se oculta en archivos de proyecto de Visual Studio, en archivos .suo y tras largas secuencias de espacios en blanco en código fuente Python y Go.
  • Las cargas finales son dos puertas traseras AsyncRAT, un secuestrador del portapapeles para direcciones de monederos de criptomonedas y un infostealer que roba datos del navegador, configuraciones de VPN y FTP y tokens de Discord.
  • Lea los archivos de compilación antes de compilar, y compile el código desconocido en una máquina virtual desechable que no contenga credenciales.
  • Si ya compiló uno de estos proyectos, considere la estación de trabajo comprometida y cambie, desde un dispositivo limpio, todas las credenciales que contenía.

Qué encontró Doctor Web

Según el informe de Doctor Web, los primeros repositorios infectados aparecieron hace unos dos años. Entonces iban dirigidos a usuarios de monederos de criptomonedas y se presentaban como juegos blockchain, bots para juegos y trucos. Ahora los operadores se han centrado en profesionales de la seguridad de la información. Uno de los repositorios falsos contenía un script para analizar, limpiar y dar formato a la salida del escáner de red Fscan.

No se trata de una vulnerabilidad de software y no hay ningún CVE que parchear. Es una campaña de cadena de suministro e ingeniería social: los atacantes publican un proyecto que parece útil y esperan a que alguien lo compile. El resumen de BleepingComputer sobre la investigación califica el truco de los espacios en blanco como una técnica antigua que sigue siendo eficaz.

Cómo funciona la trampa

Doctor Web encontró el código malicioso en tres tipos de archivo. Ninguno de ellos es el que un revisor suele abrir primero.

Dónde se ocultaQué ocurrePor qué es fácil pasarlo por alto
Archivo de proyecto .csprojUn PreBuildEvent ejecuta un comando antes de que se compile el proyectoLos revisores leen el código fuente, no el archivo de proyecto
Archivo .suoEl archivo contiene un comando de PowerShellEs un archivo binario de configuración que Visual Studio suele guardar en una carpeta oculta
Archivos fuente de Python y GoEl código malicioso queda detrás de una gran cantidad de caracteres de espacio en blancoLa línea parece vacía a menos que se desplace mucho a la derecha o active el ajuste de línea

A partir de ahí, la cadena es la misma. Un script de PowerShell (el informe cita C:\Users\Public\Pictures\t.ps1 y L.ps1 como ejemplos) solicita una cadena cifrada a los servidores de los atacantes o a servicios legítimos como YouTube, Telegram, Google Docs, GitCode y Pastebin. Una vez descifrada, la cadena es un enlace de descarga de un archivo comprimido que se extrae en C:\ProgramData\Windows.Microsoft.Photos.

Dentro hay un cargador basado en Electron llamado Microsoft.exe, que Doctor Web detecta como Trojan.Loader.3261. El cargador envía datos del sistema a través de un bot de Telegram, intenta obtener privilegios más altos y desactiva Windows Defender, el Control de cuentas de usuario, las notificaciones, Restaurar sistema y las instantáneas de volumen. También intenta eliminar productos de ESET, McAfee y Malwarebytes y modifica el archivo hosts para bloquear los dominios de los fabricantes de antivirus.

Para pasar desapercibido, en su modo predeterminado el cargador hace que explorer.exe parezca su proceso padre, cambia el valor del registro VerifiedAndReputablePolicyState para eludir Smart App Control, restaura el código original de ntdll.dll para quitar los hooks que colocan allí los productos de seguridad, realiza llamadas directas al sistema y parchea las funciones de Windows que se usan para el seguimiento de eventos y el análisis de scripts. Después inyecta sus cargas en procesos legítimos de Windows como RegAsm.exe.

Siguen tres cargas:

  • Dos puertas traseras AsyncRAT. Los archivos son idénticos pero usan puertos de red distintos, lo que según Doctor Web podría permitir que dos operadores controlen el mismo dispositivo a la vez.
  • Un clipper. Sustituye las direcciones de monederos de criptomonedas en el portapapeles y envía capturas de pantalla, el título de la ventana activa, el inicio de sesión del usuario y la dirección IP a un bot de Telegram.
  • Un infostealer (JS.Stealer.191). Comprueba si se ejecuta en sandboxes o máquinas virtuales y luego recopila datos del navegador, archivos de conexión de FileZilla, MobaXterm y Total Commander, configuraciones de VPN, archivos de mensajería, datos de cuentas de juegos y tokens de Discord, y los envía a través de un bot de Telegram.

Doctor Web también encontró un componente sin terminar que instalaría un servicio de Windows y volvería a descargar el cargador si se elimina. Esto sugiere que los operadores siguen desarrollando sus herramientas.

Por qué funciona con profesionales

La campaña se apoya en hábitos que normalmente se consideran buenas prácticas.

  • Compilar desde el código fuente parece más seguro que ejecutar una descarga. Mucha gente técnica se niega a ejecutar un binario desconocido, pero compila un proyecto sin dudarlo porque puede leer el código. Aquí el código que se lee está limpio, y el comando vive en la configuración de compilación.
  • No hay un momento de “ejecutar este programa”. El comando se inicia como parte de una compilación normal, así que la pausa habitual antes de lanzar un programa desconocido nunca llega.
  • GitHub es un lugar de confianza. Un repositorio con un README cuidado e instrucciones de instalación se parece a miles de proyectos honestos. Doctor Web señala que los atacantes incluso proporcionaron instrucciones para instalar Visual Studio y clonar el repositorio.
  • La estación de trabajo de un ingeniero guarda las llaves. Las sesiones guardadas del navegador, los perfiles de VPN y los archivos de conexión a servidores son exactamente lo que recopila el infostealer, y a menudo abren el camino a sistemas de producción y entornos de clientes.

Qué revisar antes de compilar

Estas comprobaciones llevan unos minutos y sirven para cualquier proyecto recién clonado, en Windows, Linux o macOS. Ejecútelas en la carpeta del repositorio antes de abrir el proyecto en un IDE.

# 1. Build hooks and command execution in project files
grep -rniE 'PreBuildEvent|PostBuildEvent|<Exec |powershell|cmd\.exe' \
  --include='*.csproj' --include='*.vbproj' --include='*.vcxproj' \
  --include='*.props' --include='*.targets' .
# 2. Visual Studio user-option files that should not be in a repository
find . -name '*.suo'
# 3. Files with very long runs of spaces or tabs on one line
grep -rlE '[[:space:]]{200,}' .

En Windows sin un shell de tipo Unix, PowerShell hace el mismo trabajo para la comprobación de espacios en blanco:

Get-ChildItem -Recurse -File |
  Select-String -Pattern '\s{200,}' -List |
  Select-Object -ExpandProperty Path

Una coincidencia no demuestra que haya malware. Muchos proyectos honestos usan eventos de compilación, y los archivos minificados contienen líneas largas. Es un motivo para abrir el archivo y leer qué hace el comando antes de que se ejecute nada.

  1. Lea primero los archivos de compilación. Los archivos de proyecto, los Makefile, setup.py, los scripts de instalación de paquetes y los archivos de CI pueden ejecutar comandos. Léalos con el mismo cuidado que el código fuente.
  2. Elimine los archivos .suo y las carpetas .vs que lleguen con un repositorio. Son configuraciones por usuario y el proyecto no las necesita para compilarse.
  3. Active el ajuste de línea o la visualización de espacios en blanco en su editor cuando revise código desconocido.
  4. Revise el historial del repositorio. Una cuenta nueva, un único commit grande, pocas incidencias o colaboradores reales y una herramienta que duplica un proyecto conocido son motivos para extremar la precaución. Las estrellas y los forks por sí solos demuestran poco, porque pueden falsificarse.
  5. Compile el código desconocido en un entorno desechable. Use una máquina virtual o un contenedor desechable sin contraseñas guardadas, sin perfil de VPN y sin claves SSH, y elimínelo después.

Consejo: Mantenga una instantánea limpia de una máquina virtual para probar herramientas. Clone, compile y pruebe allí, y luego vuelva a la instantánea. Si una herramienta resulta útil, revísela a fondo antes de que se acerque a su estación de trabajo diaria.

Si ya compiló uno

Doctor Web ha publicado hashes de archivos, dominios, direcciones y ejemplos de nombres de repositorios en su lista de indicadores de compromiso. Entre las señales descritas en el informe están:

  • una carpeta C:\ProgramData\Windows.Microsoft.Photos o un programa llamado Microsoft.exe;
  • t.ps1 o L.ps1 en C:\Users\Public\Pictures;
  • exclusiones de Windows Defender para regasm.exe o dwm.exe que usted no añadió;
  • dominios de fabricantes de antivirus en el archivo hosts, o Restaurar sistema y las instantáneas desactivados;
  • software de seguridad que ha desaparecido o ha dejado de actualizarse.

Si encuentra alguna de estas señales, o sabe que compiló un proyecto de la lista, actúe como si todo lo que hay en ese equipo hubiera sido leído:

  1. Desconecte la estación de trabajo de la red e informe a su equipo de seguridad.
  2. Desde otro dispositivo limpio, cambie las contraseñas guardadas en el navegador y cierre las sesiones activas, para que las cookies de sesión robadas dejen de funcionar.
  3. Sustituya los perfiles de VPN y las contraseñas o claves almacenadas en clientes FTP y de terminal, y revise los servidores a los que podían acceder.
  4. Restablezca las sesiones de Discord y de otras aplicaciones de mensajería, y traslade los criptoactivos a un monedero creado en un dispositivo limpio.
  5. Reinstale el sistema operativo en lugar de limpiarlo. El cargador desactiva funciones de seguridad y recuperación e instala dos puertas traseras, por lo que es difícil confiar en un sistema simplemente limpiado.

Consejo: Revise los registros de servidores y VPN en busca de inicios de sesión de la cuenta afectada posteriores a la fecha en que se compiló el proyecto. Los archivos de conexión robados se usan desde los sistemas de los atacantes, no desde la estación de trabajo infectada.

Cómo puede ayudar LOGIQ

LOGIQ ayuda a las organizaciones a usar software open source de forma segura, desde Linux empresarial y OpenJDK hasta los pipelines de compilación y despliegue que los rodean. Si quiere una segunda opinión sobre cómo sus equipos incorporan código externo a su entorno, o necesita ayuda para separar los sistemas de compilación de las credenciales importantes, hable con nosotros.