jueves, julio 19, 2012

Regístrate en Wordpress y evalúa su seguridad

Cuando hacemos una auditoría de seguridad a una web o a una aplicación móvil, una de las cosas que hacemos es mirar los paneles de login para evaluar si es vulnerable a ataques de fuerza bruta, a ataques al sistema de recuperación de contraseñas o si es posible saltarse el proceso de verificación, por supuesto.

En algunos entornos en los que el sistema es multi-usuario por naturaleza, el crearse un usuario es obligatorio, para ver qué opciones se pueden configurar por defecto, o si aparecen algunas aplicaciones más que se pueda atacar. En el caso de sistemas de blogs o herramientas comunitarias, los hombres que practica las técnicas de Black SEO aprovechan para crearse perfiles falsos y promocionar sus famosas pastillas de colores.

Figura 1: Un registro de usuario en Moodle como un anuncio de Viagra

En los sistemas WordPress, a día de hoy se pueden configurar múltiples sistemas de autenticación de usuarios, pudiendo usar Twitter, Facebook, OpenID, OAuth, etc... para crear una lista de usuarios autenticados de la plataforma, pero también te puedes registrar desde el panel login si está habilitada la opción.

Figura 2: Opción de registro en WordPress habilitada

Una vez dentro, cuando llegas al Dashboard del usuario, a veces solo puedes ver algo de información, como la versión de la plataforma, pero en otros puedes encontrarte con plugins que permiten visualizar muchas opciones del sistema, como por ejemplo conocer todas las estadísticas del sitio.

Figura 3: Dashboard de un usuario registrado de WordPress

Por supuesto ese usuario que te creas no suele ser muy privilegiado, pero en otros casos se llega a poder crear posts en los blogs, o si el sitio tiene un módulo de publicación de perfiles, crear páginas con enlaces masivos para generar tráfico, hundir el pagerank del blog hackeado, o preparar ataques a aquellos usuarios que visiten esos perfiles.

No hay registro de usuarios

Si el sitio no permite el registro de usuarios, entonces la única forma que tienes de entrar dentro es atacando la password de algún usuario que exista. Si los artículos del blog están firmados por el autor, entonces podrás sacar la lista de algún usuario e intentar romper la password con un diccionario, pero quizá la forma más sencilla sea otra.

Utilizando las llamadas ?author=id en los sitios con WordPress, podrás acceder al archivo de publicaciones de un determinado autor. Normalmente el author=1 es el primer usuario que se ha creado en un sitio, y te llevará a ver su nombre en la URL. Este, por supuesto suele ser un usuario jugoso.

Figura 4: Author=1 redirige a author/admin

Haciendo un escaneo de valores de id, por ejemplo usando WPScan con la opción enumerate, es posible encontrar muchos usuarios del sistema. Una vez que tengas una buena lista, piensa una contraseña a la que algún usuario no podría resistirte y prueba en la parte de login, a ver si hay suerte.

Otra alternativa es la de utilizar ?author_name=nombre, y probar un diccionario, evaluando las respuestas vas a saber si el usuario existe y publica, si el usuario existe pero no ha publicado, o si el usuario no existe.

Figura 5: El usuario admin existe y muestra su archivo
Figura 6: El usuario chema existe, pero como no puede publicar no hay archivo
Figura 7: El usuario aaa no existe

Por supuesto, si el sitio con WordPress está fortificado y los errores controlados esto no va a ser tan sencillo siempre, pero... así es nuestro trabajo, tocar muchas puertas para ver cuál está mal cerrada. Si te encuentras una URL con wp-content, busca wp-admin y haz estas pruebas. Si tienes un WordPress, asegúrate de que todos tus usuarios tengan buenas passwords y de evitar el registro de indeseables si no te interesa que vean nada.

Actualización: Para evitar la enumeración de usuarios en WordPress puedes utilizar la configuración del NiceName y para evitar que alguien consiga romper una contraseña nada mejor que configurar Latch en tu WordPress.

Saludos Malignos!

3 comentarios:

spyneo dijo...

Por estas cosas recomiendo instalar la herramienta o plugin NinjaWPass. Ademas de fortificar con otro plugin para bloquear la ip en tanto intentos de password erroneos. realizare una auditoria a mi wordpress para ver que rompemos. un saludo carlos

Anónimo dijo...

Se puede bloquear lo del ?author=id para que no muestre nada o redireccione a la home?

http://informaticadictos.wordpress.com dijo...

echarle un vistazo!
http://informaticadictos.wordpress.com

Entradas populares