XML-RPC Attack Detection
ID de alerta: xmlrpc_attack
MITRE ATT&CK: T1110 – Brute Force · T1498 – Network Denial of Service
Severidad / Criticidad
Sección titulada «Severidad / Criticidad»| Nivel | Condición |
|---|---|
| Media | 5–6 requests en 5 minutos |
| Alta | 7–9 requests en 5 minutos |
| Crítica | 10 o más requests en 5 minutos |
¿Por qué se considera maliciosa?
Sección titulada «¿Por qué se considera maliciosa?»- Amplificación de ataques:
system.multicallpermite múltiples intentos de login en una sola request. - Fuerza bruta eficiente: elude el rate limiting convencional.
- Vector DDoS:
pingback.pinginunda servidores objetivo. - Enumeración de usuarios: mediante
wp.getUsersBlogs. - Protocolo obsoleto: XML-RPC es innecesario en despliegues modernos de WordPress.
¿Cuándo salta la alerta?
Sección titulada «¿Cuándo salta la alerta?»- Umbral: 5 requests a
xmlrpc.phpen 5 minutos desde una IP. - Seguimiento: basado en IP con ventana deslizante.
- Métodos monitorizados:
system.multicallwp.getUsersBlogspingback.ping
- Reset: la ventana de seguimiento se resetea tras disparar la alerta.
Indicadores Técnicos (IOCs)
Sección titulada «Indicadores Técnicos (IOCs)»| Tipo | Patrón / Ejemplo | Descripción |
|---|---|---|
log_pattern | POST /xmlrpc.php | Request al endpoint XML-RPC |
network | system.multicall | Ataque de fuerza bruta amplificado |
network | wp.getUsersBlogs | Enumeración de usuarios válidos |
network | pingback.ping | Ataques DDoS mediante pingback |
Falsos positivos comunes
Sección titulada «Falsos positivos comunes»- Conexiones legítimas del plugin Jetpack.
- Aplicaciones móviles oficiales de WordPress.
- Plugins que usan publicación remota.
- Servicios legítimos de trackback/pingback.
Pasos de investigación
Sección titulada «Pasos de investigación»-
Listar requests:
Ventana de terminal grep xmlrpc.php access.log | grep POST -
Analizar payloads:
Ventana de terminal tcpdump -A -s 0 'tcp port 80 and host [IP]' -
Identificar propósito:
system.multicall→ ataque de fuerza bruta.pingback.ping→ DDoS.
-
Evaluar impacto: respuestas 200 (exitosas) frente a 403/404 (bloqueadas).
Mitigaciones recomendadas
Sección titulada «Mitigaciones recomendadas»=== “Inmediatas”
!!! danger "" - Bloquear IP atacante en firewall o WAF. - Aplicar rate limiting específico para `xmlrpc.php`. - Deshabilitar XML-RPC completamente si no se usa.=== “Preventivas”
!!! tip "" En `.htaccess`:
```apache <Files xmlrpc.php> Require all denied </Files> ```
En `functions.php`:
```php add_filter('xmlrpc_enabled', '__return_false'); ```
- Instalar el plugin **Disable XML-RPC**. - Implementar reglas WAF específicas para XML-RPC. - Configurar **jail de Fail2ban** para este endpoint.Referencias
Sección titulada «Referencias»- WordPress XML-RPC Documentation
- Sucuri – XML-RPC Attack Analysis