NullReceiver Avanza el Ocultamiento de Éter con Transferencias Cripto en Blanco
Detection stack
- AIDR
- Alert
- ETL
- Query
Resumen
Los actores de amenazas vinculados a la RPDC están utilizando un nuevo método de resolución de C2 basado en blockchain conocido como NullReceiver. La técnica incrusta direcciones IP de C2 dentro de los bytes de dirección de destinatario de transferencias de Ethereum de valor cero, dificultando la detección más que el EtherHiding tradicional. El malware asociado se distribuye a través de paquetes npm troyanizados.
Investigación
Los investigadores investigaron la actividad a través de análisis estático de tarballs npm publicados y examen de solo lectura de transacciones controladas por atacantes en la blockchain pública. El análisis identificó dos paquetes npm maliciosos, bianira-ui and fluid-type-ui, que utilizan NullReceiver para resolver la infraestructura de comando y control.
Mitigación
Los defensores deben monitorear la actividad en blockchain asociada con billeteras Ethereum controladas por atacantes conocidos e inspeccionar las direcciones de destinatario utilizadas en transferencias de valor cero. Las organizaciones también deben fortalecer los controles de la cadena de suministro de software para las dependencias de npm para evitar la instalación de paquetes troyanizados.
Respuesta
Si se detecta actividad de NullReceiver, los entornos afectados de Node.js deben ser aislados inmediatamente. Los investigadores deben identificar la fuente del paquete npm malicioso y bloquear las direcciones IP de C2 asociadas y las direcciones de billeteras Ethereum tanto a nivel de red como de aplicación.
Flujo de Ataque
Detecciones
Posible intento de abuso de Publicnode Ethereum como canal C2 (vía dns_query)
Proof of Value
IOCs (SourceIP) para detectar: Las transferencias en blanco de cripto de NullReceiver resuelven los desafíos de EtherHiding
Proof of Value
IOCs (DestinationIP) para detectar: Las transferencias en blanco de cripto de NullReceiver resuelven los desafíos de EtherHiding
Proof of Value
Establecimiento de conexión HTTP/HTTPS de NullReceiver [Conexión de red de Windows]
Proof of Value
Detección de la técnica de comando y control basada en blockchain de NullReceiver [Creación de procesos en Linux]
Proof of Value
Ejecución de simulación
Prerrequisito: El chequeo pre-vuelo de Telemetría y Línea Base debe haber pasado.
Justificación: Esta sección detalla la ejecución precisa de la técnica del adversario (TTP) diseñada para activar la regla de detección. Los comandos y la narrativa DEBEN reflejar directamente los TTP identificados y apuntar a generar la telemetría exacta esperada por la lógica de detección. Ejemplos abstractos o no relacionados conducirán a un diagnóstico erróneo.
-
Narrativa del ataque y comandos: El adversario busca establecer un canal de C2 furtivo que evite la lista negra tradicional basada en IP. Para hacerlo, despliegan un paquete npm malicioso que utiliza la técnica «NullReceiver». El script inicializa variables globales utilizando una sintaxis ofuscada específica (
global.i = "A10-npm3!", global.r = require) y contacta inmediatamente a lahttps://1rpc.io/ethendpoint. Esto permite al malware leer el campo «recipient» de una transacción específica de Ethereum, que contiene la dirección IP codificada del servidor C2 real. Este método utiliza infraestructura legítima de blockchain para ocultar intenciones maliciosas. -
Script de prueba de regresión:
#!/bin/bash # Script de simulación para la detección de la técnica NullReceiver C2 # Crear un script de nodo malicioso que imite los patrones específicos en la regla de detección cat << 'EOF' > malicious_npm_payload.js // Imitando los patrones exactos definidos en la regla Sigma global.i = "A10-npm3!"; global.r = require; const https = require('https'); // El malware contacta al endpoint RPC específico para obtener instrucciones const url = 'https://1rpc.io/eth'; console.log("[!] Iniciando búsqueda C2 basada en blockchain..."); https.get(url, (res) => { console.log("[!] Conexión exitosa. Analizando el estado de la blockchain..."); res.on('data', (d) => { // En un ataque real, esto analizaría el campo 'recipient' para la IP de C2 console.log("[!] Instrucción recibida a través de la técnica NullReceiver."); }); }).on('error', (e) => { console.error(`[X] Fallo de conexión: ${e.message}`); }); EOF # Ejecutar el script malicioso usando node echo "[*] Ejecutando simulación maliciosa..." node malicious_npm_payload.js # Limpiar el archivo script rm malicious_npm_payload.js -
Comandos de limpieza:
# Eliminar cualquier artefacto creado durante la simulación rm -f malicious_npm_payload.js