14 votos

¿Código para generar hashes de contraseña "secreta" de Cisco?

¿Alguien tiene un puntero al código (o simplemente el algoritmo) que Cisco utiliza para generar sus valores hash de contraseña para cosas como "enable secret"?

No estoy tratando de romper en nada; estoy tratando de generar el correspondiente "enable secret" línea dado una contraseña de texto sin cifrar, no decodificar una existente "enable secret" de la línea con un hash de la contraseña. Necesito esto para un sistema automatizado de archivo de configuración del generador de la que estoy trabajando (Netomata de configuración del Generador).

Básicamente, lo que quiero es el Cisco equivalente de la "htpasswd" comando utilizado para los servidores web.

Por ejemplo, cuando tengo que poner el siguiente comando con el claro texto de la contraseña en un Cisco config:

enable secret foobar

luego, cuando tengo que hacer un 'show config' comando (suponiendo que tengo "service password-encryption" (encriptación activada), lo que veo es algo como esto:

enable secret 5 $1$pdQG$0WzLBXV98voWIUEdIiLm11

Quiero el código que se traduce "foobar" a "5 $1$pdQG$0WzLBXV98voWIUEdIiLm11", por lo que puede generar el ya-hash de las contraseñas en mi config-herramienta de generación, en lugar de poner contraseñas sin cifrar generado en la configs y esperando el router para generar el hash.

Supongo que el "5" en el hash resultado es algún tipo de algoritmo de hash identificador. Si hay otros algoritmos de hash que, actualmente, Cisco o ha utilizado históricamente, a continuación, me gustaría tener el código de los algoritmos así.

18voto

Murali Suriar Puntos 6391

Según este sitio web, el OpenSSL utilidad de línea de comando aparece para proporcionar la funcionalidad que usted necesita:

$ openssl passwd -1 -salt pdQG -table foobar
foobar  $1$pdQG$0WzLBXV98voWIUEdIiLm11
$

Y no es, presumiblemente, una función equivalente en la propia biblioteca.

No estoy seguro de si IOS requiere el uso específico de valores de sal, pero que técnicamente no hay ninguna razón por la que debiera mientras la cadena que proporciona en su 'enable secret' comando es válido contraseña MD5 digest. Si usted tiene la oportunidad de poner a prueba, me interesaría conocer sus resultados.

11voto

JoelB Puntos 84

Cisco parece requerir un 4-carácter de la sal. Por defecto, sin el "-salt de sal" argumento, openssl generará un carácter de 8 de sal.

Usted puede utilizar openssl para generar un Cisco compatible con el hash de "texto sin formato", con una adecuada aleatoria de 4 caracteres de la sal, sin embargo, así:

openssl passwd -salt `openssl rand -base64 3` -1 "cleartext"

El "openssl rand -base64 3" sub-comando genera 3 bytes aleatorios y, a continuación, los codifica en formato base64, que le da 4 caracteres imprimibles (exactamente lo que usted necesita para una de Cisco compatible con la sal).

Gracias a Murali Suriar de la respuesta (en otra parte de esta página) que me comenzó a caminar por el camino correcto para esta solución.

3voto

ZnArK Puntos 541

Aquí es una gran referencia http://haxcess.com/2008/10/21/cisco-password-recovery/

Línea inferior es que el hash se descompone en algunas partes

  -> Indicates MD5 algorithm
 |   -> Salt
 |  |     -> Salt + Password Hash
 |  |    |
$1$mERr$RchIrJirmCXltFBZ2l50l/

Aquí es una solución de Perl que ha trabajado maravillas para mí en el pasado. Ponga a este bebé en un bucle y déjala correr.

#!/usr/bin/perl
use Crypt::PasswdMD5;
my $hash = unix_md5_crypt('password','salt')

2voto

Graeme Perrow Puntos 22249

5 que yo creo que se refiere al hecho de que es tipo 5, que utiliza MD5, que significa que vas a necesitar 300 playstation 3s. Tipo 7 es agrietado fácilmente y tienen secuencias de comandos en sitios web para ello. Esto podría ser mejor pidió en Stackoverflow.

1voto

radius Puntos 7838

'5' significa que la clara contraseña ha sido convertida a cisco tipo de contraseña 5. Tipo 5 de la contraseña es un MD5 basado en el algoritmo (pero yo no te puedo decir cómo calcular, lo siento). Tipo 7 que se utiliza cuando usted hace una "habilitar contraseña" es un conocido algoritmo reversible. "service password-encryption" solo asegúrate de que la contraseña no se almacena en claro (tipo 0)

Echa un vistazo a http://en.wikipedia.org/wiki/Crypt_(Unix)#MD5-based_scheme y buena suerte :)

EDIT: Usted puede mirar http://www.h4x3d.com/md5-and-crypt-password-generator/, http://www.koders.com/c/fid530E8983791E1CB2AB90EAA69A68789FA2A83A6D.aspx y http://www.cryptgenerator.de/

EnMiMaquinaFunciona.com

EnMiMaquinaFunciona es una comunidad de administradores de sistemas en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros sysadmin, hacer tus propias preguntas o resolver las de los demás.

Powered by: