Es sabido que las contraseñas son uno de los puntos más débiles que existe en la seguridad informática, ya que una mala definición de estos facilita tanto ataques por ingeniería social como basados en un diccionario. Estos últimos se concretan en combinar una serie de nombres de usuario (login) contra una lista de contraseñas hasta acertar, lo que naturalmente requiere de tiempo de operación y conforme pasa el tiempo, más recursos de los equipos involucrados. En esta ocasión veremos una aplicación por demás sencilla y al mismo tiempo, versátil, denominada simplemente 'THC-Hydra'.
THC-Hydra entra en la categoría de programas network logon cracker, creado por The Hackers Choice (THC), grupo de expertos en seguridad que han liberado en sus diez años de existencia diversas herramientas y documentos, entre los que se encuentra esta, que es soportada en Unix, Windows (con Cywin) y Palm. Dos características que llaman la atención de este programa son:
- Es extremadamente rápido, aún leyendo diccionarios muy grandes.
- Soporta múltiples protocolos, como Telnet, HTTP, FTP, SSH, POP3, ICQ, LDAP y muchos más.
A continuación veremos los prodecimientos de instalación y uso, donde se utilizó la versión THC-Hydra 4.7 en un equipo con Fedora Core 2.
Instalación.
- Descargar el paquete desde http://thc.org/thc-hydra/ y descompactarlo.
- Entrar en la carpeta y ejecutar './configure'.
- Ejecutar 'make'.
- Cambiar al superusuario y ejecutar en la misma carpeta 'make install'.
Durante la instalación se crea tanto la versión en línea de comandos como el GUI, aunque este último en ocasiones falla, pero no es crítico.
Utilización.
- Línea de comandos. Desde una terminal (no se requiere ser el superusuario) se pueden realizar escaneos diversos, usando la siguiente sintaxis, que se puede consultar a detalle con teclear 'hydra --help'.
hydra [[[-l LOGIN|-L ARCHIVO] [-p PASS|-P ARCHIVO]] [-C ARCHIVO]]
Algunos ejemplos de esto serían:
[-e ns] servidor servicio
# Prueba un password con el root de MySQL localmente
hydra localhost mysql -l root -p passwd
# Prueba una lista de usuarios y passwords contra un FTP remoto
hydra 192.64.2.14 ftp -L usuarios.txt -P passwd.txt
# Prueba una lista de usuarios y passwords en un servicio de correo
# incluyendo el mismo login y contraseñas en blanco
hydra 192.64.2.6 pop3 -L usuarios.txt -P passwd.txt -e ns - Interfase gráfica. Naturalmente es más sencilla de usar, sólo debemos teclear 'xhydra' en la línea de comandos, lo que inicia una interfase como la siguiente, donde explicamos brevemente los puntos más relevantes.
Fig. 1. Definimos el destino o destinos de los ataques, el puerto en caso de usar uno no convencional y el protocolo.
Fig. 2. Puede ser un sólo nombre de usuario y password o una lista de cada uno, se recomienda buscar tanto el login igual a la contraseña como aquellas que estén en blanco.
Fig. 3. Especificamos el número de ataques en paralelo y si deseamos detenerlo después de un tiempo de no conectarse; también se configura la salida a través de un proxy server.
Fig. 4. Inicia el ataque y nos despliega los resultados de la búsqueda.
Diccionarios de usuarios/passwords. Existen algunas listas de palabras comunes usadas como contraseñas, como la recopilada por George Shaffer, que incluye algunas muy comunes o muy malas, aunque en principio cualquier listado de palabras puede dar resultados. Los nombres de usuario son variados, pero dependiendo de la plataforma, existen algunos invariables, como estos ejemplos.
# Listado de nombres de usuario comunes
admin
administer
administrator
monitor
root
webmaster
postmaster
# Listado de passwords comunes
password
passwd
123456
Otras consideraciones. Siempre debemos notificar a los administradores respecto a estas pruebas, ya que es posible que un servicio sea bloqueado y hacemos muchas pruebas en paralelo o por mucho tiempo.
Mejores prácticas para la administración de contraseñas.
Estas son algunas recomendaciones para mantener nuestras contraseñas.
- Utilizar una combinación de caractéres que recordemos, que incluya letras, números y caractéres especiales, excepto los latinos (letras acentuadas, eñe).
- Utilizar letras en mayúsculas y minúsculas.
- Darle una extensión mínima de 7 caractéres.
- Cambiarla cada cierto tiempo. Tres meses es un buen promedio.
Esta es una lista de aquello que NO debemos hacer al definir una contraseña.
- No utilizar sólo letras o números.
- No utilizar palabras reconocibles, aún cuando se invierta su sentido o cambien letras por números.
- No utilizar información personal.
- No utilizar el mismo password para todos los equipos/servicios.
- No escribir las contraseñas en un papel y si es en medio eléctronico, aplicarle algún tipo de encriptación.
- No proporcionarla verbal o electrónicamente.
Diccionarios de passwords por defecto de diversas aplicaciones. Estas son suministradas por los mismos administradores de las aplicaciones, no sólo para que otros las conozcan, sino para impulsar su actualización.
- Default Password List por Phenoelit: http://www.phenoelit.de/dpl/
- Default Password List: http://defaultpassword.com/?action=dpl
Verificación del nivel de seguridad de un password. Permiten identificar el nivel de seguridad que proporciona una contraseña determinada.
- Password scoring: http://www.securitystats.com/tools/password.php
- Proactive Password Auditor: http://www.elcomsoft.com/ppa.html
Herramientas similares. Estas aplicaciones tiene un acercamiento diferente pero realizan igualmente la verificación de passwords en diversas aplicaciones y protocolos mediante ataques por diccionario.
- John The Ripper: http://www.openwall.com/john/
- Crack: http://www.crypticide.com/users/alecm/
- Slurpie: http://www.ussrback.com/distributed.htm
- Brutus: http://www.hoobie.net/brutus/index.html
- LMCrack: http://www.infosecwriters.com/hhworld/hh9/lmcrack.htm
No hay comentarios:
Publicar un comentario