CEH Sertifikasyon Sınavı Notları – 10: Session Hijacking

0
2500
views
Bilgi güvenliği konusunda en çok tercih edilen sertifikalardan birisi de Certified Ethical Hacker (CEH) sertifikasıdır. Bu yazıda CEH sınavının konularından birisi olan “Session Hijacking” başlığı incelenecektir.

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

Session Hijacking (Oturum Çalma); kurban makinede kimlik doğrulama işlemi sırasında oluşan bilgilerin saldırgan tarafından çalınmasıdır. Böylece kurbana ait oturumun kontrolü saldırganın eline geçer. Parolaya sahip olmaya gerek kalmadan, kurban gibi erişim sağlanabilir. Kimlik doğrulaması sırasında kullanılan parola bilgisi kullanımında hesap kilitlenebiliyorken, geçersiz olan oturum ID değeri için hesap kilitlenmediği için Oturum Çalma saldırıları önemli bir saldırı yöntemi olarak görülür.

 

Oturum Çalma Saldırısının 3 Adımı

  • İzleme: Kurban ve sunucu arasına girilerek bağlantı izlenir ve sonraki paketin Sequence numarası tahmin edilir.
  • Senkronizasyon Bozma: Bağlantının senkronizasyonu bozulur. Saldırgan, gerçek istemciye RST veya FIN gönderereki istemciyi trafikten düşürür/koparır.
  • Paket Enjeksiyonu: Saldırgan ağa paket enjekte eder ve sunucuya sonraki paketin sequence ID değeri ile gerçek istemciymiş gibi, trafiği devam ettirir.

 

Oturum Çalma Çeşitleri

  • Yöntemine göre Aktif veya Pasif olarak oturum çalma saldırısı gerçekleştirilebilir.
    • Aktif oturum çalma yönteminde saldırgan aktif oturumu kendi üzerine alır ve devam ettirir.
    • Pasif oturum çalma yönteminde ise kurban ve sunucu arasındaki trafik dinlenir, kaydedilir.
  • OSI modeline göre Ağ seviyesinde ve Uygulama seviyesinde oturum çalma saldırısı gerçekleştirilebilir.
    • Ağ seviyesinde oturum çalma yönteminde kurban ve sunucu arasındaki TCP veya UDP oturumu arasına girilerek paketler ele geçirilebilir.
    • Uygulama seviyesinde oturum çalma yönteminde oturum ID değeri elde edilerek kullanıcı oturumu ele geçirilir.

 

Uygulama Seviyesinde Oturum Çalma Yöntemleri

  • Session Sniffing: Ağ dinlenebilir
  • Token/Session ID Tahmin Etme: Zayıf algoritmalar ile yeterince rastgele olmayan oturum ID değeri üretilirse, bu anahtarlar bir süre toplanır, paterni analiz edilerek tahmin edilebilir. Oturum anahtarında tarih kullanımı, kullanıcı adının kodlanmış halinin kullanımı,… vb yöntemler zayıf yöntemler olarak kabul edilmektedir
  • Man in the Middle (MITM): İstemci ve sunucu arasındaki TCP oturumunda araya girilebilir.
  • Man in the Browser (MITB): Kurbana ait web tarayıcısı ile web uygulaması arasına girilebilir. Trojan yazılımına ait zararlı kod (web tarayıcısı uzantısı da olabilir) kurbanın ziyaret ettiği sayfaları kontrol ederek beklediği sitelere (bankacılık, devlet, mailleşme siteleri olabilir) erişilip erişilmediğini kontrol eder. Kurban, hedef siteye eriştiğinde kurbana ait bilgiler saldırgana iletilebilir. Bu zararlı yazılımlar, web tarayıcısı ayarlarını değiştirerek SSL’de araya girebilir. Böylece, SSL ile gerçekleşen trafik sonucu bile elde edilebilir.
  • İstemci Taraflı Saldırılar: Doğrudan istemciye (kurbana) saldırılabilir. XSS (Cross-Site Scripting), CSRF (Cross-Site Request Forgery), trojan, zararlı javascript kodu enjekte edilmesi,… gibi yöntemler uygulanabilir.
  • Oturum Sabitleme (Session Fixation): Kurbanın oturumu saldırganın oturum ID değerine sabitlenir. Kurbanın kandırılması ile oturum ID değeri saldırgan tarafından bilinmiş olur.
  • Oturum Tekrarlama (Session Replay): Araya girilerek kaydedilen kimlik doğrulama bilgileri (authentication token) sunucuya gönderilerek, kurbanın kimliğine bürülür ve yetkisiz erişim elde edilir.

 

Ağ Seviyesinde Oturum Çalma Yöntemleri

  • TCP/IP Hijacking: Saldırgan, kurban istemcinin IP adresini taklit eder (Spoof). Doğru Sequence ID değerini bulana dek, kurbandan geliyormuş gibi, sunucuya paketler yollar. Yanlış denemeler sırasında, kurbana, kendi başlatmamış olduğu oturumlara ait ACK paketleri döneceği için bu paketler kurban tarafından düşürülür. Sonunda, saldırgan, Sequence numarasını tutturarak, oturumu ele geçirir. Bu saldırıda, kurban ve saldırgan aynı ağda olmalıdır.
  • RST Hijacking: Saldırgan, sunucunun IP adresini taklit eder. Doğru ACK numarasını bulduktan sonra, kurbana RST yollanır ve kurban istemcinin oturumu düşürülmüş olur.
  • Man in the Middle (MITM): Kurban ve sunucu arasına girilerek ağ dinlenir.
  • IP Spoofing: Saldırgan bilgisayarında yönetici (Administrator/root) hakkına sahip olmalıdır. Saldırgan, kaynak adresi farklı olacak şekilde kurbana paket yollar.
  • Blind Hijacking: Farklı ağda gerçekleşen bağlantıya (NFS, Telnet, IRC gibi) ait TCP Sequence numarası tahmin edilmeye çalışılır. Oturum ID değeri bulunduğu zaman zararlı veri/komut, bu pakete enjekte edilir. Saldırgan farklı ağda olduğu için ağı dinleyemez ve spoof edemez.
  • UDP Hijacking: Kurban, sunucuya bir UDP talebinde bulunduğu zaman araya girmiş olan saldırgan, sunucudan daha önce cevap verir (veya sunucunun cevabını düşürür) ve bu UDP paketine istediği veriyi ekleyebilir.

Ağ seviyesindeki (OSI 3. ve 4. katmandaki) bu saldırılarla, uygulama seviyesinde yetkiye sahip olunabilir.

 

Session Hijacking İçin Önlemler

  • Trafik şifreli olması en önemli önlemlerin başında gelir. Telnet/rlogin yerine SSH, FTP yerine sFTP, HTTP yerine HTTPS, IP yerine IPSec, Uzaktan erişim için VPN, standart SMB yerine imzalanmış SMB kullanılmalıdır.
  • IPS/IDS çözümleri kullanılmalıdır.
  • Hattın yanında verinin kendisi de şifrelenmelidir. Bu amaçla veri şifrelendikten sonra hedefe iletilecek şekilde pakete dahil edilmelidir.
  • Oturum sabitleme (Session Fixation) saldırısını önlemek için, başarılı login sonrası yeni bir oturum ID oluşturulmalıdır.
  • Oturum anahtarı rastgele/karmaşık ve uzun olmalıdır.
  • Her oturum başlangıcında yeni ve güvebilir bir oturum ID değeri kullanılmalıdır.
  • Oturum bitiminde oturum sonlanmalıi istemci logout olmalıdır. Yani her yeni oturum için yeniden kimlik doğrulanmalı ve oturum anahtarları yenilenmelidir.
  • Oturum ve çerez (cookie) belli bir süreli olmalıdır. Oturum bir süre sonra, zaman aşımına uğramalıdır.
  • Oturum adedi sınırlandırılmalıdır.
  • Geçersiz oturum no (Session Id) değeri varsa, kaba kuvvet saldırılarına karşı hesap belli bir süre kilitlenmelidir. Ancak bu önlem de erişilebilirlik problemine sebep olabilir. Bu sebeple ek güvenlik önlemleri kullanılabilir. CAPTCHA, çoklu kimlik doğrulama, belirli bir süre bekletme,… gibi bu önlemlerden bazılarıdır.
  • İstemci bilgisayar güncel ve saldırıya kapalı olmalıdır. Örneğin, istemciye DNS zehirlemesi yapılmamış olmalı, web tarayıcısı güncel olmalı, işletim sistemine ait yamalar geçilmiş olmalı,… vb.
  • Sunucular güncel ve saldırıya kapalı olmalıdır.
  • Mümkünse, ağ erişimleri kısıtlanmalıdır.
  • Yerel ağda, Hub yerine Switch kullanılmalıdır.
  • Oturum ID değeri, Query String’i olarak açık şekilde taşınmamalıdır.
  • ARP zehirlemesi ve Spoofing saldırılarına karşın gerekli önlemler alınmalıdır.
  • Kimlik doğrulaması güvenilir olmalıdır. Örneğin;
    • Kullanıcılar karmaşık parola girmeye zorlanmalıdır
    • Kerberos / VPN kullanılmalıdır
    • Web tarayıcıların belleğinde geçmiş/içerik/cookie/kimlik bilgisi saklanamamalıdır
    • Mümkünse, oturumlar gizli (private / incognito) modda çalıştırılmalıdır.
    • Kullanıcılar oturum bitince Logout ile çıkış yapılmalı, sadece browser kapatılmamaldır.
  • Kullanıcı farkındalığı arttırılmalıdır.

 

IPSec

  • Ağ seviyesinde güvenlik (gizlilik, bütünlük, kimlik doğrulama ve inkar edilememezlik) sağlar. Kurum iç ağına bağlantı için kullanılabilir. Trafik şifreli olduğu için veriler okunamaz ve MITM saldırılarından korunulur.
  • İki temel protokolü kullanır:
    • Authentication Header (AH): Şifreleme sağlamaz, gönderenin kimlik doğrulaması ve bütünlük kontrolü gerçekleştirilir.
    • Encapsulating Security Payload (ESP): Şifreleme ve kimlik doğrulama sağlar.
  • IPSec iki adet şifreleme modunu destekler:
    • Transport Modu: OSI 4. katman ve üzerinde güvenlik sağlar. 2 makine arasında kimlik doğrulamayı sağlar. NAT ile uyumludur. Gerçek IP adresi değişmez. Aynı yerel ağdaki cihazlarda kullanılabilir.
    • Tünel Modu: OSI 3. katman ve üzerinde güvenlik sağlar. Transfer edilen paketin encapsule edilmesini sağlar. NAT ile uyumsuzdur. Farklı ağdaki cihazlarda kullanılabilir.

IPSEC ile ilgili detaylı bilgi için bakınız: http://bidb.itu.edu.tr/eskiler/seyirdefteri/blog/2013/09/07/ipsec-vpn-(internet-protocol-security-internet-protokolü-güvenliği) veya http://www.hakkiinkaya.com/ipsec-internet-protocol-security-nedir-ve-ipsec-konfigurasyonu-nasil-yapilir/

 

Genel Notlar

  • Spoofing ve Hijacking farklı kavramlardır. Spoofing ile mevcut bir oturum çalınmaya çalışılmaz, kurbana ait (çalınan) kimlik bilgileri ile kurbanmış gibi (impersonation) yeni bir oturum başlatılır. Hijacking de ise, yeni bir oturum açılmaz, kurbana ait oturum ID değeri çalınarak mevcut oturum ele geçirilmeye çalışılır. Spoofing, Hijacking saldırısına göre daha kolaydır.
  • HTTP stateless bir ptorokoldür. Bu sebeple Çerezler (Cookie) kullanılır.
  • Çerezler Persistent (disk üzerinde) veya Non-Persistent (RAM üzerinde) olarak saklanabilir. Çerezler 2 çeşittir:
    • Session Cookie: Web sayfasını kapatınca gider
    • Permanent Cooekie: Belli bir süre boyunca saklanır
  • GET, POST, HEAD, PUT, DELETE, TRACE,… gibi çeşitli HTTP metodları vardır. En tehlikeli metodların PUT (dosya ekler) ve DELETE (dosya siler) olduğu söylenebilir.
    • GET Medotu: Parametreler URL’de gider.
    • POST Metodu: Parametre body kısmında gider. POST kullanılınca URL’de parametre gitmeyeceğinden; araya giren ve sadece URL bilgisini okuyan (örneğin, logları okuyabilen) kişi tarafından görülemez.
  • Oturum ID’si; GET kullanılıyorsa URL içerisinden, Form içerisindeki gizli alanlardan (hidden field), İstemci bilgisayarda saklanan çerez içeriğinden elde edilebilir.
  • SSL, 4. katmanda (transport) şifreleme yapar. 5. ve 6. katmanlarda da çalışır.
  • Kimlik doğrulama genellikle TCP oturumunun başında yapıldığı için, oturum anahtarı elde edildikten sonra, saldırgan bu oturumu devam ettirebilir. Bu sebeple tek kullanımlık parolalar (one –time password) kullanılsa bile, bağlantının başında ele geçirilen kimlik bilgileri ile oturum çalınabilir . Bu saldırı, OSI taşıma katmanında gerçekleşir. B
  • Oturum güvenliği ile ilgili bir saldırı yöntemi ile ilgili ayrıntılı bilgi için bakınız: http://docplayer.biz.tr/2200122-Oturum-oncesi-tanimli-oturum-kimligi-cerezi-acigi-gokhan.html
  • Referer Saldırısı: Kurbana bir link yollanır. Bu link içerisindeki Host başlığı saldırganın kontrolündeki site, ancak Referrer başlığı ise legal bir site (facebook.com gibi) adresi olur. Link’i tıklayan kurbanın browser’ı, referer URL içerisindeki siteye talepte bulunur ve Session ID değerini saldırganın adresine gönderir.
  • Oturum çalma araçları: Zaproxy (OWASP Zed Attack Proxy), Burpsuite, JHijack, Hamster, Firesheep, Ettercap, Sslstrip, DroidSheep, DroidSniff, …

 

CEH v9 Eğitimi Konu Başlıkları

  • Attack Techniques 2015
  • Session Hijacking Concepts
    • What is Session Hijacking?
    • Why Session Hijacking is Successful?
    • Session Hijacking Process
    • Packet Analysis of a Local Session Hijack
    • Types of Session Hijacking
    • Session Hijacking in OSI Model
    • Spoofing vs. Hijacking
  • Application Level Session Hijacking
    • Compromising Session IDs using Sniffing
    • Compromising Session IDs by Predicting Session Token
      • How to Predict a Session Token
    • Compromising Session IDs Using Man-in-the-Middle Attack
    • Compromising Session IDs Using Man-in-the-Browser Attack
      • Steps to Perform Man-in-the-Browser Attack
    • Compromising Session IDs Using Client-side Attacks
      • Compromising Session IDs Using Client-side Attacks: Cross-site Script Attack
      • Compromising Session IDs Using Client-side Attacks: Cross-site Request Forgery Attack
    • Compromising Session IDs Using Session Replay Attack
    • Compromising Session IDs Using Session Fixation
      • Session Fixation Attack
    • Session Hijacking Using Proxy Servers
  • Network-level Session Hijacking
    • The 3-Way Handshake
    • TCP/IP Hijacking
      • TCP/IP Hijacking Process
    • IP Spoofing: Source Routed Packets
    • RST Hijacking
    • Blind Hijacking
    • MiTM Attack Using Forged ICMP and ARP Spoofing
    • UDP Hijacking
  • Session Hijacking Tools
    • Session Hijacking Tool
      • Zaproxy
      • Burp Suite and JHijack
    • Session Hijacking Tools
    • Session Hijacking Tools for Mobile: DroidSheep and DroidSniff
  • Countermeasures
    • Session Hijacking Detection Methods
    • Protecting against Session Hijacking
    • Methods to Prevent Session Hijacking
      • To be Followed by Web Developers
      • To be Followed by Web Users
    • Approaches Vulnerable to Session Hijacking and their Preventative Solutions
    • IPSec
      • Modes of IPsec
      • IPsec Architecture
      • IPsec Authentication and Confidentiality
      • Components of IPsec
  • Session Hijacking Pen Testing

 

 

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.