John The Ripper Kullanarak Cisco Type 5 Parolalarını Kırma

Cisco ağ cihazlarında iki tip parola vardır. Bunlar Type 7 ve type 5 parola tipleridir.

enable secret 5 $1$0a4m$jsbSzU.vytsZFISdJtbQI4
enable password 7 062E0A1B76411F2D5C

Type 7 kolaca “çözülebilir” bir algoritma kullanmaktadır. Internet üzerinden edinilecek çeşitli araçlarla type7 parolaları rahatlıkla çözülebilir. (http://www.ibeast.com/content/tools/CiscoPassword/index.asp)

Type 5(enable secret), md5+salt kullanarak saklamaktadır parolayı. Örnek  olarak FreeBSD parola tipi alınmıştır. Dolayısıyla JTR’in Cisco parolalarını kırması için herhangi bir ek yama gerektirmez.

Örnek Cisco type 5 parolası:  $1$WhZT$YYEI3f0wwWJGAXtAayK/Q.

Bu parolayı cisco_type5 adlı bir dosyaya ekleyerek aşağıdaki komutla kırma işlemi başlatılabilir.

# ./john cisco_type5
Loaded 1 password hash (FreeBSD MD5 [32/32])
test              ?
guesses: 1  time: 0:00:00:02 100.00% (2) (ETA: Thu Nov 25
03:40:51 2010)  c/s: 7116  trying: test

Burada seçilen parola basit olduğu için kolaylıkla kırılmıştır. Parolanın daha zor olduğu durumlarda
JTR’in ileri seviye özellikleri kullanılması gerekebilir.

Mesela kırılmak istenen parolanın  JTR’in varsayılan sözlük listesinde olmadığını varsayalım. Bu durumda ya kaba kuvvet denemesi(brute force) ya da sözlük saldırısı denemesi gerçekleştirebiliriz.

Kaba ku vvet parola saldırısı çok uzun süreceği için sözlük yöntemini tercih edelim. JTR’a sözlük kullanmasını  -w:dosya_adi parametresiyle aktarabiliriz.

# ./john
-w:son_wordlist_turkce cisco_type5_test

Loaded 1 password hash (FreeBSD MD5 [32/32])
guesses: 0  time: 0:00:00:04 3.48% (ETA: Thu Nov 25 03:53:43
2010)  c/s: 7353  trying: ow8

deneme        (bga)

Çıktıdan görüleceği gibi JTR’in md5+salt değeri kullanılan parola formatlarına karşı hızı çok yüksek değil(saniyede ~7500 deneme). Bunun temel nedeni sözlük listesindeki her bir satırı alıp öncelikle hash oluşturup sonra varolan hash
değeriyle karşılaştırmasıdır.

Oysa burada rainbowtable kullanabilseydik işimiz birkaç saniye sürecekti. Fakat rainbowtable’ı kendimiz oluşturmamız gerekiyor. Neden? Zira internet üzerinde bizim parolamız için kullanılan tuz değerinin aynısının kullanıldığı rainbowtable bulmak pratik olarak imkansızdır.