Skip to content

Latest commit

 

History

History
178 lines (126 loc) · 12.3 KB

parola_kirma_saldirilari.md

File metadata and controls

178 lines (126 loc) · 12.3 KB

Parola Kırma Saldırıları

Giriş ve Temel Kavramlar

Parola

Bilgi güvenliğinde güvenlik zincirinin en zayıf halkası olabilecek yegane unsur zayıf şifre ve parolalardır. Buna sebep olan da insandır! Sadece üşenildiğinden veya görmezden gelindiği için güvenlik açısından en sağlam kurumlar bile birkaç dakika içinde tuş olabilmektedir. En güçlü güvenlik araçlarının komutasını elinde bulunduran uzman kişiden evinde bilgisayardan internete bağlanan masum son kullanıcısına kadar en başta öğrenilecek konu güvenli ve sağlam parola oluşturmadır.

İki yıl öncesine kadar sayılar, semboller, büyük ve küçük harflerden oluşan 8 karakterli bir parolanın kırılması 2,25 yıl sürerken, bugün bu süre sadece 57 güne düştü. Şifre kırma tekniklerinin gelişmesi ve de bilgisayarların işlem kapasitelerinin gelişmesiyle beraber parolaların dayanma ömrü de kısalmaktadır. Bunu önlemenin tek yolu güvenli parolaların nasıl oluşturulacağından geçmektedir. Biz de sizin için bir güvenli parola oluşturma rehberi derledik:

Güçlü Parola Oluşturmanın 2 Temel Esası: Uzunluk ve Karmaşıklık

İdeal bir parola/şifre uzundur ve içinde aynı anda harfler, noktalama işaretleri, simgeler ve sayılar vardır. Güvenli bir şifre oluşturmak için dikkat edilecek en temel hususlar:

  • Mümkün olduğunca en az 8 karakter kullanın.
  • Her şey için aynı parolayı kullanmayın. çünkü hackerlar, güvenliği zayıf olan sitelerdeki parolaları çaldıktan sonra aynı parola ve kullanıcı adını, bankacılık web siteleri gibi daha güvenli ortamlarda kullanmaya çalışırlar.
  • Parolalarınızı sık değiştirin. E-postanızdaki, online alışveriş, bankacılık sitelerindeki parolalarınızı yaklaşık her üç ayda bir değiştirmek için kendinize bir otomatik anımsatıcı ayarlayın.
  • Parolanızdaki karakter çeşitliliği ne kadar fazlaysa, o kadar iyidir. Ancak parola çalan yazılımlar, “ve” yerine “&” veya “ki” yerine “2” gibi sık kullanılan harf-sembol dönüştürmelerini de otomatik olarak kontrol eder.
  • Yalnızca en sık kullandığınız veya gördüğünüz harfleri ya da karakterleri değil, klavyenizin tamamını kullanın.
  • Şifreler kesinlikle klavye tuş sırasını takip eden karakterlerden oluşmamalı. Mesela qwerty, asdqaz, 12345, 1234, 123456 gibi
  • Şifrelerde adınızı, soyadınızı veya her ikisini birden kesinlikle kullanmayınız.
  • Tuttuğunuz takımın, kedinizin, köpeğinizin ve bilumum favorilerinizin adını şifrelerinizde kullanmayın. Çünkü takım adları genelde Fenerbahçe, Galatasaray ve Beşiktaş olmakta, kedi ve köpek isimleri ise tekir, max, kurt, boncuk, şeker gibi kolay tahmin edilebilecek isimlerden oluşabilmektedir.
  • Harflerin yanı sıra, rakam ve "?, @, !, #, %, +, -, *, %" gibi özel karakterler kullanın.

Kaynak


Parola mı şifre mi?

Parola ve şifre sık sık birbiri yerine kullanılan ve karıştırılan iki farklı kavramdır.

Parola: Sadece sizin tarafınızdan bilinen ve özel bilgilere erişim için kullanılan gizli karekterler dizgisidir

Şifre: Herhangi bir bilginin çeşitli algoritmalar kullanılarak anahtarı bilmeyenler tarafından okunamaycak, çözülemeyecek hale getirilmiş halidir.

Parola ve şifre arasındaki temel farklar:

  • Parolalar genellikle anlamlı, okunabilir karekterlerden oluşur
  • şifreler genellikle ikili dosya türünde saklanır
  • şifre sayısal, parola sözel anlam içerir

Dolayısıyla bizim sistemlere girerken kullandığımız anahtarlar parola olmaktadır.

Bununla birlikte karıştırılan diğer bir konuda encoding, hash ve encryption kavramlarıdır.

Encryption/şifreleme: Bir verinin sadece gizli anahtarı bilen yetkili kişilerce okunabilmesi amaçlı gerçekleştirilen format değişikliği olarak. şifrelemenin kodlamadan temel farkı sadece ilgili anahtarı bilen kişiler tarafından orjinaline döndürülebilmesidir. RSA, AES en sık kullanılan şifreleme algoritmalarındandır.

Hash: Hash fonksiyonları doğrulama amaçlı kullanılır ve matematiksel olarak geri döndürülemez özelliğe sahiptirler. Genellikle bir verinin içeriğinin değişmediğinin garantisi olarak kullanılır veya bir parolanın veritabanında açık bir şekilde tutulmasını engellemek ve başkaları tarafından (işin sahibi dahil) bilinmesi istenmediği zaman tercih edilir. MD5, SHA1 en fazla bilinen hash tipine örnektir. Hash, Encoding(kodlama) ve Encryption(şifreleme) kavramları genellikle birbirleri yerine kullanılsa da üç kavramda özünde farklıdır.

Encoding/Kodlama: Verinin farklı sistem ve ortamlarda dolaşabilmesi için bir formattan başka bir formata dönüştürülmesi işlemidir. Kodlama gizlilik sağlamak için kullanılmaz.

Çevrimiçi Parola Atakları

Güvenlik açıklarında kullandığımız otomatik taramalarına benzer taktikle parola öğrenme için bulunan scriptler de mevcuttur. Biz bunun için sunucudan başarılı giriş mesajını alana kadar otomatik çevrimiçi parola tarayıcılarını veya parola tahmin edici araçları kullanıyoruz. Teknik olarak bu metodlar brute force olarak adlandırılmaktadır. Bu metodu kullanan araçlar kullanıcı adı ve parola kombinasyonunun doğru olma olasalığını, verdiğimiz vakit süresince denemektedir.

Brute force metodu ile parola kırılması parolanın zorluğuna göre saatlerce hat da aylar, yıllar sürebilmektedir. Çoğunlukla biz sıfırdan her olasılığı deneme yerine, parolanın içerebileceği kelimeleri bu araçlara belirleyebiliriz. Mesela, bir xxx kafenin internet sitesinin yönetici parolasını öğrenmek istiyorsanız, kafenin adı, kafe, yöneticisi, adresi, çeşitli tarihler vs bilgilerin girilmesi brute force metodu ile daha iyi sonuçlar alınabilmektedir.

Sözcük Listesi

Bir atağı gerçekleştirmeden önce, yapılacak en önemli adımın o konu hakkında bilgi toplamak olduğu önceden belirtmiştik. Bir kullanıcın şifresini kırmak istiyorsak o kullanıcı hakkında ne kadar bilgi varsa; veya tüm bir sistemin kullanıcılarının parolalarını öğrenmek istiyorsak, o sistem hakkında bilgi bizim işimize çok yarıyacaktır. Bir text dosyası oluşturyoruz ve o topladığımız bilgileri tek tek giriyoruz:

root@kali:~# cat userlist.txt 
georgia
john
mom
james
Parola Listesi

Kullanıcı bilgilerinin yanı sıra, olabilecek parola bilgileri hakkında da bir dosya oluşturuyoruz.

root@kali:~# cat passwordfile.txt password
Password
password1
Password1
Password123
password123

Biz şimdi genel mantığı anlatma amaçlı böyle basit bir bilgiler giriyoruz, ama gerçekte biraz ciddi ciddi araştırma yapılması gerekir. İnternette de bu türlü listeler bulunabilir:

Hatda Kali'nin kendisinde de /usr/share/wordlists dizininde rockyou.txt.gz adlı dosyada parola sözlüğü bulunmaktadır. gz arşiv dosyasıdır, açıldığında 140 MB lık bir parola sözlüğü başlangıç için çok işimize gelecektir. Ama tabii unutulmamalıdır ki, daha iyi sonuçlar için hedefimizdeki kişinin bilgileri daha çok iyi sonuçlar almamıza vesile olacaktır.

Herşeyin otomatikleştirilmiş hali var da, bu parola sözlük olayının yokmu? diyebilirsiniz; O da var. ceWL gibi araçlar belirlediğimiz bir siteye giderek orda bulunan bilgileri araştırır ve işimizi yarayabilecek bir sözlük oluşturur. Aşağıda www.bulbsecurity.com için sözlük oluşturma örneği verilmiştir:

root@kali:~# cewl --help
cewl 5.0 Robin Wood (robin@digininja.org) (www.digininja.org)

Usage: cewl [OPTION] ... URL
--snip--
--depth x, -d x: depth to spider to, default 2
--min_word_length, -m: minimum word length, default 3
--offsite, -o: let the spider visit other sites
--write, -w file: write the output to the file
--ua, -u user-agent: useragent to send
--snip--
URL: The site to spider.
root@kali:~# cewl -w bulbwords.txt -d 1 -m 5 www.bulbsecurity.com

Diğer bir araç ise Crunch. Bu araç kendisine girilen karakterlerin çeşitli çeşitli olasılığını oluşturmamızı sağlar. Çok basit bir kullanımı aşağıda verilmiştir. A ve B karakterleri ile oluşturulabilecek tüm 7 karakterli sözcükleri sıralar. Mesela bazı sitelerdeki gibi en az 6 karakter, en fazla 10 karakter gibisinden sınırlama belirlenmiş durumlarda işimize gelebilir.

root@kali:~# crunch 7 7 AB
Crunch will now generate the following amount of data: 1024 bytes 0 MB
0 GB
0 TB
0 PB
Crunch will now generate the following number of lines: 128 
AAAAAAA
AAAAAAB
--snip--
Hydra ile Kullanıcı Adı ve Parola Öğrenme

Hedefimizdeki sistemde olabilecek kullanıcı adı ve parola listelerini oluşturduktan sonra, Hydra ile artık onları öğrenmeye çalışabiliriz.

root@kali:~# hydra -L userlist.txt -P passwordfile.txt 192.168.20.10 pop3
Hydra v7.6 (c)2013 by van Hauser/THC & David Maciejak - for legal purposes only

Hydra (http://www.thc.org/thc-hydra) starting at 2015-01-12 15:29:26
[DATA] 16 tasks, 1 server, 24 login tries (l:4/p:6), ~1 try per task
[DATA] attacking service pop3 on port 110
[110][pop3] host: 192.168.20.10 login: georgia password: password
[STATUS] attack finished for 192.168.20.10 (waiting for children to finish) 
1 of 1 target successfuly completed, 1 valid password found
Hydra (http://www.thc.org/thc-hydra) finished at 2015-01-12 15:29:48

Örneğimizde hydra aracına -L ile kullanıcı listesini -P ile parola listesini giriyoruz, ve önceden kurduğumuz Windows XP makinemizdeki POP3 için olabilecek giriş bilgilerini denemiş oluyoruz. Sonuç olarak, hydra login: georgia, password: password olarak bulmuş oldu.

Bazı durumlarda, hedefimizdeki kullanıcın ismini bileceğimizden sadece parola listesini girmemiz yeterli olacaktır. Bunun için -L yerine -l ile o kullanıcın ismini giriyoruz.

root@kali:~# hydra -l georgia -P passwordfile.txt 192.168.20.10 pop3
Hydra v7.6 (c)2013 by van Hauser/THC & David Maciejak - for legal purposes only 
[DATA] 16 tasks, 1 server, 24 login tries (l:4/p:6), ~1 try per task
[DATA] attacking service pop3 on port 110
[110][pop3] host: 192.168.20.10 login: georgia password: password
[STATUS] attack finished for 192.168.20.10 (waiting for children to finish)
1 of 1 target successfuly completed, 1 valid password found
Hydra (http://www.thc.org/thc-hydra) finished at 2015-01-07 20:22:23

Şimdi aldığımız sonuçları kullanarak, georgia adlı kullanıcın mesajlarını okuyalım. POP3 protokolünü belirliyoruz, sonra kullanıcı adını ve parolası istendiğinde giriyoruz.

root@kali:~# nc 192.168.20.10 pop3
+OK POP3 server xpvictim.com ready <00037.23305859@xpvictim.com>
USER georgia
+OK georgia welcome here
PASS password
+OK mailbox for georgia has 0 messages (0 octets)

Unutmamız gereken şey, bazı sistemler, mesela google mail belli bir hatalı giriş denemesinden sonra o hesabı askıya alır. Bazen deneme yaptığın IP adresi kara listeye atar. Bunu sisteme göre deneme aralıklarını ayarlanabilse de, genel sonuç olarak biraz uzun sürebilmektedir. Bunu aşmanın yolu ise bir sonraki bölümde öğreneceğimiz gerçek giriş denemesini yapmadan, şifreyi öğrenmeye çalışmaktır.

Çevrimdışı Saldırılar

Bu saldırıda kullanıcı adları ve parolaların sistemde kayıtlı tutulduğu noktalara erişim sağlanmaya çalışılır. Kullanıcı adları ve parolalar text olarak tutulmuş veya şifrelenmiş(encrypted) ve özetlenmiş(hashing) şekilde tutuluyor olabilir.

Yetkilendirme yapılırken parolanın özet değeri alınarak kullanıcının girdiği ve sistemde daha önce kaydedilen parolanın özeti karşılaştırılır . Buna göre kullanıcıya yetki verilir. özet işlemi için MD5, SHA, NTLM gibi metotlar vardır. Bu saldırı türünde de brute-force, dictionary ve rainbow tabloları olmak üzere 3 farklı metot söylenebilir.

DAHA FAZLASI İÇİN