Herkese merhaba, daha önce OSWE serfikasyonu için bir yazı paylaşmıştım. Bu makaleye aşağıdaki link aracılığıyla erişebilirsiniz.

  • >> AWAE Advanced Web Attacks and Exploitation
  • Bugün ise "Cracking the Perimeter (CTP) " eğitiminde neler olduğuna ve "Offensive Security Certified Expert (OSCE)" sertifikasyon sürecindeki bazı önemli noktaları sizlere aktarmaya çalışacağım.

    Ancak yine konumuza başlamadan önce OSWE sertifikasyonu için hazırladığım yazımdaki "Sizce sertifikalara olan bakış açımız doğru mu?" başlıklı bölümü şiddetle okumanızı öneriyorum. Bu konunun üstünde sürekli ve ısrarla duracağım çünkü başarılı olmanın ve kendimizi geliştirmenin temelinde sertifikalara olan bakış açımızın önemi çok büyüktür.

    Aşağıda yer alan başlıklarla elimden geldiğince bilgi aktarmaya çalışacağım. Umarım faydalı olur.

    - OSCE'den önce OSCP sertifikasının alınması gerekiyor mu?
    
    - CTP eğitim içeriğinde neler var?
    
    - Öneriler
    
    - Sınav hakkında bilmeniz gerekenler
    
    - Sınava girmeden önce hakim olunması gerekenler

    # OSCE'den önce OSCP sertifikasının alınması gerekiyor mu?

    Offensive Security resmi web sitesinde yer alan şu tabire göre "Cracking the Perimeter (CTP) is the next step for penetration testers who have completed PWK.", CTP eğitimi PWK(Penetration Testing with Kali Linux) yani OSCP eğitiminden sonraki adım olarak tanımlanıyor. Aslında eğitim ve sınav içeriği olarak çok farklı sertifikasyonlar olsa da PWK içerisinde barındırdığı bazı konularla CTP eğitimine ucundan dokunuyor diyebiliriz.

    PWK eğitim müfredatında Buffer Overflow zafiyetine yönelik belirli bir seviyede tutulmak kaydıyla bilgi aktarılmaya çalışılıyor. Hatta OSCP sınavında bir adet 25 puanlık soru Buffer Overflow zafiyetinin sömürülmesi üzerine oluşturulmuştur. CTP eğitimi ve OSCE sınavı ise neredeyse tamamen Buffer Overflow zafiyetlerinin sömürülmesi üzerine oluşturulmuş durumdadır. Bu yüzden OSCP sertifikasyonunu almış olmanın OSCE için faydalı olacağını düşünmekteyim.

    PWK'da BOF için bir giriş sağlamakla birlikte, servisler üzerinden mevcut zafiyetlerin sömürülmesi, shell oturumu ile işlem yürütme, metasploit kullanımı veya otomatize shellcode üretimi vb. zaten hakim olunması gereken temel konular öğrenilmiş olunuyor. Dolayısıyla yeni bilgilere açık bir şekilde CTP eğitimini alabilirsiniz. Eğitim ve sınav içerikleri farklı olsada OSCP'nin daha önce alınmış olmasını kesinlikle öneririm. Hem bazı konuları aradan çıkartmış oluyorsunuz hem de OFFSEC sınav tecrübesi edinmiş oluyorsunuz ki bu da yine önemli bir konudur.

    # CTP eğitim içeriğinde neler var?

    Yine OSWE makalesinde tam olarak paylaşamadığım gibi, etik olmaması sebebiyle ücretli satışta olan bu eğitim içeriğine tamamen değinemeyeceğim.

    Genel başlıklara ve zaten piyasada paylaşılmış olunan bazı önemli konulara ait referanslar bırakacağım.

    CTP kurs müfredatı OffSec tarafından paylaşılmaktadır. Aşağıdaki link aracılığıyla erişebilirsiniz;

  • >> CTP Syllabus
  • Eğitim içeriğinde yer alan ve sınavı da doğrudan etkileyen konu başlıkları aşağıda yer almaktadır.

  • Assembly
  • Debugger, Disassembler, PE Editor, Hex Editor gibi yardımcı araçlara yönelik bilgilendirme
  • Stack based overflows(Yığın tabanlı taşmalar)
  • SEH - Structured Exception Handlers (Yapılandırılmış özel durum işlemesi)
  • Web uygulamalarına yönelik bazı zafiyet türlerinin sömürülmesi
  • Antivirüs Sistemlerinin Atlatılması
  • ASLR - Address Space Layout Randomization (Rastgele Address Alanı Düzeni)'ın Atlatılması
  • PE - Portable Executable(Taşınabilir Yürütülebilir) dosyalara backdoor yerleştirme işlemleri
  • Egghunter üretimi, kullanımı ve çalışma mantığına yönelik pratik uygulama
  • Ofsetleri Değiştirme ve Yeniden Düzenleme
  • Restricted Characters/Bad Chars - (Kısıtlanmış Karakterler) tespiti
  • Atlamalarla(Jumps) shellcode yerleştirme
  • Fuzzing ve Exploit geliştirme
  • Shellcode encoding teknikleri
  • Network altyapılarına yönelik saldırılar
  • Eğitim içeriği Offensive Security yöneticilerinden ve Backtrack/Kali Linux dağıtımlarının geliştiricilerinden olan Mati Aharoni tarafından hazırlanmıştır. Nitekim elinize ulaşan sertifikalarda kendisinin imzasını görebilirsiniz. Mati Aharoni, "muts" takma adını kullanmaktadır. Dolayısıyla exploit-db de muts'a ait paylaşılmış olunan zafiyetleri incelemenizde fayda var. Eğitimde bu zafiyetler üzerinden anlatım yapıyor. Aşağıdaki link aracılığıyla kendisinin paylaşmış olduğu zafiyetlere erişebilirsiniz.

  • >> Mati Aharoni (muts) exploits
  • Ek olarak OSCE için yazılmış ve hoşuma giden farklı blog yazılarını da buraya eklemek istiyorum.

  • >> Jack Halon CTP & OSCE Review
  • >> Mike Czumak CTP & OSCE Experience
  • # Öneriler

    Eğitim içeriğinin tamamı x86 mimarisi üzerine kurulmuştur. Bu yüzden x86 yani 32 bit mimarisinin iyi bir şekilde kavranmasını önermekteyim.

    Her zaman belirtmeye çalıştığım gibi temeli atılmamış bir bilginin o zeminde kalması mümkün değildir. Mimarinin kavranmasıyla birlikte Assembly dilinin de beraberinde öğrenilmesi gerekmektedir. Orta seviyede hakim olmanız şimdilik yeterli olacaktır. En azından sık sık karşılaşacağınız mov,add,sub,jmp,push,pop gibi temel komutlarla neler yapılabileceğini bilmelisiniz. Diğer türlü bir çok şeyi ezbere yapmış olursunuz ve dolayısıyla akılda kalıcılığı pek mümkün olmayabilir.

    Debugger, Disassembler, PE Editor, Hex Editor gibi yardımcı araçlarlar üzerinde pratik yapmakta yine fayda var. Çünkü sıkça kullanacaksınız.

    Kursa başlamadan önce basit seviyede de olsa exploitation ve shellcode kavramlarına aşina olmalısınız. Eğer bu yapılarla tanışıklığınız yoksa sınav müfredatı ve işlenen konular ağır gelebilir ve moralinizi bozabilir. Ancak gözünüzde fazla büyütmeyin. Temeli iyi atıldıktan sonra öğrenilmeyecek hiç bir şey yoktur.

    Binary,hex,ascii gibi aritmatiklerin mantığını ve çeviri hesaplamalarını yapabiliyor olmanız yine bir çok konunun altını doldurarak. (Sınavda da istenecek olunan manuel hesaplamalar için önemlidir.)

    Eğer ana diliniz ingilizce değilse, daha önce karşılaşmadığınız tüm kısaltmaların ve terimlerin ana dilinizdeki anlamlarını kesinlikle çıkartmalısınız. Bu konuları daha iyi anlamanızı sağlayacaktır. Bunlar binlerce defa duyduğunuz ve söylediğiniz DLL,CPU,RAM gibi onlarcası olabilir. Açılımlarını öğrenerek ana dilinizdeki anlamlarını kesinlikle incelemelisiniz. Kısacası ilk önce her terime ve yapıya kendi ana dilinizde hakim olmaya çalışmanızı önermekteyim. Sonrasında orjinal ismi zaten aklınızda yer edinecektir.

    CTP eğitiminde ve sınavında web uygulamalarının sömürülmesine de yer verilmiş olmasından dolayı web uygulamalarına yönelik popüler zafiyetlere hakim olmalısınız. Sınavda uygulama içine yerleştirilmiş zafiyetin kaynak kodda keşfedilerek manuel olarak sömürülmesi beklenmektedir.

    Yine CTP'den önce eğitimin neredeyse tamamının BOF üzerine yapılı olmasından dolayı, BOF türündeki daha önce paylaşılmış zafiyetlerin incelenerek kendi lab ortamınızda bu zafiyetler üzerinde tekrar çalışmaları yapmanızı öneriyorum. Bu şekilde belleğin nasıl taşırıldığı, taşırıldıktan sonra temel olarak hangi işlemlerin yapılması gerektiği ve hedef sistemden bu zafiyeti kullanarak nasıl shell alınabileceği gibi konulara aşina olmanızın büyük faydası olacaktır. Daha sonra ileri düzeyine de CTP'de rahatlıkla devam edebilirsiniz.

    Son olarak işletim sistemlerinin temelinde kullanılan anti-exploitation mekanizmalarını(ASLR,DEP vb.) araştırmanızı ve bunların x64 ve x86 mimarilerdeki çalışma mantığını incelemenizi önermekteyim.

    # Sınav hakkında bilmeniz gerekenler

    Sınavda toplam dört ayrı soru ve dört farklı makina bulunmaktadır. Bunlardan ikisi herhangi bir bağlantı bilgisi sağlanmayan hedef makinalardır. Diğer ikisi de debug işlemlerini gerçekleştireceğiz makinalardır. Soruların ikisinde bağlantı bilgileri verilmeyen makinalardan proof.txt okunup gönderilecek olan raporda net bir şekilde belirtilmelidir. Diğer ikisi ise sizden istenilen ve net olan çözüm yolunu debug makinalarında adım adım gerçekleştirip bu işlemleri rapor olarak sunmanız gereken PoC konseptli sorulardır. Sınavda tıpkı OSWE'de olduğu gibi otomatize exploitation araçlar yasaktır.

    Sınav klavuzunu offsec resmi sitesi üzerinden inceleyebilirsiniz.

  • >> OSCE Exam Guide
  • 30+30+15+15 olmak üzere sınavda toplamda en fazla 90 puan toplayabilirsiniz. Sınavın taban geçme puanı ise 75'dir. Yani sadece bir adet 15 puanlık soru çözmeme gibi bir lüksünüz var.

    Sınavı tamamlamak için size tanınan süre 47 saat 45 dakikadır. Eğer sınavı geçerseniz ek olarak 24 saatte raporlama süresi verilmektedir.

    # Sınava girmeden önce hakim olunması gerekenler

  • Web uygulamalarına yönelik popüler zafiyetlere ve özellikle de bu zafiyetlerin RCE yani uzaktan kod çalıştırma zafiyetine nasıl çevirilebileceklerine yönelik tekniklere hakim olmalısınız.
  • Yetkisiz bir kullanıcı ile hedef makinadan reverse shell alındıktan sonra PrivEsc yani yetki yükseltme aşamasında kullanılabilecek yöntemlere hakim olmalısınız.
  • Laboratuvarda yer alan modüllerin hepsini kavramalı ve lab sürecinde bu modüllere uygulamalı bir şekilde çalışmış olmalısınız. Ayrıca bu modüllerin içerdiği konularda daha önce paylaşılmış zafiyetler üzerinden yine uygulamalı bir şekilde alıştırma yapmalısınız.
  • Eğitim içeriği kısmında sizinle paylaştığım "Eğitim içeriğinde yer alan ve sınavı da doğrudan etkileyen konu başlıkları" altındaki tüm konular net bir şekilde temel mantıklarıyla birlikte çözümlenerek anlaşılmalıdır.
  • Aktarmak istediklerim bu kadardı. OSCE hakkındaki soru ve görüşlerinizi aşağıda yer alan yorum alanına bırakabilirsiniz. Bilgimin yettiği kadar cevap vermeye çalışacağım. Umarım faydalı bir konu olmuştur.

    Azimli günler dilerim. (AkkuS)