Romper una contraseña: 6 maneras
Hoy en día todos utilizamos servicios basados en Internet, en el que requerimos autenticarnos mediante usuario y contraseña. Vamos a presentar algunas formas que los atacantes tienen para romper una contraseña de usuario.
Nuestra cuenta de Facebook, Twitter, Google, Amazon, PayPal, home banking, etc, requieren que nosotros introduzcamos un nombre de usuario y contraseña para poder acreditar nuestra identidad.
Así, si un cibercriminal se hace con nuestra contraseña, lo que comúnmente se denomina «hacking de cuenta» (hacking, valga decir, un término mal usado), podrá robar nuestra identidad en dicho servicio, y realizar transacciones que lo beneficien.
Si un cibercriminal logró robar nuestra contraseña, en general, lo habrá hecho utilizando alguna de estas conocidas técnicas.
Algunas Técnicas para romper una contraseña
Ataque de fuerza bruta
Este método se trata de prueba y error, donde el atacante, provisto con algún software automatizado, puede probar miles de combinaciones posibles de diferentes caracteres y longitudes para tratar de abrir la autenticación del usuario, hasta que da con la contraseña correcta.
Ataque por diccionario
Es una variante del ataque de fuerza bruta, con la diferencia de que no prueba miles de combinaciones al azar ni siguiendo cierto patrón, sino que prueba palabras extraídas previamente de un diccionario, y testea también combinaciones de las mismas.
Es un proceso lento, pero más rápido y asertivo que el de fuerza bruta puro. Segun los reportes, los ataques de password por diccionario corresponden con el 50% de la totalidad de ataques a passwords en la red.
Phishing
Es otra forma común de adquirir nombres de usuarios y contraseñas. Este tipo de técnicas de «pesca» de datos utilizan software que corre en el sistema de la víctima, como un troyano por ejemplo, o sitios webs clonados y envío de correos electrónicos que llevan a la víctima a este tipo de sitios utilizando técnicas de ingeniería social, de modo que el usuario termina entregándole voluntariamente los datos al atacante.
Es decir, para obtener estos datos sensibles el atacante utiliza la ingeniería social para crear un ambiente de confianza en el que el usuario víctima se sienta cómodo… entregando la información.
Spidering attack
Este tipo de ataque suele utilizarse para grandes empresas, donde con determinados softwares y técnicas, el atacante puede recolectar toda la información relacionada a una organización, conexiones, nodos, usuarios, relaciones, etc, de modo que pueden utilizar esta información para encontrar cuentas de usuario y datos relacionados que pueden llevar a obtener su contraseña, o realizar intentos de phishing.
Keylogger’s
Este ataque es muy común también. La herramienta que utiliza el atacante se instala en el equipo de la víctima, de modo que el software esté instalado, el sistema realizará un escaneo de los navegadores y contraseñas guardadas, y almacenará toda la actividad que la víctima tenga en Internet, incluidas contraseñas y usuarios introducidos en formularios.
Tablas Rainbow
Este método requiere un muy buen conocimiento de la arquitectura de una computadora, y de codificación. Las tablas Rainbow son grandes conjuntos de tablas llenas de hashes calculados en base a contraseñas posibles en texto plano. Es decir, si tenemos diccionarios enormes de contraseñas en texto plano, podemos calcular sus hashes, como MD5 o SHAx, y guardar estos hashes en tablas. Estas son las «Rainbow Tables».
Como ventaja, es un método muy rápido para encontrar passwords, ya que muchos sistemas en la actualidad almacenan las contraseñas de usuarios en formato de hash en las bases de datos, y las rainbow tables permiten encontrar alguna palabra que coincida con el hash de la contraseña del usuario.
Aquí cabe aclarar que un mismo hash puede producir colisión, es decir, pueden existir dos o más palabras cuyo hash sea exactamente el mismo. En esta aplicación específica, no hay diferencia, puesto que mientras el atacante pueda introducir una palabra que genere el mismo hash que el de la contraseña del usuario, no necesariamente tiene que ser la misma contraseña.
La desventaja, las tablas rainbow suelen consumir mucho espacio de almacenamiento. Hoy en día no es costoso el almacenamiento masivo, pero hay que tener en cuenta que, si queremos generar u obtener nuestras tablas rainbow, necesitaremos algunos Terabytes adicionales en nuestro disco 🙂
Así, tampoco hace falta calcular las tablas, podríamos descargar de la red las tablas para algún sistema específico, Windows XP/7, o aplicaciones que utilicen cierto tipo de hashes, como MD5 o SHA1.
Software…
Para implementar este típo de técnicas disponemos de varias aplicaciones. No entraremos en detalle ahora sobre cada una y sus funcionalidades, pero por ejemplo, John the Ripper o L0phtCrack son algunas de las más conocidas para Linux y Windows respectivamente. John permite ataques de fuerza bruta seleccionando tipos de caracteres a testear, y longitudes de passwords, así como también ataques por diccionario.
Otro software interesante es HashCat, una aplicación que permite ataques de fuerza bruta, combinados, de diccionario, ataques híbridos, por permutaciones o utilizando tablas rainbow. Además, una variante de HashCat se denomina oclHashCat, o CudaHashCat, que permite realizar los ataques utilizando la potencia de la GPU en vez de la del CPU tradicional… para este tipo de cálculos, resulta mucho mas eficiente.
Y no nos olvidemos del conocido AirCrach-ng, la suite de cracking de passwords wireless por excelencia… quién no ha roto una clave WEP «con fines académicos» utilizando aircrack? 🙂
En otro artículo detallaré algunos métodos.
4 consejos
- Usen passwords que combinen letras, dígitos, y caracteres especiales, esto extiende el tiempo del ataque mediante fuerza bruta, diccionario o tablas rainbow, generalmente el atacante no dedica demasiado tiempo a romper una contraseña de usuario común.
- Utilicen gestores de contraseña, como Password-Gorilla para que ni ustedes mismos sepan sus contraseñas, siempre copian y pegan.
- Aprovechen las ventajas de los gestores de contraseña de ciertas aplicaciones, como WordPress o PHPMyAdmin, cuando creen un usuario, generen la contraseña utilizando el gestor.
- No caigan en los trucos de los ingenieros sociales… ya hablaremos de eso más adelante.
¡Espero les sea de utilidad!
Cualquier sugerencia o experiencia personal al respecto son libres de hacerla!