Exploit Geliştirme Eğitimi - 2

Amaç

Exploit Geliştirme Eğitimi – 1 eğitimi ile bellek taşma açıklıklarının anlaşılması ile ilgili temel bilgiler aktarılmıştır. 2. eğitim bu altyapının üzerine sıkça hedef alınan Structured Exception Handling açıklık türünün açıklanmasını, heap tabanlı bellek taşma açıklıklarına, modern işletim sistemi güvenlik kontrolleri ve aşılma yöntemlerine giriş seviyesinde bilgi verilmesini hedeflemektedir. Eğitimin en önemli bölümlerinden birisi de exploit shellcode geliştirme bölümüdür. Bu bölümde, belleğe yazarak kendi amaçlarımız doğrultusunda çalıştırabileceğimiz, pozisyon bağımsız bir kodu geliştirme yöntemleri açıklanmaktadır.

Ön Koşullar

Eğitime katılım için Exploit Geliştirme Eğitimi – 1 eğitimini tamamlamış olmak şarttır.

Katılımcılar

Sızma testi uzmanları, bilgi güvenliği ve bilgi teknolojileri denetçileri, teknik bilgi güvenliği yöneticileri, bilgi güvenliği olay müdahale ekipleri personeli, Assembly, C, C++ ve diğer makine dilinen derlenen kaynak kod dillerinde geliştirme faaliyetlerinden bulunan yazılım personeli eğitimden fayda sağlayabilirler.

İçerik
  • SEH istismarları
    • Structured Exception Handler yöntemine giriş
    • SEH uygulayan ve uygulamayan uygulamaların makine kodlarını karşılaştırabilmek için öncelikle SEH uygulamayan ancak hataya açık bir uygulamanın makine kodlarının incelenmesi
    • SEH'in makine kodunda uygulanmasının statik analizi
    • SEH veri yapılarının anlaşılması
    • SEH'in makine kodunda uygulanmasının dinamik analizi
    • SEH'in uygulanmasının ve ilgili veri yapılarının teorik olarak açıklanması
    • Stack'te bulunan SEH veri yapılarına müdahale imkanı olduğunda uygulama davranışının gözlenmesi
    • Uygulama akışını yönlendirebildiğimizde değerlendirebileceğimiz exploit yöntemleri ve bunların SEH exploit'lerinde kullanılıp kullanılamayacağının değerlendirilmesi
    • SEH veri yapılarına müdahale edebildiğimizde güvenilir bir exploit yönteminin geliştirilmesi ve uygulanması
  • Exploit shellcode geliştirme
    • Exploit shellcode’larına giriş
      • Exploit shellcode'un tanımı
      • Exploit kodu geliştirirken aşılması gereken kısıtlar
      • Exploit kodu geliştirebilmek için gerekli ön bilgiler
      • Exploit kodu geliştirirken edineceğimiz yetkinliklerin zararlı yazılım incelemesi için sağlayacağı faydalar
    • Shellcode test araçlarımızın geliştirilmesi
      • Shellcode'umuzu denemek için basit bir araç geliştirme
      • Derlenmiş shellcode'umuzu C karakter array'ine dönüştürecek bir araç geliştirme
    • Shellcode problemleri ve aşma yöntemleri
      • Standart bir C kodunun derlenerek shellcode olarak kullanılmaya çalışılması
      • Shellcode'umuzda ihtiyaç duyacağımız statik verileri hafızaya yazabilme ve referans verebilme çözümü
      • Shellcode'umuzdan çağırmamız gereken API'lerin içinde bulunduğu modül (kütüphane) hafıza adresinin bulunması
      • Modül taban adresi bulunduktan sonra aranan fonksiyon adresinin bulunması
    • Shellcode’un geliştirilmesi
      • Shellcode'un farklı bir prosesin hafıza alanında işlevsel olabilmesi için gerekli tekniklerin uygulanması
      • Assembly dilinde shellcode'un geliştirilmesi
    • Shellcode içinde özel karakterlerden kaçınma
      • Shellcode'un hafızaya tam olarak yazılmasını engelleyebilecek kötü karakterlere örnek olarak null karakter'in verilmesi
      • Null karakter içerecek opcode üretiminden sakınmak için izlenebilecek yollar
    • Shellcode’un çalışma anında kendini değiştirecek biçimde encode edilmesi
      • Shellcode'u kötü karakterlerden kurtarma veya shellcode'un incelenmesini zorlaştırma amacıyla kodlama
      • Encoding sırasında karşılaşılan pozisyon bağımsız kodlama probleminin çözümü
  • Heap tabanlı hafıza taşmalarına giriş
  • Heap spray yöntemi
  • Derleyici ve işletim sistemi güvenlik kontrolleri
    • Stack security kontrolü ve aşılması
    • ASLR kontrolü ve aşılması
    • DEP kontrolü ve aşılması
      • Return Oriented Programming
Süre / Yer

Süre: 2 gün

Yer: İstanbul