Kode untuk menghasilkan hash kata sandi "rahasia" Cisco?

12

Apakah ada yang punya pointer ke kode (atau hanya algoritma) yang digunakan Cisco untuk menghasilkan hash kata sandi mereka untuk hal-hal seperti "aktifkan rahasia"?

Saya tidak mencoba membobol apa pun; Saya mencoba untuk menghasilkan baris "aktifkan" yang sesuai dengan kata sandi teks yang jelas, bukan menafsirkan kode "aktifkan" yang ada dengan kata sandi hash. Saya memerlukan ini untuk generator file konfigurasi otomatis yang sedang saya kerjakan ( Netomata Config Generator ).

Pada dasarnya, yang saya inginkan adalah Cisco yang setara dengan perintah "htpasswd" yang digunakan untuk server web.

Misalnya, ketika saya meletakkan perintah berikut dengan kata sandi teks-jelas ke dalam konfigurasi Cisco:

enable secret foobar

lalu ketika saya melakukan perintah 'show config' (dengan asumsi saya mengaktifkan "enkripsi kata sandi layanan"), apa yang saya lihat adalah sesuatu seperti ini:

enable secret 5 $1$pdQG$0WzLBXV98voWIUEdIiLm11

Saya ingin kode yang menerjemahkan "foobar" menjadi "5 $ 1 $ pdQG $ 0WzLBXV98voWIUEdIiLm11", sehingga saya dapat menghasilkan kata sandi yang sudah di-hash di alat generasi konfigurasi saya, daripada meletakkan kata sandi teks di konfigurasi yang dibuat dan menunggu router untuk membuat menghasilkan hash.

Saya menganggap bahwa "5" dalam hasil hash adalah semacam pengidentifikasi algoritma hash. Jika ada algoritma hash lain yang digunakan Cisco saat ini atau secara historis, maka saya ingin memiliki kode untuk algoritma tersebut juga.

Brent Chapman
sumber

Jawaban:

18

Sesuai situs web ini , utilitas baris perintah OpenSSL muncul untuk menyediakan fungsionalitas yang Anda butuhkan:

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

Dan mungkin ada fungsi yang setara di perpustakaan itu sendiri.

Saya tidak yakin apakah iOS mengharuskan Anda untuk menggunakan nilai garam tertentu, tetapi secara teknis tidak ada alasan mengapa harus selama string yang Anda berikan dalam perintah 'aktifkan rahasia' Anda adalah intisari kata sandi MD5 yang valid. Jika Anda memiliki kesempatan untuk menguji, saya akan tertarik untuk mengetahui hasil Anda.

Murali Suriar
sumber
11

Cisco tampaknya membutuhkan garam 4 karakter. Secara default, tanpa argumen " -salt garam ", opensslakan menghasilkan garam 8 karakter.

Anda dapat menggunakan openssluntuk menghasilkan hash "cleartext" yang kompatibel dengan Cisco dengan garam 4 karakter acak yang sesuai, seperti:

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

openssl rand -base64 3Sub-perintah " " menghasilkan 3 byte acak dan kemudian mengkodekannya dalam format base64, yang memberi Anda 4 karakter yang dapat dicetak (persis apa yang Anda butuhkan untuk garam yang kompatibel dengan Cisco).

Terima kasih kepada Murali Suriar untuk jawaban (di bagian lain halaman ini) yang membuat saya memulai jalan yang benar menuju solusi ini.

Brent Chapman
sumber
3

5 Saya percaya merujuk pada fakta bahwa itu tipe 5, yang menggunakan MD5, yang berarti Anda akan membutuhkan 300 playstation 3s . Tipe 7 mudah retak dan mereka bahkan memiliki skrip di situs web untuk itu. Ini mungkin lebih baik ditanyakan di Stackoverflow.

Terry
sumber
1
+1 untuk jawaban yang lucu :) Anehnya, ini juga memberi saya harapan bahwa mungkin sekarang, dengan menggunakan artikel itu saya bisa mulai membuat bos saya membelikan kami playstations ..
Greg Meehan
3

Berikut ini adalah referensi bagus http://haxcess.com/2008/10/21/cisco-password-recovery/

Intinya adalah hash dipecah menjadi beberapa bagian

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

Inilah solusi Perl yang telah memberikan keajaiban bagi saya di masa lalu. Letakkan bayi ini dalam satu lingkaran dan biarkan berjalan.

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

'5' berarti bahwa kata sandi yang jelas telah dikonversi menjadi kata sandi cisco tipe 5. Kata sandi tipe 5 adalah algoritma berbasis MD5 (tapi saya tidak dapat memberi tahu Anda cara menghitungnya, maaf). Tipe 7 yang digunakan saat Anda melakukan "aktifkan kata sandi" adalah algoritma yang dapat dibalik. "enkripsi kata sandi layanan" hanya memastikan bahwa kata sandi tidak akan disimpan dengan jelas (tipe 0)

Lihatlah http://en.wikipedia.org/wiki/Crypt_(Unix)#MD5-based_scheme dan semoga sukses :)

EDIT: Anda juga dapat melihat http://www.h4x3d.com/md5-and-crypt-password-generator/ , http://www.koders.com/c/fid530E8983791E1CB2AB90EAA69A68789FA2A83A6D.aspx dan http: //www.cryptgenerator .de /

radius
sumber