
Honeypot para CVE-2025-53770 alias ToolShell
# ToolShell-Honeypot (SharePoint Zero-Day)
Un honeypot basado en Docker enfocado en detectar y registrar intentos de explotación contra vulnerabilidades de día cero de Microsoft SharePoint.
**Este honeypot está diseñado para detección temprana e inteligencia de amenazas, no para simular un entorno completo de SharePoint ni actividades posteriores a la explotación.**
## Características principales
- **Detección avanzada basada en etiquetas** (categorías IOC, Pattern, Heuristic)
- **Análisis de exploits de R7 Metasploit** con descompresión completa de payloads
- **Tiempos de respuesta inferiores a 100 ms** gracias a la arquitectura asíncrona Sensor+Analyzer
- Detección basada en YARA sobre payloads **crudos y descomprimidos**
- Registra todas las solicitudes HTTP con análisis mejorado y emulación de cabeceras IIS
- **Panel de inteligencia** con análisis en tiempo real y filtrado por etiquetas
- HTTPS con certificado autofirmado
- Arquitectura modular de 3 servicios en Docker
## Cobertura y limitaciones
**Lo que este honeypot hace:**
- Detecta y registra intentos de explotación dirigidos a vulnerabilidades conocidas de SharePoint ([CVE-2025-49704](https://www.cve.org/CVERecord?id=CVE-2025-49704), [CVE-2025-49706](https://www.cve.org/CVERecord?id=CVE-2025-49706), [CVE-2025-53770](https://www.cve.org/CVERecord?id=CVE-2025-53770), [CVE-2025-53771](https://msrc.microsoft.com/update-guide/vulnerability/CVE-2025-53771))
- Captura payloads, incluyendo webshells, comandos codificados y contenido ofuscado
- Proporciona detección basada en IOC y YARA para inteligencia de amenazas e investigación
**Lo que este honeypot NO hace:**
- **No** simula autenticación completa de SharePoint, gestión de sesiones ni contenido dinámico
- **No** permite interacción posterior a la explotación (ej., ejecución de comandos en webshell, subida/descarga de archivos, movimiento lateral)
- Los atacantes pueden darse cuenta rápidamente de que el sistema es un honeypot tras la respuesta inicial
## Arquitectura
```
Docker Compose
├── honeypot (Sensor - captura HTTP, puerto 443, respuesta <100 ms)
├── analyzer (Motor de análisis profundo, procesamiento basado en etiquetas)
└── dashboard (Panel de inteligencia, puerto 8501)
```
### Flujo de datos
```
Solicitud HTTP → Sensor → Cola de eventos → Analyzer → Dashboard
↓ ↓ ↓
Respuesta rápida Cuerpo SHA256 Análisis profundo
Asignación de etiquetas Almacenamiento crudo YARA + R7
```
**Mejoras clave:**
- Procesamiento asíncrono (las respuestas nunca se bloquean por el análisis)
- Tubería basada en etiquetas (clasificación IOC/Pattern/Heuristic)
- Análisis completo de exploits R7 (descompresión Gzip→Base64→.NET)
- Deduplicación de cuerpo basada en SHA256
## Tubería de detección
```mermaid
flowchart TD
A[Solicitud HTTP] --> B[Sensor: Asignación de etiquetas]
B --> C{IOC basados en ruta}
B --> D{Detección de patrones}
B --> E{Análisis heurístico}
C --> F[Etiquetas IOC]
D --> G[Etiquetas Pattern]
E --> H[Etiquetas Heuristic]
F --> I[Evento JSON + Almacenamiento de cuerpo]
G --> I
H --> I
I --> J[Cola de eventos]
J --> K[Analyzer: Análisis profundo]
K --> L{Tubería basada en etiquetas}
L -->|R7_PAYLOAD| M[Análisis Gzip→Base64→.NET]
L -->|LARGE_B64| N[Decodificación genérica Base64]
L -->|Siempre| O[Escaneo YARA]
M --> P[Evento JSON mejorado]
N --> P
O --> P
P --> Q[Panel de inteligencia]
```
### Categorías de etiquetas
- **Etiquetas IOC**: Indicadores de alta confianza (IOC:ENDPOINT_TOOLPANE, IOC:CVE_2025_53771)
- **Etiquetas Pattern**: Firmas de exploits conocidos (PATTERN:R7_PAYLOAD, PATTERN:YSOSERIAL)
- **Etiquetas Heuristic**: Detección de anomalías (HEURISTIC:LARGE_B64, HEURISTIC:UNUSUAL_METHOD)
## Referencia de etiquetas disponibles
### 🔴 Etiquetas IOC (Indicadores de alto riesgo)
*Indicadores de compromiso de alta confianza con prioridad de alerta inmediata*
**IOC basados en endpoint:**
- `IOC:ENDPOINT_TOOLPANE` - Acceso a /_layouts/15|16/ToolPane.aspx
- `IOC:ENDPOINT_SIGNOUT` - Acceso a /_layouts/SignOut.aspx
- `IOC:ENDPOINT_FAVICON` - Acceso a /favicon.ico
- `IOC:ENDPOINT_ACLEDITOR` - Acceso a /_controltemplates/15|16/AclEditor.ascx
- `IOC:ENDPOINT_LAYOUTS_ASPX` - Acceso genérico a endpoint /_layouts/*.aspx
- `IOC:WEBSHELL_PROBE` - Detección de sonda de webshell
**IOC específicos de CVE:**
- `IOC:CVE_2025_53771` - Omisión de autenticación mediante barra inclinada final (CVE-2025-53771)
**IOC basados en parámetros:**
- `IOC:PARAM_DISPLAYMODE_EDIT` - Parámetro DisplayMode=Edit detectado
- `IOC:PARAM_TOOLPANE_REFERENCE` - Valor de parámetro que hace referencia a ToolPane
**IOC basados en cabeceras:**
- `IOC:REFERER_SIGNOUT` - Cabecera Referer contiene SignOut.aspx
- `IOC:SUSPICIOUS_USER_AGENT` - Patrón de User-Agent sospechoso (ej., Firefox/120.0)
### 🟠 Etiquetas Pattern (Exploits conocidos)
*Firmas de frameworks de exploits conocidos y patrones de payload*
**Firmas de exploits:**
- `PATTERN:R7_PAYLOAD` - Exploit R7 de Metasploit (MSOTlPn_DWP + CompressedDataTable)
- `PATTERN:VIEWSTATE_EXPLOIT` - Intento de explotación de __VIEWSTATE
- `PATTERN:YSOSERIAL` - Herramienta de deserialización Java (palabra clave ysoserial)
**Patrones de ejecución de código:**
- `PATTERN:POWERSHELL` - Comandos/scripts de PowerShell detectados
- `PATTERN:ASPX_WEBSHELL` - Intentos de subida de webshell ASPX
### 🟡 Etiquetas Heuristic (Detección de anomalías)
*Detección de anomalías de comportamiento para amenazas desconocidas*
**Anomalías de payload:**
- `HEURISTIC:LARGE_PAYLOAD` - Tamaño de payload >1KB (1024 bytes)
- `HEURISTIC:LARGE_B64` - Contenido Base64 >100 caracteres
- `HEURISTIC:MULTIPLE_B64` - Múltiples cadenas Base64 (>3)
**Anomalías de parámetros:**
- `HEURISTIC:MANY_PARAMETERS` - Parámetros de URL excesivos (>10)
- `HEURISTIC:MISSING_CONTENT_TYPE` - Solicitud POST sin Content-Type
- `HEURISTIC:MALFORMED_MULTIPART` - Datos multipart con formato incorrecto
**Anomalías de solicitud:**
- `HEURISTIC:UNUSUAL_METHOD` - Métodos HTTP inusuales (PUT/DELETE/PATCH)
- `HEURISTIC:LONG_PATH` - Ruta de URL extremadamente larga (>200 caracteres)
- `HEURISTIC:UNKNOWN_ENDPOINT` - Endpoint no monitoreado (ruta genérica)
## Endpoints y patrones monitoreados
- `/` (ruta genérica)
- `/favicon.ico`
- `/_layouts/SignOut.aspx`
- `/_layouts/15/ToolPane.aspx` y `/_layouts/16/ToolPane.aspx` (POST/GET, parámetros DisplayMode=Edit, a=/ToolPane.aspx)
- `/_layouts/15/spinstall0.aspx`, `/_layouts/16/spinstall0.aspx`, `spinstall.aspx`, `spinstall1.aspx`, `info3.aspx`, `xxx.aspx`
## Indicadores de compromiso (IOC)
- Endpoint de exploit ToolPane (con parámetros sospechosos)
- Parámetro DisplayMode=Edit
- Parámetro a=/ToolPane.aspx
- Referer SignOut.aspx
- User-Agent sospechoso (ej., Firefox/120.0)
- Endpoints de sonda de webshell
- Payload ViewState en cuerpo POST
## Reglas YARA y detección avanzada
- Detecta exploits conocidos, webshells, payloads PowerShell codificados/ofuscados y binarios sospechosos
- Las reglas se aplican tanto a payloads crudos como decodificados (base64, UTF-16LE)
- Fácilmente extensible para nuevas amenazas
- **Reglas personalizadas**: Puede agregar sus propias reglas YARA al directorio `yara_rules/`
- **Ejemplos de reglas**: Para ejemplos adicionales de reglas y contribuciones de la comunidad, consulte [awesome-yara](https://github.com/InQuest/awesome-yara)
## Datos recopilados y mostrados
- **Metadatos de solicitud**: método, ruta, IP, cabeceras, argumentos de consulta, sistema de etiquetas mejorado (IOC/Pattern/Heuristic)
- **Cuerpos POST**: archivos .bin con nombre SHA256 y deduplicación (reemplaza archivos ZIP diarios)
- **Resultados de análisis profundo**: descompresión de payload R7, coincidencias YARA en contenido crudo + decodificado
- **Registros mejorados**: JSON basado en eventos con captura del sensor y resultados del analizador
- **Panel**: Filtrado en tiempo real por etiquetas, monitoreo de rendimiento, alertas de exploits R7, exportación de inteligencia
## Inicio rápido
1. **Genere un certificado autofirmado**:
```bash
openssl req -x509 -nodes -days 365 \
-newkey rsa:2048 -keyout key.pem -out cert.pem \
-subj "/CN=sharepoint.local"
cp cert.pem key.pem ToolShell-Honeypot/
```
2. **Construya y ejecute todos los servicios**:
```bash
cd ToolShell-Honeypot
sudo docker-compose up --build
```
O use el script de gestión interactiva:
```bash
./manage.sh
```
Elija la opción 6 para iniciar todos los servicios, o inicie componentes individualmente.
3. **Pruebe el honeypot**:
```bash
# Conjunto completo de pruebas que cubre todas las características
./test_comprehensive.sh
```
4. **Acceda al panel**:
Abra `http://localhost:8501` para ver el panel de inteligencia con:
- Filtrado basado en etiquetas (categorías IOC, Pattern, Heuristic)
- Alertas de detección de exploits R7 con estado de descompresión del payload
- Métricas de rendimiento en tiempo real (tiempos de respuesta, velocidad de análisis)
- Capacidades de exportación (JSON, CSV, payloads crudos)
Los scripts de prueba simulan escenarios de ataque del mundo real. Revise el panel para ver los resultados, detección de IOC y análisis de datos.
## Gestión de servicios (manage.sh)
Se proporciona un script de gestión para un control fácil del honeypot y los servicios del panel.
**Uso:**
```bash
cd ToolShell-Honeypot
chmod +x manage.sh # (solo la primera vez)
./manage.sh
```
**Opciones del menú:**
- 0: Construir todas las imágenes Docker
- 1: Iniciar solo el honeypot (sensor)
- 2: Iniciar solo el analizador
- 3: Iniciar solo el panel
- 4: Iniciar honeypot + analizador
- 5: Iniciar analizador + panel
- 6: Iniciar todos los servicios (honeypot + analizador + panel)
- 7: Mostrar estado
- 8-11: Detener servicios individuales
- q: Salir
## Notas
- Los datos se guardan en ./data con la estructura: /raw_bodies, /events/{new,processed,error}
- Deduplicación de cuerpo basada en SHA256 (reemplaza archivos ZIP diarios)
- El panel, el honeypot (sensor) y el analizador están separados por seguridad y rendimiento
- access.log es compatible con SIEM e incluye información de etiquetas mejorada
- Tiempos de respuesta inferiores a 100 ms gracias al procesamiento asíncrono
## Inteligencia de amenazas y lógica de detección
Los patrones IOC, las reglas YARA y la lógica de detección se basan en campañas de ataque reales e inteligencia de amenazas pública para vulnerabilidades de ToolShell/SharePoint, incluyendo:
- Intentos de explotación en endpoints ToolPane.aspx con parámetros específicos
- Uso de cabeceras Referer y User-Agent maliciosas conocidas
- Sondeo de endpoints de webshell
- Detección de payloads ViewState en cuerpos POST
- Técnicas avanzadas de ofuscación de PowerShell y entrega de webshell
**CVE relevantes:**
- [CVE-2025-49704](https://www.cve.org/CVERecord?id=CVE-2025-49704): Control inadecuado de generación de código (inyección de código) en SharePoint
- [CVE-2025-49706](https://www.cve.org/CVERecord?id=CVE-2025-49706): Autenticación inadecuada en SharePoint
- [CVE-2025-53770](https://www.cve.org/CVERecord?id=CVE-2025-53770): Deserialización de datos no confiables en SharePoint
- [CVE-2025-53771](https://msrc.microsoft.com/update-guide/vulnerability/CVE-2025-53771): Recorrido de ruta en SharePoint
## TODO
- Alertas mediante webhook, análisis avanzado, integración con SIEM, autenticación en el panel, ampliar las capacidades del honeypot para simular autenticación, gestión de sesiones, contenido dinámico, interacción limitada posterior a la explotación (ej., ejecución de comandos en webshell, subida/descarga de archivos) para un mayor compromiso y análisis del atacante y mucho más...