Dadas dos contraseñas, ¿cuál es la manera más rápida de comparar la fuerza de ellas con John?

5

Dadas dos contraseñas conocidas diferentes, llamémoslas A y B por ahora, ¿cuál es la forma más rápida de comparar su fortaleza con John the Ripper?

Sé que solo podría agregar dos usuarios a mi sistema Linux y ejecutar john en mi /etc/shadow . Será más eficiente simplemente extraer esos dos usuarios de /etc/shadow y ejecutar john solo en esos dos. Pero eso todavía usaría Blowfish o cualquier algoritmo seguro que se use, y no quiero probar el algoritmo, solo las contraseñas. Podría configurar mi sistema a un algoritmo más débil para ese propósito. Pero estoy buscando una manera aún más inteligente, más rápida. Preferiblemente, incluso agregar un diccionario personalizado para las palabras que podrían usarse en una de las contraseñas.

El caso de uso real es comparar la fuerza entre:

  • una contraseña un poco más larga que contiene palabras de un diccionario pero que está ofuscada para usar caracteres de cuatro clases de caracteres
  • una contraseña un poco más corta que usa caracteres de tres clases de caracteres pero no entradas de diccionario
pregunta Christian Hujer 18.01.2018 - 06:56
fuente

1 respuesta

11

Básicamente, no hay manera de determinar qué contraseña es más fuerte en términos absolutos porque la fuerza de las contraseñas depende de la forma en que un atacante se está acercando a descifrar las contraseñas. Sin embargo, es posible averiguar (para una lista de palabras determinada y un conjunto de reglas de manipulación) cuál será el primero en ser atacado por un atacante.

Comience por determinar qué lista de palabras y reglas desea utilizar. Probablemente usaría la rockyou.txt lista de palabras que es bien conocida y la combinaría con uno de los conjuntos de reglas aparece en la wiki de openwall .

Puede ejecutar john en un modo en el que, en lugar de descifrar contraseñas, solo generará las contraseñas candidatas que se intentarán. Esto se llama modo stdout . Por ejemplo, puedes usar:

john --wordlist=rockyou.txt --rules=Korelogic --stdout

Esto producirá una lista de todas las contraseñas candidatas, en el orden en que serían probadas por JtR. Si tiene suficiente espacio en el disco, puede simplemente enviar esto a un archivo para su posterior análisis. Si realmente solo te importan las dos (o más) contraseñas que estás estudiando, simplemente puedes grep para que obtengan el orden en el que se intentarán:

john --wordlist=rockyou.txt --rules=Korelogic --stdout | grep -E -n '^(password1|password2)$'

Gracias a Hector por recordarme la marca -n para grep. Esto le dará el número de línea para cada una de las contraseñas cuando se intente, y le mostrará (relativamente) cuán lejos está la lista de contraseñas generadas, en otras palabras, qué tan rápido las recibe un atacante.

Alternativamente, grep como sigue (sugerido por dave_thompson_085) para no preocuparse por los caracteres especiales:

john --wordlist=rockyou.txt --rules=Korelogic --stdout | grep -n -x -F -e 'password1' -e 'password2'
    
respondido por el David 18.01.2018 - 07:07
fuente

Lea otras preguntas en las etiquetas