SlideShare una empresa de Scribd logo
1 de 31
Descargar para leer sin conexión
Metasploit Framework ile Exploit Geliştirme


       Fatih Özavcı                 Canberk Bolat
    Bilgi Güveniği Danışmanı       Güvenlik Araştırmacısı
fatih.ozavci at gamasec.net    canberk.bolat at gmail dotcom
     gamasec.net/fozavci           cbolat.blogspot.com
Kapsam
 Exploit Geliştirme Süreci
 Metasploit Framework Geliştirme Araçları
 Exploit, Auxiliary ve Post için Hazır Fonksiyonlar
    Protokol ve Servis Yardımcıları
    Fuzzing Araçları
    Encoder, NOP, Kripto Araçları
 Örnek Exploit ve Modüller

 Bilinmesi Gerekenler
     Ruby Dili ve Yapısı
     Metasploit Framework Kullanımı


                                                      2
Exploit ve Temel Kavramlar
 Bir güvenlik açığını kullanarak normal-dışı bir işlem yapılmasını
 sağlayan yöntem veya yazılım
 http://sunucu/scripts/..%c0%af../winnt/system32/cmd.exe?/c+dir
 http://sunucu/login.asp?uid=' OR 1='1


 Payload / Shellcode : Exploit sonrası çalıştırılacak ve normal-dışı
 işlemi yapacak içerik, kabuk kodu


 NOP / NOPSlide : “Not Operation” bitleri, talimat içermeyen ve
 bellekte istenen yere ulaşıncaya kadar belleği dolduran bitler


 Encoder : Çalıştırılacak Shellcode’u değiştiren, Saldırı Önleme
 Sistemi veya Anti-Virüs tarafından yakalanmasını önleyen kodlar


                                                                       3
Güvenlik Açığından Exploit'e Gidiş

    Fuzzing                 Hata Ayıklama


                            Saldırı Vektörü
EIP - 0x41414141
                        Kararlı EIP Dönüş Adresi


Son Kabuk Kodu             Kötü Karakterler


                         Kabuk Kodu Çalıştırma
 Çalışan Exploit


  Kabuk Kodunu                  INT 3?
    Karşılama
                                                   4
Örnek Exploit Yapısı


EIP Exploit
                                           Decoder
  Gereksiz                   İşlevsiz
                    EIP                 Payload/Shellcode
   Bitler                     Bitler



SEH Exploit
Gereksiz Bitler                            Decoder
                             İşlevsiz
                  NSEH SEH              Payload/Shellcode
     EIP                      Bitler


                                                            5
Return Oriented Programming




   Resource: http://www.auscert.org.au/render.html?it=13408
                                                              6
Return Oriented Programming
   Data Execution Prevention Bypass
       VirtualAlloc
       HeapCreate
       SetProcessDEPPolicy
       NtSetInformationProcess
       VirtualProtect
       WriteProcessMemory
   Code Reuse Technique
   Ret2lib
   ROP Gadgets

ROP / DEP Bypass
http://cbolat.blogspot.com/2011/07/return-oriented-programming-dep-bypass.html
                                                                                 7
Return Oriented Programming
   ROP Gadget
       RETN ve türevleri ile biten instruction'lar
       CPU Register'ları ile oynamamızı sağlayan bir takım
       instruction'lar barındıran "instruction parçaları"




ROP / DEP Bypass
http://cbolat.blogspot.com/2011/07/return-oriented-programming-dep-bypass.html
                                                                                 8
Return Oriented Programming




ROP / DEP Bypass
http://cbolat.blogspot.com/2011/07/return-oriented-programming-dep-bypass.html
                                                                                 9
ROP Payload Yapısı




ROP / DEP Bypass
http://cbolat.blogspot.com/2011/07/return-oriented-programming-dep-bypass.html
                                                                                 10
Genel Exploit’lerin Özellikleri
  Çok farklı programlama dillerinde sunulabilirler
  (binary,c,c++,perl,lisp,python)
  Açığın tek veya özel bir kullanımı üzerine geliştirilmiş
  olabilirler (..%c0%af.. veya ..%c0%qf..)
  Payload/Shellcode değeri özelleştirilemeyebilir (binary,
  açık hakkında kısıtlı bilgi)
  Kod kirli veya kötü niyetli yazılmış olabilir
  Herkesçe kullanıldığı için önlem alınmış olabilir
  Sadece açığı kanıtlamak için yazılmış kod örnekleri
  olabilir




                                                             11
Exploit Geliştirme Süreci

                         Güvenlik
                          Açığının
     Farklı Payload     Duyurulması   Teknik Analiz
   Kullanımına Hazır                  ve Çözümleme
    Hale Getirilmesi

  Exploit’in                                 Açık Atlama
Özelleştirilebilir                           Noktalarının
 Hale Gelmesi                                Belirlenmesi



    Farklı Platform                        Çözümleme
    ve Programlara                          Yapılarak
     Uyarlanması                         Normal-Dışı İşlem
                        Exploit’in          Yapılması
                       Hazırlanması
                                                             12
Hangi Araçlar Kullanılır
  Açık Bulunan Yazılımın Örneği !?
  Fuzzer (Karıştırıcı ve Değiştiriciler)
  Encoder (Kodlayıcılar)
  HEX Editörler
  Binary Analiz Araçları
  Debugger (Hata Ayıklayıcılar)
  Sniffer (Paket Yakalayıcılar)
  Protokol Çözümleyiciler
  Yorumlayıcılar / Derleyiciler (Interpreter/Compiler)
  Shellcode’lar
  SQL Sorguları


                                                         13
Metasploit Framework
 Bileşenler
    ~1000 Exploit ~250 Payload ~500 Yardımcı Araç ~30 Encoder
    ~150 Exploit Sonrası Modül/Script
 Çok farklı türde Payload’lar kullanılabiliyor ve bağımsız olarak
 üretilebiliyor (Binary, Perl, Python, Shell, PHP)
 Meterpreter ile Hedef Tamamen Ele Geçirilebiliyor
 VNC ile Hedef Sisteme Grafik Arayüzle Bağlanılabiliyor
 Çok sayıda farklı encoder kullanılabiliyor (Shikata Ga Nai vb.)
 Konsol, Seri ve Grafik (Armitage) arayüzlerine sahip
 En güçlü özelliği Post-Exploitation yetenekleri (Meterpreter, VNC
 DLL Injection, Anti-Forensic, Process Migration vb.)



                                                                     14
Metasploit Framework'ün Avantajları
 Exploit ve Payload ayrımı
 Varolan Exploit'lerin Geliştirilmesi, Hedef Eklenmesi
    Kaynak kodu açık Exploit’ler
    0 gün Exploit’leri
 Hazır fonksiyonlar ile daha az Exploit kodu
    Sadece Offset ve Ret Değişimi ile Hedef Ekleme
    Hazır Servisler ve Protokol Kütüphaneleri
    Farklı İşlemci Mimarileri için Kodlayıcılar (Encoder)
    Hazır Kabuk Kodları ve Yardımcı araçlar
    Egg Hunting, Heap Spraying, ROP Destekleri



                                                            15
Metasploit Framework Payload Seçimi
 Kabuk Kodları                                Kabuk Kodu
     Bind Shell
     Exec
     Reverse Shell
     Staged Shell
 İleri Düzey Yöntemler
     EggHunting
     Meterpreter (Railgun, Powershell, Ruby Scripting)
     DLL Injection (VNC, Özelleştirilmiş DLL)
 Her Kabuk Kodu için Karşılama
     Multi/Handler
 Kodlama Araçları                Decoder        Oudk Kbuak
     Alpha2, Shika_ga_nai
                                                             16
Encoder/Decoder


                              Decoded Payload


                    Decoder
                              0x3f 0x17 0x45 0x42 0x7E
                     Stub




   XOR byte, ABCD




                                                         17
Egg Hunting
 Yapısı Payload Decoder'lara çok benzemektedir
 Shellcode Memory'de bilmediğimiz bir adrestedir
 Egg Hunting payload Memory'de belirtilen özel bir string
 değeri arar
 O string değerin bulunduğu yerden itibaren olan
 instruction'lar çalıştırılır
 Yani Shellcode!




                                                            18
Egg Hunting
                                 Memory
                                          Egg Hunting Tag   Shellcode


                                                            0x909090CC
       0x3f456602   0x726f41b4     ...    0x43424342
                                                                ...




IF (DWORD == 0x43424342)
     JUMP TO DWORD+4




                                                                         19
Egg Hunting

 00 33DB         xor ebx,ebx
 02 6681CBFF0F   or bx,0xfff
 07 43           inc ebx
 08 6A08         push byte +0x8
 0A 53           push ebx
 0B B80D5BE777   mov eax,0x77e75b0d   ; IsBadReadPtr
 10 FFD0         call eax
 12 85C0         test eax,eax
 14 75EC         jnz 0x2
 16 B842434243   mov eax,0x43424342   ; TAG: CBCB
 1B 8BFB         mov edi,ebx
 1D AF           scasd                ; Compare EAX w/ ES:EDI
 1E 75E7         jnz 0x7
 20 AF           scasd                ; Compare EAX w/ ES:EDI
 21 75E4         jnz 0x7
 23 FFE7         jmp edi              ; JUMP to Shellcode




                                                                20
Metasploit Framework Araçları
 MSFPayload – Kabuk Kodu Kodlama
 MSFEncode – Kabuk Kodu Kodlama
 MSFRop – ROP Gadget'larının Araştırılması
 Pattern_Create/Pattern_Offset – Bellek Alanı Hesaplama
 MSFPEScan/MSFElfScan – Dönüş Adresi Bulma
 Metasm_Shell – Assembler/Disassembler




                                                          21
Metasploit Framework Araçları
 MSFPayload – Kabuk Kodu Kodlama
 MSFEncode – Kabuk Kodu Kodlama
 MSFRop – ROP Gadget'larının Araştırılması
 Pattern_Create/Pattern_Offset – Bellek Alanı Hesaplama
 MSFPEScan/MSFElfScan – Dönüş Adresi Bulma
 Metasm_Shell – Assembler/Disassembler




                                                          22
REX Kütüphanesi ve Modül Yapısı




                                  23
Exploit ve Modül Ayrımı
Metasploit Framework'e Göre, Kabuk Kodu
Çalıştırılmıyorsa Exploit Değildir.
  Auxiliary Modülü
  Post Modülü

Yardımcı Modül ile Exploit İşlemi
  Sahte Servis ile Bilgi Sızdırma, Fuzzing, Bilgi Toplama
  Dosya İşletme, Servis Engelleme, Sosyal Mühendislik
  Veritabanı, SAP, VoIP ve VM Analizi

Post Modülü
  Yetki Yükseltme, Bilgi Toplama, Yönetim Ele Geçirme
                                                            24
Protokol, Servis ve İstemci Sınıfları

Msf::Exploit::Remote::Ftp                  Msf::Exploit::Remote::Imap
Msf::Exploit::Remote::FtpServer            Msf::Exploit::Remote::Smtp
Msf::Exploit::Remote::HttpClient           Msf::Exploit::Remote::SMTPDeliver
Msf::Exploit::Remote::HttpServer
                                           Msf::Exploit::Remote::SunRPC
Msf::Exploit::Remote::HttpServer::HTML
Msf::Exploit::Remote::MSSQL                Msf::Exploit::Remote::Tcp
Msf::Exploit::Remote::MSSQL_SQLI           Msf::Exploit::Remote::TcpServer
Msf::Exploit::Remote::MYSQL                Msf::Exploit::Remote::TFTPServer
Msf::Exploit::Remote::TNS                  Msf::Exploit::Remote::NDMP
Msf::Exploit::Remote::Postgres
                                           Msf::Exploit::Remote::Udp
Msf::Exploit::Remote::SMB
Msf::Exploit::Remote::SMBServer            Msf::Exploit::Remote::WinRM
Msf::Exploit::Remote::SMB::Authenticated


                                                                          25
Fuzzing ve Kabuk Kodu Hazırlama

Kodlama ve Dönüştürme         Fuzzing - Msf::Auxiliary::Fuzzer

   Rex::Assembly::Nasm           #fuzz_numbers

   Rex::Encoder::Alpha2          #fuzz_string_corrupt*

   Rex::Encoder::Xor             #fuzz_strings

   Rex::Encoder::NonAlpha        #fuzzer_gen_string

   Rex::Encoder::NonUpper        #fuzzer_number*
                                 #fuzzer_string_filepath_dos

Karakter Üretme - Rex::Text      #fuzzer_string*

   rand_text*                    #fuzzer_string_path*

   md5                           #fuzzer_string_uri*

   encode/decode_base64


                                                                 26
Diğer Faydalı Sınıflar
Kabuk Kodu Çalıştırma                Dosya Tipi Açıkları
   Msf::Exploit::Brute                  Msf::Exploit::FILEFORMAT
   Msf::Exploit::BruteTargets           Msf::Exploit::PDF
   Msf::Exploit::RopDb                  Msf::Exploit::PDF_Parse
   Rex::Exploitation::Seh            Exe Çalıştırma, Format String
   Rex::Exploitation::Omelet::*
                                        Msf::Exploit::FormatString
   Rex::Exploitation::Egghunter::*
                                        Msf::Exploit::WbemExec
   Rex::Exploitation::OpcodeDb::*
                                     Yerel Açıkların Kullanımı
   Rex::Exploitation::EncryptJS
                                        Msf::Exploit::Local::Linux
   Rex::Exploitation::HeapLib
                                        Msf::Exploit::Local::LinuxKernel
   Rex::Exploitation::JSObfu
                                        Msf::Exploit::Local::Unix
   Rex::Exploitation::ObfuscateJS
                                        Msf::Exploit::KernelMode
   Rex::Exploitation::CmdStager*
                                                                           27
Exploit ve Modül Örnekleri




    Metasploit Framework Exploit ve
    Modüllerinin Örnekleme ile Analizi




                                         28
Bağlantılar ve Referanslar

  Günlükler
  fozavci.blogspot.com
  cbolat.blogspot.com

  Türkçe Metasploit Framework Rehberi
  www.gamasec.net/fozavci
  Metasploit Project
  www.metasploit.com
  Metasploit Unleashed
  www.offensive-security.com/metasploit-unleashed/Main_Page


                                                              29
Sorular   ?
Teşekkürler....

Más contenido relacionado

La actualidad más candente

Ozgur Yazilimlar ile VoIP Guvenlik Denetimi
Ozgur Yazilimlar ile VoIP Guvenlik DenetimiOzgur Yazilimlar ile VoIP Guvenlik Denetimi
Ozgur Yazilimlar ile VoIP Guvenlik Denetimi
Fatih Ozavci
 
Web Uygulamalarında Kaynak Kod Analizi - 1
Web Uygulamalarında Kaynak Kod Analizi - 1Web Uygulamalarında Kaynak Kod Analizi - 1
Web Uygulamalarında Kaynak Kod Analizi - 1
Mehmet Ince
 

La actualidad más candente (20)

Nagios ile Sistem ve Network Monitoring
Nagios ile Sistem ve Network MonitoringNagios ile Sistem ve Network Monitoring
Nagios ile Sistem ve Network Monitoring
 
Ozgur Yazilimlar ile VoIP Guvenlik Denetimi
Ozgur Yazilimlar ile VoIP Guvenlik DenetimiOzgur Yazilimlar ile VoIP Guvenlik Denetimi
Ozgur Yazilimlar ile VoIP Guvenlik Denetimi
 
Operating Systems
Operating SystemsOperating Systems
Operating Systems
 
Açık Kaynak Kodu ve Güvenlik
Açık Kaynak Kodu ve GüvenlikAçık Kaynak Kodu ve Güvenlik
Açık Kaynak Kodu ve Güvenlik
 
Metasploit El Kitabı
Metasploit El KitabıMetasploit El Kitabı
Metasploit El Kitabı
 
Hacking'in Mavi Tarafı -1
Hacking'in Mavi Tarafı  -1Hacking'in Mavi Tarafı  -1
Hacking'in Mavi Tarafı -1
 
Bilgi Sistemleri Güvenliği Metasploit
Bilgi Sistemleri Güvenliği MetasploitBilgi Sistemleri Güvenliği Metasploit
Bilgi Sistemleri Güvenliği Metasploit
 
Kali Linux Hakkında Herşey
Kali Linux Hakkında HerşeyKali Linux Hakkında Herşey
Kali Linux Hakkında Herşey
 
Siber Güvenlik ve Etik Hacking Sunu - 3
Siber Güvenlik ve Etik Hacking Sunu - 3Siber Güvenlik ve Etik Hacking Sunu - 3
Siber Güvenlik ve Etik Hacking Sunu - 3
 
Tersine Mühendislik 101
Tersine Mühendislik 101Tersine Mühendislik 101
Tersine Mühendislik 101
 
BTRisk Android Mobil Uygulama Denetimi Eğitimi
BTRisk Android Mobil Uygulama Denetimi EğitimiBTRisk Android Mobil Uygulama Denetimi Eğitimi
BTRisk Android Mobil Uygulama Denetimi Eğitimi
 
BTRisk Zararlı Yazılım Analizi Eğitimi Sunumu - Bölüm 2
BTRisk Zararlı Yazılım Analizi Eğitimi Sunumu - Bölüm 2BTRisk Zararlı Yazılım Analizi Eğitimi Sunumu - Bölüm 2
BTRisk Zararlı Yazılım Analizi Eğitimi Sunumu - Bölüm 2
 
Web Uygulama Güven(siz)liği
Web Uygulama Güven(siz)liğiWeb Uygulama Güven(siz)liği
Web Uygulama Güven(siz)liği
 
Puppet ile Linux Sistem Yönetimi Otomasyonu
Puppet ile Linux Sistem Yönetimi OtomasyonuPuppet ile Linux Sistem Yönetimi Otomasyonu
Puppet ile Linux Sistem Yönetimi Otomasyonu
 
Web Uygulamalarında Kaynak Kod Analizi - 1
Web Uygulamalarında Kaynak Kod Analizi - 1Web Uygulamalarında Kaynak Kod Analizi - 1
Web Uygulamalarında Kaynak Kod Analizi - 1
 
Sandbox Atlatma Teknikleri ve Öneriler
Sandbox Atlatma Teknikleri ve ÖnerilerSandbox Atlatma Teknikleri ve Öneriler
Sandbox Atlatma Teknikleri ve Öneriler
 
BTRisk iOS Mobil Uygulama Denetimi Eğitimi
BTRisk iOS Mobil Uygulama Denetimi EğitimiBTRisk iOS Mobil Uygulama Denetimi Eğitimi
BTRisk iOS Mobil Uygulama Denetimi Eğitimi
 
Sızma Testlerinde Armitage Kullanımı
Sızma Testlerinde Armitage KullanımıSızma Testlerinde Armitage Kullanımı
Sızma Testlerinde Armitage Kullanımı
 
Web uygulama açıklıklarından faydalanarak sistem ele geçirme
Web uygulama açıklıklarından faydalanarak sistem ele geçirmeWeb uygulama açıklıklarından faydalanarak sistem ele geçirme
Web uygulama açıklıklarından faydalanarak sistem ele geçirme
 
Beyaz Şapkalı Hacker CEH Eğitimi - Post Exploit Aşaması
Beyaz Şapkalı Hacker CEH Eğitimi - Post Exploit AşamasıBeyaz Şapkalı Hacker CEH Eğitimi - Post Exploit Aşaması
Beyaz Şapkalı Hacker CEH Eğitimi - Post Exploit Aşaması
 

Destacado

NGN ve VoIP Ağları Güvenlik Denetimi
NGN ve VoIP Ağları Güvenlik DenetimiNGN ve VoIP Ağları Güvenlik Denetimi
NGN ve VoIP Ağları Güvenlik Denetimi
Fatih Ozavci
 
VoIP Wars: Destroying Jar Jar Lync (Unfiltered version)
VoIP Wars: Destroying Jar Jar Lync (Unfiltered version)VoIP Wars: Destroying Jar Jar Lync (Unfiltered version)
VoIP Wars: Destroying Jar Jar Lync (Unfiltered version)
Fatih Ozavci
 
Bilgi Guvenligi Temel Kavramlar
Bilgi Guvenligi Temel Kavramlar Bilgi Guvenligi Temel Kavramlar
Bilgi Guvenligi Temel Kavramlar
Fatih Ozavci
 
The Art of VoIP Hacking - Defcon 23 Workshop
The Art of VoIP Hacking - Defcon 23 WorkshopThe Art of VoIP Hacking - Defcon 23 Workshop
The Art of VoIP Hacking - Defcon 23 Workshop
Fatih Ozavci
 
Hardware Hacking Chronicles: IoT Hacking for Offence and Defence
Hardware Hacking Chronicles: IoT Hacking for Offence and DefenceHardware Hacking Chronicles: IoT Hacking for Offence and Defence
Hardware Hacking Chronicles: IoT Hacking for Offence and Defence
Fatih Ozavci
 
VoIP Wars: The Phreakers Awaken
VoIP Wars: The Phreakers AwakenVoIP Wars: The Phreakers Awaken
VoIP Wars: The Phreakers Awaken
Fatih Ozavci
 
VoIP Wars: Destroying Jar Jar Lync (Filtered version)
VoIP Wars: Destroying Jar Jar Lync (Filtered version)VoIP Wars: Destroying Jar Jar Lync (Filtered version)
VoIP Wars: Destroying Jar Jar Lync (Filtered version)
Fatih Ozavci
 
Mahremiyet Ekseninde Ozgur Yazilimlar
Mahremiyet Ekseninde Ozgur YazilimlarMahremiyet Ekseninde Ozgur Yazilimlar
Mahremiyet Ekseninde Ozgur Yazilimlar
Fatih Ozavci
 
MBFuzzer : MITM Fuzzing for Mobile Applications
MBFuzzer : MITM Fuzzing for Mobile ApplicationsMBFuzzer : MITM Fuzzing for Mobile Applications
MBFuzzer : MITM Fuzzing for Mobile Applications
Fatih Ozavci
 

Destacado (20)

NGN ve VoIP Ağları Güvenlik Denetimi
NGN ve VoIP Ağları Güvenlik DenetimiNGN ve VoIP Ağları Güvenlik Denetimi
NGN ve VoIP Ağları Güvenlik Denetimi
 
VoIP Wars: Destroying Jar Jar Lync (Unfiltered version)
VoIP Wars: Destroying Jar Jar Lync (Unfiltered version)VoIP Wars: Destroying Jar Jar Lync (Unfiltered version)
VoIP Wars: Destroying Jar Jar Lync (Unfiltered version)
 
Bilgi Guvenligi Temel Kavramlar
Bilgi Guvenligi Temel Kavramlar Bilgi Guvenligi Temel Kavramlar
Bilgi Guvenligi Temel Kavramlar
 
VoIP Wars : Return of the SIP
VoIP Wars : Return of the SIP VoIP Wars : Return of the SIP
VoIP Wars : Return of the SIP
 
The Art of VoIP Hacking - Defcon 23 Workshop
The Art of VoIP Hacking - Defcon 23 WorkshopThe Art of VoIP Hacking - Defcon 23 Workshop
The Art of VoIP Hacking - Defcon 23 Workshop
 
Mahremiyetinizi Koruyun
Mahremiyetinizi KoruyunMahremiyetinizi Koruyun
Mahremiyetinizi Koruyun
 
Hardware Hacking Chronicles: IoT Hacking for Offence and Defence
Hardware Hacking Chronicles: IoT Hacking for Offence and DefenceHardware Hacking Chronicles: IoT Hacking for Offence and Defence
Hardware Hacking Chronicles: IoT Hacking for Offence and Defence
 
VoIP Wars: The Phreakers Awaken
VoIP Wars: The Phreakers AwakenVoIP Wars: The Phreakers Awaken
VoIP Wars: The Phreakers Awaken
 
VoIP Wars: Destroying Jar Jar Lync (Filtered version)
VoIP Wars: Destroying Jar Jar Lync (Filtered version)VoIP Wars: Destroying Jar Jar Lync (Filtered version)
VoIP Wars: Destroying Jar Jar Lync (Filtered version)
 
Hacking SIP Like a Boss!
Hacking SIP Like a Boss!Hacking SIP Like a Boss!
Hacking SIP Like a Boss!
 
VoIP Wars: Attack of the Cisco Phones
VoIP Wars: Attack of the Cisco PhonesVoIP Wars: Attack of the Cisco Phones
VoIP Wars: Attack of the Cisco Phones
 
Mahremiyet Ekseninde Ozgur Yazilimlar
Mahremiyet Ekseninde Ozgur YazilimlarMahremiyet Ekseninde Ozgur Yazilimlar
Mahremiyet Ekseninde Ozgur Yazilimlar
 
Bilgisayara Giriş 1
Bilgisayara Giriş 1Bilgisayara Giriş 1
Bilgisayara Giriş 1
 
MBFuzzer : MITM Fuzzing for Mobile Applications
MBFuzzer : MITM Fuzzing for Mobile ApplicationsMBFuzzer : MITM Fuzzing for Mobile Applications
MBFuzzer : MITM Fuzzing for Mobile Applications
 
Network Dersleri2
Network Dersleri2Network Dersleri2
Network Dersleri2
 
Network Dersleri1
Network Dersleri1Network Dersleri1
Network Dersleri1
 
Ağ Temelleri - Caner Köroğlu
Ağ Temelleri - Caner KöroğluAğ Temelleri - Caner Köroğlu
Ağ Temelleri - Caner Köroğlu
 
Linux'a Giris ve VirtualBox a Ubuntu Kurulumu
Linux'a Giris ve VirtualBox a Ubuntu KurulumuLinux'a Giris ve VirtualBox a Ubuntu Kurulumu
Linux'a Giris ve VirtualBox a Ubuntu Kurulumu
 
Siber Savunma Ürünlerinde Profesyonel Arka Kapılar
Siber Savunma Ürünlerinde Profesyonel Arka KapılarSiber Savunma Ürünlerinde Profesyonel Arka Kapılar
Siber Savunma Ürünlerinde Profesyonel Arka Kapılar
 
BTRisk Yazılım Güvenliği Yönetimi Eğitimi
BTRisk Yazılım Güvenliği Yönetimi EğitimiBTRisk Yazılım Güvenliği Yönetimi Eğitimi
BTRisk Yazılım Güvenliği Yönetimi Eğitimi
 

Similar a Metasploit Framework ile Exploit Gelistirme

Similar a Metasploit Framework ile Exploit Gelistirme (20)

C# Akademi 2005
C# Akademi 2005C# Akademi 2005
C# Akademi 2005
 
ARM Mimarisinde Exploit Geliştirme
ARM Mimarisinde Exploit GeliştirmeARM Mimarisinde Exploit Geliştirme
ARM Mimarisinde Exploit Geliştirme
 
RPC Zafiyetlerinin Keşfi
RPC Zafiyetlerinin KeşfiRPC Zafiyetlerinin Keşfi
RPC Zafiyetlerinin Keşfi
 
Netty Tanıtımı
Netty TanıtımıNetty Tanıtımı
Netty Tanıtımı
 
Beyaz Şapkalı Hacker CEH Eğitimi - Exploit Aşaması
Beyaz Şapkalı Hacker CEH Eğitimi - Exploit AşamasıBeyaz Şapkalı Hacker CEH Eğitimi - Exploit Aşaması
Beyaz Şapkalı Hacker CEH Eğitimi - Exploit Aşaması
 
Programlama Dilleri Tanıtım
Programlama Dilleri TanıtımProgramlama Dilleri Tanıtım
Programlama Dilleri Tanıtım
 
Sistem3
Sistem3Sistem3
Sistem3
 
Python programlama
Python programlamaPython programlama
Python programlama
 
Devfest istanbul'14 web app security and framework
Devfest istanbul'14   web app security and framework Devfest istanbul'14   web app security and framework
Devfest istanbul'14 web app security and framework
 
WAF atlatma yontemleri, Hacktrick14, Suleyman Ozarslan
WAF atlatma yontemleri, Hacktrick14,  Suleyman OzarslanWAF atlatma yontemleri, Hacktrick14,  Suleyman Ozarslan
WAF atlatma yontemleri, Hacktrick14, Suleyman Ozarslan
 
CEIT 253
CEIT 253CEIT 253
CEIT 253
 
CEIT 253
CEIT 253CEIT 253
CEIT 253
 
CEIT 253
CEIT 253CEIT 253
CEIT 253
 
Python Programlama Diline Giriş - Güncelleme 2018
Python Programlama Diline Giriş - Güncelleme 2018Python Programlama Diline Giriş - Güncelleme 2018
Python Programlama Diline Giriş - Güncelleme 2018
 
Java, android ve arduino ile gömülü programlama
Java, android ve arduino ile gömülü programlamaJava, android ve arduino ile gömülü programlama
Java, android ve arduino ile gömülü programlama
 
Csharpnedir
CsharpnedirCsharpnedir
Csharpnedir
 
delphi
delphidelphi
delphi
 
14
1414
14
 
delphi xe5
delphi xe5 delphi xe5
delphi xe5
 
Android ROM Geliştirme
Android ROM GeliştirmeAndroid ROM Geliştirme
Android ROM Geliştirme
 

Metasploit Framework ile Exploit Gelistirme

  • 1. Metasploit Framework ile Exploit Geliştirme Fatih Özavcı Canberk Bolat Bilgi Güveniği Danışmanı Güvenlik Araştırmacısı fatih.ozavci at gamasec.net canberk.bolat at gmail dotcom gamasec.net/fozavci cbolat.blogspot.com
  • 2. Kapsam Exploit Geliştirme Süreci Metasploit Framework Geliştirme Araçları Exploit, Auxiliary ve Post için Hazır Fonksiyonlar Protokol ve Servis Yardımcıları Fuzzing Araçları Encoder, NOP, Kripto Araçları Örnek Exploit ve Modüller Bilinmesi Gerekenler Ruby Dili ve Yapısı Metasploit Framework Kullanımı 2
  • 3. Exploit ve Temel Kavramlar Bir güvenlik açığını kullanarak normal-dışı bir işlem yapılmasını sağlayan yöntem veya yazılım http://sunucu/scripts/..%c0%af../winnt/system32/cmd.exe?/c+dir http://sunucu/login.asp?uid=' OR 1='1 Payload / Shellcode : Exploit sonrası çalıştırılacak ve normal-dışı işlemi yapacak içerik, kabuk kodu NOP / NOPSlide : “Not Operation” bitleri, talimat içermeyen ve bellekte istenen yere ulaşıncaya kadar belleği dolduran bitler Encoder : Çalıştırılacak Shellcode’u değiştiren, Saldırı Önleme Sistemi veya Anti-Virüs tarafından yakalanmasını önleyen kodlar 3
  • 4. Güvenlik Açığından Exploit'e Gidiş Fuzzing Hata Ayıklama Saldırı Vektörü EIP - 0x41414141 Kararlı EIP Dönüş Adresi Son Kabuk Kodu Kötü Karakterler Kabuk Kodu Çalıştırma Çalışan Exploit Kabuk Kodunu INT 3? Karşılama 4
  • 5. Örnek Exploit Yapısı EIP Exploit Decoder Gereksiz İşlevsiz EIP Payload/Shellcode Bitler Bitler SEH Exploit Gereksiz Bitler Decoder İşlevsiz NSEH SEH Payload/Shellcode EIP Bitler 5
  • 6. Return Oriented Programming Resource: http://www.auscert.org.au/render.html?it=13408 6
  • 7. Return Oriented Programming Data Execution Prevention Bypass VirtualAlloc HeapCreate SetProcessDEPPolicy NtSetInformationProcess VirtualProtect WriteProcessMemory Code Reuse Technique Ret2lib ROP Gadgets ROP / DEP Bypass http://cbolat.blogspot.com/2011/07/return-oriented-programming-dep-bypass.html 7
  • 8. Return Oriented Programming ROP Gadget RETN ve türevleri ile biten instruction'lar CPU Register'ları ile oynamamızı sağlayan bir takım instruction'lar barındıran "instruction parçaları" ROP / DEP Bypass http://cbolat.blogspot.com/2011/07/return-oriented-programming-dep-bypass.html 8
  • 9. Return Oriented Programming ROP / DEP Bypass http://cbolat.blogspot.com/2011/07/return-oriented-programming-dep-bypass.html 9
  • 10. ROP Payload Yapısı ROP / DEP Bypass http://cbolat.blogspot.com/2011/07/return-oriented-programming-dep-bypass.html 10
  • 11. Genel Exploit’lerin Özellikleri Çok farklı programlama dillerinde sunulabilirler (binary,c,c++,perl,lisp,python) Açığın tek veya özel bir kullanımı üzerine geliştirilmiş olabilirler (..%c0%af.. veya ..%c0%qf..) Payload/Shellcode değeri özelleştirilemeyebilir (binary, açık hakkında kısıtlı bilgi) Kod kirli veya kötü niyetli yazılmış olabilir Herkesçe kullanıldığı için önlem alınmış olabilir Sadece açığı kanıtlamak için yazılmış kod örnekleri olabilir 11
  • 12. Exploit Geliştirme Süreci Güvenlik Açığının Farklı Payload Duyurulması Teknik Analiz Kullanımına Hazır ve Çözümleme Hale Getirilmesi Exploit’in Açık Atlama Özelleştirilebilir Noktalarının Hale Gelmesi Belirlenmesi Farklı Platform Çözümleme ve Programlara Yapılarak Uyarlanması Normal-Dışı İşlem Exploit’in Yapılması Hazırlanması 12
  • 13. Hangi Araçlar Kullanılır Açık Bulunan Yazılımın Örneği !? Fuzzer (Karıştırıcı ve Değiştiriciler) Encoder (Kodlayıcılar) HEX Editörler Binary Analiz Araçları Debugger (Hata Ayıklayıcılar) Sniffer (Paket Yakalayıcılar) Protokol Çözümleyiciler Yorumlayıcılar / Derleyiciler (Interpreter/Compiler) Shellcode’lar SQL Sorguları 13
  • 14. Metasploit Framework Bileşenler ~1000 Exploit ~250 Payload ~500 Yardımcı Araç ~30 Encoder ~150 Exploit Sonrası Modül/Script Çok farklı türde Payload’lar kullanılabiliyor ve bağımsız olarak üretilebiliyor (Binary, Perl, Python, Shell, PHP) Meterpreter ile Hedef Tamamen Ele Geçirilebiliyor VNC ile Hedef Sisteme Grafik Arayüzle Bağlanılabiliyor Çok sayıda farklı encoder kullanılabiliyor (Shikata Ga Nai vb.) Konsol, Seri ve Grafik (Armitage) arayüzlerine sahip En güçlü özelliği Post-Exploitation yetenekleri (Meterpreter, VNC DLL Injection, Anti-Forensic, Process Migration vb.) 14
  • 15. Metasploit Framework'ün Avantajları Exploit ve Payload ayrımı Varolan Exploit'lerin Geliştirilmesi, Hedef Eklenmesi Kaynak kodu açık Exploit’ler 0 gün Exploit’leri Hazır fonksiyonlar ile daha az Exploit kodu Sadece Offset ve Ret Değişimi ile Hedef Ekleme Hazır Servisler ve Protokol Kütüphaneleri Farklı İşlemci Mimarileri için Kodlayıcılar (Encoder) Hazır Kabuk Kodları ve Yardımcı araçlar Egg Hunting, Heap Spraying, ROP Destekleri 15
  • 16. Metasploit Framework Payload Seçimi Kabuk Kodları Kabuk Kodu Bind Shell Exec Reverse Shell Staged Shell İleri Düzey Yöntemler EggHunting Meterpreter (Railgun, Powershell, Ruby Scripting) DLL Injection (VNC, Özelleştirilmiş DLL) Her Kabuk Kodu için Karşılama Multi/Handler Kodlama Araçları Decoder Oudk Kbuak Alpha2, Shika_ga_nai 16
  • 17. Encoder/Decoder Decoded Payload Decoder 0x3f 0x17 0x45 0x42 0x7E Stub XOR byte, ABCD 17
  • 18. Egg Hunting Yapısı Payload Decoder'lara çok benzemektedir Shellcode Memory'de bilmediğimiz bir adrestedir Egg Hunting payload Memory'de belirtilen özel bir string değeri arar O string değerin bulunduğu yerden itibaren olan instruction'lar çalıştırılır Yani Shellcode! 18
  • 19. Egg Hunting Memory Egg Hunting Tag Shellcode 0x909090CC 0x3f456602 0x726f41b4 ... 0x43424342 ... IF (DWORD == 0x43424342) JUMP TO DWORD+4 19
  • 20. Egg Hunting 00 33DB xor ebx,ebx 02 6681CBFF0F or bx,0xfff 07 43 inc ebx 08 6A08 push byte +0x8 0A 53 push ebx 0B B80D5BE777 mov eax,0x77e75b0d ; IsBadReadPtr 10 FFD0 call eax 12 85C0 test eax,eax 14 75EC jnz 0x2 16 B842434243 mov eax,0x43424342 ; TAG: CBCB 1B 8BFB mov edi,ebx 1D AF scasd ; Compare EAX w/ ES:EDI 1E 75E7 jnz 0x7 20 AF scasd ; Compare EAX w/ ES:EDI 21 75E4 jnz 0x7 23 FFE7 jmp edi ; JUMP to Shellcode 20
  • 21. Metasploit Framework Araçları MSFPayload – Kabuk Kodu Kodlama MSFEncode – Kabuk Kodu Kodlama MSFRop – ROP Gadget'larının Araştırılması Pattern_Create/Pattern_Offset – Bellek Alanı Hesaplama MSFPEScan/MSFElfScan – Dönüş Adresi Bulma Metasm_Shell – Assembler/Disassembler 21
  • 22. Metasploit Framework Araçları MSFPayload – Kabuk Kodu Kodlama MSFEncode – Kabuk Kodu Kodlama MSFRop – ROP Gadget'larının Araştırılması Pattern_Create/Pattern_Offset – Bellek Alanı Hesaplama MSFPEScan/MSFElfScan – Dönüş Adresi Bulma Metasm_Shell – Assembler/Disassembler 22
  • 23. REX Kütüphanesi ve Modül Yapısı 23
  • 24. Exploit ve Modül Ayrımı Metasploit Framework'e Göre, Kabuk Kodu Çalıştırılmıyorsa Exploit Değildir. Auxiliary Modülü Post Modülü Yardımcı Modül ile Exploit İşlemi Sahte Servis ile Bilgi Sızdırma, Fuzzing, Bilgi Toplama Dosya İşletme, Servis Engelleme, Sosyal Mühendislik Veritabanı, SAP, VoIP ve VM Analizi Post Modülü Yetki Yükseltme, Bilgi Toplama, Yönetim Ele Geçirme 24
  • 25. Protokol, Servis ve İstemci Sınıfları Msf::Exploit::Remote::Ftp Msf::Exploit::Remote::Imap Msf::Exploit::Remote::FtpServer Msf::Exploit::Remote::Smtp Msf::Exploit::Remote::HttpClient Msf::Exploit::Remote::SMTPDeliver Msf::Exploit::Remote::HttpServer Msf::Exploit::Remote::SunRPC Msf::Exploit::Remote::HttpServer::HTML Msf::Exploit::Remote::MSSQL Msf::Exploit::Remote::Tcp Msf::Exploit::Remote::MSSQL_SQLI Msf::Exploit::Remote::TcpServer Msf::Exploit::Remote::MYSQL Msf::Exploit::Remote::TFTPServer Msf::Exploit::Remote::TNS Msf::Exploit::Remote::NDMP Msf::Exploit::Remote::Postgres Msf::Exploit::Remote::Udp Msf::Exploit::Remote::SMB Msf::Exploit::Remote::SMBServer Msf::Exploit::Remote::WinRM Msf::Exploit::Remote::SMB::Authenticated 25
  • 26. Fuzzing ve Kabuk Kodu Hazırlama Kodlama ve Dönüştürme Fuzzing - Msf::Auxiliary::Fuzzer Rex::Assembly::Nasm #fuzz_numbers Rex::Encoder::Alpha2 #fuzz_string_corrupt* Rex::Encoder::Xor #fuzz_strings Rex::Encoder::NonAlpha #fuzzer_gen_string Rex::Encoder::NonUpper #fuzzer_number* #fuzzer_string_filepath_dos Karakter Üretme - Rex::Text #fuzzer_string* rand_text* #fuzzer_string_path* md5 #fuzzer_string_uri* encode/decode_base64 26
  • 27. Diğer Faydalı Sınıflar Kabuk Kodu Çalıştırma Dosya Tipi Açıkları Msf::Exploit::Brute Msf::Exploit::FILEFORMAT Msf::Exploit::BruteTargets Msf::Exploit::PDF Msf::Exploit::RopDb Msf::Exploit::PDF_Parse Rex::Exploitation::Seh Exe Çalıştırma, Format String Rex::Exploitation::Omelet::* Msf::Exploit::FormatString Rex::Exploitation::Egghunter::* Msf::Exploit::WbemExec Rex::Exploitation::OpcodeDb::* Yerel Açıkların Kullanımı Rex::Exploitation::EncryptJS Msf::Exploit::Local::Linux Rex::Exploitation::HeapLib Msf::Exploit::Local::LinuxKernel Rex::Exploitation::JSObfu Msf::Exploit::Local::Unix Rex::Exploitation::ObfuscateJS Msf::Exploit::KernelMode Rex::Exploitation::CmdStager* 27
  • 28. Exploit ve Modül Örnekleri Metasploit Framework Exploit ve Modüllerinin Örnekleme ile Analizi 28
  • 29. Bağlantılar ve Referanslar Günlükler fozavci.blogspot.com cbolat.blogspot.com Türkçe Metasploit Framework Rehberi www.gamasec.net/fozavci Metasploit Project www.metasploit.com Metasploit Unleashed www.offensive-security.com/metasploit-unleashed/Main_Page 29
  • 30. Sorular ?