Las tres URLs de payload
Durante el periodo de análisis, el honeypot registró intentos de descarga a exactamente tres destinos externos, los tres a IP directa y sin cifrar. El comportamiento difiere entre ellos:
http://151.242.[REDACTED].40/loader.sh
1 download_attempt + 1 download registrado. La URL apunta directamente a una IP, sin nombre de dominio. El uso de IP directa evita la resolución DNS — sin logs de DNS, sin detección por bloqueo de dominios maliciosos. El nombre loader.sh es típico de droppers de primera fase: un script shell que instala el payload real.
Contenido recibido: 684 bytes capturados en el entorno aislado. El payload se almacenó pero la ejecución fue bloqueada: 0 bytes ejecutados en el host real.
http://197.255.[REDACTED].88:1987/favico.ico
1 download_attempt + 1 download registrado. Se sirve en un puerto alto (1987) y con un nombre señuelo — favico.ico imita un favicon para pasar por tráfico inofensivo, pero su contenido es un script. HTTP sin TLS: el payload viaja sin cifrar.
El detalle revelador: 684 bytes exactos, el mismo tamaño que loader.sh. Es el mismo payload servido desde dos IPs distintas — redundancia de hosting: si una cae o se bloquea, la otra sigue sirviendo.
http://31.172.[REDACTED].45/mot
2 download_attempt, 0 download: dos intentos, 0 bytes recibidos. El servidor no respondió o fue bloqueado en origen. Un recordatorio de que la infraestructura efímera del atacante también falla — y que cada intento, exitoso o no, queda registrado.
La cadena de descarga: cómo llegó aquí
Los intentos de descarga no ocurrieron de forma aislada. Siguieron al patrón GPU hunter documentado: el atacante primero ejecuta el reconocimiento (lspci, nvidia-smi), y solo en sesiones donde la secuencia completó sin errores, el script pasa a la fase de descarga del payload.
El patrón curl ... | bash es deliberado: descarga y ejecuta en una sola instrucción, sin escribir el script al disco primero. Esto evita que el binario quede como artefacto forense en el sistema de archivos.
Los 259 intentos de ejecución
El honeypot registró 259 eventos de tipo execution_attempt y 547 eventos file_write en la ventana — el payload descargado se almacena en el entorno aislado antes de intentar ejecutarlo. Ninguna ejecución tuvo éxito.
| Evento | Cantidad | Resultado |
|---|---|---|
| file_write (payload almacenado en entorno aislado) | 547 | Éxito — fichero registrado |
| execution_attempt (intento de ejecutar el payload) | 259 | Ejecución bloqueada — sin código ejecutado |
| Bytes ejecutados en el host real | 0 | El honeypot nunca ejecuta código externo |
Qué revela la infraestructura del dropper
Las tres URLs apuntan a IPs directas, sin dominio y sin cifrar. Esa combinación apunta a una operación con infraestructura efímera. Algunas inferencias:
- Tres IPs directas, sin dominio: las tres URLs apuntan a una IP literal, no a un nombre. Evita la resolución DNS — sin logs de DNS, sin bloqueo por reputación de dominio. Son servidores de stage baratos y reemplazables si se bloquean.
- Redundancia de hosting:
loader.shyfavico.icosirvieron exactamente el mismo payload (684 bytes) desde dos IPs distintas. Es resiliencia deliberada: si una cae, la otra sigue distribuyendo. - HTTP sin cifrar las tres: el payload viaja en claro. Permite capturarlo en tránsito con un proxy o IDS con inspección de contenido — pero también indica que los operadores asumen una ventana de distribución corta antes de rotar.
- Nombres señuelo y puertos altos:
favico.icoimita un favicon y se sirve en el puerto 1987;loader.shymotusan nombres cortos y opacos. Camuflaje básico para pasar desapercibido en logs de proxy.
Relación con la campaña GPU hunter
Las sesiones con intentos de descarga son un subconjunto de las sesiones GPU hunter. El dropper solo se activa cuando el reconocimiento de hardware devuelve un resultado positivo — confirma que la campaña está optimizando el ratio de infecciones útiles sobre intentos totales.
En términos económicos: la descarga del payload tiene un coste (tráfico, exposición de la URL del dropper). El reconocimiento previo asegura que ese coste solo se incurre en máquinas con GPU — las únicas que justifican la instalación de XMRig.
Detección y contención
Las señales de detección para esta fase son más específicas que el GPU hunter:
- Bloquea el patrón
curl ... | bashywget ... | sh: ningún script legítimo de mantenimiento necesita descargar y ejecutar en una sola instrucción durante una sesión SSH. - Monitoriza conexiones salientes HTTPS a IPs directas:
hxxps://1[.]2[.]3[.]4/ruta— sin hostname, solo IP — es una firma de dropper. El firewall de salida debe bloquear HTTPS a IPs que no tengan entrada DNS reversa conocida. - Alerta sobre escrituras en
/tmpseguidas de ejecución: el patrón write-then-execute en directorios temporales es la firma forense del dropper.auditdcon reglas sobreexecveen rutas/tmp/*lo captura. - Añade los IOCs a tus listas de bloqueo: las tres IPs de esta campaña (
151.242.[REDACTED].40,197.255.[REDACTED].88,31.172.[REDACTED].45) son artefactos reales. Introdúcelas en tu proxy de filtrado y en tus reglas de salida para neutralizar la descarga antes de que ocurra.
Datos recopilados con fines de investigación en ciberseguridad. Toda la información procede de actividad no solicitada registrada en infraestructura propia.
honeypot CipherSentry · events: download, download_attempt, execution_attempt, file_write · 2026-06-26 a 2026-06-28