SSL Strip Aracı ile HTTP Desteği Veren Web Uygulamasında HTTPS Protokolünde Araya Girme Saldırısını Gerçekleştirme

0
1935
views
SSL, istemci ile sunucu arasındaki trafiği şifreleyerek güvenli haberleşmeyi sağlayan bir güvenlik protokolüdür. Ancak HTTP üzerinden hizmet veren ve HTTPS sayfasına yönlendiren web sitelerinde SSL ile araya girilebilmektedir. Bu yazıda, HTTP üzerinden HTTPS sayfaya yönlendirme yapan web uygulamalarında SSL Strip aracı kullanılarak SSL ile araya girilecek ve son kullanıcı bilgisayarında sertifika uyarısı verilmeden HTTPS trafiğinin okunabildiği görülecektir.

Pentist: Sızma Testleri ve Bilgi Güvenliği Danışmanlık Hizmetleri

Şifrelenmiş oturumu kurmak için el sıkışma (SSL handshake) yöntemi kullanır. SSL el sıkışması sırasında sertifika doğrulaması, kullanılacak şifreleme algoritmaları, desteklenen versiyon bilgileri vs. belirlenir. Bu protokolün çalışması sırasında uygulanan sertifika doğrulama işlemi, sertifikayı web sitesinin kimliği şeklinde ifade edersek istemci ile sunucu arasında yapılacak olan haberleşmenin gerçekten doğru kişiler arasında mı olduğunu ispatlamak için uygulanır.

SSL protokolü kullanılan bir trafikte araya girip trafik dinlenebilir (MITM: Man in the middle attack). Fakat SSL’ de araya girme saldırılarının başarılı olmama sebeplerinden biri de, araya giren saldırganın (attacker – hacker) ürettiği sahte sertifikayı bir şekilde kurbana kabul ettirmesi gerekliliğidir. Saldırgan sahte sertifika ile trafiği dinlemeye başladığında onaylı bir sertifika olmadığı için kurban tarayıcı tarafından uyarı ile karşılaşır ve trafiği dinlemesi engellenir.

ssl-man-in-the-middle-attack-using-ssl-strip-tool-01
Şekil 1. Man in the middle attack saldırısı şeması

 

Günümüz tarayıcıları bu duruma karşılık gerekli önlemleri almış ve hatta sertifika hatası alınmış olan sayfayı terk etmesi için kullanıcıyı ikna etmek adına bir takım önlemler almıştır. Ne yazık ki bu önlemlerin kullanışlılık ve kullanıcıyı ikna etme açısından çok başarılı olduğu söylenemez. Birçok kullanıcı tehlikenin farkında olmadan gelen uyarıyı kabul edip işlemlerine devam etmektedir. Aşağıdaki ekran görüntüsün de Google Chrome tarayıcısının trafikte araya girildiğini tespit etmesi durumunda verdiği hatayı görebiliriz. Kullanıcı böyle bir uyarıdan sonra devam etmesi eskiye oranlı daha az bir ihtimal haline gelmiştir. Fakat kesin bir çözüm değildir.

ssl-man-in-the-middle-attack-using-ssl-strip-tool-02
Şekil 2. Chrome sertifika hatası gösterir ekran çıktısı

 

Peki bu aşamada SSL trafiği’nde bir şekilde araya girilip, kurbanın haberi olmadan ve yukarıdaki gibi sahte sertifika hatası alınmadan trafik dinlenebilir mi?

Kurulan trafiğin güvenliğinden bahsederken SSL’in yanında kullanılan diğer protokollerinde güvenliği göz önünde bulundurulmalıdır. Günümüzde birçok web sitesinde HTTP ve HTTPS protokollerinin birlikte desteklendiğini görebiliriz. E-ticaret, internet tabanlı E-Posta uygulamaları bu tür web sayfalarından sayılabilir. HTTP protokolü ile HTTPS protokolünün beraber kullanılması ile birlikte HTTP protokolünün güvenlik zafiyetinden HTTPS’te etkilenir. Bu duruma rağmen web siteleri her iki protokolü de destekleme sebebi olarak performans sorunu gösterilebilir. HTTPS protokolü kullanımı sırasında belirlenen parametreler sırasında yoğun bir trafik akışı olması sistem performansına yansır. Bunun için web siteleri önemli bir işlem gerçekleştirileceği zaman HTTPS protokolüne yönlendirme yaparlar. Gmail, Yahoo gibi internet tabanlı E-Posta uygulamaları web siteleri yönlendirme yapan web sitelerine örnek olarak verilebilir.

Uygulamaların yukarıda anlatılan her iki protokol’ün birlikte kullanılması sonucu ortaya çıkan zafiyeti istismar eden araçlar yazılmıştır. Bu araçlardan biri kullanılarak bu zafiyetin istismar edilmesi ve ayrıca bu tür saldırılara karşı alınabilecek önlemlerden bahsedilecektir.

SSL Strip HTTP ve HTTPS protokollerinin birlikte desteklendiği sistemlerde ortaya çıkan güvenlik zafiyetini kullanarak aradaki trafiği dinlemek ve değişiklik yapmak için geliştirilen bir araçtır [1].

ssl-man-in-the-middle-attack-using-ssl-strip-tool-03
Şekil 3. SSL Strip aracı çalışma mantığı gösterir ekran görüntüsü

 

Şekilde de görüldüğü üzere kurban her iki protokolünde (HTTP-HTTPS) desteklendiği uygulamaya (Örn: E-Posta,E-Ticaret) öncelikle HTTP üzerinden (“http://www.gmail.com.tr) giriş yapar. Bu durumda araya giren saldırgan SSL Strip ile kurbanın yapmış olduğu istek içerisinde bulunan HTTPS bağlantılarını da HTTP’ye çevirerek kurban ile arasında HTTP trafiği başlatır. Aynı zamanda kurbanın yapmış olduğu isteği de sunucu ile kendisi arasında HTTPS bağlantısı kurarak başlatır. Bu aşamada kullanıcı bir istekte bulunduğunda saldırgana HTTP ile bağlanır  ve saldırgan yapılan isteğin içerisindeki değişiklikleri (Kullanıcı adı, parola gibi) algılayarak sunucuya yönlendirir. Saldırgana gelen sunucu cevabı da daha sonra kurbana HTTP’ye çevrilerek  yönlendirilir. Bu konumda kurbanın yapmış olduğu tek hata HTTPS gerektiren bir işlem için uygulamaya erişim yöntemi olarak öncelikle HTTP ile siteye girip ordan HTTPS gerektiren uygulamaya yönlenmesi şeklinde ifade edilebilir.

Aşağıda SSL Strip aracı ile HTTPS trafiğinin nasıl dinleneceği ile alakalı bir uygulama gerçekleştirilecektir.

Uygulama Linux dağıtımı olan Backtrack [2] üzerinde gerçekleştirilecektir. SSL Strip, Backtrack içerisinde kurulu olarak gelmektedir. SSL Strip ile alakalı ayrıntılı bilgi için Şekil -1 incelenebilir. Yapılacak adımlar adım adım anlatıldıktan sonra uygulamaya geçilecektir.

Öncelikle makinemizi yönlendirme moduna almamız gerekiyor.Kurban ile sunucu arasındaki trafiğin saldırgan üzerinden geçmesini sağlamak amacı ile şu komut çalıştırılır.

echo “1” > /proc/sys/net/ipv4/ip_forward

Tüm HTTP trafiğini saldırgan üzerinden geçirmek için iptables içerisine kural girilir. 80 port’una gelen istekler SSL Strip’in dinlediği porta yönlendirilir. SSL Strip için varsayılan port 10000. porttur. Iptables güvenlik duvarına girdiğimiz kuralın çalışması için /etc/etter.conf dosyası altında bulunan #if you use iptables ile başlayan kısmın şekilde gösterildiği gibi başındaki # işareti silinmelidir.

ssl-man-in-the-middle-attack-using-ssl-strip-tool-04
Şekil 4. İp tables configürasyon ayarlarıgösterir ekran görüntüsü

 

Ve daha aşağıdaki mot ile sonra iptables kural girişi tamamlanır.

iptables -t nat -A PREROUTING -p tcp –destination-port 80 -j REDIRECT –to-port <listenPort>

SSL Strip uygulaması çalıştırılır. Bu şekilde 10000. port dinlemeye alınmış olunur.

  • -a: parametresi ile HTTP ve HTTPS olan bütün trafik kaydedilir.
  • -k: parametresi ile daha önce var ise kurulmuş bütün oturumlar iptal edilir.
  • -f:parametresi ile normal şartlarda HTTPS ile yapılan isteklerde tarayıcıda bulunan sol üst taraftaki kilit işareti yerine bir favicon yerleştirilerek saldırının gücü arttırılmış olunur.

/pentest/web/sslstrip altında sslstrip.py çalıştırılır.

./sslstrip.py -a -k –f

Tüm trafiğin saldırganın üzerinden akmasını ikna etmek için kurbana arpspoof [3] yapılır. Bu şekilde sunucudan gelen cevap ve istemciden giden istekte saldırganın üzerimizden geçmiş olacaktır.
Bu aşamaya kadar saldırı tamamlanmış olup saldırgan sadece bekleme aşamasına girer. Kurbanın yapmış olduğu istekler ve trafik sırasında akan parametreleri gözlemlemek için ettercap ağ izleme aracı başlatılır [5].

ssl-man-in-the-middle-attack-using-ssl-strip-tool-05
Şekil 5. Kurban bilgisayarı gösterir ekran görüntüsü

 

Yukarıda anlatılan saldırı parametrelerini Backtrack üzerinde gerçekliyoruz. Aşağıda her bir sorgu ayrı terminal üzerinde çalıştırılarak gösterilmiştir. Saldırı yukarıda ip bilgileri 192.168.59.131 makinesine yönelik yapılmıştır. Bu şekilde kurbanın makinesi ile sunucu arasındaki trafik dinlenmeye başlanacak ve trafikte değişiklik yapabilecek düzeye gelinecektir.

ssl-man-in-the-middle-attack-using-ssl-strip-tool-06
Şekil 6. Saldırı yapılırken çalıştırılan komutları gösterir ekran görüntüsü

 

Bu aşamadan sonra saldırgan sadece kurbanın E-Posta, E-Ticaret vs uygulamalarına HTTP ile ziyaret etmesini ve kritik uygulamaya buradan yönelmesini bekler. Örnekte Gmail E-Posta uygulamasına “http://www.google.com” üzerinden erişilmiştir.

ssl-man-in-the-middle-attack-using-ssl-strip-tool-07
Şekil 7. Saldırıya uğramış olan kurbanın Gmail linkinin HTTP’ye çevrilmiş olduğunu gösterir ekran görüntüsü

 

Kurban “http://www.google.com” adresini ziyaret etmesi ile aslında Ssl Strip devreye girip yukarıda anlatıldığı gibi tüm HTTPS linklerini HTTP’ye dönüştürmüş oldu. Yukarıdaki ekran çıktısında görmüş olduğunuz gibi Gmail linki üzerinde durulmuş ve alt taraftan link adresinin “http://mail.google.com” olduğu gözlemlenmiştir. Normal şartlarda Google mail sistemi HTTPS ile çalışmaktadır.

ssl-man-in-the-middle-attack-using-ssl-strip-tool-08
Şekil 8. Saldırı sonucu HTTP olarak bağlanılmış olan Gmail sayfası

 

Kurban mail sisteme giriş yapmak ister ve kullanıcıadı, parola bilgilerini girer. Bu durumda saldırgan tarafında olan biteni aşağıdaki ekran çıktısı ile görebiliriz.

ssl-man-in-the-middle-attack-using-ssl-strip-tool-09
Şekil 9. Saldırı sonrası kurbandan ele geçirilen bilgileri gösterir ekran görüntüsü

 

Saldırgan HTTPS trafiğinde araya girmiş olup kurbanın kullanıcıadı ve şifre bilgilerini elde etmiş oldu. Dikkat edilmesi gereken nokta kurbanın mail sistemine giriş yaparken herhangi bir sertifika hatasını alınmamış olmasıdır.

Kaynaklar:

[1] http://www.thoughtcrime.org/software/sslstrip/
[2] http://www.backtrack-linux.org/
[3] http://tr.wikipedia.org/wiki/Arp_zehirlenmesi
[4] https://addons.mozilla.org/en-us/firefox/addon/noscript/
[5] http://ettercap.github.io/ettercap/index.html
[6] https://www.bilgiguvenligi.gov.tr/ag-guvenligi/ssl-de-araya-girme-saldirilari-ve-guvenlik-onlemleri.html

 

 

Pentist: Sızma Testleri ve Bilgi Güvenliği Danışmanlık Hizmetleri

CEVAP VER

Yorumunuzu giriniz
İsminizi giriniz

Bu site, istenmeyenleri azaltmak için Akismet kullanıyor. Yorum verilerinizin nasıl işlendiği hakkında daha fazla bilgi edinin.