OpenSSL HeartBleed Zafiyeti nedir ve nasıl kullanılır ?
Heartbleed zafiyeti, OpenSSL’in kütüphanesinde yer alan güvenlik zafiyetinden ortaya çıkan bir açıktır. Bu zafiyet kullanıldığı durumda Server veya Client üzerinde anlık 64kb’lık Bellek alanına sahip bir alana yetkiye ihtiyaç duyulmadan erişim yapılabilmektedir. Bu sayede sunucunun RAM bellekleri üzerinde bulunan ve şifrelenmiş olduğu söylenen verilerin tamamı kolaylıkla okunabilmektedir.
Bu veriler ;
- Kullanıcı İsimleri
- Şifreler
- E mailler
- Anlık Mesajlaşmalar
- Sertifikalar
- Sunucuya ait Private Anahtarlar. Bu anahtarların hackerın eline geçmesi, hacker tarafından veri trafiğin gözlemlenlenebilir duruma gelmesini sağlar. Şifreli olan iletişim (Post İstekleri, Gönderilen Mailler vb.) bu anahtar şifrelenmesi yardımıyla çözülebilir ve erişilebilir hale gelir.
Güvenli ve tehlikesiz bir iletişim için kullandığımız verilerin şifrelenmiş olarak gönderilip-alınmasını sağlayan OpenSSL, iletişim sırasında verinin doğru bir şekilde alındığını teyit etmek amacıyla verileri geri yansıtan bir “HeartBeat(Kalp Atışı)” mesajı gönderir.
Hacker ise bu zafiyetin bulunduğu Server&Client’e 1KB’lık bir veri akışı sağlar ama Server&Client’in kontrol etmesi ve verileri geri yansıtması yani “HeartBeat” işlemi yapması gereken 64KB veri olduğuna inandırarak kandırır. Bunun üzerine sistem, saldırgana 64KB boyutunda bir veri geri yansıtır.
Şimdi şu zafiyeti bir de biz test edelim !
Bir site veya sunucu üzerinde HeartBleed zafiyetinin olup olmadığını test eden basit bir Nmap scripti şu şekildedir;
nmap -p <PortNo> –script ssl-heartbleed.nse <IPAdresi>
Ayrıca Shodan gibi Siber İstihbarat sağlayan siteler üzerinden belirli seçenekler birleştirilerek yapılan aramalarda heartbleed zafiyetine yer veren OpenSSL kullanan IP adresleri bile bulunabilir.
ADIM 1 :
ADIM 2 :
ADIM 3 :
ADIM 4 :
ADIM 5: Zafiyeti kullandığımız zaman 64KB’lık bir veriye erişebilmiş ve aynı zamanda okuyabilmiş olduk. Alttaki resimde ise bir “.bin” uzantılı dosya oluşturup bu verileri oraya işlediği bilgisini görüyoruz.
Step 6 : “Strings” komutu ile bu “.bin” dosyasını içeriğini görerek daha sonradan da verilere erişebiliriz.
Son olarak bu yazıların tamamen eğitim ve bilgilendirme amaçlı olup sizler tarafından uygulanması sakıncalı sonuçlar meydana getirebilir.
Keyifli Çalışmalar 😊