
Lo siento, IOCs de ransomware (.sorry), reglas YARA y análisis forense - campaña CVE-2026-41940 de cPanel
Paquete público de IOCs, reglas YARA, scripts forenses y metodología de análisis para la
familia del ransomware "Sorry" (extensión .sorry) que surgió a finales de abril de 2026,
propagado mediante la omisión de autenticación cPanel/WHM CVE-2026-41940.
⚠️ Los archivos cifrados por este ransomware NO se pueden descifrar sin la clave privada RSA-2048 del atacante. No pague. Parchee cPanel, rote todas las credenciales y conserve los archivos cifrados en caso de que se publique un descifrador gratuito más adelante.
📝 Informe técnico completo (turco): enlace por añadir cuando se publique
| Ruta | Propósito |
|---|---|
docs/IOC.md | Todos los indicadores de compromiso (archivo cifrado, red, host) |
docs/analysis_methodology.md | Cómo se realizó el análisis — totalmente reproducible |
yara/sorry_ransomware.yar | Reglas YARA para archivos cifrados y notas de rescate |
iocs/hashes.txt | Hashes de toda la campaña y de prefijo estructural |
iocs/network.txt | ID de Tox, información del CVE, IOCs de red |
iocs/file_signatures.txt | Firmas estructurales de archivos cifrados |
scripts/analyze.py | Análisis de entropía / estructura por muestra |
scripts/header_parse.py | Analiza la cabecera fija de 2057 bytes |
scripts/keystream_test.py | Prueba de reutilización de flujo de claves ChaCha20 / texto plano conocido |
scripts/server_collection.sh | Recopilador de artefactos forenses de solo lectura para hosts cPanel comprometidos |
.sorry añadida al nombre de archivo originalREADME.md en cada directorio cifrado┌─────────────────────────────────────────────────────────┐
│ Offset 0x000 - 0x808 (2057 bytes) PREFIJO FIJO │
│ • Magic: 99 00 00 08 00 21 CA 68 0C BD 7F 19 ... │
│ • Clave maestra por víctima envuelta con RSA-2048 + metadatos │
│ • Marcador final @ 0x800: F4 0B 00 B4 27 00 00 01 00 │
├─────────────────────────────────────────────────────────┤
│ Offset 0x809 - (EOF-4) TEXTO CIFRADO │
│ • Datos originales cifrados con flujo ChaCha20 │
│ • La longitud NO está alineada a 16 (mod16 ∈ {2,4,8,13}) │
│ • Entropía de Shannon ~7.95 bits/byte │
├─────────────────────────────────────────────────────────┤
│ Últimos 4 bytes: 00 00 00 00 PIE DE PÁGINA ESTÁTICO │
└─────────────────────────────────────────────────────────┘
# Escanear un directorio con la regla YARA
yara -r yara/sorry_ransomware.yar /ruta/a/escanear
# Ejecutar análisis en muestras locales
python3 scripts/analyze.py /ruta/a/muestra.sorry
# Recopilar artefactos forenses de un host cPanel comprometido (solo lectura)
bash scripts/server_collection.sh
No. Probamos todos los fallos de implementación comunes:
| Prueba | Resultado |
|---|---|
| XOR de texto cifrado por pares (reutilización de flujo de claves/nonce) | ❌ sin reutilización |
| Recuperación de flujo de claves con texto plano conocido → descifrado entre archivos | ❌ falló |
| Clave de texto plano incrustada / marcador de RNG débil en la cabecera | ❌ no se encontró |
| Oráculo de relleno |
El cifrado está implementado correctamente. Solo la clave privada RSA-2048 del operador puede descifrar estos archivos. Vigile NoMoreRansom e ID-Ransomware por si las autoridades incautan la clave del operador.
Este repositorio contiene:
No contiene:
Se aceptan pull requests — consulte CONTRIBUTING.md.
| ❌ N/A (cifrado de flujo) |