Para prevenir un ataque por fuerza bruta a un WordPress, es bueno limitar los intentos fallidos de login, y luego de analizar y probar varios plugins, nos quedamos con Login LockDown por su simplicidad y eficacia. Login LockDown es un plugin que registra la dirección IP y la fecha/hora de cada intento de conexión fallido, y con un cierto número de intentos inválidos determinado período de tiempo bloquea dicha IP.

Todo esto surge luego de analizar los logs de un WordPress comprometido, el cual recibe un ataque que en primera instancia deduce el nombre de los usuarios registrados, y luego ametralla el login del WordPress hasta dar con la password de acceso.

200.10.202.8 - - [08/Oct/2012:05:21:55 -0300] "GET //wp-login.php HTTP/1.1" 200 4013 "-" "Mozilla/5.0 (X11; U; Linux i686; pt-BR; rv:1.9.0.15) Gecko/2009102815 Ubuntu/9.04 (jaunty) Firefox/3.0.15"
200.10.202.8 - - [08/Oct/2012:05:21:56 -0300] "GET /?author=1 HTTP/1.1" 301 443 "-" "Mozilla/5.0 (X11; U; Linux i686; pt-BR; rv:1.9.0.15) Gecko/2009102815 Ubuntu/9.04 (jaunty) Firefox/3.0.15"
200.10.202.8 - - [08/Oct/2012:05:21:57 -0300] "GET /author/UsuarioXXX HTTP/1.1" 200 83054 "-" "Mozilla/5.0 (X11; U; Linux i686; pt-BR; rv:1.9.0.15) Gecko/2009102815 Ubuntu/9.04 (jaunty) Firefox/3.0.15"
200.10.202.8 - - [08/Oct/2012:05:22:01 -0300] "GET /?author=2 HTTP/1.1" 200 38373 "-" "Mozilla/5.0 (X11; U; Linux i686; pt-BR; rv:1.9.0.15) Gecko/2009102815 Ubuntu/9.04 (jaunty) Firefox/3.0.15"
200.10.202.8 - - [08/Oct/2012:05:22:05 -0300] "GET /?author=3 HTTP/1.1" 301 446 "-" "Mozilla/5.0 (X11; U; Linux i686; pt-BR; rv:1.9.0.15) Gecko/2009102815 Ubuntu/9.04 (jaunty) Firefox/3.0.15"
200.10.202.8 - - [08/Oct/2012:05:22:06 -0300] "GET /author/UsuarioYYY HTTP/1.1" 200 90839 "-" "Mozilla/5.0 (X11; U; Linux i686; pt-BR; rv:1.9.0.15) Gecko/2009102815 Ubuntu/9.04 (jaunty) Firefox/3.0.15"
200.10.202.8 - - [08/Oct/2012:05:22:10 -0300] "GET /?author=4 HTTP/1.1" 200 38487 "-" "Mozilla/5.0 (X11; U; Linux i686; pt-BR; rv:1.9.0.15) Gecko/2009102815 Ubuntu/9.04 (jaunty) Firefox/3.0.15"
200.10.202.8 - - [08/Oct/2012:05:22:14 -0300] "GET /?author=5 HTTP/1.1" 200 38448 "-" "Mozilla/5.0 (X11; U; Linux i686; pt-BR; rv:1.9.0.15) Gecko/2009102815 Ubuntu/9.04 (jaunty) Firefox/3.0.15"
200.10.202.8 - - [08/Oct/2012:05:22:18 -0300] "POST //wp-login.php HTTP/1.1" 200 4859 "-" "Mozilla/5.0 (X11; U; Linux i686; pt-BR; rv:1.9.0.15) Gecko/2009102815 Ubuntu/9.04 (jaunty) Firefox/3.0.15"
200.10.202.8 - - [08/Oct/2012:05:22:19 -0300] "POST //wp-login.php HTTP/1.1" 200 4859 "-" "Mozilla/5.0 (X11; U; Linux i686; pt-BR; rv:1.9.0.15) Gecko/2009102815 Ubuntu/9.04 (jaunty) Firefox/3.0.15"
200.10.202.8 - - [08/Oct/2012:05:22:19 -0300] "POST //wp-login.php HTTP/1.1" 200 4859 "-" "Mozilla/5.0 (X11; U; Linux i686; pt-BR; rv:1.9.0.15) Gecko/2009102815 Ubuntu/9.04 (jaunty) Firefox/3.0.15"
20
...
...
...
200.10.202.8 - - [08/Oct/2012:05:53:08 -0300] "POST //wp-login.php HTTP/1.1" 200 4919 "-" "Mozilla/5.0 (X11; U; Linux i686; pt-BR; rv:1.9.0.15) Gecko/2009102815 Ubuntu/9.04 (jaunty) Firefox/3.0.15"
200.10.202.8 - - [08/Oct/2012:05:53:09 -0300] "POST //wp-login.php HTTP/1.1" 200 4919 "-" "Mozilla/5.0 (X11; U; Linux i686; pt-BR; rv:1.9.0.15) Gecko/2009102815 Ubuntu/9.04 (jaunty) Firefox/3.0.15"
200.10.202.8 - - [08/Oct/2012:05:53:10 -0300] "POST //wp-login.php HTTP/1.1" 302 921 "-" "Mozilla/5.0 (X11; U; Linux i686; pt-BR; rv:1.9.0.15) Gecko/2009102815 Ubuntu/9.04 (jaunty) Firefox/3.0.15"
200.10.202.8 - - [08/Oct/2012:05:53:11 -0300] "GET /wp-admin/theme-install.php HTTP/1.1" 200 34120 "-" "Mozilla/5.0 (X11; U; Linux i686; pt-BR; rv:1.9.0.15) Gecko/2009102815 Ubuntu/9.04 (jaunty) Firefox/3.0.15"

Unos días después, y desde otra IP, inserta una línea con código malicioso en el index.php del tema actual.

5.254.137.111 - - [12/Nov/2012:19:06:52 -0300] "GET //wp-admin/theme-editor.php HTTP/1.1" 200 88364 "-" "Mozilla/5.0 (X11; U; Linux i686; pt-BR; rv:1.9.0.15) Gecko/2009102815 Ubuntu/9.04 (jaunty) Firefox/3.0.15"
5.254.137.111 - - [12/Nov/2012:19:06:56 -0300] "GET //wp-admin/theme-editor.php?file=index.php&theme=twentyeleven HTTP/1.1" 200 33560 "-" "Mozilla/5.0 (X11; U; Linux i686; pt-BR; rv:1.9.0.15) Gecko/2009102815 Ubuntu/9.04 (jaunty) Firefox/3.0.15"
5.254.137.111 - - [12/Nov/2012:19:06:59 -0300] "POST //wp-admin/theme-editor.php HTTP/1.1" 302 459 "-" "Mozilla/5.0 (X11; U; Linux i686; pt-BR; rv:1.9.0.15) Gecko/2009102815 Ubuntu/9.04 (jaunty) Firefox/3.0.15"

En la primer línea se puede ver el código insertado.

Queda bookmarkeado este plugin para agregar a las próximas instalaciones de WordPress.