Şifre Listesi Üreticisi

24 Mar 2022
84
39
Şifre Listesi Üreticisi

Hepinize merhaba başlıktan da anlayacağınız gibi sizlere şifre listesi üreticisi nasıl yapılır onu anlatmaya çalışacağım. Şimdi şifre listesi üreticisinin nasıl yapıldığına geçmeden önce şifre listesinin ne olduğu hakkında biraz konuşalım.

Şifre listesi nedir?

Şifre listesi kaba kuvvet saldırılarında kullandığımız listelerdir. Peki bu listeler neden var? Neden bir tane her şeyi kapsayan bir listeye yok. Bunu kısaca açıklayacak olursak içerisinde küçük harf, büyük harf ve rakamların bulunduğu şifre uzunluğu 10 olan bir şifre listesini oluşturmak için (karakter sayısı üzeri şifre uzunluğu) formülünü kullanırız ve bunu hesaplarsak (68^10 = 2.1139228e+18) kadar kelime barındıran bir şifre listesine sahip oluruz. Eğer bu şifreleri bir hesap üzerinde denemeye kalkarsak, bilgisayarın hızına bağlı olarak 1 yıl veya 2 yıl arasında sürecektir.

Bu süreyi kısaltmanın tek yolu ise değişkenlerden birini veya ikisini azaltmaktır. Örnek olarak eğer bir matematik öğretmeninin hesabı için bir şifre listesi hazırlayacaksak sadece rakamların bulunduğu bir liste denemek mantıklı olabilir. Diyelim ki şifresinin uzunluğu 10 ve sadece rakamları kullanacağımız için karakter listemizdeki karakter sayısı da 10, bu şifre listesinin sahip olduğu eleman sayısı ise (10^10 = 10000000000) kadardır. Bunun denenmesi ise bilgisayar hızına bağlı olarak 30 dk ila 1 gün arasında değişmektedir. Daha makul bir zaman, şimdi ise şifre listesi üreticisi için nelere ihtiyacımız olduğuna bakalım.


Gerekli aletler?

-Bilgisayarımızda python ’un olması.
-Kod yazmak için bir editör. (Visual Studio Code veya Pycharm gibi)


Şifre Listesi Üreticisi Yapımı

Ben bu anlatımda Visual Studio Code kullanacağım siz başka editörlerde kullanabilirsiniz yapacaklarımız aynı olacaktır zaten. Öncelikle herhangi bir ad verdiğimiz .py uzantılı bir python dosyası oluşturuyoruz.

Kod

Python:
letter_list = ["a","b","c","1"]
float_number = 4
dic,count = {},1
dic[count] = letter_list

file = open("word-list.txt","w")

for name in range(1,float_number):
    count += 1
    dic[count] = []
    for word in dic[name]:
        for letter in letter_list:
            word += letter
            file.write(word + "\n")
            dic[count].append(word)
            word = word[:-1]
          
file.close()

letter_list = ["a","b","c","1"]

Karakter listemiz yani karıştırılmasını istediğimiz karakterler.

float_number = 4

Şifre uzunluğu.

dic,count = {},1

İleride kullanacağımız şifre sözlüğümüz ve count değişkenimiz var.

dic[count] = letter_list

Basamak listemizin ilk değeri olan şifre uzunluğu bir olan şifre listemizi tanımlıyoruz. Bu şifre listesini karakter listemize eşitlememizin sebebi bir uzunluğundaki şifrelerin olasılıklarının karakter listesine eşit olması.

file = open("word-list.txt","w")

Üzerine yazacağımız .txt dosyasını file değişkenine atayarak write modu ile açıyoruz.

for name in range(1,float_number):

float_number = 4 verdiğimiz şifre uzunluğu kadar dönecek olan bir for döngüsü oluşturuyoruz.

count += 1


count değişkenimizi bir arttırıyoruz bunun sebebi birinci şifre listesine zaten sahip olduğumuz için ikinci şifre listesini sözlük içerisinde oluşturmak.

dic[count] = []

İkinci şifre listemizi sözlük içerisinde boş bir şekilde tanımlıyoruz.

for word in dic[name]:


dic[count] = [] ile oluşturduğumuz önceki for döngüsünden aldığımız name değişkeni ile şifre listesi üzerinde geziniyoruz.

for letter in letter_list:

Yukarıda aldığımız kelimemizin üzerine karakterleri eklemek için karakter listemiz üzerinde geziniyoruz.

word += letter

Burada ise yukarıdan aldığımız word yani kelimemizin üzerine karakter listemizden aldığımız elemanı ekliyoruz.

file.write(word + "\n")

Burada ise oluşturduğumuz wordlist.txt dosyasının içerisine karakter eklediğimiz kelimemizi yazıyoruz \nile de şifrelerin satır satır yazılmasını sağlıyoruz.

dic[count].append(word)

dic[count] = [] ile boş bir şekilde tanımladığımız ikinci basamak listemize word değerimizi ekliyoruz çünkü bir dahaki sefere countdeğeri 3 olup sözlük içerisinde 3 uzunluğundaki şifreler listesini boş bir şekilde tanımladığında bu sefer 2 uzunluğundaki şifreler üzerinde gezinip 3 uzunluğundaki şifreler listesini oluşturacağız bu şekilde float_number kaç ise o sayıya kadar döngü devam edecek.

word = word[:-1]

Burada eklediğimiz karakteri siliyoruz yoksa for döngüsü döndüğü sürece word değişkeni üzerine karakter eklemeye devam eder ve sonuç olarak uzun işe yaramaz kelimeler elde ederiz.

file.close()

Bu kısımda daha önceden yazmak için açtığımız dosyamızı kapatıyoruz.


NOT : Burada çalışma mantığını anlattım, bu kodu kullanmak istiyorsanız karakter listesi içerisindeki değerleri istediğiniz gibi değiştirip kullanabilirsiniz ama isterseniz bunun gelişmiş versiyonunu aşağıda paylaştım onuda kullanabilirsiniz.

 
24 Mar 2022
84
39
Bu program sadece şifre listesi üretiyor şifre listesini kullanmak için başka bir programa ihtiyacın var.
 
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.