Una breve nota – este artículo trata sobre la teoría de cómo descifrar contraseñas. Comprender cómo los ciberdelincuentes ejecutan ataques es extremadamente importante para comprender cómo proteger los sistemas contra ese tipo de ataques.

intentar hackear un sistema que no posee es probablemente ilegal en su jurisdicción (además de hackear sus propios sistemas puede violar cualquier garantía para ese producto).

empecemos con lo básico. ¿Qué es un ataque de fuerza bruta?,

este tipo de ataque implica intentar repetidamente iniciar sesión como usuario probando todas las combinaciones posibles de letras, números y caracteres (utilizando herramientas automatizadas).

esto se puede hacer en línea (así que en tiempo real, probando continuamente diferentes combinaciones de nombre de usuario/contraseña en cuentas como redes sociales o sitios bancarios) o sin conexión (por ejemplo, si ha obtenido un conjunto de contraseñas con hash y está tratando de descifrarlas sin conexión).

Offline no siempre es posible (puede ser difícil obtener un conjunto de contraseñas hash), pero es mucho menos ruidoso., Esto se debe a que un equipo de seguridad probablemente notará muchas, muchas cuentas de inicio de sesión fallidas de la misma cuenta, pero si puede descifrar la contraseña sin conexión, no tendrá un registro de intentos de inicio de sesión fallidos.

Esto es relativamente fácil con una contraseña corta. Se vuelve exponencialmente más difícil con una contraseña más larga debido a la gran cantidad de posibilidades.,

por ejemplo, si sabe que alguien está usando una contraseña de 5 caracteres, compuesta solo de letras minúsculas, el número total de contraseñas posibles es 26^5 (26 letras posibles para elegir para la primera letra, 26 opciones posibles para la segunda letra, etc.), o 11,881,376 combinaciones posibles.

pero si alguien está usando una contraseña de 11 caracteres, solo de letras minúsculas, el número total de contraseñas posibles es 26 ^11, o 3,670,344,486,987,776 contraseñas posibles.,

cuando agrega letras mayúsculas, caracteres especiales y números, esto se vuelve aún más difícil y requiere mucho tiempo para descifrar. Cuantas más contraseñas posibles haya, más difícil será para alguien iniciar sesión con éxito con un ataque de fuerza bruta.

cómo protegerse

Este tipo de ataque se puede defender de un par de maneras diferentes. En primer lugar, puede utilizar contraseñas suficientemente largas y complejas (al menos 15 caracteres). También puede usar contraseñas únicas para cada cuenta (¡use un administrador de contraseñas!) para reducir el peligro de violaciones de datos.,

un equipo de seguridad puede bloquear una cuenta después de un cierto número de intentos fallidos de inicio de sesión. También pueden forzar un método secundario de verificación como, o Usar autenticación de 2 factores (2FA) que requiere un segundo código (SMS o correo electrónico, basado en aplicaciones o basado en claves de hardware).

Aquí hay un artículo sobre cómo ejecutar un ataque de fuerza bruta.

¿cómo puedes descifrar contraseñas más rápido?

un ataque de diccionario implica intentar iniciar sesión repetidamente probando un número de combinaciones incluidas en un ‘diccionario’ precompilado, o lista de combinaciones.,

esto suele ser más rápido que un ataque de fuerza bruta porque las combinaciones de letras y números ya se han calculado, lo que le ahorra tiempo y potencia de cálculo.

pero si la contraseña es suficientemente compleja (por ejemplo 1098324ukjbfnsdfsnej) y no aparece en el ‘diccionario’ (la lista precompilada de combinaciones desde las que está trabajando), el ataque no funcionará.

con frecuencia es exitoso porque, a menudo, cuando las personas eligen contraseñas, eligen palabras comunes o variaciones en esas palabras (por ejemplo, ‘contraseña’ o ‘p@SSword’).,

un hacker también puede usar este tipo de ataque cuando conoce o adivina una parte de la contraseña (por ejemplo, el nombre de un perro, los cumpleaños de los niños o un aniversario, información que un hacker puede encontrar en las páginas de redes sociales u otros recursos de código abierto).

medidas de protección similares a las descritas anteriormente contra ataques de fuerza bruta pueden evitar que este tipo de ataques tengan éxito.

¿qué pasa si ya tiene una lista de contraseñas con hash?,

Las contraseñas se almacenan en el archivo/etc / shadow Para Linux y C:\Windows\System32\config archivo para Windows (que no están disponibles mientras se inicia el sistema operativo).

si ha logrado obtener este archivo, o si ha obtenido un hash de contraseña de una manera diferente, como rastrear el tráfico en la red, puede probar el cracking de contraseñas ‘offline’.

mientras que los ataques anteriores requieren intentar iniciar sesión repetidamente, si tiene una lista de contraseñas con hash, puede intentar descifrarlas en su máquina, sin activar las alertas generadas por intentos fallidos de inicio de sesión repetidos., Luego, solo intenta iniciar sesión una vez, después de haber descifrado correctamente la contraseña (y, por lo tanto, no hay un intento de inicio de sesión fallido).

Puede usar ataques de fuerza bruta o ataques de diccionario contra los archivos hash, y puede tener éxito dependiendo de qué tan fuerte sea el hash.

espera un minuto – ¿qué es el hashing?

35D4FFEF6EF231D998C6046764BB935D

Reconocer este mensaje? Dice ‘Hola, mi nombre es megan’

7DBDA24A2D10DAF98F23B95CFAF1D3AB

Este es el primer párrafo de este artículo. Sí, parece una tontería, pero en realidad es un ‘hachís’.,

una función hash permite a una computadora ingresar una cadena (alguna combinación de letras, números y símbolos), tomar esa cadena, mezclarla y generar una cadena de longitud fija. Es por eso que ambas cadenas de arriba son de la misma longitud, a pesar de que las entradas de las cadenas eran muy diferentes longitudes.

los Hashes se pueden crear a partir de casi cualquier contenido digital. Básicamente todo el contenido digital se puede reducir a binario, o una serie de 0s y 1s. por lo tanto, todo el contenido digital (imágenes, documentos, etc.) puede ser hash.,

Hay muchas funciones de hash diferentes, algunas de las cuales son más seguras que otras. Los hashes anteriores se generaron con MD5 (MD significa «Message Digest»). Las diferentes funciones también difieren en la longitud del hachís que producen.

El mismo contenido en la misma función hash siempre producirá el mismo hash. Sin embargo, incluso un pequeño cambio alterará el hash por completo. Por ejemplo,

2ff5e24f6735b7564cae7020b41c80f1

Es el hash para ‘Hola mi nombre es Megan’ simplemente poniendo en mayúscula la M en Megan cambió completamente el hash de arriba.,

los Hashes también son funciones Unidireccionales (lo que significa que no se pueden invertir). Esto significa que los hashes (únicos y unidireccionales) se pueden usar como un tipo de huella digital para el contenido.

¿Cuál es un ejemplo de cómo se usan los hashes?los Hashes

se pueden usar como verificación de que un mensaje no se ha cambiado.

cuando envía un correo electrónico, por ejemplo, puede hash todo el correo electrónico y enviar el hash también. Luego, el destinatario puede ejecutar el mensaje recibido a través de la misma función hash para verificar si el mensaje ha sido manipulado en tránsito., Si los dos hashes coinciden, el mensaje no ha sido alterado. Si no coinciden, el mensaje ha sido cambiado.

Además, las contraseñas generalmente se hash cuando se almacenan. Cuando un usuario introduce su contraseña, el equipo calcula el valor hash y lo compara con el valor hash almacenado. De esta manera, la computadora no almacena contraseñas en texto plano (¡por lo que un hacker entrometido no puede robarlas!).

si alguien es capaz de robar el archivo de contraseña, los datos son inútiles porque la función no se puede revertir (aunque hay formas, como las tablas rainbow, para averiguar qué texto sin formato crea el hash conocido).,

¿Cuál es el problema con los hashes?

si un hash puede tomar datos de cualquier longitud o contenido, hay posibilidades ilimitadas de datos que pueden ser hash.

dado que un hash convierte este texto en un contenido de longitud fija (por ejemplo, 32 caracteres), hay un número finito de combinaciones para un hash. Es un número muy grande de posibilidades, pero no infinito.

eventualmente dos conjuntos diferentes de datos producirán el mismo valor hash. Esto se llama colisión.,

Si tienes un hash y estás tratando de ir a través de cada valor de texto plano posible para encontrar el texto plano que coincida con tu hash, será un proceso muy largo y muy difícil.

sin embargo, ¿qué pasa si no te importa qué dos hashes chocan?

esto se llama el ‘problema de cumpleaños’ en matemáticas. En una clase de 23 estudiantes, la probabilidad de que alguien tenga un cumpleaños en un día específico es de alrededor del 7%, pero la probabilidad de que dos personas compartan el mismo cumpleaños es de alrededor del 50%.,

el mismo tipo de análisis se puede aplicar a las funciones hash para encontrar dos hashes que coincidan (en lugar de un hash específico que coincida con el otro).

para evitar esto, puede usar funciones hash más largas, como SHA3, donde la posibilidad de colisiones es menor.

puede intentar generar sus propias funciones hash para SHA3 aquí y MD5 aquí.

puedes intentar usar hashes de fuerza bruta, pero lleva mucho tiempo. La forma más rápida de hacerlo, es usar tablas arcoíris pre-calculadas (que son similares a los ataques de diccionario).

parece muy fácil ser hackeado., ¿Debería preocuparme?

lo más importante a recordar sobre el hacking es que nadie quiere hacer más trabajo del que tiene que hacer. Por ejemplo, los hashes de fuerza bruta pueden consumir mucho tiempo y ser difíciles. Si hay una manera más fácil de obtener su contraseña, eso es probablemente lo que un actor nefasto intentará primero.

eso significa que habilitar las mejores prácticas básicas de seguridad cibernética es probablemente la forma más fácil de evitar ser hackeado. De hecho, Microsoft informó recientemente que solo habilitar 2FA terminará bloqueando el 99.9% de los ataques automatizados.,

Additional Reading:

Popular password cracking tools