Las contraseñas se han convertido en la primera línea de defensa para proteger sus cuentas digitales, pero ¿alguna vez se ha preguntado lo fácil que es piratearlas? Crear contraseñas seguras y únicas no es sólo un consejo pasajero, es una necesidad para proteger sus datos.
Para asegurarme de que las contraseñas que uso sean efectivas, decidí intentar descifrar mis propias contraseñas utilizando una herramienta de código abierto. Probé tres contraseñas diferentes para comprender cómo funcionan los ataques comunes y descubrir qué hace que una contraseña sea más segura contra los piratas informáticos.
En este artículo, comparto mis hallazgos y consejos prácticos para mejorar la seguridad de sus contraseñas y mantener sus datos seguros.
Enlaces rápidos
¿Qué significa romper una contraseña?
Cuando crea una cuenta utilizando un servicio en línea, el proveedor generalmente (y con suerte lo hará) cifrará sus datos de inicio de sesión en su servidor. Esto se hace usando un algoritmo para crear "fragmentación“, que es una cadena aleatoria de letras y números exclusiva de su contraseña. Por supuesto, en realidad no es aleatorio: es una cadena de caracteres muy específica que solo tu contraseña puede generar, pero para el ojo inexperto, parece un desastre.
Convertir una palabra en un hash es mucho más rápido y sencillo que "deconstruir" el hash en una palabra nuevamente. Entonces, cuando estableces una contraseña, el servicio en el que estás iniciando sesión ejecuta la contraseña a través de un hash y luego almacena el resultado en su servidor.
Si se filtra el archivo de contraseña especificado, los piratas informáticos intentarán descubrir su contenido mediante un descifrado de contraseña. Debido a que cifrar una contraseña es más rápido que descifrarla, los piratas informáticos configurarán un sistema que toma contraseñas potenciales como entrada, las cifra utilizando el mismo método que utiliza el servidor y luego compara el resultado con una base de datos de contraseñas.
Si el valor hash de una posible contraseña coincide con alguna entrada de la base de datos, el hacker sabe que cada resultado coincide Posible contraseña Que se ha probado.
Cómo hackeé mis contraseñas usando HashCat
Bueno, comencemos a desglosar algunas de las contraseñas que has creado para ver qué fácil es. Para hacer esto, usaré Hashcat, una aplicación para descifrar contraseñas gratuita y de código abierto disponible para cualquier persona.
En estas pruebas, descifraré las siguientes contraseñas:
- 123456Una contraseña clásica y una pesadilla de ciberseguridad, 123456 es la contraseña más utilizada en el mundo. ella contó Paso Norte 3 millones de cuentas utilizaron 123456 contraseñas, 1.2 millones de las cuales fueron para proteger cuentas a nivel corporativo.
- Susan48!: una contraseña que sigue los patrones que la mayoría de los usuarios utilizan para crear una contraseña segura. Esta palabra clave generalmente cumple con los requisitos básicos de higiene de contraseñas, pero como exploraremos más adelante, contiene algunas vulnerabilidades críticas que pueden explotarse.
- t9^kJ$2q9a: Una contraseña que usted creó usando Generador de bitwarden. Está configurado para generar una contraseña de 10 caracteres utilizando letras mayúsculas y minúsculas, símbolos y números.
Ahora que teníamos nuestras contraseñas, las cifré usando MD5. Así aparecerán las contraseñas si están en un archivo de contraseñas guardado en el servidor:
- 123456: e10adc3949ba59abbe56e057f20f883e
- Susan48!: df1ce7227606805745ee6cbc644ecbe4
- t9^kJ$2q9a: 450e4e0ad3ed8766cb2ba83081c0a625
Ahora es el momento de descomponerlo.
Realizar un descanso simple usando un ataque de diccionario
Empecemos, empecemos. Ataque de diccionario, que es una de las formas más comunes de atacar contraseñas. Es un ataque simple en el que creo una lista de posibles contraseñas, le digo a Hashcat que las convierta a MD5 y veo si alguna de ellas coincide con las tres entradas anteriores. Para este experimento, estoy usando el archivo “rockyou.txt” como diccionario, que fue una de las mayores filtraciones de contraseñas de la historia.
Para iniciar el proceso de piratería, voy a la carpeta donde se encuentra Hashcat, hago clic derecho en un espacio vacío y luego presiono "Abrir en Terminal". Ahora que la Terminal está abierta y configurada en el directorio Hashcat, invoco la aplicación Hashcat usando el siguiente comando:
.hashcat -m 0 -a 0 archivo de contraseña.TXT rockear.TXT -o resultados.TXT
Esto es lo que hace el comando:
- .\hashcat Llama Hashcat.
- -m 0: Especifica el cifrado que usaremos. En este caso usaremos MD5, que aparece como 0 en el documento de ayuda de Hashcat.
- -un 0: Especifica el ataque que queremos realizar. El documento de ayuda de Hashcat enumera el ataque de diccionario como 0, por lo que lo llamaremos aquí.
- archivocontraseña.txt rockyou.txtEl primer archivo incluye las tres contraseñas cifradas que preparamos anteriormente. El segundo archivo es la base de datos completa de contraseñas de rockyou.
- -o resultados.txt: Esta variable determina dónde colocamos el resultado. El comando que hice coloca las contraseñas pirateadas en un archivo TXT llamado "resultados".
A pesar del enorme tamaño de rockyou, Hashcat escaneó todo el contenido en seis segundos. En el archivo de resultados, Hashcat dijo que pudo descifrar la contraseña 123456, pero las contraseñas de Susan y Bitwarden permanecieron intactas. Esto se debe a que otra persona usó la contraseña 123456 en el archivo rockyou.txt, pero nadie más usó las contraseñas de Susan o Bitwarden, lo que significa que eran lo suficientemente únicas como para permanecer a salvo de este ataque.
Realice piratería más compleja utilizando máscaras y ataques de fuerza bruta
Los ataques de diccionario funcionan cuando alguien usa la misma contraseña en una lista más grande de contraseñas. Es rápido y fácil de hacer, pero no se puede Hackear contraseñas No encontrado en el diccionario. Por lo tanto, si realmente queremos probar nuestras contraseñas, necesitamos usar ataques de fuerza bruta.
Si los ataques de diccionario consisten en tomar una lista predefinida y transformarla una por una, los ataques de fuerza bruta hacen lo mismo pero con todas las combinaciones posibles. Es más difícil de implementar y lleva más tiempo, pero eventualmente romperá cualquier contraseña. Como veremos pronto, esta posibilidad a veces puede llevar mucho tiempo.
Este es el comando que utilicé para realizar el ataque de fuerza bruta "real":
.hashcat -m 0 -a 3 dirigidos.TXT --incremento ?a?a?a?a?a?a?a?a?a?a -o salida.TXT
Esto es lo que hace el comando:
- –un 3: Esta variable especifica el ataque que queremos realizar. La documentación de ayuda de Hashcat enumera los ataques de fuerza bruta como 3, por lo que los llamaremos aquí.
- objetivo.txt: El archivo que contiene la contraseña cifrada que queremos hackear.
- - incremento: Esto le dice a Hashcat que pruebe todas las contraseñas que tengan una letra, luego dos, luego tres, y así sucesivamente hasta que obtengamos la solución.
- ?a?a?a?a?a?a?a?a?a?a?a?a?a?a: Esto se llama “máscara”. Las máscaras nos permiten decirle a Hashcat qué caracteres usar y dónde. Cada signo de interrogación indica la posición de una letra en la contraseña y la letra especifica lo que intentamos hacer en cada posición. La letra "a" representa letras mayúsculas y minúsculas, números y símbolos, por lo que esta máscara dice: "Pruebe todo lo que hay en cada casilla". Es una máscara terrible, pero le daremos un buen uso más adelante.
- -o salida.txt: Esta variable determina dónde colocamos el resultado. Mi comando coloca las contraseñas rotas en un archivo TXT llamado "salida".
Incluso con esta terrible máscara, la contraseña 123456 fue descifrada en 15 segundos. Aunque es la contraseña más común, también es una de las más débiles.
La contraseña era "¡Susan48!" Mucho mejor: mi computadora dijo que tomaría cuatro días romperlo a ciegas. Sin embargo, hubo un problema. ¿Recuerdas cuando dije que la contraseña de Susan tenía algunos defectos críticos? El más importante es que la contraseña está diseñada de forma predecible.
Cuando creamos una contraseña, solemos colocar elementos concretos en lugares concretos. Puedes imaginar que la persona que crea la contraseña es Susan, quien inicialmente intentó usar "susan", pero se le pidió que agregara letras mayúsculas y números. Para que fuera más fácil de recordar, puso en mayúscula la primera letra y añadió números al final. Entonces, uno de los servicios de inicio de sesión podría haber solicitado un código, por lo que nuestro generador de contraseñas lo pegó al final.
Por lo tanto, podemos usar la máscara para decirle a Hashcat que pruebe solo ciertos caracteres en ciertos lugares para explotar cuán predecibles son las personas al crear una contraseña. En esta máscara, “?u” usará solo letras mayúsculas en esta posición, “?l” usará solo letras minúsculas y “?a” representa cualquier letra:
.hashcat -m 0 -a 3 -1 ?a dirigidos.TXT ?u?l?l?l?l?a?a?a -o salida.TXT
Con esta máscara, Hashcat descifra la contraseña en tres minutos y diez segundos, mucho más rápido que cuatro días.
La contraseña generada por Bitwarden tiene diez caracteres y no utiliza ningún patrón predecible, por lo que tengo que realizar un ataque de fuerza bruta sin ninguna máscara para romperla. Desafortunadamente, cuando le pedí a Hashcat que hiciera esto, arrojó un error que decía que la cantidad de combinaciones posibles excedía el límite de números enteros. el dice Gurú de la seguridad de TI Se tardarían tres años en descifrar una contraseña de Bitwarden, así que eso es suficiente para mí.
Cómo proteger sus cuentas contra el descifrado de contraseñas
Entonces, ¿qué podemos aprender de todo esto? Los principales factores que me impidieron descifrar una contraseña de Bitwarden fueron su longitud (10 caracteres) y su imprevisibilidad. Por lo tanto, al crear contraseñas, intente que sean lo más largas posible y agregue símbolos, números y letras mayúsculas a lo largo de la contraseña. Esto evita que los piratas informáticos utilicen máscaras para predecir la ubicación de cada elemento y hace que sea más difícil de piratear.
Probablemente ya conozcas viejos dichos sobre contraseñas como "Utiliza una variedad de caracteres" y "Hazla lo más larga posible". Esperamos que sepa por qué la gente recomienda estos útiles consejos: son la diferencia entre una contraseña descifrada rápidamente y una segura. Ahora puedes ver Cómo estos simples ajustes hicieron que mis contraseñas fueran más seguras y fáciles.