Genel olarak bilgisayar ve ağ güvenliği ile ilgili ama ilgisiz konularda da bir şeyler karalanabilen kişisel bir blog

16 Şubat 2014 Pazar

Sızma Testlerinde Parola Kırma Saldırı Yöntem ve Araçları - II

Devam yazısı..
Bu bölümde hashcat, rainbow tableların kullanımı ve çok kısaca parola kırma saldırılarında GPUnun öneminden bahsedilmiştir.

Hashcat

CPU tabanlı işlem yapan en hızlı parola kırma araçlarından biridir. Gücünü aynı anda birden fazla thread çalıştırmasından alır. GPU ile işlem yapan oclHashcat daha hızlı bir kullanıma sahiptir.
oclHashcat’i kullanabilmek için sistemde doğru ekran kartı sürücüsü yüklü olmalıdır. Nvidia ve AMD için destek verilmektedir. Hem Windows’ta hem linux’ta (32 bit ve 64 bit) çalışır ve her ikisi içinde grafiksel arayüz(GUI) desteği vardır. Hashcat linkinden indirilebilir. Hashcat Linux’ta 7zip’ten
# 7z veya 7za e hashcat-***.7z         komutuyla çıkartılabilir.
Linux için indirilen 7zip klasörünün içinden hashcat-cli(32/64).bin (Windows için .exe uzantılı olan) dosyası ile  çalıştırılır. Sıkıştırılmış klasördeki diğer klasörler ve görevleri:
Rules/ - Hazır rule dosyaları bulunur.
Examples/ - Bu klasörde pratik yapmak için farklı özet alma fonksiyonları vardır. Örnek olarak A0.M0.word parolaları ,A0.M0.hash ise  MD5 ile özeti alınmış parolaları barındırır.  Salts/ - Genelde ileri seviye hashcat kullanımı için 3 bytelık salt (tuz) değerlerini barındırır.
Tables/ - Bu klasör --tables-min/max ve file switch için dosyaları barındırır. Parola için bilinen noktalar varsa yararlıdır.


Kullanım şekli:
hashcat [options] hashfile [mask|wordfiles|directories]
hashcat sisteminize göre hashcat-cli(32/64).(bin/exe)
options -m, -a, --show, -o , -e vs. kullanım amacına ve istenilen çıktıya göre değişir.
hashfile , özetleri alınmış parolaların bulunduğu dosya
mask|wordfiles|directories , kullanılacak sözlük,listeler...


Bazı options’ların açıklaması:
--remove : Kırılan bir parolanın tekrar kırılarak zaman kaybettirmemesi için kaldırılır.(Varsayılan olarak kullanılmaz)
--stdout : Taranan tüm sözcükleri ve özetleri ekrana yazar
--disable-potfile : Normalde kırılan parolalar hashcat.pot dosyasına yazılır . Bu seçenek  ile hashcatin kırılan paroları pot dosyasına yazması engellenir
--rules-file=FILE veya –r : Bu seçenek ile hashcate rule dosyası belirtilebilir.Örnek;
--rules-file=rules/best64.rule veya -r rules/best64.rule
--output-file=FILE veya –o : Kırılan parolalar belirtilen bir dosyaya yazmak için kullanılır.
--output-file=cracked.out or –o cracked.out
--salt-file=FILE veya –e : Önceden oluşturulmuş salt listeleri belirtilir. Default: not used
--seperator-char=CHAR veya –p : Hashlistte ayırıcı bir karakter tanımlamak için kullanılır. Örnek olarak  
özet:kullanıcı_adı:guid    
–p :         komutu hashcat’e kısımların hangi karakterle ayrıldığını söyler. Varsayılan olarak zaten “:” dır.
--threads veya –n : Multi-threaded işlemciler için. Sistemin dual core(iki çekirdek), quad core(dört çekirdek) olmasına göre sırasıyla -n 2 veya -n 4 olarak ayarlanabilir. İşlemci sayısıyla karıştırılmamalıdır. Çift işlemcili çift çekirdekli bir sistem için 2*2 -n 4 olarak ayarlanabilir. Genel formül -n (çekirdek sayısı)*(işlemci sayısı) dır. Varsayılan : 8
--segment-size=NUM veya –c : Sözlükler için bellekte yer ayrılır. Bu opsiyon ile ayırılacak bellek boyutu belirtilebilir.  Varsayılan: 32
-c 10 ile 10 MB lık bir bellek ayırılabilir.
--words-skip=NUM veya –s : Durdurulan bir tarama için belirtilen sayı kadar kelimenin  tekrar taranması engellenir. Böylece zamandan tasarruf edilir. Varsayılan olarak kullanılmaz
–s 100000     ile atlanacak kelime sayısı 100000 olarak belirtilebilir.
--words-limit=NUM veya –l : Aynı hashlist için farklı bilgisayarlarda yapılan işlemlerde kullanılacak kelime sayısı belirtilir.Böylece aynı kelimeler tekrar tekrar işleme sokulmaz
–l 20000    ile işleme sokulacak kelime sayısı 20000 olarak belirtilebilir.
--generate-rules=NUM veya –g : Hashcat’e NUM rule’ları (şart,kural) oluşturması söylenir.
–g 512        ile 512 tane rule oluşturulur. Büyük bir rule dosyasındansa hedefli farklı rule dosyaları parola kırma hızını artırabilir. Varsayılan olarak kullanılmaz.
--attack-mode=NUM veya –a : Kullanılacak saldırı tip buradan belirtilir. Varsayılan : 0
0 = Basit – Sözlükteki tüm kelimeleri hashlistteki ile karşılatırır. Sözlüğün kalitesi başarı oranını artırır. Örnek parola “test” olsun.
a0 ile “test” olarak aratılır.
1 = Combination – Sözlükteki kelimeleri birleştirir.
a1 ile “testtest” gibi   
2 = Toggle-Case – Büyük harfleri küçüğe , küçükler büyüğe değiştirilir. Sayılar ve karakterler yok sayılır.
a2 ile “TeSttEst” gibi kombinasyonlar denenir.
Not: -r ve -g ile sadece mod 1 ve mod 2 kullanılır.
3 = Brute-Force – GPU kullanılmıyorsa, CPU ile son tercih olarak düşünülmelidir. Uzun parolalar için çok fazla zaman tüketebilir. Belirtilen koşullara (karakter seti, parola uzunluğu vs. ) uyan her türlü kombinasyon denenir.
4 = Permutation – Kelimelerden harfleri alır ve permütasyonlarını dener. Örnek olarak kelime abc olsun. Permütasyonları  abc, acb, bca, bac, cab, cba
5 = Table-Lookup – Kelimeyi harflerine ayırır ve  --table-file ile belirtilen koşulu uygular. Örnek olarak  sözlükteki test kelimesini harflerine ayırır ve
t için t, T, 7 ve 1
e için e, E, 3
s için s, S olarak ayarlar. Artık t3S7 , 1est gibi kombinasyonlarda denenir.
--hash-mode=NUM or –m : Hangi özet alma algoritmasının kullanılacağı belirtilir. Varsayılan olarak -m 0 dır. Yani MD5 olarak kabul eder. (Diğerlerine -h ile ulaşılabilir)
–m 100      ile SHA1 olarak ayarlanabilir.
# ./hashcat-cli64.bin -h     ile kullanılabilecek seçenekler listelenebilir.
Örnek kullanımda ilk olarak
test123
t3st
testtest
testtset
73s7
TEsT
testtesttest
tset         şifrelerinin md5 özeti alınmıştır. Sırayla basit, permütasyon ve table atak çeşitleri denenmiştir. Table saldırısı için hashcat-*/tables klasöründe test adında yeni bir table oluşturulmuştur. test.table içeriği şu şekildedir:
t=t
t=T
t=7
e=e
e=E
e=3
s=s
s=S
s=5
İhtiyaca göre bu düzende değiştirilebilir. Bunun dışında hashcatin kendi tablolarıda kullanılabilir.Hatırlanacağı gibi kullanım hashcat option hash_dosyası sözlük_dosyası şeklindeydi:
#./hashcat-cli64.bin -m0 -a0 ~/Masaüstü/parola.hash.md5 ~/İndirilenler/Password\Cracking/dics/rockyou.txt
cc03e747a6afbbcbf8be7668acfebee5:test123
05a671c66aefea124cc08b76ea6d30bb:testtest
e86e107b113b0f830b9b817b4a9addb8:t3st
İlk olarak basit atak denendi ve yukarıdaki parolalar anında kırıldı.
İkinci olarak a0 yerine a4 ile permütasyon denendi .(Ancak burada permütasyon işleminin çok uzun sürebileceği göz önünde bulundurulmalıdır. Buradaki örnekte zamandan kazanmak için sadece t ile başlayan parolalar işleme sokulmuştur.Bunun dışında --perm-min=SAYI   ve --perm-max=SAYI  ile permütasyona sokulacak kelimelerin harf sayısı belirtilebilir.)
#./hashcat-cli64.bin -m0 -a4 ~/Masaüstü/parola.hash.md5 ~/İndirilenler/Password\Cracking/dics/rockyou.txt
33619bed64d38c882f5555600db858d4:testtset
751ec45015a704a39dc403001c963e97:tset
ve ilk seferdekine ek olarak yukarıdaki iki parola daha çözüldü.
Üçüncü olarak table atak kullanıldı :
#./hashcat-cli64.bin -m0 -a5 --table-file=/home/korsan/İndirilenler/hashcat-0.46/tabes/test.table  ~/Masaüstü/parola.hash.md5 ~/İndirilenler/Password\ Cracking/dics/Cain\ and\ Abel.dic
751ec45015a704a39dc403001c963e97:tset
e86e107b113b0f830b9b817b4a9addb8:t3st
f61954c634231f8bbf0264d9797df9fa:TEsT
a0c58991fd9a340393d6a021bc490540:73s7
cc03e747a6afbbcbf8be7668acfebee5:test123
05a671c66aefea124cc08b76ea6d30bb:testtest
Sonuçtan görülebileceği gibi table atak ile “testtesttest” ve “testtset” haricindeki parolalar saniyeler içinde kırıldı. “testtset” daha önce permutasyon atak ile kırılmıştı. Ek olarak  “testtesttest” parolasını kırmak için a1 ile combination atak yapılabilir. Burada yine zamandan kazanmak için sadece “t” ile başlayan parolalar için kombinasyon yaptırılmıştır.
#./hashcat-cli64.bin -m0 -a1 ~/Masaüstü/parola.hash.md5 ~/Masaüstü/cain\ te
05a671c66aefea124cc08b76ea6d30bb:testtest
1fb0e331c05a52d5eb847d6fc018320d:testtesttest
cc03e747a6afbbcbf8be7668acfebee5:test123
Sonuç olarak diğer atak çeşitleriyle kırılamayan “testtesttest” parolasıda kırılmıştır. Bunların dışında hiç bir atak çeşidiyle kırılamayan,sözlüklerin yetersiz kaldığı durumlar için rule oluşturulabilir ya da hazır rule’lar kullanılabilir. Rule ile sözlüklerdeki kelimelerin önüne arkasına, arasına karakter eklemek, harf büyütmek/küçültmek, kelimeyi ters çevirmek gibi  olası biçimleride denenir. Rule kullanımı için parola listesine “3test” ve “tes9t” de eklenmiştir. İlk olarak rule kullanılmayan combination atak yeni parolalar içinde denendiğinde sonucun değişmediği yeni parolaları kıramadığı görülecektir. Rule kullanıldığında ise sonuç aşağıdaki gibidir. Rule olarak hashcat’in generated.rule dosyası kullanılmıştır. Rule işlemi sadece combination ve toggle case tipi atakta kullanılabilir.
#./hashcat-cli64.bin -m0 -a1 --rules-file=rules/generated.rule   ~/Masaüstü/parola.hash.md5 ~/Masaüstü/cain\ te
cc03e747a6afbbcbf8be7668acfebee5:test123
05a671c66aefea124cc08b76ea6d30bb:testtest
1fb0e331c05a52d5eb847d6fc018320d:testtesttest
751ec45015a704a39dc403001c963e97:tset
ca820ad57809f62eb7b4d13f5d4371a0:3test
3ee1a84e1af20d06a44802708f0f0262:tes9t
33619bed64d38c882f5555600db858d4:testtset
Rule oluşturmak için Linkindeki tablo incelenebilir ve ihtiyaca göre yeni rulelar oluşturulabilir.
Örnek olarak her kelimenin sonuna belli bir karakter eklenebilir. Eklenecek karakterler bga olsun. Bunun için oluşturulan ruleda $bga ifadesi eklenmelidir. Hashcat’e rule oluşturtmak içinse daha önce belirtildiği gibi -g 500 komutuyla 500 rule fonksiyonu oluşturulabilir. -g 500 komutuyla denendiğinde :
#./hashcat-cli64.bin -m0 -a1 -g 500 ~/Masaüstü/parola.hash.md5 ~/Masaüstü/cain\ te
33619bed64d38c882f5555600db858d4:testtset
cc03e747a6afbbcbf8be7668acfebee5:test123
05a671c66aefea124cc08b76ea6d30bb:testtest
1fb0e331c05a52d5eb847d6fc018320d:testtesttest
Öncekine ek olarak “testtset” parolasının kırıldığı görülüyor. Demekki oluşturulan rastgele rulelar arasında kelimeyi ters çevirip kelimenin sonuna ekleme işi yapan “f” fonksiyonu varmış.
Rainbow tabloları
Daha önceleri klasik yöntemle yapılan işlemde süreç Tahmin - Özetini Alma - Karşılaştırma şeklindeydi. Yani saldırgan öncelikle hedefe göre parola tahminlerinde bulunmalı ve bunların özetini almalı ve hedefteki parolanın özetiyle bunu karşılaştırmalıydı. Rainbow Tabloları ise bu yöntemi bir tık ileri taşıdı. Bu metotta olası tüm kombinasyonlar üretilir ve özet değerleri alınır. Hedefteki parolanın özeti ile teker teker karşılaştırılır ve bingo! Bu tekniğin bir avantajı oluşturulacak tablolar her test için kullanılabilir. Klasik yöntemle Rainbow tabloları karşılaştırdığında zaman ile bellek arasında bir tercih durumu vardır. Ne kadar çok bellek ayırırsanız (Rainbow) o kadar kısa zamanda hedefe  ulaşırsınız.
Peki bütün kombinasyonlar için bu yapılırsa yeterli bellek nasıl sağlanır? Örneğin LanMan gibi bir şifreleme metotunda  7 karakterin herbiri için bütün büyük harfler (26) ve sayılar olmak üzere (10)  36 adet opsiyon vardır . Bu bile yaklaşık 8x1010 parolaya ve onun özetine denk gelir. Bu noktada Rainbow’un teknik detaylarına girmek ve nasıl oluşturulduğuna bakmak lazım.
Rainbow bu işi zincir (chain) denilen bir yöntemle yapar. Bu zincir kavramının içinde 2 fonksiyon vardır. Birincisi eldeki bir parolanın LanMan, NT veya MD5 gibi tersi olmayan bir özetleme fonksiyonuyla özetinin alınması. İkincisi ise Reduction Function denilen Türkçe’ye Azaltma Fonksiyonu olarak çevirilebilecek bir yöntemdir. Çok fazla sayıdaki bu azaltma fonksiyonu eldeki bir özeti (sadece ilk bir kaç karakteri almak, baştan ve sondan karakterleri almak gibi) olası bir parola olacak şekilde keser biçer ve bununda özetini alınır. Ardından çıkan yeni özeti keser biçer, özeti alınır ve bu şekilde bir zincir oluşturulur. Özetten kesilip biçilerek elde edilen parola anlamlı olmayabilir ancak kullanıcılarda zaten anlamsız zor bir parola kullanmış olabilir. Tabi ki bu yöntemle normalde terabyte seviyesinde bellek harcayacak tablolar gigabyte seviyesinede inmiş olur.
Tablolar rtgen, ophcrack, SMB Hash generator gibi araçlarla oluşturulabilir, çevrimiçi sitelerde aranabilir (Örnek: Crackstation ) ya da internetten hazır tablolar indirilebilir (Örnek: Rainbow Tabloları ).
Bu yöntemin en büyük problemi tabiki zamandır. Günlerce sürebilir. Bunun dışında Linux,UNIX ve BSD sistemlerde kullanılan salting (Tuzlama: Parolaya tersi olmayan bir fonksiyonla rastgele bir değer üretilir ve eklenir. Hash(parola + tuz )) ile rainbow tabloları savunulabilir. Örnek olarak 16 bitlik bir salt değeri için 65536 tanelik bir sete ihtiyaç olur ki bu her parola için ayrı ayrı denenmesi gereken 65536 değerdir. LM ve NT gibi eski Windows sürümlerinde görülen mekanizmalar rainbow tabloları için asıl hedeftir.

RainbowCrack

Rainbow tablolarını kullanarak parola kıran bir araçtır. Parola kırmanın yanı sıra rtgen ile rainbow tabloları oluşturur, rtsort ile tabloları sıralar, rt2rtc ve rtc2rt ile rainbow tablolarının uzantısını değiştirir. Hem Linuxta hem Windows ortamında çalışır. Windows ortamında NVIDIA ile GPU destekli tarama yapabilir.
   
rtgen
rtgen RainbowCrack içinde gelen tablo oluşturmak için kullanılan bir araçtır. Linux terminalde rainbowcrack klasörüne gelinip çalıştırıldığında;
bu şekildedir.
rtgen özet_algoritma karakter_seti minimum_karakter_sayısı maksimum_karakter_sayısı tabloların_sıralanması zincir_uzunluğu zincir_sayısı tablo_başlangıç_sayısı
özet_algoritma : LM, NT, MD5, sha1 vs.
karakter_seti: loweralpha, alpha-numeric, ascii-32-95 vs. (rainbow klasöründe charset dosyasından nelere karşılık geldiğine detaylı bakılabilir. Ayrıca bu dosyaya istenilen karakterleri barındıran yeni karakter setleri eklenebilir. Örnek olarak
abc123)(/&%  karakterilerini içeren ozel_karakter isimli bir charset bu şekilde ayarlanabilir. )
minimum_karakter_sayısı: 1,2,3,...
maksimum_karakter_sayısı: 1,2,3,....
tabloların_sıralanması: 0,1,2,3,.. Buradaki değer azaltma fonksiyonlarına bir input (giriş değeri) olarak gelir. Aynı karakter setleri ve uzunlukla farklı tablolar oluşturmak için kullanılabilir. Ancak bu aynı zamanda ikilenen ve birleşen zincir (duplicate ve merging chain) sayısını artırır. Daha iyi tablolarda bu zincirlerin sayısı az olmalı. (Azaltma fonksiyonları kesip biçerken aynı parola değerini üretebilir. Ya da bazı zincirlerin başlangıç ve bitiş değerleri aynı olabilir. Buna ikilenen zincir (duplicate chain) denir. İkilenen zincirler silinebilir. Başarı oranını değiştirmez. Birleşen zincirlerde ise aynı noktada aynı değeri üreten zincir bu noktadan sonra hep aynı değeri üretecektir. )
zincir_uzunluğu: ..1000...10000...20000... Her bir zincirin uzunluğu belirtilir. Daha büyük değer başarı oranını artıracaktır. Ancak bu aynı zamanda parola kırma süresini de artırır. Uzunluk, parola kırma süresinin karesiyle doğru orantılıdır.
zincir_sayısı: Üretilecek zincirlerin sayısı belirtilir. Maksimum değer 134217728’ dir. Bu değer ile 2 GB’ lık bir dosya üretilecektir.
tablo_başlangıç_sayısı: 0,1,2,.. Her zincir için başlangıç  değerinin kaç olacağı belirtilir.


Bundan sonra rtgen ile tabloyu oluşturmadan önce çevrimiçi rainbow tablosu hesaplayıcılar ile (Advanced RT Calculator ) oluşacak tablonun zaman ve boyutu hakkında bilgi alınabilir. Farklı değerlerin zaman ve boyutu ne kadar etkilediği gözlemlenebilir.


rtgen lm alpha-numeric 1 7 0 10000 22107625 0  
ile LanMan için bir tablo oluşturmak istendiğinde  bu bize yaklaşık 15 dakikaya ve 1.32 GB lık depolama alanına mâl olacaktır ( Zaman konusunda işlemci gücü önemlidir, düşük sistemlerde süre çok daha fazla olup, bu sitedeki değerler yanıltıcı olabilir. Tablo oluşturulurken de işlemci çok yüksek seviyede kullanılır ).
rtgen lm ozel-karakter 1 5 1 1000 1000 0            
gibi bir komutla oluşturulan küçük bir tablo 0.3 saniye ve 15.6 KB aldı. Oluşturulan bu tablo aynı klasörde yer alacaktır.Çıkan tablo:
    lm_ozel-karakter#1-5_1_1000x1000_0.rt


rtsort
Bu araç ile zincirlerin bitiş değerleri daha kolay bir arama için sıralandırılabilir. rtgen ile oluşturulan tablolar rcrack ile kullanılmadan önce rtsort ile sıralanmalıdır.
    rcrack
    Bu araç elimizdeki özetlerin tablodaki eşlerini bulacak olan esas araçtır. Örnek ifade şu şekilde olacaktır:
rcrack kullanılacak_tablo.rt  -seçenek  hash\hash_dosyası\pwdump_dosyası
rcrack ile kullanılabilecek seçenekler:
-f    ile pwdump dosyası
-l    ile içinde özetlerin bulunduğu bir dosya
-h    ile direk olarak özetin kendisi koyularak parola kırma işlemi başlatılabilir.
Örnek olarak kısa zamanda tablo oluşturmak ve parola kırmak için charset.txt dosyasında oluşturulan  ozel-karakter karakter setine az sayıda harf ve sayı girerek (abctest12345) olası parolaların özetleri oluşturuldu. Ardında rtsort ile sıralandı ve rcrack ile hash.md5.txt adlı dosyadaki özetlerin parola değeri bulundu. Çıktılar şu şekildedir:
# ./rtgen md5 ozel-karakter 1 7 0 10000 100000 0
rainbow table md5_ozel-karakter#1-7_0_10000x100000_0.rt parameters
hash algorithm:         md5
hash length:            16
charset:                abctest12345
charset in hex:         61 62 63 74 65 73 74 31 32 33 34 35
charset length:         12
plaintext length range: 1 - 7
reduce offset:          0x00000000
plaintext total:        39089244
sequential starting point begin from 0 (0x0000000000000000)
generating...
65536 of 100000 rainbow chains generated (1 m 45.1 s)
100000 of 100000 rainbow chains generated (1 m 2.8 s)
   
    # ./rtsort md5_ozel-karakter#1-7_0_10000x100000_0.rt
md5_ozel-karakter#1-7_0_10000x100000_0.rt:
2056712192 bytes memory available
loading rainbow table...
sorting rainbow table by end point...
writing sorted rainbow table...


# ./rcrack md5_ozel-karakter#1-7_0_10000x100000_0.rt -l hash.md5
2056810496 bytes memory available
1 x 1600000 bytes memory allocated for table buffer
480000 bytes memory allocated for chain traverse
disk: md5_ozel-karakter#1-7_0_10000x100000_0.rt: 1600000 bytes read
searching for 3 hashes...
plaintext of 098f6bcd4621d373cade4e832627b4f6 is test
plaintext of cc03e747a6afbbcbf8be7668acfebee5 is test123
plaintext of 397a39d6700eaa41be9aee2dc4c89b90 is t3st123
disk: thread aborted


statistics
-------------------------------------------------------
plaintext found:                              3 of 3
total time:                                   20.85 s
 time of chain traverse:                     20.27 s
 time of alarm check:                        0.46 s
 time of wait:                               0.01 s
 time of other operation:                    0.11 s
time of disk read:                            0.00 s
hash & reduce calculation of chain traverse:  149970000
hash & reduce calculation of alarm check:     2644088
number of alarm:                              24512
speed of chain traverse:                      7.40 million/s
speed of alarm check:                         5.79 million/s
result
-------------------------------------------------------
098f6bcd4621d373cade4e832627b4f6  test  hex:74657374
cc03e747a6afbbcbf8be7668acfebee5  test123  hex:74657374313233
397a39d6700eaa41be9aee2dc4c89b90  t3st123  hex:74337374313233



Ophcrack

Rainbow tablolarını kullanarak parola kıran verimli bir programdır. Hem Windows hem Linux için sürümleri mevcuttur ve her iki ortam içinde grafiksel bir arayüze sahiptir. Ophcrack linkinden indirilebilir.


Linux’ta kurulum için indirilen arşiv dosyası çıkarılır. Çıkan klasöre terminalde erişilir ve sırasıyla
#   ./configure
#   make
#   make install
komutlarıyla kurulum tamamlanabilir. Ancak kurulumun bu kadar basit tamamlanması için bazı derleyicilerin, kütüphanelerin sistemde kurulu olması gerekebilir.  Karşılaşılabilecek olası hatalar için ;
# apt-get build-essential komutu     ile C++ için derleyici indirilebilir.
# apt-get install libssl-dev         ile SSL library kurulabilir
# apt-get install libexpat1        ile expat kütüphanesi kurulabilir.
# apt-get install libqt4-dev        ile Qt 4.3 indirilip kurulum tamamlanabilir.


Windows ortamında ise indirilecek exe uzantılı dosya ile kolayca kurulabilir. Kurulum sırasında hangi tabloların indirilmek istendiği ophcrack tarafından soruluyor ve indiriliyor.Ancak  indirmede bir sorun yaşanırsa  Ophcrack  linkinden ihtiyaca göre indirilip kurulabilir. İndirilen tablo  ophcrack‘ın sistemde kurulduğu Program Files\ophcrack\Tables ‘a kopyalanır. Aşağıdaki ekran görüntüsünden de görülebileceği gibi hangisi için indirilmişse onu seçip install denir ve  harici indirilen dosya gösterilir.



Tabloyu kurduktan sonra Windows’ta daha önce  fgdump ile elde edilen pwdump dosyası
kullanılabilir.  Load sekmesinden PWDUMP file seçilir C:\ ‘de fgdump’tan alınan dosyayı gösterilir.


Artık hazır. Crack sekmesine tıklandığında ophcrack işleme başlar ve kısa sürede parolaları
ortaya çıkarır.

Parola Kırmada GPU kullanımı

Parola kırmak için denenen yöntem ve araçlarda en önemli problemler hız ve depolama alanıydı. Depolama sorunu harici harddiskler ile giderilebilir. Hız için ise CPU(Merkezi İşlemci Birimi) yerine GPU(Grafik İşlemci Birimi) kullanarak bu sorun aşılabilir.
GPU fiziksel olarak ve çalışma mantığı olarak  CPU’dan farklıdır. İşlemciler ayrı ayrı işlem yapabilen çekirdeklere(core) sahiptir. Bu sayede 2 çekirdekli bir işlemci ile aynı anda iki farklı işlem yapılabilir. CPU’ larda 2, 4, 8 gibi çekirdek sayıları yaygın iken GPU da bu rakamlar yüzler seviyesine çıkar. Çalışma mantığı olarak ise CPU’daki “merkezi işlem”den  GPU’da “birlikte işleme” bir geçiş vardır[Kaynak]. NVIDIA, Apple, Microsoft, AMD gibi firmaların paralel işlem yapmak için çıkarttıkları modüller(CUDA, OpenCL, DirectCompute ) sayesinde yüksek işlem gücü gerektiren işler için GPU kullanılabilmektedir.  C, C++, Fortran gibi dillerle CUDA mimarisi kullanılabilir.
Parola kırmadada oclHashcat, Pyrit gibi araçlar GPU’nun gücünü kullanarak brute-force gibi tüm ihtimallerin denendiği zaman alıcı bir yöntemi makul sürelere çekebilir. Örnek olarak WPA/WPA2 keylerini kırmak için kullanılan Pyrit aracı’nın CPU ve GPU(Cuda ve OpenCL) üzerinde saniyede denediği key sayıları göz önüne alındığında grafiklerden
aradaki performans farkı daha iyi anlaşılabilir. [Kaynak]


GPU kullanan popüler araçlar; oclHashcat, Pyrit, Cryptohaze, ighashgpu (Windows)

0 yorum:

Yorum Gönder