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.