Código para gerar hashes de senha "secretos" da Cisco?

12

Alguém tem um ponteiro para codificar (ou apenas o algoritmo) que a Cisco usa para gerar seus hashes de senha para coisas como "ativar segredo"?

Não estou tentando arrombar nada; Estou tentando gerar a linha "ativar segredo" apropriada, com uma senha em texto não criptografado, não decodificar uma linha "ativar segredo" existente com uma senha com hash. Eu preciso disso para um gerador automatizado de arquivos de configuração que eu estou trabalhando ( Netomata Config Generator ).

Basicamente, o que eu quero é o equivalente da Cisco ao comando "htpasswd" usado para servidores web.

Por exemplo, quando eu coloco o seguinte comando com senha de texto não criptografado em uma configuração da Cisco:

enable secret foobar

então, quando eu faço um comando 'show config' (supondo que eu tenha "service password-encryption" ativado), o que vejo é algo como isto:

enable secret 5 $1$pdQG$0WzLBXV98voWIUEdIiLm11

Quero um código que traduza "foobar" para "5 $ 1 $ pdQG $ 0WzLBXV98voWIUEdIiLm11", para que eu possa gerar as senhas já com hash na minha ferramenta de geração de configuração, em vez de colocar senhas de texto não criptografado nas configurações geradas e aguardar o roteador gerar o hash.

Presumo que o "5" no resultado do hash seja algum tipo de identificador do algoritmo de hash. Se houver outros algoritmos de hash usados ​​pela Cisco atualmente ou historicamente, eu gostaria de ter o código para esses algoritmos também.

Brent Chapman
fonte

Respostas:

18

De acordo com este site , o utilitário de linha de comando OpenSSL parece fornecer a funcionalidade que você precisa:

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

E presumivelmente existe uma função equivalente na própria biblioteca.

Não tenho certeza se o IOS exige que você use valores de sal específicos, mas tecnicamente não há razão para isso, desde que a string fornecida no comando 'enable secret' seja um resumo de senha MD5 válido. Se você tiver a oportunidade de testar, ficaria interessado em conhecer seus resultados.

Murali Suriar
fonte
11

A Cisco parece exigir um sal de 4 caracteres. Por padrão, sem o argumento " -salt salt ", opensslirá gerar um salt de 8 caracteres.

Você pode usar opensslpara gerar um hash de "texto não criptografado" compatível com Cisco com um sal aleatório apropriado de 4 caracteres, da seguinte forma:

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

O openssl rand -base64 3subcomando " " gera 3 bytes aleatórios e depois os codifica no formato base64, que fornece 4 caracteres imprimíveis (exatamente o que você precisa para um sal compatível com a Cisco).

Agradeço a Murali Suriar pela resposta (em outras partes desta página) que me levou a seguir o caminho certo para esta solução.

Brent Chapman
fonte
3

5 Creio que se refere ao fato de ser do tipo 5, que usa MD5, o que significa que você precisará de 300 playstation 3s . O tipo 7 é facilmente decifrado e eles ainda têm scripts em sites para isso. Isso pode ser melhor solicitado no Stackoverflow.

Terry
fonte
1
+1 para a resposta engraçado :) Estranhamente, isso também me dá alguma esperança de que talvez agora, com esse artigo eu posso começar a receber o meu patrão para comprar nos playstations ..
Greg Meehan
3

Aqui está uma ótima referência http://haxcess.com/2008/10/21/cisco-password-recovery/

Bottom line é o hash é dividido em algumas partes

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

Aqui está uma solução Perl que fez maravilhas para mim no passado. Coloque este bebê em um loop e deixe correr.

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

'5' significa que a senha limpa foi convertida para a senha do Cisco tipo 5. A senha do tipo 5 é um algoritmo baseado em MD5 (mas não sei como calcular, desculpe). O tipo 7 usado quando você "habilita a senha" é um algoritmo reversível conhecido. "service password-encryption" apenas garanta que a senha não seja armazenada em claro (tipo 0)

Dê uma olhada em http://en.wikipedia.org/wiki/Crypt_(Unix)#MD5-based_scheme e boa sorte :)

EDIT: Você também pode procurar http://www.h4x3d.com/md5-and-crypt-password-generator/ , http://www.koders.com/c/fid530E8983791E1CB2AB90EAA69A68789FA2A83A6D.aspx e http: //www.cryptgenerator .de /

raio
fonte