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

12

¿Alguien tiene un puntero para codificar (o solo el algoritmo) que Cisco utiliza para generar sus hashes de contraseña para cosas como "habilitar secreto"?

No estoy tratando de entrar en nada; Estoy tratando de generar la línea "habilitar secreto" apropiada dada una contraseña de texto claro, no decodificar una línea existente "habilitar secreto" con una contraseña hash. Necesito esto para un generador de archivos de configuración automatizado en el que estoy trabajando ( Netomata Config Generator ).

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

Por ejemplo, cuando pongo el siguiente comando con contraseña de texto claro en una configuración de Cisco:

enable secret foobar

luego, cuando hago un comando 'show config' (suponiendo que tengo habilitado el "cifrado de contraseña de servicio"), lo que veo es algo como esto:

enable secret 5 $1$pdQG$0WzLBXV98voWIUEdIiLm11

Quiero un código que traduzca "foobar" a "5 $ 1 $ pdQG $ 0WzLBXV98voWIUEdIiLm11", de modo que pueda generar las contraseñas ya borradas en mi herramienta de generación de configuración, en lugar de poner contraseñas de texto sin formato en las configuraciones generadas y esperar a que el enrutador generar el hash

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

Brent Chapman
fuente

Respuestas:

18

Según este sitio web , la utilidad de línea de comandos OpenSSL parece proporcionar la funcionalidad que necesita:

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

Y presumiblemente hay una función equivalente en la biblioteca misma.

No estoy seguro de si IOS requiere que use valores de sal específicos, pero técnicamente no hay ninguna razón por la que debería hacerlo, siempre que la cadena que proporcione en su comando 'enable secret' sea un resumen de contraseña MD5 válido. Si tiene la oportunidad de realizar una prueba, me interesaría conocer sus resultados.

Murali Suriar
fuente
11

Cisco parece requerir una sal de 4 caracteres. Por defecto, sin el argumento " -salt salt ", opensslgenerará un salt de 8 caracteres.

opensslSin embargo, puede usar para generar un hash compatible con Cisco de "texto claro" con una sal aleatoria apropiada de 4 caracteres:

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

El openssl rand -base64 3subcomando " " genera 3 bytes aleatorios y luego los codifica en formato base64, lo que le proporciona 4 caracteres imprimibles (exactamente lo que necesita para una sal compatible con Cisco).

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

Brent Chapman
fuente
3

5 Creo que se refiere al hecho de que es de tipo 5, que usa MD5, lo que significa que necesitarás 300 playstation 3 . Type 7 se puede descifrar fácilmente e incluso tienen scripts en sitios web para ello. Esto podría preguntarse mejor en Stackoverflow.

Terry
fuente
1
1 para la respuesta divertida :) Curiosamente, esto también me da alguna esperanza de que tal vez ahora, el uso de ese artículo que puedo empezar a recibir mi jefe para comprar consolas de videojuegos ..
Greg Meehan
3

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

La conclusión es que el hash se divide en algunas partes

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

Aquí hay una solución de Perl que me ha funcionado de maravilla en el pasado. Pon a este bebé en un bucle y déjalo correr.

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

'5' significa que la contraseña clara se ha convertido a la contraseña de Cisco tipo 5. La contraseña de tipo 5 es un algoritmo basado en MD5 (pero no puedo decirle cómo calcularla, lo siento). El tipo 7 que se utiliza cuando se hace una "contraseña de habilitación" es un algoritmo reversible bien conocido. "cifrado de contraseña de servicio" solo asegúrese de que la contraseña no se almacenará en claro (tipo 0)

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

EDITAR: También puede consultar http://www.h4x3d.com/md5-and-crypt-password-generator/ , http://www.koders.com/c/fid530E8983791E1CB2AB90EAA69A68789FA2A83A6D.aspx y http: //www.cryptgenerator .Delaware/

radio
fuente