Sızma Testlerinde Crunch Aracı ile Sözlük Dosyası Oluşturma

Sızma testleri sırasında parola saldırıları başta olmak üzere, sözlük dosyalarına ihtiyaç duyulabilmektedir. Bu yazıda Crunch aracı ile sözlük dosyalarının oluşturulması incelenecektir.

 

“crunch” aracının kullanımı için manuel’i okunabilir.

crunch -h
man crunch

creating-wordlists-with-crunch-01

 

Karakter listesi için /usr/share/crunch dizinindeki charset.lst dosyası incelenebilir.

creating-wordlists-with-crunch-02

 

Liste aşağıdaki gibidir.

 

Listede de görüldüğü gibi varsayılan olarak 26 küçük harf kümesi, 26 büyük harf kümesi, 10 rakam kümesi, 14 ve 32 karakterden oluşan sembol kümesi ve boşluk (Space – ” “) karakteri bulunmaktadır. Bunun yanında ‘ş’, ‘Ç’, ‘Å’ gibi unicode karakterler de bulunabilir.

 

Genel Kavramlar

Bu yazıdaki kavramlar aşağıdaki gibi sıralanabilir:

  • Oluşan çıktıya “Sözlük” adı verilir.
  • Sözlükteki her bir satıda “İfade” adı verilir.
  • İfade içerisindeki her bir değere “Karakter” adı verilir. Karakterler; rakam, harf veya sembol karakter olabilir.
  • “charset.lst” dosyasındaki her bir satırdaki karakterler dizisine “Karakter Listesi” adı verilmiştir.
  • Karakterlerin birleşmesi ile oluşan diziye “Karakter Topluluğu” adı verilir. “crunch” komutuna doğrudan parametre olarak verilebilir.
  • Karakterlerin birleşmesi ile oluşan diziye “Karakter Seti” veya “Sözcük” adı verilir. “crunch” komutuna “-p” parametresinden sonra verilebilir.
  • Belirli bir kurala göre oluşan diziye “Şablon” adı verilir. “crunch” komutuna “-t” parametresinden sonra verilebilir.
  • Crunch betiği tarafından özel amaçlar ile kullanılan ‘@’, ‘,’, ‘%’ ve ‘^’ karakterlerine “Literal Karakter” adı verilir.

 

İlk Kullanım

Crunch aracı kullanımında en az ve en çok karakter sayısı verilmelidir. Bunun yanında ek paramtreler de verilerek sözlük geliştirilebilir.

En kolay kullanımda charset.lst karakter listesindeki 26 küçük harf için deneme yapılır.

crunch 1 2

creating-wordlists-with-crunch-03

 

Yukarıdaki komutun çalıştırılması sonucunda 702 adet ifade elde edilmiştir. Sözlük “a” ile başlayıp, “zz” ile biter.

  • 1 karakterliler: 26 küçük harf = 26 ifade
  • 2 karakterliler: 26 küçük harf * 26 küçük harf = 676 ifade
  • Toplamda: 1 karakterliler + 2 karakterliler = 702 ifade

Eğer karakter topluluğu verilirse, bu karakterler kullanılarak bir sözlük oluşturulabilir.

crunch 1 2 abc

creating-wordlists-with-crunch-04

 

Yukarıdaki komutun çalıştırılması sonucunda 12 adet ifade elde edilmiştir. Sözlük “a” ile başlayıp, “cc” ile biter.

Eğer karakter topluluğunda tekrarlı karakterler varsa, tekilleştirilerek bir sözlük oluşturulabilir.

crunch 1 2 abcabbb

creating-wordlists-with-crunch-05

 

Yukarıdaki komutun çalıştırılması sonucunda 12 adet ifade elde edilmiştir. Sözlük “a” ile başlayıp, “cc” ile biter. Ayrıca “abcabbb” karakter listesi “abc” olarak sadeleştirilmiş ve bu şekilde, bir sözlük oluşturulmuştur.

Karakter topluluğundaki karakterler verilen sıraya göre kullanılır ve bir sözlük oluşturulur.

crunch 2 4 acabbccbbbabc

creating-wordlists-with-crunch-06

 

Yukarıdaki komutun çalıştırılması sonucunda 12 adet ifade elde edilmiştir. Sözlük “aa” ile başlayıp, “ccc” ile biter. Ayrıca “acabbccbbbabc” karakter listesi “acb” olarak sadeleştirilmiş ve bu şekilde, bir sözlük oluşturulmuştur.

  • 2 karakterliler: 3 farklı karakter * 3 farklı karakter = 9 ifade
  • 3 karakterliler: 3 farklı karakter * 3 farklı karakter * 3 farklı karakter = 27 ifade
  • 4 karakterliler: 3 farklı karakter * 3 farklı karakter * 3 farklı karakter * 3 farklı karakter = 81 ifade
  • Toplamda: 2 karakterliler + 3 karakterliler + 4 karakterliler = 117 ifade

 

Dosyaya İlk Kayıt

Crunch ile oluşan ifadeleri bir sözlük dosyasına kaydetmek için “-o” parametresi kullanılabilir.

crunch 2 3 abc -o sonuc.txt
cat sonuc.txt

creating-wordlists-with-crunch-07

 

 

Karakterler Topluluğu İle Kullanım

Karakter toplulukları tek bir veri tipinden oluşmak zorunda değildir. Birden fazla veri tipi de kullanılabilir.

crunch 3 3 ab123

creating-wordlists-with-crunch-08

 

Yukarıdaki komutun çalıştırılması sonucunda 125 adet ifade elde edilmiştir.

  • 3 karakterliler: 5 karakter * 5 karakter * 5 farklı karakter = 125 ifade

 

Karakter topluluklarının kullanımı sırasında boşluk (” “) kullanmak gerekebilir. Bu durumda “\” karakterinden sonra bir boşluk karakteri eklenmesi gerekir.

crunch 1 2 abc\

creating-wordlists-with-crunch-09

 

Bazı sembol karakterlerden (‘\’, ‘!’, ‘&’, ‘*’, ‘ ‘, ‘(‘, ‘)’, ‘!’, ”’, ‘”‘, ‘;’, ‘<‘ ve ‘>’) oluşacak karakter topluluğu oluşturulurken, bu sembol karakterlerden önce “\” karakteri kullanılmalıdır.

crunch 1 3 ab1\\\%\!\@\,

creating-wordlists-with-crunch-10

 

Yukarıdaki komutun çalıştırılması sonucunda 584 adet ifade elde edilmiştir. Sözlük “a” ile başlayıp, “,,,” ile biter.

  • 1 karakterliler: 8 karakter = 8 ifade
  • 2 karakterliler: 8 karakter * 8 karakter = 64 ifade
  • 3 karakterliler: 8 karakter * 8 karakter * 8 karakter = 512 ifade
  • Toplamda: 1 karakterliler + 2 karakterliler + 3 karakterliler = 584 ifade

 

Karakter Seti (Sözcük) ile Kullanım

Karakter seti kullanılarak da yeni ifadeler oluşturulabilir. Bu amaçla, “-p” parametresi ile karakter seti (sözcük) kullanılabilir. Bu kullanım sırasında faktöriyel adette ifade elde edilmez, permütasyonel adette ifade elde edilir.

crunch 1 1 -p abcd

creating-wordlists-with-crunch-11

 

Yukarıdaki komutun çalıştırılması sonucunda 24 adet ifade elde edilmiştir. Belirtilen sözcük (“abcd”) 4 karakterli olduğu için; oluşacak sözlükteki her bir ifadedenin her bir karakteri, sözcükteki 4 karakterden birisi (‘a’, ‘b’, ‘c’ veya ‘d’) olacak şekilde sıralanır.

Sözcük kullanımında karakterler tekrarlansa bile tekilleştirilmez.

crunch 1 1 -p test

creating-wordlists-with-crunch-12

 

Yukarıdaki komutun çalıştırılması sonucunda 24 adet ifade elde edilmiştir. 2 adet ‘t’ karakteri olmasına rağmen, tekilleştirme yapılmamıştır.

Sözcük kullanımında karakter üst/alt sınırlarının (en az ve en çok değerler) bir önemi yoktur.

crunch 17 93 -p test

creating-wordlists-with-crunch-13

 

Yukarıdaki komutun çalıştırılması sonucunda 24 adet ifade elde edilmiştir. En az değer 17, en çok değer 93 olmasına rağmen bu değerler crunch aracı tarafından değerlendirilmemiştir.

Not: “-p” parametresi ile sözcük kullanımında permütasyon işlemi kullanılırken, normalde faktöriyel adedinde ifade elde edilir. Ayrıca normal kullanımda üst/alt karakter sınırları da göz önünde bulundurulur.

crunch 4 4 -p test

creating-wordlists-with-crunch-14

 

Yukarıdaki komutun çalıştırılması sonucunda 81 adet ifade elde edilmiştir. “test” karakter topluluğundaki karakterler “tst” olarak tekilleştirilmiştir.

  • 4 karakterliler: 3 karakter * 3 karakter * 3 karakter * 3 karakter = 81 ifade

Birden fazla sözcük kullanılması durumunda karakterler değil, sözcükler arasında permütasyon oluşturulur. Bu kullanım türünde de üst/alt karakter sınırları göz ardı edilirken, sözcüklerin sıralaması önemlidir.

crunch 1 1 -p abc 12 ABCD
crunch 15 86 -p abc 12 ABCD
crunch 1 1 -p abc ABCD 12

creating-wordlists-with-crunch-15

 

Yukarıdaki her bir komutun çalıştırılması sonucunda 6 adet ifade elde edilmiştir.

 

Karakter Listesi ile Kullanım

“charset.lst” dosyasındaki karakter listeleri kullanılarak da ifadeler elde edilebilir. ‘Å’, ‘Ä’ ve ‘Ö’ gibi karakterler unicode olduğu için bir uyarı mesajının geldiği de görülmektedir.

crunch 1 3 -f /usr/share/crunch/charset.lst lalpha-numeric-symbol14-sv

creating-wordlists-with-crunch-16

 

İfadelerin devamı aşağıdaki gibidir.

creating-wordlists-with-crunch-17

 

Yukarıdaki komutun çalıştırılması sonucunda 151739 adet ifade elde edilmiştir. “ualpha-numeric-symbol14-sv” karakter listesinde (“[ABCDEFGHIJKLMNOPQRSTUVWXYZÅÄÖ0123456789!@#$%^&*()-_+=]”) 53 adet karakter olduğu görülmektedir.

  • 1 karakterliler: 53 karakter = 53 ifade
  • 2 karakterliler: 53 karakter * 53 karakter = 2809 ifade
  • 3 karakterliler: 53 karakter * 53 karakter * 53 karakter = 148877 ifade
  • Toplamda: 1 karakterliler + 2 karakterliler + 3 karakterliler = 151739 ifade

 

Mevcut karakter listelerinin yerine “charset.lst” dosyasına yeni karakter listesi de eklenebilir.

creating-wordlists-with-crunch-18

 

Arzu edilen bir karakter listesine göre yeni ifadeler elde edilebilir.

creating-wordlists-with-crunch-19

 

Yukarıdaki komutun çalıştırılması sonucunda 2954 adet ifade elde edilmiştir. “egitim-deneme” adlı karakter listesinde (“[012,abç!ABC%”ş]”) 14 adet karakter olduğu görülmektedir.

  • 1 karakterliler: 14 karakter = 14 ifade
  • 2 karakterliler: 14 karakter * 14 karakter = 196 ifade
  • 3 karakterliler: 14 karakter * 14 karakter * 14 karakter = 2744 ifade
  • Toplamda: 1 karakterliler + 2 karakterliler + 3 karakterliler = 2954 ifade

 

Şablon ile Kullanım

Belirlenen bir şablona (pattern) göre de ifadeler elde edilebilir. Şablonlar içerisinde 4 literal karakterin kendine has anlamı vardır.

  • @: Küçük harfleri ifade eder. Bu şekilde 26 adet küçük harf karakteri vardır. Bunlar: [abcdefghijklmnopqrstuvwxyz]
  • ,: Büyük harfleri ifade eder. Bu şekilde 26 adet büyük harf karakteri vardır. Bunlar: [ABCDEFGHIJKLMNOPQRSTUVWXYZ]
  • %: Rakamları ifade eder. Bu şekilde 10 adet rakam karakteri vardır. Bunlar: [0123456789]
  • ^: Sembol karakterleri ifade eder. Bu şekilde 33 adet sembol karakteri vardır. Bunlar: [!@#$%^&*()-_+=~`[]{}|\:;”‘<>,.?/ ]

 

Şablonlardan yararlanmak için “-t” parametresi kullanılır.

crunch 10 10 -t ,^Deneme@%

creating-wordlists-with-crunch-20

 

İfadelerin devamı aşağıdaki gibidir.

creating-wordlists-with-crunch-21

 

Yukarıdaki komutun çalıştırılması sonucunda 223080 adet ifade elde edilmiştir. Oluşan sözlükteki her bir ifade 10 karakterden oluşmaktadır. Sözlük “A!Denemea0” ile başlayıp, “Z Denemez9” ile biter. Her bir ifadenin ilk karakteri büyük harf (26 tane), ikinci karakteri sembol karakter (33 tane), 3. karakterden 8. karaktere dek “Deneme”, 9. karakteri küçük harf (26 tane), 10. karakteri ise rakam (10 tane) olduğu için toplamda 26*33*1*26*10=223080 adet ifade elde edilmiştir.

 

Karakterler Topluluğu ve Şablonun Beraber Kullanımı

Bir karakter topluluğu ve şablon beraber kullanılarak da ifadeler elde edilebilir.

crunch 10 10 ab012,? -t ,^Deneme@%

creating-wordlists-with-crunch-22

 

İfadelerin devamı aşağıdaki gibidir.

creating-wordlists-with-crunch-23

 

Yukarıdaki komutun çalıştırılması sonucunda 60060 adet ifade elde edilmiştir. Oluşan sözlükteki her bir ifade 10 karakterden oluşmaktadır. Sözlük “A!Denemea0” ile başlayıp, “Z Deneme?9” ile biter. Her bir ifadenin ilk karakteri büyük harf (26 tane), ikinci karakteri sembol karakter (33 tane), 3. karakterden 8. karaktere dek “Deneme”, 9. karakteri belirtilen karakter topluluğu (7 tane), 10. karakteri ise rakam (10 tane) olduğu için toplamda 26*33*1*7*10=60060 adet ifade elde edilmiştir.

Birden fazla karakter topluluğu ve şablon beraber kullanılarak da yeni ifadeler elde edilebilir. Birden fazla karakter topluluğunun kullanıldığı durumda; karakter toplulukları literal karakterlerin sırası (‘@’, ‘,’, ‘%’ ve ‘^’ sırası) ile işleme alınır.

crunch 10 10 567 83krf\!.% ab012,? jk -t ,^Deneme@%

creating-wordlists-with-crunch-24

 

İfadelerin devamı aşağıdaki gibidir.

creating-wordlists-with-crunch-25

 

Yukarıdaki komutun çalıştırılması sonucunda 336 adet ifade elde edilmiştir. Oluşan sözlükteki her bir ifade 10 karakterden oluşmaktadır. Sözlük “8jDeneme5a” ile başlayıp, “%kDeneme7?” ile biter. Her bir ifadenin ilk karakteri belirtilen ikinci karakter topluluğu ([83krf\!.%] –> 8 tane), ikinci karakteri belirtilen dördüncü karakter topluluğu ([jk] –> 2 tane), 3. karakterden 8. karaktere dek “Deneme”, 9. karakteri belirtilen birinci karakter topluluğu ([567] –> 3 tane), 10. karakteri ise belirtilen üçüncü karakter topluluğu ([ab012,?] –> 7 tane) olduğu için toplamda 8*2*1*3*7=336 adet ifade elde edilmiştir.

Yukarıdaki örnekte kullanılan şablondaki literal karakterler ve kullanılan karakter topluluklarının sırası aşağıdaki gibidir.

  • ‘@’ karakteri ile belirtilen 9. karakter için birinci karakter topluluğu ([567]) kullanılmıştır.
  • ‘,’ karakteri ile belirtilen 1. karakter için ikinci karakter topluluğu ([83krf\!.%]) kullanılmıştır.
  • ‘%’ karakteri ile belirtilen 10. karakter için üçüncü karakter topluluğu ([ab012,?]) kullanılmıştır.
  • ‘^’ karakteri ile belirtilen 2. karakter için dördüncü karakter topluluğu ([jk]) kullanılmıştır.

 

Eğer bu sıra değiştirilirse veya tekrarlanırsa; literal karakterlerin sırasına göre yeni ifadeler elde edilir.

crunch 10 10 567 83krf\!.% ab012,? jk -t %,,Deneme^

creating-wordlists-with-crunch-26

 

İfadelerin devamı aşağıdaki gibidir.

creating-wordlists-with-crunch-27

 

Yukarıdaki komutun çalıştırılması sonucunda 896 adet ifade elde edilmiştir. Oluşan sözlükteki her bir ifade 10 karakterden oluşmaktadır. Sözlük “a88Denemej” ile başlayıp, “?%%Denemek” ile biter. Her bir ifadenin ilk karakteri belirtilen üçüncü karakter topluluğu ([ab012,?] –> 7 tane), ikinci ve üçüncü karakterleri belirtilen ikinci karakter topluluğu ([83krf\!.%] –> 8 tane), 4. karakterden 9. karaktere dek “Deneme”, 10. karakteri belirtilen dördüncü karakter topluluğu ([jk] –> 2 tane) olduğu için toplamda 7*8*8*1*2=896 adet ifade elde edilmiştir.

Yukarıdaki örnekte kullanılan şablondaki literal karakterler ve kullanılan karakter topluluklarının sırası aşağıdaki gibidir.

  • ‘@’ karakteri ile belirtilen herhangi bir karakter olmadığı için birinci karakter topluluğu ([567]), oluşturulan ifadelerde kullanılmamıştır.
  • ‘,’ karakteri ile belirtilen 2. ve 3. karakterler için ikinci karakter topluluğu ([83krf\!.%]) kullanılmıştır.
  • ‘%’ karakteri ile belirtilen 1. karakter için üçüncü karakter topluluğu ([ab012,?]) kullanılmıştır.
  • ‘^’ karakteri ile belirtilen 10. karakter için dördüncü karakter topluluğu ([jk]) kullanılmıştır.

 

Karakterler Topluluğu ve Şablonun “+” Ayıracı ile Beraber Kullanımı

Bir karakter topluluğu ve şablon “+” ayıracı ile beraber kullanılarak da ifadeler elde edilebilir.

crunch 9 9 5fY + m4 2Ur -t ^%Deneme@

creating-wordlists-with-crunch-28

 

Yukarıdaki komutun çalıştırılması sonucunda 18 adet ifade elde edilmiştir. Oluşan sözlükteki her bir ifade 9 karakterden oluşmaktadır. Sözlük “2mDeneme5” ile başlayıp, “r4DenemeY” ile biter. Her bir ifadenin ilk karakteri belirtilen 4. karakter topluluğu ([2Ur] –> 3 tane), ikinci karakteri belirtilen 3. karakter topluluğu ([m4] –> 2 tane), 3. karakterden 8. karaktere dek “Deneme”, 9. karakteri belirtilen 2. karakter topluluğu ([5fY] –> 3 tane) olduğu için toplamda 3*2*1*3=18 adet ifade elde edilmiştir.

“+” ayıracının bulunduğu sıradaki karakter topluluğu, sırası belirtilen literal karakterin dikkate alınmaması gerektiğini ifade eder. Bu sebeple;

  • “+” ayıracı birinci karakter topluluğu olarak kullanıldığı için şablondaki ‘@’ dikkate alınmaz.
  • “+” ayıracı ikinci karakter topluluğu olarak kullanıldığı için şablondaki ‘,’ dikkate alınmaz.
  • “+” ayıracı üçüncü karakter topluluğu olarak kullanıldığı için şablondaki ‘%’ dikkate alınmaz.
  • “+” ayıracı dördüncü karakter topluluğu olarak kullanıldığı için şablondaki ‘^’ dikkate alınmaz.

Ancak yukarıdaki örnekte şablonda ‘,’ olmadığı için diğer 3 literal karakter sırası ile işleme alınmıştır. Aşağıdaki örnekte ise ikinci karakter topluluğunda bulunan “+” ayıracı sebebi ile şablonun 9. karakterindeki ‘,’ karakteri işleme alınmamıştır.

crunch 9 9 5fY + m4 2Ur -t ^%Deneme,

creating-wordlists-with-crunch-29

 

Yukarıdaki komutun çalıştırılması sonucunda 156 adet ifade elde edilmiştir. Oluşan sözlükteki her bir ifade 9 karakterden oluşmaktadır. Sözlük “2mDenemeA” ile başlayıp, “r4DenemeZ” ile biter. Her bir ifadenin ilk karakteri belirtilen 4. karakter topluluğu ([2Ur] –> 3 tane), ikinci karakteri belirtilen 3. karakter topluluğu ([m4] –> 2 tane), 3. karakterden 8. karaktere dek “Deneme”, 9. karakteri büyük harf (26 tane) olduğu için toplamda 3*2*1*26=156 adet ifade elde edilmiştir.

Birden fazla “+” ayıracı ile belirtilen sıradaki literal karakterin işleme alınmaması ifade edilebilir.

crunch 11 11 + + WxY + -t %^%Deneme@,

creating-wordlists-with-crunch-30

 

İfadelerin devamı aşağıdaki gibidir.

creating-wordlists-with-crunch-31

 

Yukarıdaki komutun çalıştırılması sonucunda 200772 adet ifade elde edilmiştir. Oluşan sözlükteki her bir ifade 11 karakterden oluşmaktadır. Sözlük W!WDenemeaA” ile başlayıp, “Y YDenemezZ” ile biter. Her bir ifadenin ilk karakteri belirtilen 3. karakter topluluğu ([WxY] –> 3 tane), ikinci karakteri sembol karakter (33 tane), üçüncü karakteri belirtilen 3. karakter topluluğu ([WxY] –> 3 tane), 4. karakterden 9. karaktere dek “Deneme”, 10. karakteri küçük harf (26 tane), 11. karakteri büyük harf (26 tane) olduğu için toplamda 3*33*3*26*26=200772 adet ifade elde edilmiştir.

 

Karakterler Listesi ve Şablonun Beraber Kullanımı

Bir karakter listesi ve şablon beraber kullanılarak da ifadeler elde edilebilir. “charset.lst” dosyasına eklenen 3 yeni karakter listesi bir önceki başlıktaki karakter topluluklarındaki gibi verilebilerek crunch aracı çalıştırılabilir. Eklenen 3 yeni karakter listesi aşağıdaki gibi olsun.

egitim-1 = [567] egitim-2 = [83krf!.%] egitim-3 = [ab012,?]

creating-wordlists-with-crunch-32

 

Birden fazla karakter listesi ve şablon beraber kullanılarak da yeni ifadeler elde edilebilir. Önceki başlıklarda da incelendiği gibi, birden fazla karakter listesinin kullanıldığı durumda; karakter listeleri literal karakterlerin sırası ile işleme alınır.

crunch 10 10 -f /usr/share/crunch/charset.lst egitim-1 egitim-2 egitim-3 -t ,^Deneme@%

creating-wordlists-with-crunch-33

 

İfadelerin devamı aşağıdaki gibidir.

creating-wordlists-with-crunch-34

 

Yukarıdaki komutun çalıştırılması sonucunda 5544 adet ifade elde edilmiştir. Oluşan sözlükteki her bir ifade 10 karakterden oluşmaktadır. Sözlük “8!Deneme5a” ile başlayıp, “% Deneme7?” ile biter. Her bir ifadenin ilk karakteri belirtilen ikinci karakter listesi (“egitim-2” –> [83krf\!.%] –> 8 tane), ikinci karakteri sembol karakter (“symbols-all-space” –> 33 tane), 3. karakterden 8. karaktere dek “Deneme”, 9. karakteri belirtilen birinci karakter listesi (“egitim-1” –> [567] –> 3 tane), 10. karakteri ise belirtilen üçüncü karakter listesi (“egitim-3” –> [ab012,?] –> 7 tane) olduğu için toplamda 8*33*1*3*7=5544 adet ifade elde edilmiştir.

 

Karakter Seti (Sözcük) ve Şablonun Beraber Kullanımı

Bir karakter seti ve şablon beraber kullanılarak da ifadeler elde edilebilir.

crunch 5 5 -t %h8.@ -p -Siber- -Guvenlik- -Portali-

creating-wordlists-with-crunch-35

 

Yukarıdaki komutun çalıştırılması sonucunda 1560 adet ifade elde edilmiştir. Oluşan sözlükteki her bir ifade 28 karakterden oluşmaktadır. Sözlük “0-Guvenlik–Portali–Siber-a” ile başlayıp, “9-Siber–Portali–Guvenlik-z” ile biter. Her bir ifadenin ilk karakteri rakam (10 tane), sonraki gelen parçası sözcüklerin permütasyonu (6 tane), 28. karakteri ise küçük harf (26 tane) olduğu için toplamda 10*6*26=1560 adet ifade elde edilmiştir.

Şablonun içeriğindeki literal karakterlerin haricindeki karakterler (yukarıdaki örnek için ‘h’, ‘8’ ve ‘.’ karakterleri) sözcüklerin permütasyonu için kullanılır.

 

Şablonda Literal Karakter Kullanımı

Şablon içerisinde literal karakterler kullanılmak isteniyorsa, “-l” parametresi ile kullanılmak istenen literal karakter belirtilerek de ifadeler elde edilebilir.

crunch 11 11 -t %De@ne,me@^ -l xxx@xx,xxxx

creating-wordlists-with-crunch-36

 

İfadelerin devamı aşağıdaki gibidir.

creating-wordlists-with-crunch-37

 

Yukarıdaki komutun çalıştırılması sonucunda 8580 adet ifade elde edilmiştir. Oluşan sözlükteki her bir ifade 11 karakterden oluşmaktadır. Sözlük “0De@ne,mea!” ile başlayıp, “9De@ne,mez ” ile biter. Her bir ifadenin ilk karakteri rakam (10 tane), 2. karakterden 9. karaktere dek “De@ne,me”, 10. karakteri küçük harf(26 tane), 11. karakteri sembol karakter (33 tane), olduğu için toplamda 10*1*26*33=8580 adet ifade elde edilmiştir.

Eğer “-l” ile belirtilen kısımdaki literal karakterin sırası ile “-t” ile belirtilen şablondaki literal karakterin sırası uyumsuz olursa, literal karakter oluşacak ifadeler içerisinde geçmez, literal karakterin belirttiği değer (büyük harf, küçük harf, rakam veya sembol) oluşacak ifadeler içerisinde geçer. Bu sebeple aşağıdaki komutun çıktısı da bir önceki komut ile aynı olur.

crunch 11 11 -t %De@ne,me@^ -l xxx@xx,xx^x

creating-wordlists-with-crunch-38

 

İfadelerin devamı aşağıdaki gibidir.

creating-wordlists-with-crunch-39

 

“-l” ile belirtilen kısımda bulunan ‘x’ karakteri yerine literal karakterlerden haricindeki herhangi bir karakter de getirilebilirdi.

 

 

Çıktı Dosyasının Özelleştirilmesi

Crunch aracının çıktılarının bir dosyaya yazdırılması için “-o” seçeneği kullanılır.

crunch 2 4 -o __Cikti

creating-wordlists-with-crunch-40

 

Yukarıdaki komutun çalıştırılması sonucunda 475228 adet ifade elde edilmiştir. Sözlük “aa” ile başlayıp, “zzzz” ile biter.

Eğer çıktı dosyası çok büyük ise crunch komutunun çıktısı ifade adedine göre veya dosya boyutlarına göre ayrı dosyalara yazdırılabilir. Bu durumlarda “-o START” seçeneği ile kullanılır.

“-c” seçeneği ile belirtilen adede göre, ayrı dosyalara yazdırılabilir.

crunch 2 4 -o START -c 125000
wc -l *

creating-wordlists-with-crunch-41

 

Yukarıdaki komutun çalıştırılması sonucunda 475228 (3 * 125000 + 100228) adet ifade elde edilmiştir. İlk sözlük “aa” ile başlayıp, “gbxr” ile biter ve 125000 ifade içerir; ikinci sözlük “gbxs” ile başlayıp, “nevj” ile biter ve 125000 ifade içerir; üçüncü sözlük “nevk” ile başlayıp, “uhtb” ile biter ve 125000 ifade içerir; dördüncü sözlük “uhtc” ile başlayıp, “zzzz” ile biter ve 100228 ifade içerir.

“-b” seçeneği ile belirtilen adede göre, ayrı dosyalara yazdırılabilir.

crunch 2 4 -o START -b 400kb
wc -l *

creating-wordlists-with-crunch-42

 

Yukarıdaki komutun çalıştırılması sonucunda 475228 adet ifade elde edilmiştir. İlk sözlük “aa” ile başlayıp, “dsym” ile biter ve 399997 byte boyutundadır; ikinci sözlük “dsyn” ile başlayıp, “ihhk” ile biter ve 400000 byte boyutundadır; üçüncü sözlük “ihhl” ile başlayıp, “mvqi” ile biter ve 400000 byte boyutundadır; dördüncü sözlük “mvkj” ile başlayıp, “rjzg” ile biter ve 400000 byte boyutundadır; beşinci sözlük “rjzh” ile başlayıp, “vyie” ile biter ve 400000 byte boyutundadır; altınca sözlük “vyif” ile başlayıp, “zzzz” ile biter ve 357215 byte boyutundadır.

Sözlük dosyalarının boyutları kb, mb, gb, kib, mib, gib olmak üzere 6 türde olabilir. İlk 3 tür 1000, sonraki 3 tür ise 1024 tabanındadır.

“-z” seçeneği ile belirtilen formata göre, çıktı dosyaları sıkıştırılabilir.

crunch 2 4 -o START -z bzip2
ls -l

creating-wordlists-with-crunch-43

2357212 byte olan sözlük dosyası yukarıdaki komutun çalıştırılması sonucunda 335132 byte boyutuna kadar sıkıştırılmıştır.

 

İfaleri Sınırlandırma

Olaşacak ifadelere üst ve alt sınırlar konularak da istenilen ifadeler elde edilebilir.

crunch 10 10 -t ,^Deneme@% -s C#Denemer3 -e W:Denemey6

creating-wordlists-with-crunch-44

 

İfadelerin devamı aşağıdaki gibidir

creating-wordlists-with-crunch-45

 

Yukarıdaki komutun çalıştırılması sonucunda 176874 adet ifade elde edilmiştir. Oluşan sözlükteki her bir ifade 10 karakterden oluşmaktadır. Sözlük “C#Denemer3” ile başlayıp, “W:Denemey6” ile biter. Alt ve üst sınır olmasa idi, yukarıdaki komutun çalıştırılması sonucunda 223080 adet ifade elde edilirdi. Sözlük “A!Denemea0” ile başlayıp, “Z Denemez9” ile biterdi.

 

 

 

Yazarın Bilgileri

Ertuğrul BAŞARANOĞLU
Ertuğrul BAŞARANOĞLU

Bir Cevap Yazın

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir

Kullanabileceğiniz HTLM etiketleri ve özellikleri: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code class="" title="" data-url=""> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong> <pre class="" title="" data-url=""> <span class="" title="" data-url="">

Bu sayfada incelenen konulardan doğacak sorunlar kişinin kendi sorumluluğundadır.