Heurística de fuerza bruta utilizada en el craqueo de contraseñas

6

Preguntas existentes en este sitio analice algunas de las heurísticas utilizadas por las herramientas de descifrado de contraseñas para evitar realizar una búsqueda de fuerza bruta completamente ingenua (por ejemplo, "palabra del diccionario con sustituciones de números más dos caracteres" en lugar de "8 caracteres aleatorios").

Obviamente, cualquier herramienta recientemente desarrollada podría incorporar cualquier heurística que el autor pueda imaginar. Pero tengo curiosidad ... ¿qué estrategias utilizan las contraseñas comunes que existen hoy en día?

    
pregunta jrdioko 30.08.2011 - 01:46
fuente

4 respuestas

3

Como dice Jim, hay dos enfoques principales:

  • Pruebe muchas posibilidades de una lista (diccionario / lista de palabras)
  • Enumerar todas las posibilidades (fuerza bruta)

Cada uno de estos tiene trucos que se pueden usar para mejorar el tiempo promedio de crack:

Para un diccionario / lista de palabras podemos:

  • use una lista de palabras de contraseñas o frases comunes, no solo palabras comunes
  • agregue palabras específicas del sitio / dominio (por ejemplo, "psp" si ataca la lista de Sony)
  • agregue palabras específicas del usuario (por ejemplo, nombre de usuario / ubicación, etc. de LDAP; esto podría extenderse para incluir "resultados de googlear" e información de ingeniería social como "Joshua")
  • agregue "frases de paso" a la lista de palabras (por ejemplo, frases de la Biblia)
  • genere variantes para cada palabra usando varios patrones comunes de "complejización" (l33t, pre / sufijo numérico, iniciales iniciales, etc., y combinaciones de patrones)
  • ordene la lista de palabras (y las variantes generadas) en función de la probabilidad presunta

Para la fuerza bruta podemos:

  • utilice combinaciones de frecuencia de letras en el idioma de destino (por ejemplo, dígrafos y trígrafos) para centrar los esfuerzos en las secuencias "más probables" primero ("fuerza inteligente")
  • use una lista de palabras (en lugar de letras / dígitos / símbolos) como bloques de construcción, para tratar de descifrar una frase de contraseña

Tanto el diccionario como la fuerza bruta pueden optimizarse en el caso de "hashes sin sal no filtrados" (muy común) mediante el uso de una tabla de arco iris, que contiene hashes precalculados para muchos millones de contraseñas candidatas, por ejemplo. para las 8 combinaciones de caracteres.

A excepción de las palabras de lista / contraseña, las "frases de la biblia" y las palabras específicas del usuario, todas estas técnicas son compatibles con las herramientas existentes y en uso. Los patrones de "complejación" utilizados dependen de la herramienta: mayúsculas iniciales, pre / sufijo numérico, l33t son comunes; Dígito / símbolo en el medio, tal vez menos, pero ciertamente compatible.

Las listas de palabras específicas del usuario son compatibles con las herramientas, pero no son de uso común contra las cuentas web, AFAIK, donde obtener fruta de bajo rendimiento proporciona el mejor rendimiento. También se pueden proporcionar listas de palabras personalizadas, de la Biblia o en cualquier otro lugar. Es más probable que estas técnicas se usen cuando hay un objetivo específico.

    
respondido por el Misha 31.08.2011 - 09:03
fuente
4

Como ya se mencionó, en realidad solo hay dos formas principales de abordar el problema (basado en fuerza bruta y diccionario) (asumiendo que la contraseña no está protegida por un algoritmo o implementación defectuosa). Por lo que he visto el complemento principal de esas estrategias es intentar agregar un elemento de probabilidad al craqueo, por lo que si sabemos que la contraseña '123456' es muy común para las listas de contraseñas similares a la que tenemos ' re mirando empezamos con eso.

Hubo una presentación interesante en Defcon hace un par de años sobre esto (enlace here ) que cubrió parte de esto en torno a las estrategias probabalísticas de cracking y manipulación de palabras para los ataques de diccionario. También hay algunos buenos enlaces hacia adelante en la presentación.

También hay una buena colección de listas de palabras de la base de datos de contraseñas crackeadas en el sitio de seguridad de skull aquí algunas de los cuales ya están listados por probabilidad.

    
respondido por el Rоry McCune 31.08.2011 - 09:41
fuente
2

Eche un vistazo a Supercharged John the Ripper Techniques . Explica con bastante detalle los métodos y las técnicas de descifrado de contraseñas (cómo utilizar el software de descifrado de contraseñas de manera eficiente).

Creo que ofrece un buen punto de vista sobre toda la "operación de descifrado de contraseñas". Además, habla de cómo crear contraseñas "que no se basan en patrones conocidos ".

    
respondido por el timoh 31.08.2011 - 11:08
fuente
1

Los dos grandes son el diccionario y la fuerza bruta. Como saben, la fuerza bruta es bastante ineficiente cuando el número de caracteres aumenta. Claro que la gente podría desarrollar un análisis estadístico para descifrar contraseñas, pero la verdad es que a nadie le importa. La mayoría de las contraseñas no se obtienen de las contraseñas que se descifran, sino que se diseñan socialmente. Aquellos que no son de ingeniería social están resquebrajados por una vulnerabilidad en el código, o por tomar de una base de datos que probablemente no saltó los hashes.

Por ejemplo, en las noticias de estos días, las personas están volcando archivos de contraseñas en el rango de MB, ninguna de esas contraseñas fue forzada o descifrada.

Ahora, si nos fijamos en las herramientas comunes de descifrado de contraseñas, por ejemplo, John the Ripper (mi favorito personal), verá que realmente no emplea ninguna técnica "inteligente". Puede usar la fuerza bruta, puede usar un diccionario (u otra lista de palabras), o puede usar contraseñas comunes principales.

En el futuro, podría ver que los crackers de contraseñas se personalizan (como los medicamentos), no quieres tener una gran lista de contraseñas que un objetivo nunca pensaría, quieres apuntar a esa persona y sabes algo sobre esto persona. Podría darle a su herramienta el nombre de un sitio de redes sociales y solicitar que extraiga datos, abstrayendo contraseñas. O puede darle otra información personal.

Una cosa a tener en cuenta es que siempre es más fácil atacar a la persona que a la máquina (en general). Esos son mis dos centavos en esto.

    
respondido por el Jim 30.08.2011 - 19:04
fuente

Lea otras preguntas en las etiquetas