Required Installs For Exploit Development

Eğer windows makinede değilsek https://www.microsoft.com/en-us/evalcenter/evaluate-windows-10-enterprise bu adresten widnows iso indiriyoruz.

Vuln machine için http://www.thegreycorner.com/2010/12/introducing-vulnserver.html bu adresin en altındaki vulnserver.zip indiriyoruz.

Daha sonra da https://www.immunityinc.com/products/debugger/ adresinden program debugger’ı olan immunity debugger indiriyoruz. Programın memory,stack vs değerlerinin nasıl değiştiğini görmemizi sağlar. Bu debugger çalışmak için python 2.7.1 e ihtiyaç duyar.

Password Spraying And Credential Stuffing

Bazı şirketlerin kullanıcılarının bilgileri dışarı sızmış olabilir. Eğer elimizde böyle bir liste varsa burp suite ile bunu deneyebiliriz. Ancak denerken password denemesini çok fazla yapmak maillerin kilitlenmesine ve servisin kısa süre için kullanılmaz olmasına sebep olabilir. Bu yüzden bunu pasword policy violate etmeden yapmamız gerekiyor. Burp suite ile foxy proxy ayarladıktan sonra hedef siteye gidip login bölümüne test requesti atabiliriz. Requesti intercept’de gördükten sonra intruder’a göndeririz. Daha sonra username olan kısmı seçip add diyoruz ve password diyen kısmı add diyoruz. Daha sonra payloads kısmında birinci payload’a emailleri kopyalayıp paste diyoruz ikinci payloada da şifreleri paste diyeceğiz. Eğer her response’da aşağı yukarı aynı uzunluk geliyorsa çalışmıyor demektir. Responseların raw halinden ortak bir cevap bulup onu options kısmında  grepe ekleyebiliriz. Böylece her requestimizin sonucunda o ortak bulunamadı gibi bir yazının çıkıp çıkmadığını kontrol etme imkanımız olur.

Brute Force Attacking

ÖZET : Bağlandığımız makinede root şifresini ele geçirmek için brute force uygulayabiliriz. Bunun için iki araç var. Bir tanesi hydra  bu araçla metsaploit klasörünün altındaki wordlistlerden ihtiyacımız olanı vererek bunu deneyebiliriz. Bunu çalıştırmak için vermemiz gereken parametreler şu şekilde : hydra -l loot -P /usr/share/wordlists/metasploit/unix_passwords.txt ssh://<ip> -t 4 -V 

Bu araca alternatif olacak araç da mfsconsole yardımıyla ulaşabileceğimiz ssh_login aracı. Buna da search ssh komutuyla erişebiliriz. Seçeneklerini de username : root, pass_file : /usr/share/wordlists/metasploit/unix_passwords.txt , rhosts : <ip> ve thread miktarını da vererek bu aracı da çalıştırabiliriz.

Bu derste brute force yapmak için hydra aracını kullanacağız.Bunun için şu komutu yazıyoruz :

hydra -l root -P /usr/share/wordlists/metasploit/ 

Burada taba basarsak bir sürü txt olarak wordlist karşımıza çıkar. Şimdi uniz bruteforce deneyeceğimiz için o wordlisti seçiyoruz

hydra -l loot -P /usr/share/wordlists/metasploit/unix_passwords.txt ssh://<ip> -t 4 -V => Buradaki t argümanı thread sayısını -V ise verbose yani denerken gösterme işlemini gösterir.

Aynı işlemi metasploit frameworkte de yapabiliriz. Bunun için mfsconsole yazıp konsolu açıyoruz. Daha sonra search ssh diyip auxiliary/scanner/ssh/ssh_login aracını seçiyoruz.

Daha sonra seçenekleri  şu şekilde ayarlıyoruz :

set username root

set pass_file /usr/share/wordlists/metasploit/unix_passwords.txt 

set rhosts <ip>

set threads 10 

set verbose true

run

Bu işlemleri yaptığımızda sırayla zayıf şifreleri denemeye başlar.

Manual Exploitation

Bu yöntemde de github linkinden indiriğimiz Openfuck exploitini kullanacağız. Bunun için indirip terminalden klasöre gidiyoruz.Daha sonra çalıştırmak için ihtiyacımız olan kütüphaneyi yüklemek için apt-get install libssl-dev komutunu yazıyoruz. Daha sonra c dosyasını çalıştırmak için gcc -o OpenFuck OpenFuck.c  -lcrypto komutunu yazarak exploiti derliyoruz. Sonra da ./OpenFuck yazarak compile edilmiş kodu çalıştırabiliriz.

Exe çalıştırmak için gereken parametreler buradaki gibi oluyor. Target olarak seçeceğimiz adresi deneyeceğiz. Box parametresinde ip adresi girmemiz gerekiyor port olarak da ssl’in olduğu portu gireceğiz. Offset seçmek için enumaration yaptığımızda topladığımız bilgileri kullanacağız. Bu aşamada makinenin apache 1.3.20 kullandığını öğrenmiştik. Şimdi onun için exploit olan şu adresi kullanacağız :

0x6b adresini daha stabil olduğu için kullanmaya karar veriyoruz.

./OpenFuck 0x6b <ip> -c 40 Şeklinde kodu çalıştırıyoruz. Daha sonra kod çalışmaya başlıyor ve önce shell gönderiyor. Daha sonra shell çalışmaya başlıyor ve kontrolü ele alıyoruz. whomi yazdığımızda root olduğumuzu görüyoruz. Daha sonra post exploitation konusu geliyor ama o sonraki derslerde olacak.

Sonrasında cat /etx/passwd yazdığımızda şifrelerin adreslerinin olduğu şu dosya açılıyor :

Burada en alta indiğimizde John:500 ile başlayan kullanıcılar gerçek kullanıcı adlarıdır. Burada iki kullanıcı adı var demektir. Eskiden bu dosyada şifreler vardı ancak artık değişti. Şimdi bu aşamadan sonra car /etc/shadow yazdığımızda da şifrelerin hashlenmiş halde şu şekilde yazıldığı bir dosya karşımıza çıkıyor :

 

Gaining Root with Metasploit

ÖZET :

SMB açığı olabileceğini keşfettik ve belli bilgiler edindik. Bunlara dayanarak kioptrix level 1 makinesinin kontrolünü almak için bu makinenin kullandığı samba 2.2 için bir sploit aradık. Bunu searchsploit samba 2.2 komutuyla yaptık. daha sonra yaptığımız recon sonucu bunun için en iyi sploitin trans2open olacağına karar verdik ve mfconsole açıp search trans2open yazarak exploiti hazır hale getirdik. set rhosts <ip> dedik ve exploit yazıp başlattık.  Daha sonra brute force yaparken bunun çalışmadığını payloadların sorunlu olduğunu gördük ve işlemi durdurup payload değiştirmeye karar verdik. Sonra da set payload linux/x86/ tab tab yapıp yeni payload gönderdik ve root erişimine sahip olduk.

 

Bu derste smb saldıracağız. Bunun için searchsploit samba 2.2 yazıyoruz. Recon notlarımıza göre en başarılı görünen sploit trans2open gibi görünüyor bu yüzden bunu seçiyoruz. Çalıştırmak için öncelikle mfsconsole yazıyoruz. Daha sonra search trans2open yazıyoruz ve  makinede linux olduğunu keşfettiğimiz için linux için olan versiyonu seçiyoruz. Daha sonra option olarak set rhosts <id> ile targeti veriyoruz. Daha sonra da exploit yazıp başlatıyoruz.

Burada brute force deniyor. Sürekli payloadları gönderiyor ve sonucunu görüyor. İlk başta options yazdığımızda payload optionları görünmüyordu ama birkaç payload gönderip öldükten sonra çalışmayı durdurup options yazarsak payload options gelir.

set payload linux/x86/ tab tab yaparsak birçok payload opsiyonu karşımıza çıkar.

Seçtiğimiz payloadı yazarken shell yazıp taba basmamız yeterli payload otomatik dolacak.

Yeni payloadımız bu şekilde görünüyor. Şimdi tekrar run edeceğiz. Böylece bu payload ile sonuç başarılı oluyor ve makineye girip kontrolü ele alıyoruz.

Reverse Shell ve Bash Shell

İki önemli kavram incelememiz gerekiyor. Birincisi shell diğeri de payload. Öncelikle shell ile başlıyoruz. İlk türümüz reverse shell. Shell dediğimizde makineye erişim anlamamız gerekiyor. Reverse shell dediğimizde hedefin saldırgana bağlanması durumunu söylüyoruz.

Bind shell ise tam tersidir. Bir sploit göndeririz ve o belli bir portu dinler. Saldırgan da o port ile giriş yapar. Reverse shell’de kurban bağlantı isteyince exploit gönderir.

Nessus ile Tarama

Nessus vuln tarayıcıdır. Sistemdeki olası zaafiyetleri tarar.

https://www.tenable.com/downloads/nessus?loginAttempted=true bu adrese gidip debian veya ubuntu versiyonu indirilebilir.

İndirdikten sonra o directory de dpkg Nessus…(press tab) diyerek depackage ediyoruz. Depackage ettikten sonra otomatik yüklenir ve /etc/init.d/nessusd start diyerek başlatılabilir. Çalıştırdıktan sonra karşımıza şöyle bir ekranda açılır :

Paketlerin yüklenmesi vs biraz vakit alacaktır. Daha sonra nessus essentials seçip kullanıcı adı şifre mail vs bilgileri giriyoruz. Daha sonra da yükleme tamamlanır ve login ekranı gelir. Login yaptıktan sonra şu ekrana geçiyoruz.

Daha sonra da create new scan diyoruz. Burada birkaç seçenek var. Basic network scan ile başlayacağız ama advanced scan gibi seçenekler de mevcut.

Değerleri girdikten sonra yandaki tabdan scan istediğimiz bir zamanda yapabiliriz. Otomatik olarak o seçtiğimiz tarih ve saatte yapar. Discovery sekmesindeyse port scan dersek most common portları tarar hepsini seçersek hepsini tarar. Assesmentta süreyi kısaltmak için bilindik vuln. tara diyebiliriz.

Bütün ayarlamaları yaptıktan sonra kayıt edip run ediyoruz.

Advanced scan kısmında daha detaylı taramalar yapabiliriz. TCP/UDP ping gönderme vs seçenekleri var.

Assesment kısmında hydra aktif olursa şifreleri brute force yapmaya çalışır.

Scan bittikten sonra vuln.ları kritiklik düzeyine göre sıralar.Scan sonuçlarını görmek istediğimizde önce şöyle bir ekran görürüz.

Sonrasında da üst tablardan Vulnerabilities kısmına tıklayınca bulunanlar listelenir.

Ancak bunun sonuçlarına tamamen güvenemeyiz. Tarama sonuçlarını test edip görmemiz gerekiyor. Apache server örneğinde burp suite ile request atıp oradan dönen response’daki header’ın apache versiyonu ile tarama sonucunda elde ettiğimiz sonuç uymuştu. Yine böyle bir yöntem izleyip bulgularımızı doğrulamamız gerekiyor.

 

Masscan Ve Metasploit ile Tarama

ÖZET :

masscan -p1-65535 192.168.57.134 komutuyla çalıştırabiliriz.

Metasploit ile taramak için :

mfsconsole yazıp search portscanner diyoruz. Daha sonra da syn toolunu kullanıyoruz. Bu toolun seçeneklerini set rhosts 192.168.57.134 ve set ports 1-65535 komutlarıyla belirleyip run diyoruz ve tarama başlıyor. nmap yüklü olmayan makinelerde kullanışlı olabiliyor.

 

https://github.com/robertdavidgraham/masscan adresinde masscan tooluna ulaşabiliriz. Bu tarama aracı ile bütün internet de taranabilir.

masscan -p1-65535 192.168.57.134 komutuyla çalıştırabiliriz.

nmap -T4  -p- 192.168.57.134 komutu da nmap ile yapılan versiyonudur.

Masscan -sS yazmadığımız zaman otomatik olarak bu opsiyonla tarama yapmak için çalışır.

Bazen massscan bazen de nmap daha hızlı çalışır.

Metasploit ile tarama yapmak için msfconsole yazıp metasploit framework console açıyoruz. Buradan search portscan yazdığımızda da portscanner araçları çıkıyor karşımıza.Bu toolardan syn isimli toolu kullanabiliriz.

use auxiliary/scanner/portscan/syn  yazıp daha sonra da options yazıp seçeneklerine bakabiliriz.

Daha sonra set rhosts 192.168.57.134 ve set ports 1-65535 yazıp seçenekleri ayarladıktan sonra run diyoruz. Çok fazla detay vermiyor ama hangi portun açık olduğunu söylüyor.

Scan&Enumaration Genel Notlar

Burada en çok dikkatimizi çeken mod_ssl/2.8.4 oluyor bununla ilgili bir buffer overflow exploiti olabilir sonucunu taramadan çıkartmışız. Öyleyse googledan mod_ssl/2.8.4 exploit yazıp araştırıyoruz.

 

Exploit db de karşımıza hazır kodu çıktı. Bir de github sayfasında güzel bir örnek var. Bu exploit-db deki outdated olduğu için çalışmıyor bu yüzden github linkindekini alıyoruz.

https://github.com/heltonWernik/OpenLuck

 

Ayrıca listemizde yer alan diğer Apache httpd 1.3.20 bilgisini de Apache httpd 1.3.20 exploit yazarak arayabiliriz. Buradan da cvedetails.com sitesinden kritik exploitlere vs bakabiliriz. Kırmızı olanlar kritik demektir.

Daha sonra da Samba 2.2.1a exploitine bakabiliriz. Buradan da rapid7 sitesinden exploiti araştırabiliriz ve bunun için de exploit indirebiliriz.

https://www.rapid7.com/db/modules/exploit/linux/samba/trans2open

Bunları not aldıktan sonra lokalde de istediğimiz gibi arama yapabiliriz. Bunun için searchsploit komutunu çalıştırabiliriz. searchsploit Samba yazıp exploitlere bakabiliriz.

Notların genel durumu şu şekilde olabilir :