Metasploit Framework ile Exploit Geliştirme. Fatih Özavcı Canberk Bolat

Benzer belgeler
Metasploit Framework ile Güvenlik Denetimi. Fatih Özavcı Bilgi Güvenliği Danışmanı fatih.ozavci at gamasec.net

Exploit Geliştirme Altyapıları. Fatih Özavcı Bilgi Güvenliği Danışmanı

Metasploit Framework ile Güvenlik Denetimi. Fatih Özavcı Bilgi Güvenliği Danışmanı

Anti-Virüs Atlatma 1. Resimden anlaşıldığı üzere 56 anti-virüs yazılımından 36 tanesi zararlı yazılım olduğunu doğrulamıştır.

Bilgi Güvenliği Denetim Sürecinde Özgür Yazılımlar. Fatih Özavcı Bilgi Güvenliği Danışmanı

Exploit.CVE Analizi

ROP için kısacası şunları diyebiliriz;

Özgür Yazılımlarla Saldırı Yöntemleri. Fatih Özavcı fatih.ozavci at gamasec.net

Exploitation Türk Standardları Enstitüsü Yazılım Test ve Belgelendirme Dairesi Başkanlığı

C İLE BUFFER OVERFLOW-2

Anti-Virus Atlatma - Maligno Kullanımı

Anti-Virüs Atlatma 2. Kurulum

Linux Assembly Programlamaya Giriş

BM-311 Bilgisayar Mimarisi

Reverse Engineering Bootcamp Eğitim İçeriği

Bahar Dönemi. Öğr.Gör. Vedat MARTTİN

«BM364» Veritabanı Uygulamaları

8086 Mikroişlemcisi Komut Seti

Bekir Karul. home about twitter goodreads github

Ders 3 ADRESLEME MODLARI ve TEMEL KOMUTLAR

Bilgi ve İletişim Teknolojileri (JFM 102) Ders 10. LINUX OS (Programlama) BİLGİ & İLETİŞİM TEKNOLOJİLERİ GENEL BAKIŞ

MTM 305 MĠKROĠġLEMCĠLER

Bölüm 5: ARITMETIK VE MANTIK IŞLEM YAPAN KOMUTLAR

Özgür Yazılımlar ile VoIP Denetimi. Fatih Özavcı Bilgi Güvenliği Danışmanı

Anti-Virus Atlatma Maligno Kullanımı

Komut Satırının Gücü Adına!

Anti-Virüs Atlatma 3. Kurulum

MTM 305 MĠKROĠġLEMCĠLER

Bilgisayarların Gelişimi

Özgür Yazılımlar ile VoIP Denetimi. Fatih Özavcı Bilgi Güvenliği Danışmanı

[ Web Uygulamalarında Kayank Kod Analizi II ] [ Mehmet Dursun INCE < mehmet.ince@intelrad.com > ] [ 10 Haziran 2013 ]

Quiz:8086 Mikroişlemcisi Mimarisi ve Emirleri

HAZIRLAYAN BEDRİ SERTKAYA Sistem Uzmanı CEH EĞİTMENİ

Bölüm 3: Adresleme Modları. Chapter 3: Addressing Modes

ADIM ADIM METASPLOIT METERPRETER SHELL DAVRANIŞ ANALİZİ

BİLGİSAYAR VE AĞ GÜVENLİĞİ ÖĞR. GÖR. MUSTAFA ÇETİNKAYA DERS 2 > AĞ VE UYGULAMA GÜVENLİĞİ

Web Uygulamaları Mimarileri ve Güvenliği

Bahar. BM 211 Programlama Dilleri 3 1

C# nedir,.net Framework nedir?

CSD İŞLETİM SİSTEMİNDE SİSTEM FONKSİYONLARININ ÇAĞIRILMASI

Bölüm 10: PHP ile Veritabanı Uygulamaları

Viproy Bilgi Güvenliği Eğitimleri Rehberi

Bilgisayar Sistemlerine Genel Bakış

Windows Programlama Güz Dönemi

RRDTool Kullanımı ve ULAKNET İstatistikleri. Çağlar GÜLÇEHRE TÜBİTAK ULAKBİM-ATB

Antivirus Nasıl Atlatılır?

Web Uygulama Pentest Eğitimi

İlk Konsol Uygulamamız 2 İlk Windows Uygulamamız 9.Net Framework Yapısı 18 Neler Öğrendik 19. Veri Tipleri 24 Tanımlı Veri Tipleri 27 Basit Tipler 28

1.PROGRAMLAMAYA GİRİŞ

Güvenlik Java ve Web Uygulama Güvenliği

ELN1001 BİLGİSAYAR PROGRAMLAMA I

NOPcon Capture The Flag Çözümleri

Komut Seti Mimarisi (ISA)

emon: Gerçek Zamanlı Gömülü Sistemlerin Çalışma Zamanı Görselleştirilmesi İçin Monitör Yazılımı

2. dönem itibariyle ben de Zararlı Yazılım Analizi 101 dersi vererek bu programa katkıda bulunacağım.

MİKROBİLGİSAYAR SİSTEMLERİ. Teknik Bilimler Meslek Yüksekokulu

Mikroişlemcili Sistemler ve Laboratuvarı 8.Hafta

Adresleme Modları. Mikroişlemciler ve Mikrobilgisayarlar

EXPLOIT SHELLCODE GELİŞTİRME

Öğr. Gör. Serkan AKSU 1

C++ Programming: Program Design Including Data Structures, Third Edition. Bölüm 1: Bilgisayarlar ve Programlama Dillerine Kısa Bakış

Metasploit Framework Giriş Seviyesi Denetmen Rehberi

Program Kontrol Komutları. Mikroişlemciler ve Mikrobilgisayarlar 1

Bil101 Bilgisayar Yazılımı I. M. Erdem ÇORAPÇIOĞLU Bilgisayar Yüksek Mühendisi

Bit, Byte ve Integer. BIL-304: Bilgisayar Mimarisi. Dersi veren öğretim üyesi: Yrd. Doç. Dr. Fatih Gökçe

PHP ile İnternet Programlama

Kablosuz Algılayıcı Ağları İçin TinyOS İle Uygulama Geliştirme

Ana Bellek (RAM) İşlemci (CPU) Depolama

BİLGİSAYAR MİMARİSİ. Bilgisayar Bileşenleri Ve Programların Yürütülmesi. Özer Çelik Matematik-Bilgisayar Bölümü

En bilindik truva atları Xtreme Rat ve Darkcomet Rattır.

Özgür Yazılımlar ile VoIP Denetimi. Fatih Özavcı Bilgi Güveniği Danışmanı

Sadece 2 İstekle MySQL Blind SQL Injection. Canberk BOLAT canberk.bolat[-at-]gmail[-dot-]com

Ders Tanıtım Sunumu. Internet Programming II. Elbistan Meslek Yüksek Okulu Bahar Yarıyılı. 26 Şub Öğr. Gör.

Ders Özeti. Ders 2. PC nin İç Organizasyonu. Mikroişlemcinin Organizasyonu. Basitçe İşlemciyi Oluşturan Parçalar. Mikroişlemciler

MTM 305 MİKROİŞLEMCİLER

Veritabanı Sızma Testleri Türk Standardları Enstitüsü Yazılım Test ve Belgelendirme Dairesi Başkanlığı

HAZIRLAYAN BEDRİ SERTKAYA Sistem Uzmanı CEH EĞİTMENİ

Tarih Saat Modül Adı Öğretim Üyesi. 01/05/2018 Salı 3 Bilgisayar Bilimlerine Giriş Doç. Dr. Hacer Karacan

Mühendislik Fakültesi Elektrik-Elektronik Mühendisliği C Programlama 1. Bölüm C# Programlamaya Giriş

BM-311 Bilgisayar Mimarisi

Java, Python ve Ruby Dillerinin Performans Karşılaştırması

Yrd.Doç.Dr. Celal Murat KANDEMİR. Kodlama (Coding) : Bir nesneler kümesinin bir dizgi (bit dizisi) kümesi ile temsil edilmesidir.

Mikrobilgisayar Mimarisi ve Programlama

BİLGİSAYAR SİSTEMLERİ

C Dersi Bölüm 1. Bilgisayar Donanımı

MTM 305 MİKROİŞLEMCİLER

GÖRSEL PROGRAMLAMA - I

BİL 542 Paralel Hesaplama. Dersi Projesi. MPJ Express Java Paralel Programlama

MİKROBİLGİSAYAR SİSTEMLERİ VE ASSEMBLER

1.1. Yazılım Geliştirme Süreci

Hacettepe Robot Topluluğu

Özgür Yazılımlar ile VoIP Denetimi. Fatih Özavcı Bilgi Güvenliği Danışmanı

4. Bölüm Programlamaya Giriş

Assembly Language Programming

BIL 362 Mikroilemciler Dersi Arasınav Cevapları 3 Temmuz 2007

Özet DERS 5. Şu ana kadar bilmeniz gerekenler... İşaretsiz Çarpma. Bayraklardaki Durumlar. İşaretli Çarpma

PostgreSQL Veritabanı Sunucusu Devrim GÜNDÜZ.

C++ Giriş Ders 1 MSGSU Fizik Bölümü Ferhat ÖZOK Kullanılacak kaynak: Published by Juan Soulié

Transkript:

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 EIP - 0x41414141 Saldırı Vektörü Kararlı EIP Dönüş Adresi Son Kabuk Kodu Kötü Karakterler Çalışan Exploit Kabuk Kodu Çalıştırma Kabuk Kodunu Karşılama INT 3? 4

Örnek Exploit Yapısı EIP Exploit Gereksiz Bitler EIP İşlevsiz Bitler Decoder Payload/Shellcode SEH Exploit Gereksiz Bitler EIP NSEH SEH İşlevsiz Bitler Decoder Payload/Shellcode 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 Farklı Payload Kullanımına Hazır Hale Getirilmesi Exploit in Özelleştirilebilir Hale Gelmesi Güvenlik Açığının Duyurulması Teknik Analiz ve Çözümleme Açık Atlama Noktalarının Belirlenmesi Farklı Platform ve Programlara Uyarlanması Exploit in Hazırlanması Çözümleme Yapılarak Normal-Dışı İşlem Yapılması 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ı 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ı Alpha2, Shika_ga_nai Kabuk Kodu Decoder Oudk Kbuak 16

Encoder/Decoder Decoded Payload Decoder Stub 0x3f 0x17 0x45 0x42 0x7E 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 0x3f456602 0x726f41b4... 0x43424342 0x909090CC... 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::FtpServer Msf::Exploit::Remote::HttpClient Msf::Exploit::Remote::HttpServer Msf::Exploit::Remote::HttpServer::HTML Msf::Exploit::Remote::MSSQL Msf::Exploit::Remote::MSSQL_SQLI Msf::Exploit::Remote::MYSQL Msf::Exploit::Remote::TNS Msf::Exploit::Remote::Postgres Msf::Exploit::Remote::SMB Msf::Exploit::Remote::SMBServer Msf::Exploit::Remote::SMB::Authenticated Msf::Exploit::Remote::Imap Msf::Exploit::Remote::Smtp Msf::Exploit::Remote::SMTPDeliver Msf::Exploit::Remote::SunRPC Msf::Exploit::Remote::Tcp Msf::Exploit::Remote::TcpServer Msf::Exploit::Remote::TFTPServer Msf::Exploit::Remote::NDMP Msf::Exploit::Remote::Udp Msf::Exploit::Remote::WinRM 25

Fuzzing ve Kabuk Kodu Hazırlama Kodlama ve Dönüştürme Rex::Assembly::Nasm Rex::Encoder::Alpha2 Rex::Encoder::Xor Rex::Encoder::NonAlpha Rex::Encoder::NonUpper Fuzzing - Msf::Auxiliary::Fuzzer #fuzz_numbers #fuzz_string_corrupt* #fuzz_strings #fuzzer_gen_string #fuzzer_number* #fuzzer_string_filepath_dos Karakter Üretme - Rex::Text rand_text* md5 #fuzzer_string* #fuzzer_string_path* #fuzzer_string_uri* encode/decode_base64 26

Diğer Faydalı Sınıflar Kabuk Kodu Çalıştırma Msf::Exploit::Brute Msf::Exploit::BruteTargets Msf::Exploit::RopDb Rex::Exploitation::Seh Rex::Exploitation::Omelet::* Rex::Exploitation::Egghunter::* Rex::Exploitation::OpcodeDb::* Rex::Exploitation::EncryptJS Rex::Exploitation::HeapLib Rex::Exploitation::JSObfu Rex::Exploitation::ObfuscateJS Rex::Exploitation::CmdStager* Dosya Tipi Açıkları Msf::Exploit::FILEFORMAT Msf::Exploit::PDF Msf::Exploit::PDF_Parse Exe Çalıştırma, Format String Msf::Exploit::FormatString Msf::Exploit::WbemExec Yerel Açıkların Kullanımı Msf::Exploit::Local::Linux Msf::Exploit::Local::LinuxKernel Msf::Exploit::Local::Unix Msf::Exploit::KernelMode 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...