Sızma Testlerinde Özelleştirilmiş Sözcük Listesi Oluşturma

Bu
yazıda online ve offline parola kırma saldırılarında başrolü oynayan
wordlist’lerin nasıl oluşturulabileceğine değinilecektir. Sızma
testleri esnasında sistemler üzerinde erişim kazanmak , subdomain keşfetmek veya alt dizin keşfetmek için başvurulan
yöntemlerin başında bruteforce(kaba kuvvet) ve dictionary(sözlük) saldırıları gelmektedir.

Bu saldırıları gerçekleştirmek için kaliteli worldlistlerin üretilmesi ise
oldukça önemlidir, aksi halde mevcut worldlistler sizin saldırı yapacağınız
sistemler ile ilgisiz olacaktır ve gereksiz bir çok kombinasyonu sistem
üzerinde denenmiş olacaktır. Buda kıymetli ve kısıtlı olan sızma testi süresinin boşa gitmesi
demektir. Bunun için wordlistlerin istenilen biçimde üretilebilmesi zaman kaybının önlenmesi ve başarılı testler için oldukça önemlidir.

Özelleştirilmiş wordlist oluşturmak için crunch isimli açık kaynak kodlu yazılım kullanılabilir. Crunch performans açısından oldukça hızlı ve kullanıcıya sağladığı detay özellikleri ile neredeyse istenilen her  biçimde
wordlist oluşturmaya imkan sağlayan bir araçtır. Crunch uygulaması buradan temin edilebilir.

Backtrack linux işletim sistemi üzerinde kurulu gelen crunch’a şu şekilde erişilebilir.

root@bt:~/Desktop/sshuttle-master# cd /pentest/passwords/crunch/
root@bt:/pentest/passwords/crunch# ls
charset.lst  crunch  GPL.TXT

 
Burada
charset.lst isimli dosya crunch ile birlikte kullanabileceğiniz
karakter gruplarının tanımlandığı dosyadır. Örneğin yalnızca rakamların
kullanılacaksa bu dosyada bu gruba verilen numerics charseti kullanılmalıdır. Charset.lst  dosyasının içeriğinin bir kısmı aşağıdaki gibidir.

root@bt:/pentest/passwords/crunch# cat charset.lst
# charset configuration file for winrtgen v1.2 by Massimiliano Montoro (mao@oxid.it)
# compatible with rainbowcrack 1.1 and later by Zhu Shuanglei <shuanglei@hotmail.com>

hex-lower                     = [0123456789abcdef]
hex-upper                     = [0123456789ABCDEF]

numeric                          = [0123456789]
numeric-space                 = [0123456789 ]

symbols14                     = [!@#$%^&*()-_+=]
symbols14-space               = [!@#$%^&*()-_+= ]

symbols-all                   = [!@#$%^&*()-_+=~`[]{}|:;”‘<>,.?/]
symbols-all-space             = [!@#$%^&*()-_+=~`[]{}|:;”‘<>,.?/ ]

ualpha                        = [ABCDEFGHIJKLMNOPQRSTUVWXYZ]
ualpha-space                  = [ABCDEFGHIJKLMNOPQRSTUVWXYZ ]
ualpha-numeric                = [ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789]
ualpha-numeric-space          = [ABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789 ]

 
Bu
şekilde birçok tanımlı karakter grubu bulunmaktadır.Bu dosya içerisinde
istediğiniz herhangi bir karakter grubunuda tanımlayıp bir satır olarak
eklemeniz onu kullanmanız için yeterlidir. Örnek bir kullanım ile
açıklamaya çalışalım.
Yalnızca rakamlardan oluşan minimum 1, maksimum 8 karakterli rakamlar.txt isimli bir wordlist oluşturalım:

root@bt:/pentest/passwords/crunch# ./crunch 1 8 -f charset.lst numeric -o rakamlar.txt

İlgili
worldlistimiz bulunduğumuz dizinde oluşmuştur. Burada -f parametresi
charset değerini vermek için, -o parametresi ise output(çıktı) dosyasını
belirtmek için kullanılmıştır. Aynı örneği şu şekilde de oluşturmamız
mümkündü:

root@bt:/pentest/passwords/crunch# ./crunch 1 5 1234567890 -o rakamlar.txt

Yalnız burada minumum 1 maksimum 5 karakter uzunluğunda olması istenmişitir.
Aşağıda, crunch uygulamasında özel bir parola oluşturmak için
kullanılan -t parametresi ile kullanılabilen bazı karakterler ve görevlerine değinilmiştir;
@ işareti küçük harfli karakterleri yazdırmak için
,    işareti büyük harfli karakterleri yazdırmak için
%  işareti rakam kullanmak için
^   işareti özel karakterler yazdırmak için kullanılır.
Şimdi verilecek örnekte ise şu seneryoya göre wordlist oluşturulacaktır:
  • Şifrenin ilk 4 karakteri 1453
  • Şifre 10 karakterli
  • Şifrenin son iki karakteri ab
  • Geri kalan kısımları ise büyük harflerden oluşmaktadır.(o halde “,”(virgül) işareti kullanılacaktır)
  • Çıktı ozel.txt dosyasına yazdırılacaktır.
İlgili crunch komutu şu şekilde olacaktır:
root@bt:/pentest/passwords/crunch# ./crunch 10 10 -t 1453,,,,ab -o ozel.txt
Crunch will now generate the following amount of data: 5026736 bytes
4 MB
0 GB
0 TB
0 PB
Crunch will now generate the following number of lines: 456976
100%

Oluşturduğumuz dosyanın çıktısının bir bölümü aşağıdaki gibidir:

root@bt:/pentest/passwords/crunch# head ozel.txt -n 20
1453AAAAab
1453AAABab
1453AAACab
1453AAADab
1453AAAEab
1453AAAFab
1453AAAGab
1453AAAHab
1453AAAIab
1453AAAJab
1453AAAKab
1453AAALab
1453AAAMab
1453AAANab
1453AAAOab
1453AAAPab
1453AAAQab
1453AAARab
1453AAASab
1453AAATab

Fırat Celal ERDİK <celal.erdik@bga.com.tr>