Codice per generare hash password "segreti" di Cisco?


12

Qualcuno ha un puntatore al codice (o solo all'algoritmo) che Cisco utilizza per generare gli hash delle password per cose come "abilita segreto"?

Non sto cercando di entrare in nulla; Sto provando a generare la riga "abilita segreto" appropriata con una password in chiaro, non a decodificare una riga "abilita segreto" esistente con una password con hash. Ho bisogno di questo per un generatore di file di configurazione automatizzato su cui sto lavorando ( Netomata Config Generator ).

Fondamentalmente, quello che voglio è l'equivalente Cisco del comando "htpasswd" utilizzato per i server Web.

Ad esempio, quando inserisco il seguente comando con password in chiaro in una configurazione Cisco:

enable secret foobar

quindi quando eseguo un comando 'show config' (supponendo che abbia abilitato "crittografia password di servizio"), quello che vedo è qualcosa del genere:

enable secret 5 $1$pdQG$0WzLBXV98voWIUEdIiLm11

Voglio il codice che traduce "foobar" in "5 $ 1 $ pdQG $ 0WzLBXV98voWIUEdIiLm11", in modo da poter generare le password già hash nel mio strumento di generazione della configurazione, piuttosto che mettere password in chiaro nei config generati e attendere che il router lo genera l'hash.

Presumo che il "5" nel risultato con hash sia una sorta di identificatore dell'algoritmo hash. Se ci sono altri algoritmi di hash che Cisco attualmente o ha usato storicamente, allora vorrei avere il codice anche per quegli algoritmi.

Risposte:


18

Secondo questo sito Web , l'utilità della riga di comando OpenSSL sembra fornire le funzionalità necessarie:

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

E c'è presumibilmente una funzione equivalente nella libreria stessa.

Non sono sicuro che IOS richieda l'utilizzo di specifici valori salt, ma tecnicamente non vi è alcun motivo per cui dovrebbe, purché la stringa fornita nel comando "abilita segreto" sia un digest della password MD5 valido. Se hai l'opportunità di testare, sarei interessato a conoscere i tuoi risultati.


11

Cisco sembra richiedere un sale di 4 caratteri. Per impostazione predefinita, senza l' argomento " -salt salt ", opensslverrà generato un salt di 8 caratteri.

È possibile utilizzare opensslper generare un hash compatibile con Cisco di "cleartext" con un salt casuale casuale di 4 caratteri, tuttavia, in questo modo:

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

Il " openssl rand -base64 3" comando secondario genera 3 byte casuali e quindi li codifica in formato base64, che ti dà 4 caratteri stampabili (esattamente ciò di cui hai bisogno per un sale compatibile con Cisco).

Grazie a Murali Suriar per la risposta (altrove in questa pagina) che mi ha fatto iniziare la strada giusta per questa soluzione.


3

5 Credo che si riferisca al fatto che è di tipo 5, che utilizza MD5, il che significa che avrai bisogno di 300 playstation 3 . Il tipo 7 è facilmente crackabile e hanno persino script sui siti Web per questo. Questo potrebbe essere meglio chiesto su StackOverflow.


1
+1 per la risposta divertente :) Stranamente, questo mi dà anche qualche speranza che forse adesso, usando quell'articolo, posso iniziare a convincere il mio capo a comprarci delle stazioni di gioco ..
Greg Meehan,

3

Ecco un ottimo riferimento http://haxcess.com/2008/10/21/cisco-password-recovery/

La linea di fondo è che l'hash è suddiviso in alcune parti

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

Ecco una soluzione Perl che ha fatto miracoli per me in passato. Metti questo bambino in un ciclo e lascialo correre.

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

1

'5' significa che la password di cancellazione è stata convertita in password di tipo cisco 5. La password di tipo 5 è un algoritmo basato su MD5 (ma non posso dirti come calcolarla, scusa). Digitare 7 che viene utilizzato quando si fa una "password abilitata" è un algoritmo reversibile ben noto. "crittografia password di servizio" assicurati solo che la password non venga archiviata in chiaro (tipo 0)

Dai un'occhiata a http://en.wikipedia.org/wiki/Crypt_(Unix)#MD5-based_scheme e buona fortuna :)

EDIT: Puoi anche consultare http://www.h4x3d.com/md5-and-crypt-password-generator/ , http://www.koders.com/c/fid530E8983791E1CB2AB90EAA69A68789FA2A83A6D.aspx e http: //www.cryptgenerator .de /

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.