explotación, puesto que es una de las formas más efectivas de lograr acceso a un sistema. Además de que se aprovecha de la vulnerabilidad más grave de todas: La ignorancia del usuario y su incapacidad de generar contraseñas fuertes y manejar políticas de seguridad robustas.
Es por eso que es realmente importante concentrarnos en recolectar la mayor información posible en los pasos anteriores a la explotación. Patrones de nombres de usuario, correos, nombres, teléfonos, números de identificación, familiares y gustos es la información que más nos será util tanto para construir diccionarios de contraseñas como para construir diccionarios de usuarios.
En sitios como PacketStormSecurity podemos encontrar una gran cantidad de diccionarios divididos por temas y por idiomas que sin duda podrían llegar a ser útiles, pues combinandolos con nuestros propios diccionarios pueden aumentar la probabilidad de éxito del ataque.
Aparte de diccionarios pre-construidos y de los que creemos a mano tenemos otra opción y es generarlos a través de herramientas como Crunch, que nos permiten especificar qué conjuntos de caracteres usar y como combinarlos para generar posibles contraseñas Crunch viene por defecto instalado en Kali Linux. Si por ejemplo, tenemos en cuenta que los números de identificación de ciudadanos tienen un tamaño de entre 7 a 12 digitos le podemos especificar a Crunch que genere una lista combinando todos los números posibles y manteniendo los parametros 7 y 12 como mínimo y máximo de tamaño:
Las posibles combinaciones son millones y millones de lineas pero, por supuesto, tenemos también millones y millones de posibles números de identificación. (Hay que tener en cuenta que la salida de este comando generará un archivo de decenas de Gigabytes)
Sin embargo el ataque anterior se asemeja mucho a un ataque de fuerza bruta, pues genera todas las combinaciones posibles. Como ya hemos dicho multiples veces en los cursos, los ataques de fuerza bruta son bastante lentos, lo que les resta eficiencia.
Así que tal vez un diccionario de tales dimensiones no nos sería muy util. Pero crunch no se queda aquí, es totalmente posible generar diccionarios mucho más inteligentes combinando por ejemplo nombres, apellidos, puestos de trabajo, años actuales, etc.
Otras de las numerosas opciones de Crunch es poder generar un diccionario a partir de una cadena "base" y su combinación con caracteres, números y simbolos. Para esto vamos a necesitar un archivo llamado charset.lst que trae por defecto definidas una cantidad considerable de variables que contienen múltiples tipos de combinaciones: https://github.com/jaalto/external-sf--crunch-wordlist/blob/master/charset.lst. Si creemos que la contraseña podría ser la palabra base "jessica" y al final una combinación de números o letras, utilizaríamos este comando (En donde las @@@ serán cambiadas por cada una de las letras y de los números):
Comentarios