Blog

Las contraseñas son una de las principales barreras de seguridad informática de las que disponemos. Se utilizan para proteger cuentas y sistemas para evitar que algún intruso pueda llegar a acceder.

El objetivo de las pruebas de penetración es determinar la fuerza o debilidad de los sistemas contra ataques, encontrando sus debilidades de seguridad y comprobando a qué datos se pueden llegar a acceder.

El descifrado de contraseñas es una de las herramientas a las que recurren los ciberdelincuentes cuando no pueden acceder a una cuenta por otros medios. No debemos confundir a un hacker con un ciberdelincuente, el ciberdelincuente se aprovecha de los fallos de seguridad en su beneficio, mientras que el hacker usa sus habilidades para el bien.

¿Cuándo se hackean contraseñas?

El hackeo de contraseñas se realiza para obtener acceso a una cuenta, normalmente para obtener acceso a recursos o información a los que no se está autorizado.

También hay situaciones en las que es legal descifrar contraseñas, como cuando un delincuente no da su contraseña y se cree que se puede acceder a información que ayude a resolver el caso.

Otra razón legal es cuando un pentester o un administrador de red debe medir la seguridad de las contraseñas de un sistema. Intentarán descifrar todas las contraseñas utilizadas en una empresa. Si puede descifrarla, un atacante también será capaz.

El descifrado de contraseñas puede ser una opción cuando se olvida una contraseña y es débil o los datos que se protegen son muy valiosos, como una billetera de Bitcoin por ejemplo. En este caso es complicado justificar el esfuerzo para hackear la contraseña.

Técnicas de hackeo de contraseñas

Descifrar contraseñas en un proceso complicado, los detalles sobre cómo se hace, las técnicas que se emplean, la probabilidad de éxito y el tiempo que puede tomar dependen de muchos factores.

A continuación, vamos a centraros en algunas técnicas para descifrar contraseñas.

Intentar una contraseña conocida contra un sistema de inicio de sesión

A veces se encuentran contraseñas de texto sin formato. Si se encuentran credenciales o una base de datos de nombres de usuario y contraseñas en texto sin formato el trabajo bastante fácil.

Todo lo que se tiene que hacer es ir a la página de inicio de sesión de una cuenta e intentar iniciar sesión. Si no se ha puesto otro método de defensa se tendrá acceso directo a la cuenta.

Relleno de credenciales

Es usada por piratas informáticos cuando tienen una lista de nombres de usuario y contraseñas en texto sin formato y usan esos mismos usuario y contraseña en otras cuentas.

Esta técnica se aprovecha de que las personas suelen usar la misma contraseña en varias de sus cuentas. La consecuencia es que si hay una violación de contraseña en uno de los proveedores de servicios, se tendrá acceso a todas las cuentas.

Hackear contraseñas con un hash

El hash es una forma de cifrar contraseñas a través de una función hash criptográfica, el resultado es un valor único que no se puede utilizar para descifrar la contraseña original.

En el momento en el que un usuario se registra para obtener una cuenta e ingresa su contraseña, el sistema puede ejecutar inmediatamente la contraseña a través de una función hash y solo almacenar el valor hash único, y nunca la contraseña en sí.

Cuando un usuario ingresa su contraseña el sistema de inicio de sesión toma el hash y lo compara con el hash de contraseña que tiene en su base de. Si los dos hashes coinciden, el sistema sabe que se ha ingresado la misma contraseña.

De esta forma si alguna vez se piratea el sistema y se roba la base de datos de contraseñas, los ciberdelincuentes no terminan con un montón de contraseñas como texto sin formato. En cambio, terminan con un montón de hash de contraseñas.

Cuando los atacantes solo tienen acceso a los hashes ya tienen que descifrar las contraseñas a partir de los hashes, lo que puede complicar las cosas considerablemente.

Hackear contraseñas simples con un hash

Hay casos en los que es más sencillo porque existen varios software que generan hashes para combinaciones de contraseñas y buscan un hash en tablas ya calculadas.

A estas tablas se las denominan tablas arcoíris y, por lo general, presentan las contraseñas más comunes junto con sus hashes. Intentar las combinaciones de contraseña y hash más simples se conoce como ataque de diccionario.

Si un ciberdelincuente tiene un hash de contraseña solo tiene que usar el software para compararlo con las tablas precalculadas. Cuando la contraseña es simple, es probable que se encuentre un hash coincidente y pueda iniciar sesión.

El beneficio de usar hashes de contraseña es que permiten que permite descubrir la contraseña offline. Ya que están tratando de encontrar la contraseña correspondiente en su ordenador.

Hackear contraseñas complejas con un hash

En este caso la contraseña no se encuentra en ninguna tabla precalculada, posiblemente se haya usado una contraseña más compleja. Se puede intentar usar el software para intentar generar nuevas contraseñas y hashes coincidentes.

El éxito o no dependerá de la complejidad de la contraseña y de la cantidad de recursos informáticos de los que se dispongan.

¿Dónde se obtiene el hash de contraseña?

Los hashes de contraseñas pueden obtenerse del servidor en el que están almacenados de varias maneras, como por ejemplo a través de empleados descontentos, inyecciones de SQL y otros ataques.

Se puede tener una buena o mala seguridad, pero la posibilidad de que roben el hash de una contraseña siempre está ahí, el factor clave es si será más fácil o complicado para el atacante.

Otra forma es a través de protocolos de red como WPA2-PSK y NTLM, que envían hashes de contraseñas a través de la red. En muchos casos, los paquetes pueden no estar encriptados, por lo que sería fácil robar la contraseña.

Hackear contraseñas sin el hash de contraseña

Hay casos en los que no se dispone del hash de contraseña ni contraseñas de texto sin formato, en este caso hay otras técnicas.

Hackear contraseñas con fuerza bruta

Consiste en probar todas las combinaciones posibles de contraseñas de forma metódica. La esperanza es que eventualmente el atacante encuentre la contraseña correcta, lo que le otorgará acceso a la cuenta.

Si nos centramos en un número pin de 4 dígitos habría que probar de forma ordenada y sistemática 10.000 combinaciones, desde el 0 hasta llegar a 9999. Pero en la realidad es complicado con los bloqueos tras varios intentos, CAPTCHA, etc

Lo mismo ocurre para contraseñas largas, piensa en una de 30 caracteres, el tiempo para descifrar esa contraseña sería demasiado largo y también se enfrentaría a esos bloqueos y CAPTCHA mencionados.

Ataques de diccionario

Los ataques de diccionario se centran en las contraseñas, palabras y patrones más comunes. Es más probable que se usen como contraseñas, por lo que es más eficiente en tiempo y recursos que un ataque de fuerza bruta.

Pero nos seguiremos encontrando con el mismo problema, los mecanismos de seguridad como límites de intentos de inicio de sesión y CAPTCHA que impiden realizar una secuencia casi infinita de combinaciones posibles.

Al igual que con la fuerza bruta, si un atacante ya tiene hashes de contraseña, puede usar ataques de diccionario para intentar encontrar una contraseña coincidente sin conexión.

Esto suele ser más rápido que un ataque de fuerza bruta y permite eludir mecanismos de seguridad. Por eso, los ataques de diccionario se suelen intentar antes de obtener una contraseña por fuerza bruta.

Listas de palabras personalizadas

Los ataques de diccionario son más eficientes que los ataques de fuerza bruta, pero si se agregan listas de palabras personalizadas se puede adaptar el ataque a objetivos específicos.

Si se conocen datos como el nombre, dirección, aficiones, fecha de nacimiento… del objetivo, se pueden agregar al software e incorporarlos a las combinaciones de contraseña que está intentando.

Pulverización de contraseñas

En este caso se posee una lista de nombres de usuario, pero no se tiene el hash de contraseñas ni contraseñas de texto sin formato. La pulverización de contraseñas implica intentar descifrar las contraseñas de tantas cuentas como sea posible.

No tiene una tasa de efectividad alta, pero se puede compensar con la posibilidad de lanzar estos ataques a gran escala. Lo que se hace es probar las contraseñas más comunes contra tantas cuentas como sea posible.

Una ventaja de la pulverización de contraseñas es que implica intentos poco frecuentes contra cada cuenta. Si se hacen dos intentos y luego se espera una semana, hay menos probabilidad de que se activen los mecanismos de seguridad.

Para atacar cuentas específicas es un método poco eficiente pero si se está haciendo lo mismo contra miles de cuentas pronto se encontrará alguna que use contraseñas muy simples.

Phishing

Se basa en mandar correos electrónicos prometiendo a algún tipo de beneficio, generándole miedo o curiosidad para que hagan clic en un enlace que le lleva a iniciar sesión en una web falsa.

Keystroke Logging

Keystroke Logging o Registro de Pulsaciones de teclas es menos habitual que los anteriores por su complejidad: Un malware registra y transmite los nombres de usuario y las contraseñas ingresadas, aparte de todo aquello que es tecleado.

Lo malo de este método es que hay que estudiar la información recopilada para poder determinar qué conjunto de caracteres podrían pertenecer a una contraseña. Para lograr hacerlo funcionar, es necesario transmitir un malware haciendo que el usuario a hackear haga click en un enlace que le enviemos.

Dumpster Diving

El Descubrimiento local o Dumpster Diving, reconocimiento físico o escaneo de red, consiste en localizar post-its, cuadernos, libretas o cualquier papel en el cual hayan sido apuntadas las claves del objetivo. Es un método físico y laborioso, por lo que no es muy usado pese a ser eficaz. Se puede usar información aparentemente inocente como una lista de teléfonos, un calendario o un organigrama para ayudar a un atacante en sus labores de ingeniería social.