martes, marzo 22, 2011

Descubrir usuarios con un cliente ligero

Enredando con otros temas, llegué a encontrarme con un portal hecho con la herramienta ThinWorx. Esta tecnología es una alternativa a la publicacion de aplicaciones en el desktop, al estilo de Citrix basada en el RDP de Windows. Podríamos decir que es algo así como la publicación de aplicaciones .ICA o por los Terminal Services de Microsoft, o tal vez algo similar también a un Forefront UAG 2010.

Estos servidores son fáciles de encontrar porque tienen una firma concreta en el banner del servidor web que hace que con usar Shodan estén al descubierto.


Figura 1: Servidores ThinWorx en Shodan

El caso es que en el panel de login esta tecnología pide los datos de usuario y contraseña, al menos en las versiones de ThinWorx 3.0 y ThinWorx 4.0 - la 5.0 no la he visto-, pero antes de que introduzcas la contraseña, si pones un usuario que no existe, te avisa de ello.


Figura 2: El usuario Chema no existe (aún)

Analizando las peticiones, es fácil ver como el usuario se envía directamemente a un método llamado validateusername.nsx, en el que se indica el nombre del usuario y el dominio contra el que autenticar.


Figura 3: Procedimiento para validar si el usuario existe o no

Si el usuario existe, devuleve un código 0 y permite hacer el envío de la contraseña. Si no es así, devuleve un código de mensaje de error, que puede ser del 1 al 5, con diferentes errores, que pueden ir desde el de usuario denegado, caida de servicio, expiración de la versión trial o número de licencias sobrepasadas.


Figura 4: Código de respuesta de que el usuario existe

Una vez que el usuario ha validado, se puede ver el resultado tras comprobar la contraseña. En este caso el mensaje es denegado. No obstante, esto no quiere decir que no se pueda continuar sacando información, debido al funcionamiento concreto de este producto y la manipulación de códigos de respuesta.


Figura 5: Procedimiento de autenticación de usario y password

La existencia de ese procedimiento, con la posibilidad de validar a los usuarios, permite a cualquiera probar las direcciones de correo electrónico, los datos extraidos de los metadatos, los usuarios por defecto, tales como administrator, guest, etcétera, descubrir software instalado en el servidor por los usuarios que pueda crear por defecto, etcétera.


Figura 6: Usuario existe pero el acceso ha sido denegado

Si tienes algo así a este procedimiento en alguna aplicación porque parecía una idea chula y moderna, mejor quítalo y confía en que los usuarios con acceso sean capaces de escribir correctamente su usuario sin ayudas extras.

Saludos Malignos!

1 comentario: