Esto lo hago para comprobar la fuerza de las contraseñas de los usuarios de un ldap. En mi caso, las contraseñas están almacenadas en base64, y después encriptadas normalmente con ssha.
Fácil. Primero sacamos la relación de usuarios y contraseñas, pero ojo, john the ripper no entiende base64, así que hay que decodificar la salida de, por ejemplo, slapcat:
slapcat | awk 'BEGIN{uidFound=0};$1 ~ /^uid:/{uid=$2;uidFound=1};$1 ~ /^userPassword::/ && uidFound == 1{printf uid":";system("echo " $2 "|base64 -d"); print "";uidFound=0};$0 == ""{uidFound=0}'
Con esto, obtenemos una salida similar a:
user1:{SSHA}dfijogi29304ur8rhffgvf
user2:{SSHA}fgfn408rhsdjnfsjkkgfgg
Copiamos esto a un archivo y le pasamos el john:
[bash]
./john pwdFile
[/bash]
Y si consigue descrifrar algún password lo vemos con:
[bash]
./john –show pwdFile
[/bash]
Claro, esto es lo que uso yo. Seguramente el awk o slapcat habrá que adaptarlo a los diferentes casos.
NOTA: recomiendo usar la versión ‘jumbo’ de john: http://www.openwall.com/john/
John the ripper contra LDAP