Finalmente, se va a ver una de las herramientas más usadas en auditorías de seguridad, y no es para menos, ya que una de las formas habituales de tener acceso a una máquina UNIX es directamente accediendo a cuentas (vía telnet, rlogin o slogin) con passwords que se han descubierto fácilmente (o inexistentes). Es por tanto importante probar los mismos métodos que probaría un cracker para asegurar que una máquina es segura a estos intentos. Aunque esto no impide que los usuarios puedan dejarse las password escrita, olvidada por algún lado, si servirá para asegurar que las passwords del sistemas no son fácilmente vulnerables.
Aunque atrás quedan los tiempos en que los sistemas UNIX no registraban los accesos no autorizados y los sistemas VMS eran considerados más seguros por hacerlo, uno de los métodos empleados por posibles "intrusos" es obtener el fichero de passwords del sistema a través de cualquier agujero de seguridad de la máquina, por ejemplo, un PHP/FI en el servidor de WWW mal configurado. El conjunto de herramientas shadow ha hecho esto más difícil a posibles intrusos dado que por un lado se almacena la información del usuario en el fichero /etc/passwd y por otro las passwords de los usuarios en el fichero /etc/shadow. El primero puede ser leído por cualquier usuario del sistema, el segundo sólo por root.
Este fichero contiene las passwords de los usuarios encriptadas, es decir, no están en claro, pero la función que utilizan los sistemas UNIX (un triple DES), que, aunque es difícil de romper por fuerza bruta, sí es posible "atacarla" mediante el uso ingenioso de un diccionario y de reglas. El ataque consiste en encriptar una palabra dada con la función (que es pública) y compararla con el valor encriptado de la password (que es el que contiene el fichero), el algoritmo de encriptación asegura que si ambos son iguales entonces la palabra usada es la password que se quiere adivinar.
El programa Crack realizará esta función. Dado un fichero de claves, intentará "adivinar" las claves de todos los usuarios que en ella encuentre usando un diccionario de palabras comunes y un conjunto de reglas que indican cambios frecuentes que se realizan sobre ellas. Serían reglas, por ejemplo, el poner la primera y la última letra en mayúsculas, o el cambiar todas las vocales por su número correspondiente (la 'a' por '1', la 'e' por '2'...). Con estas reglas Crack realiza manipulaciones con las palabras: las invierte, mezcla, cambia la capitalización, transpone letras.. según una serie de reglas. El programa viene con unas 240 reglas de manipulación aunque se pueden construir otras nuevas. Además, es posible conseguir abundantes diccionarios por FTP, y no sólo de palabras comunes, sino de hobbies, películas, argot...
Así mismo es capaz de realizar ataques de fuerza bruta, aunque se estima que para poder adivinar una password de ocho caracteres (el máximo) con la actual potencia de un ordenador se tardarían varias decenas de años (debido al gran número de posibilidades, más de cien billones, teniendo en cuenta todos los caracteres ASCII imprimibles), si se limita el ataque a un menor número de caracteres (por ejemplo 4), y de menor rango (por ejemplo sólo números) el número desciende considerablemente (diez mil en el caso propuesto).
Este tipo de ataque puede dar resultados sorprendentes, en poco tiempo, ya que si no se ha obligado a los usuarios a hacer uso de passwords difíciles será capaz de adivinar un buen número de ellas. El programa incopora una función para poder avisar a un usuario de que su password es excesivamente fácil, para lograr que la cambie, al tiempo que almacena sus resultados en una base de datos para consulta posterior del administrador.
Este auditoría sobre la seguridad de las passwords se puede evitar (o se pueden evitar "sorpresas") de varias formas:
jfs@computer.org