Puede haber otras posibilidades dependiendo de los objetivos y suposiciones de su ejercicio de laboratorio. Suponiendo que el Ubuntu moderno (como dice su comentario posterior), el inventario descrito con una sal común es probablemente el más débil que puede usar de forma nativa con soporte completo :
$ echo -n 'password' | mkpasswd -s -S '00' -R 1 -m des
00xQPHYlVDIw6
Detalles:
La implementación de cripta moderna de Ubuntu intenta evitar que usted cree hashes demasiado débiles por diseño.
Aparte de la criptografía Unix nativa (descrypt), Ubuntu 16.04 tiene las siguientes opciones, desde crypt (3):
ID | Method
─────────────────────────────────────────────────────────
1 | MD5
2a | Blowfish (not in mainline glibc; added in some
| Linux distributions)
5 | SHA-256 (since glibc 2.7)
6 | SHA-512 (since glibc 2.7)
Primero, sobre la sal. Parece que solo estás generando un solo hash. Si estuvieras generando muchos hashes, podrías usar la misma sal fija / estática para todos ellos, lo que agilizaría el ataque. Usaré una sal de todos los ceros para simplificar.
descrypt ya no puede ser reconocido. /etc/pam.d/common-password
se refiere a "criptografía de Unix" como valor predeterminado, pero esto puede significar "la cripta del sistema por defecto del sistema operativo" en lugar de la descripción clásica. descrypt sería definitivamente el más débil si el sistema lo admite:
$ echo -n 'password' | mkpasswd -s -S '00' -R 1 -m des
00xQPHYlVDIw6
Nota : en mis pruebas, todavía pude usar una contraseña descrita para iniciar sesión en un sistema Ubuntu. Puede intentar describirlo, pero la documentación de PAM no lo incluye explícitamente, por lo que puede o no funcionar para sus propósitos .
Blowfish / bcrypt (2a y / o 2y) es por mucho el más lento, y parece que no es compatible con Ubuntu, así que lo descartaremos.
MD5crypt tiene un número fijo de rondas (1000), que es una de las razones por las que ahora está en desuso . Y es más rápido (y por lo tanto más débil) que SHA-256 o SHA-512.
$ echo -n 'password' | mkpasswd -s -S '00000000' -m md5
$1$00000000$5ybxs8yjIGjFJv4/CuHRd1
Entre SHA-256 y SHA-512, SHA-256 es un hash más rápido y, por lo tanto, sería teóricamente "más débil" para tus propósitos.
Verifiqué para ver si podía debilitar los SHA al reducir el número de rondas. Parece que no hay una manera simple / ingenua de hacer esto. El comando nativo de Ubuntu mkpasswd
llama a la función de cifrado subyacente, que ignora los valores de -R
por debajo de 1000 por diseño:
SHA-256:
$ echo -n 'password' | mkpasswd -s -S '00000000' -R 1 -m sha-256
$5$rounds=1000$00000000$2h.5f29uvvoub7RFoFxxMG4Yg43KX3rL0rF8vn3CIPC
SHA-512:
$ echo -n 'password' | mkpasswd -s -S '00000000' -R 1 -m sha-512
$6$rounds=1000$00000000$hNBmdrAfQPp5VkP/POLNOo3Dv1tVsOORYGE4pKarVzYs43iS2GdEkUrPU2Xbo6m5mX8PPDPfcQvFKo7Ktar.W.
Podría intentar encontrar una implementación independiente de una de estas que no utilice las bibliotecas criptográficas del sistema y le permita anular las rondas. Pero no hay garantía de que las utilidades que necesitan interpretar el hash entiendan o respeten un valor inferior al mínimo esperado (1000). (Si estuviera escribiendo una utilidad de este tipo, rechazaría como no válido cualquier hash con menos rondas de las que esperaba)
Eso nos deja con mínimos nativos para el número de rondas. Para ilustrar las velocidades relativas, aquí hay algunas velocidades de referencia de hashcat (de un sistema con seis GTX 970s):
Hashtype: bcrypt, Blowfish(OpenBSD) 39955 H/s
Hashtype: sha512crypt, SHA512(Unix) 426.6 kH/s
Hashtype: sha256crypt, SHA256(Unix) 1017.3 kH/s
Hashtype: md5crypt, MD5(Unix), FreeBSD MD5, Cisco-IOS MD5 28070.8 kH/s
Hashtype: descrypt, DES(Unix), Traditional DES 2645.3 MH/s
Por lo tanto, el más débil que se garantiza que sea compatible con el Ubuntu moderno es actualmente md5crypt descrypt .