Metasploit 1
Exploit Nedir? Exploit bir sistemin açığından yararlanarak sistemi ele geçirmeyi sağlayan yazılımlardır. Hack ve güvenlik için vazgeçilmezdir. Siyah şapkalı hackerlar hack için kullanır beyaz şapkalı hackerlar ise pentest (Penetration Test) yapmak için kullanırlar. Exploitler genel olarak public ve private olmak üzere 2 gruba ayrılırlar. Public olanlar herkesin erişim sağlayabileceği exploitlerdir. Private olanlar ise ücretli olup belli başlı exploit sitelerinde veya deebwep’te satılırlar. Örneğin 0day gibi 2
Exploit Nedir? Örneğin burada Twitter reset account Private Method 0day Exploit private ücretli bir exploittir. Exploitler genel anlamda c,python,perl,ruby gibi dillerle yazılamaktadır. 3
Exploit Çeşitleri? Exploitler kullanım amacına göre 3’e ayrılırlar. Remote Exploits Local Exploits 0day Exploits (Private) 4
Exploit Çeşitleri? 1 – Remote Exploits Remote adından da anlaşılacağı gibi uzaktan sistemi exploit eder. Kısaca çevremizde olmayan bir sistemi exploit etmeye yarayan yazılımlara remote exploit denir. Burada sadece hedef kişi olmakta sınırlı değildir. Hedefimiz bir sunucu da bir kişi ve sistemde olabilir. 5
Exploit Çeşitleri? 6
Exploit Çeşitleri? 2 – Local Exploits Sistemde direk olarak çalışan exploitlerdir. Genellikle sistemde yetki yükseltmek amacıyla kullanılır. Örneğin bir linux servere girdiniz fakat işlem yapmak için gerekli olan yetkileriniz olmadığını varsayalım yani root değilsiniz. Bu durumda local exploitler devreye girmektedir. Serveri rootlamak, tüm yetkilere sahip olmak için serverin kurulu olan versiyonuna göre sistemi exploit edersiniz. 7
Exploit Çeşitleri? 8
Exploit Çeşitleri? 3 – 0day Exploits En tehlikeli olan exploitlerdir. Bir sistemde açık bulunduğu anda koda dökülüp paylaşılan exploitlerdir. Tehlikeli olma sebebi ise sistemde veya yazılımda bulunan açığın sistem yöneticisi tarafından haberi olmamasıdır. Örnek exploit Siteleri 0day.today Exploit-db.com 9
Metasploit Metasploit güvenlik testleri için ruby dili ile kodlanmış exploit kütüphanesidir. Kimi testler için kullanır kimileri ise sömürmek için kullanmaktadır. Bünyesinde 1400’den fazla exploit bulunmaktadır. Bunun yanında auxiliary (Bilgi Toplama) ve Encoder mevcuttur. Kullanımı ve arayüzü gayet sadedir. Consol tabanlı metasploit üzerinden ilerleyeceğiz. Sistem parametreler mantığı ile çalışmaktadır. 10
Metasploit 11
Metasploit Kurulumu Metasploit kurulumu linux makinalar için 1-2 komut ile gerçekleştirilebilir. 2 farklı yöntemi vardır. 1- Kendi sitesine girip indirerek normal paket kurulu gibi kurulum gerçekleştirebilirsiniz. Download: https://github.com/rapid7/metasploit- framework/wiki/Nightly-Installers 2- Kali Linux kaynaklarından kurulumu gerçekleştirerek bunu yapabilmek için sources.liste kalinin kaynak depoları eklenmiş olması gerekmektedir. Ekledikten sonra apt-get install metasploit komutunu terminale girmeniz yeterlidir. Bununla uğraşmak istemiyorum diyenler ise katolin veya RenOS Kali Toolbox aracı ile paket kurulumunu gerçekleştirebilirsiniz. 12
Metasploit Kurulumu RenOs Kali Toolbox’ı https://github.com/Kali-LinuxTR-NeT/RenOS- Kali-Toolbox-v1.git bu adresten indirebilirsiniz. İlk önce depoları ekleyip daha sonra araçlar kısmından metasploiti veya diğer araçları kurabilirsiniz. 13
Genel Komut ve Kavramlar Metasploit’te exploit kullanımı için genel olarak kullanılan komut ve parametreler vardır. 1 – Metasploit Başlatma Kurulu olan sistemlerde metasploiti başlatmak için terminale msfconsole yazmanız yeterlidir. 2 – Exploit Seçme Exploit seçmek için use parametresi kullanılmamaktadır. 14
Genel Komut ve Kavramlar 3 – Paylod Görüntüleme ve Seçme Payload exploit edilme işleminden sonra kullanılacak modüllerdir. Yapacağınız işlemlere göre uygun olan payload seçilir. Kullanılacak payloadları görüntüleyebilmek için show payloads komutu kullanılır. 15
Genel Komut ve Kavramlar Uygun olan payloadı seçmek önemlidir. Örneğin seçtiğiniz sistem android ise seçtiğiniz payload’da android olması gerekmektedir. Payloadı seçmek için set PAYLOAD komutu kullanılmaktadır. 16
Genel Komut ve Kavramlar 4 – Parametre Tanımlama Sistemi exploit edebilmek için exploit’e sistemi tanımlamak gerekir. Bunu show options kodu ile gerçekleştireceğiz. Name: Parametre İsmi Current Setting: Girilen Değer Required : Girilmesi zorunlu olup olmadığıdır. Description : Açıklama 17
Genel Komut ve Kavramlar Örneğin burada bizden lhost ve lport istemektedir. Bunlara değer girmek için set parametresi kullanılmaktadır. Örneğin set LHOST 192.168.10.56 gibi LHOST: Local ip LPORT: Local Port RHOST: Remote Host RPORT: Remote Port 18
Genel Komut ve Kavramlar 5 – Exploit Kontrol Etme Exploiti çalıştırmadan önce hedef sistemde açığın bulunup bulunmadağını test etmek için check parametresi kullanılır. Var ise The target is Vulnerable şeklinde bir sonuç alırsınız yoksa aşağıdaki gibi hatalar alırsınız. 19
Genel Komutlar ve Kavramlar 6 – Exploit Hakkında Bilgi Alma Exploit hakkında temel olarak bilgi ve referans kaynakları görüntülemek için info komutu kullanılır. 20
Genel Komut ve Kavramlar 7 – Exploit Çalıştırma Gerekli parametreleri doldurduktan sonra exploit etmek için exploit parametresini vermeniz yeterlidir. 8 – Exploit Arama Exploit arama işlemi belirli kriterlere göre gerçekleşmektedir. 21
Genel Komut ve Kavramlar Search keywords şeklinde kullanılır. App: Modül istemci tabanlımı sunucu tabanlımı Author: Exploit yazarına göre Bid: Bugtraq id’sine göre Cve: CVE ID numarasına göre arama Edb:Exploit Db numarasına göre Name:Modülün ismine göre Osvdb: OSVDB ID numarasına göre Platform:Platforma uygun olan Ref:Referansa göre Type:Modülün tipine göre (exploit,auxiliary gibi) 22
Auxiliary Auxiliary sistemi exploit etmeden önce hedef sistemde bilgi toplama yazılımlarıdır. Bünyesinde 800’den fazla auxiliary mevcuttur. 23
Auxiliary Sistemdeki bulunan tüm auxiliary modüllerini listelemek için show auxiliary parametresini kullanmanız gerekmektedir. Eğer özel arama yapacaksanız search parametresiyle beraber kullanabilirsiniz. 24
Auxiliary Auxiliary modülleride tıpkı exploitler gibi çeşitleri vardır. Bunlar Scannerlar, Dos, Bruteforce, Fuzzer gibi çeşitleri mevcuttur. 1 – Scanner Sistem üzerinde açık tarama, port tarama, firewall tespiti gibi. Kısaca sistem hakkında bilgi toplarlar. Scannerleri görüntülemek için search scanner parametresini kullanırız. 25
Auxiliary 2 – Dos Denial of Servise diye adlandırılan dos saldırıları için gerekli ve etliki modüllerdir. 26
Auxiliary 3 – Bruteforce Bruteforce kaba kuvvet saldırısı yani deneme yanılma mantığı olan bir saldırı çeşididir. Metasploitte bruteforce modülleri çeşitli servislere şifre denemesi yapmak için kullanılır. Örneğin ssh,ftp,hazır sistemler gibi.. 27
Auxiliary 4 – Fuzzer Bir yazılıma, platforma, protokole vb. Yapılan düzenli, düzensiz, belirsiz sorgular göndererek alma, çökme gibi işlemlere fuzzer denir. 28
Auxiliary Auxiliary’nin diğer modüllerini siz kendiniz inceleyip kullanabilirsiniz. Not: Auxiliary her zaman sadece bilgi toplamak için kullanılmaz bazende exploit görevini üstlenir. 29
Msfvenom Msfpayload,msfcli,msfencode modüllerinin birleştirilmiş halidir. Önceden yapılan payload ve işlemleri için ayrı ayrı işlem yapılması gerekirken msfvenom ile tek yazılım altında gerçekleştirilebilmektedir. -Msfpayload: Payload oluşturma -Msfencode: Encode işlemleri Msfcli: Metasploit olmadan küçük çaplı işlevler 30
Msfvenom Örnek payload oluşturma, Kod: msfvenom -p windows/meterpreter/reverse_tcp -f exe > dosya.exe Burada örnek bir payload oluşturulmuştur. 31
Meterpreter Meterpreter ileri derceli bir payload’tır. Bu payload sayasinde bir çok işlem yapılabilir, sistemde kalıcılık sağlayabilir, arka planda vs. ihtiyaç bulunan işlevleri yerine getirebilmektedir. Bir sistemi meterpreter payloadı ile exploit ettiğinizde yukarıdaki gibi bir ekran gelmektedir. 32
Meterpreter Yukarıda kullanabileceğimiz bazı komutlar gösterilmiştir. Ayrıyeten görünen komutların dışında ek olarak linux komutları ilede sistemde işlevler gerçekleştirilebilir. 33
Searchsploit Searchsploit exploit-db tarafından sistemde bulunan exploitleri kolayca konumu bulunabilmesi için kodlamıştır. Örnek olarak android ile ilgili modüllerin konumunu inceleyelim. Komut: searchsploit android Burada örnek exploitler listelendi tam konumu tespit için locate [exploit_adi] şeklinde bir komut kullanabilir. 34
Uygulama 1 – Windows 7 exploit etme modül : (windows/meterpreter/reverse_tcp) 2 - Port Scanner modül : (auxiliary/scanner/portscan/tcp) 35