2024 yilinda sizdirilmis sifreler

Yaziya baslamadan once biraz teknik bilgiler paylasmakta fayda var. Oncelikle Parola kirma (password cracking), genellikle etik hackerlar ve guvenlik arastirmacilari tarafindan sistemlerin guvenligini test etmek amaciyla kullanilir. Ancak, kotu niyetli kisilerin de bu bilgileri kotuye kullanabilecegini unutmayin. Parola kirma islemi yasal ve etik kurallar cercevesinde yapilmalidir. Parola kirma islemi icin genellikle su adimlar ve araclar gereklidir:

Gerekli Araclar ve Yontemler

Sozluk Listeleri (Dictionary Lists)
    rockyou.txt gibi yaygin parola listeleri.
    Kullanicilarin sik kullandigi parolalari iceren listeler.

Kaba Kuvvet Saldirilari (Brute Force Attacks)
    Tum olasi karakter kombinasyonlarini deneyen saldirilar.
    Guclu donanim ve iyi bir parola kirma yazilimi gerektirir.

Parola Kirma Yazilimlari
    John the Ripper: Acik kaynakli ve yaygin olarak kullanilan bir parola kirma aracidir.
    Hashcat: GPU destegiyle hizli parola kirma islemleri yapabilen guclu bir aractir.
    Hydra: Ag hizmetlerine karsi parola kirma islemleri icin kullanilir.

Hash Algoritmalari ve Parola Depolama Bicimleri
    MD5, SHA-1, bcrypt gibi hash algoritmalarini anlamak.
    Parolalarin nasil hash'lendigini ve bu hash'lerin nasil kirilabilecegini bilmek.

Guclu Donanim
    Parola kirma islemleri yogun hesaplama gerektirdiginden, guclu CPU ve GPU'lar kullanilmalidir.
    ozel parola kirma donanimlari da kullanilabilir.

Temel Bilgi ve Deneyim
    Siber guvenlik, kriptografi ve ag guvenligi konularinda bilgi sahibi olmak.
    Etik hacking ve yasalara uygun hareket etmek.

Yontemler

Sozluk Saldirilari (Dictionary Attacks)
    onceden belirlenmis bir liste (sozluk) kullanarak parolalari denemek.
    Yaygin parolalar ve varyasyonlari bu listelerde bulunur.

Karma Saldirilar (Hybrid Attacks)
    Sozluk saldirilari ile kaba kuvvet saldirilarinin birlesimi.
    Parola listelerine cesitli karakterler ekleyerek farkli kombinasyonlar olusturmak.

RegEx Tabanli Saldirilar
    Belirli bir duzeni takip eden parolalari hedeflemek icin duzenli ifadeler kullanmak.

Guvenlik onlemleri

Parola kirma islemlerine karsi korunmak icin asagidaki onlemler alinabilir:

Guclu Parolalar Kullanmak
    Uzun, karmasik ve tahmin edilmesi zor parolalar kullanmak.

İki Faktorlu Kimlik Dogrulama (2FA)
    Ekstra guvenlik katmani ekleyerek hesaplari korumak.

Parola Yoneticileri Kullanmak
    Benzersiz ve karmasik parolalar olusturup saklamak.

Parolalari Duzenli Olarak Degistirmek
    Parolalarin duzenli araliklarla degistirilmesi.

Sizdirilan Parolalari Kontrol Etmek
    Hesaplarinizin sizdirilan veritabanlarinda olup olmadigini kontrol etmek ve gerekli onlemleri almak.

Unutmayin, parola kirma islemleri yalnizca yasal ve etik sinirlar icinde yapilmalidir. Kendi hesaplarinizi ve sistemlerinizi test ederken bu kurallara dikkat etmeniz onemlidir.

Simdi rockyou2024.txt dosyasindan soz edebiliriz. Yaklasik 10 milyon kisinin sifrelerinin sizdirildigi bir dosya. Sizde sifrenizi kontrol etmek isterseniz asagidaki siteye girip, bakabilirsiniz!

https://cybernews.com/password-leak-check/

Ben de bu dosyasi sistemime alip, incelemeye ve kendime gore duzenlemeye karar verdim. Eger size de lazim olursa ve indirmek isterseniz adresi asagida.

https://s3.timeweb.cloud/fd51ce25-6f95e3f8-263a-4b13-92af-12bc265adb44/rockyou2024.zip

Kendisi yaklasik 50GB olup, arsivden cikardiginiz zaman 160GB kadar bir veri dosyasi oluyor. Boyle bir dosyayi text editorler(vim,emac,nano,notepad) ile acmak biraz zor! :) Dosyanin basina asagidaki komut ile biraz baktigim zaman, gereksiz bir suru karakterler oldugunu gordum.

$ cat rockyou2024.txt | less

Sonra birde dosyanin sonlarina bakmaya karar verdim.

$ tail -100 rockyou2024.txt |less

Biraz baktiktan sonra, benim icin gerekli olanlar kafamda canlandi. 5 karakter ile 40 karakter olanlari listemeye ve bunlari bir baska dosyaya yazdirmaya karar verdim. Boylelik dosya daha islevsel ve boyut olarak da daha dusuk olacakti.

*nix sistemler de bu isler biraz daha kolay. O yuzden soyle bir komut yazmaya karar verdim. Aciklamasi asagida.

$ grep -aoE '\b\w{5,40}\b' rockyou2024.txt | sort | uniq > rockyou2024-new.txt

Komutun Bilesenleri

grep -aoE '\b\w{5,40}\b' rockyou2024.txt
    grep: Dosya icinde belirli bir desene uyan satirlari arar.
    -a: İkili (binary) dosyalari da metin dosyasi olarak isle.
    -o: Desenle eslesen parcalari goster (tum satiri degil).
    -E: Genisletilmis duzenli ifadeleri kullan.
    \b\w{5,40}\b: Duzenli ifade (regex) deseni.
        \b: Kelime sinirini belirtir.
        \w{5,40}: 5 ila 40 karakter uzunlugunda olan kelimeleri belirtir. \w harf, rakam
        ve alt cizgiyi icerir.

Bu kisim, rockyou2024.txt dosyasindan 5 ile 40 karakter uzunlugunda olan tum kelimeleri cikarmak
icin kullanilir.

|
    Pipe sembolu (|), bir komutun ciktisini baska bir komutun girdisi olarak kullanmaya yarar.

sort
    ciktiyi alfabetik olarak siralar. Bu komut, grep komutunun ciktisindaki kelimeleri alfabetik
    siraya koyar.

uniq
    Siralanmis girdiler arasinda tekrar edenleri filtreler ve yalnizca benzersiz olanlari listeler.

> rockyou2024-new.txt
    Yonlendirme operatoru (>), onceki komutun ciktisini belirtilen dosyaya yazar. Eger dosya yoksa
    olusturur, varsa uzerine yazar.

Bu komutu calistirmadan once TMP dizini degistirmeniz gerekiyor! Cunku boyutu cok buyuk oldugu icin TMP dizini sismekte. Asagidaki komutla onuda degistirebilirsiniz?

$ export TMPDIR=/home/efek/new-tmp

Ben, Ev dizinine boyle bir klasor olusturdum ve oraya yonlendirdim. Benim Ev dizinimde yeterince yer bulunmakta cunku! Sonra komutu calistirabilirsiniz.

Bu islem biraz uzun surmekte ve sisteme gore sureler degismekte. Yaklasik 1 saat sonra islem bitmisti. Sonra dosyada daha baska gereksiz birseyler var mi diye baktigimda, Asya karakterlerinin oldugunu gordum. Bunlari da silmem gerekiyordu, zira parola kirmada benim icin pek gerekli olmuyor...

$ awk '{gsub(/[^\0-\177]/,"");print}' rockyou2024-new.txt > rockyou2024-non-asian.txt

Komutun Bilesenleri

awk '{gsub(/[^\0-\177]/,"");print}' rockyou2024-new.txt
    awk: Guclu bir metin isleme araci.
    '{gsub(/[^\0-\177]/,"");print}': awk icinde kullanilan komutlar.
        gsub(/[^\0-\177]/,""): gsub fonksiyonu, duzenli ifade (regex) kullanarak metni degistirir.
            /[^\0-\177]/: 0 ile 177 (127) ASCII karakterleri disindaki tum karakterleri secer.
            "": Secilen karakterleri bos karakterle degistirir (yani siler).
        print: Duzenlenen satiri yazdirir.

Bu kisim, rockyou2024-new.txt dosyasindaki Asya karakterlerini (ve ASCII disindaki diger karakterleri)
siler ve geri kalan metni yazdirir.

> rockyou2024-non-asian.txt
    Yonlendirme operatoru (>), onceki komutun ciktisini belirtilen dosyaya yazar. Eger dosya yoksa olusturur,
    varsa uzerine yazar.

ornek

Eger rockyou2024-new.txt dosyasi su sekilde bir icerik iceriyorsa:

hello 你好 world 世界 this is a test 测试

Asakidaki sekilde duzenleyecek ve rockyou2024-non-asian.txt dosyasina yazacak.

hello world this is a test

rockyou2024-non-asian.txt

hello  world 
this is a test

Sonuc olarak, bu komut rockyou2024-new.txt dosyasindaki Asya karakterlerini ve ASCII disindaki diger karakterleri siler ve geri kalan metni rockyou2024-non-asian.txt dosyasina yazar. Bu sayede dosyadaki yalnizca ASCII karakterleri iceren temizlenmis metin elde ediriz.

Simdi asil olay burada. Ilk once bu islemi yapip sonra grep ile 5 ile 40 karakter arasidakileri listelemek daha dogru bir tercih olacaktir. :) Yoksa islemi birkez daha yapmak gerekiyor...

Ben bu suzme isleminden sonra, dosyanin boyutunu 47GB'e kadar dusurdum.Suan benim icin kullanilabilir bir halde.

Ancak sunuda soylemem gerekir. Boyle buyuk kelime listeleri yerine, kisiye ozel kelime listeleri uretmek daha etkili bir kirma yontemidir. Hem zaman kazandirir, hem daha etkilidir. Bu tur buyuk dosyalarin kullanildigi durumlar ayridir.