Hace tiempo, realizado una auditoria web se encontraron
pistas sobre la política manejada para usuarios y contraseñas.
Más concretamente:
1.- El usuario debía de tener hasta 8 caracteres.
Definición del campo Usuario.
2.- La contraseña debía de tener hasta 8
caracteres.
Definición del campo Password.
Revisando aún más en profundidad, se encontró código para comprobar la
validación de los anteriores campos. Más concretamente:
1.- El usuario debe contener entre 3 y 8 caracteres, que además debe manejar
un juego de caracteres que admite números, letras mayúsculas y el carácter
"_"
Llamada a una función que debe chequear la longitud del
usuario introducido
Llamada a una función que debe chequear los caracteres del
usuario introducido
.
Diccionario utilizado para los caracteres del usuario
introducido
2.- La contraseña debe contener entre 1 y 8 caracteres, que debe manejar
un juego de caracteres que admite números, letras mayúsculas y minúsculas.
Llamada a una función que debe chequear los caracteres de la contraseña introducida
Diccionario utilizado para los caracteres de la contraseña introducida
En vista de estos datos, lo más seguro es que pensemos en elaborar un
diccionario para realizar un ataque con el objetivo de averiguar
usuarios/contraseñas. Pero, si hacemos eso, obtendremos un "pequeño
problema" ...
El problema es que el diccionario -archivo que contiene todos los posibles
patrones en función de la política de usuario/contraseñas encontrados- es terriblemente grande como para tenerlo
almacenarlo en una máquina.
Veamos la generación de los dos diccionarios que necesitaríamos en el
anterior caso mediante la herramienta: Crunch.
1.- Para ello comprobamos y/o creamos los juegos de caracteres con los que
vamos a crear los diccionarios que necesitamos. Para ello revisamos el archivo que
"Crunch" posee para la definición de los susodichos juegos de
caracteres y crearemos los juegos de caracteres que necesitamos.
Conjuntos de caracteres almacenados en la ubicación:
/usr/share/crunch
Creación del conjunto de caracteres almacenados para generar
el diccionario de los posibles usuarios y contraseñas.
Conjunto de caracteres cargados en el archivo de caracteres
manejados por Crunch
NOTA: La creación de juegos de
caracteres en el archivo que trae por defecto "crunch" implica
trabajar con un usuario con permisos de administración. Añadir que los
conjuntos de caracteres, si van a ser definidos con un nombre compuesto, NO
pueden ir separados por el espacio en blanco.
2.- Creamos los diccionarios en función de los juegos de caracteres
creados y en función del conocimiento que tenemos de la política de usuarios y
contraseñas encontrados.
Espacio necesario para almacenar el diccionario para el campo
"Usuario"
Espacio necesario para almacenar el diccionario para el campo
"Contraseña"
¡Qué suerte el que tenga tal tamaño de almacenamiento!
Para el resto, tendremos que concretar la política de generación del
diccionario a utilizar mediante el uso de un patrón para asíi obtener un
diccionario que necesite menos espacio de disco, o utilizar cualquier otra
herramienta que permitan lanzar ataques de diccionario previa definición de la
política del diccionario a utilizar (número de caracteres, juego de
caracteres, patrón, etc.)
Lo que hagas con la información es cosa tuya, no mía ... pero ten
conciencia.
No hay comentarios:
Publicar un comentario