Una fuerza bruta también es un problema de capacidad: miles de intentos contra wp-login.php, xmlrpc.php o una ruta de login propia consumen workers PHP y consultas aunque ninguna contraseña sea correcta.
Mide el ataque antes de bloquear IPs una por una
Cuenta peticiones por ruta, red de origen y franja temporal. Un ataque distribuido puede cambiar de IP constantemente, por lo que una lista manual de bloqueos suele llegar tarde.
Separa login normal, XML-RPC y tráfico legítimo
- Volumen y tiempo de respuesta de
wp-login.php. - Peticiones a
xmlrpc.phpy métodos utilizados. - Saturación de PHP-FPM y carga de base de datos.
- Usuarios objetivo y cualquier autenticación que haya terminado con éxito.
¿Distribución de contraseñas o amplificación mediante XML-RPC?
Muchas IPs probando credenciales apuntan a credential stuffing. En cambio, system.multicall puede concentrar muchos intentos dentro de menos peticiones XML-RPC. El control debe aplicarse donde se genera el coste.
Contén en la capa más barata posible
- Aplica rate limiting o challenge en CDN, proxy o servidor web.
- Limita o desactiva métodos XML-RPC que la web no necesite.
- Exige MFA y contraseñas robustas en cuentas privilegiadas.
- Revisa logins correctos, invalida sesiones y rota credenciales expuestas.
Comprueba si el ataque llegó a comprometer una cuenta
Si XML-RPC concentra la carga, continúa con el análisis de métodos XML-RPC abusados. Si existe un login correcto o cambios de archivos durante el incidente, añade una verificación de integridad del core.
No confíes únicamente en ocultar la URL de login
Los bots pueden descubrir rutas y las integraciones legítimas pueden romperse. Reducir el riesgo de credenciales exige controles de autenticación y rate limiting.
Verificación después de contener
CPU y workers deben mantenerse estables bajo tráfico hostil, los administradores legítimos deben poder entrar y no debe quedar ninguna sesión, cambio de rol o acceso no autorizado.