Eren Yılmaz tarafından 7 Ocak 2021 tarihinde yazılmıştır.
[TR] TryHackMe Brute It WriteUp
Oda Linki: https://tryhackme.com/room/bruteitMerhaba bu makalemde sizlerle beraber TryHackMe'de bulunan Brute It odasını çözeceğiz.
1. Reconnaissance
İlk sorumuzda bize kaç adet portumuzun açık olduğunu soruyor bunu çözmek için basit bir nmap agresif taraması yeterlidir, aşağıda vereceğim kod ile agresif taramayı yapabilirsiniz.Diğer 3 sorunun cevabıda az önce yaptığımız nmap taramasında karşımıza çıkacaktır.nmap -A 10.10.159.24
Şimdi bizden web sitesindeki gizli dizini bulmamızı istiyor, bunun için dirb kullanacağız, dirbin varsayılan wordlisti olan common.txt yi kullanarak aşağıdaki komut ile tarama yapabiliriz.
Karşımıza gördüğünüz gibi 1 adet gizli dizin çıkıyor.
2. Getting a shell
Şimdi sıradaki amacımız bulduğumuz gizli dizindeki giriş kullanıcı ismi ve şifresini bulmak, ilk önce sayfanın kaynak kodlarına baktığımızda not satırında bize kullanıcı isminin admin olduğunu ve gerçek isminin john olduğunu söylüyor şifreyi bulmak için hydra kullanabiliriz. Sayfanın kaynak kodlarında kullanıcı isminin "user" parametresiyle, şifrenin ise "pass" parametresiyle karşı tarafa gittiğini görüyoruz, hydrayı bu edindiğimiz bilgilere göre aşağıda yazdığım şekilde rockyou.txt'yi kelime listesi olarak baz alarak çalıştırabiliriz.Ve bulduk! kullanıcı ismi ve şifre karşımızda ama tryhackme soruların cevaplarını vermemi pek hoş karşılamadığından dolayı size belirtemeyeceğim sizde aynı taramayı kendinize göre yaparak sonuca ulaşabilirsiniz.hydra -l admin -P rockyou.txt 10.10.159.24 http-post-form "/admin/index.php:user=^USER^&pass=^PASS^:Username or password invalid" -f
Bulduğumuz kullanıcı ismi ve şifreyi kullanarak panele giriş yaptığımızda karşımıza bir rsa key çıkıyor, bu key ile ssh'a bağlanabiliriz ama kırmamız gerekli. Bu keyi kırmak için aşağıda yazdığım komutları kendinize göre sırasıyla uygulayınız.(bu işlem için ssh2john.py scriptini indirmelisiniz buradan indirebilirsiniz: https://github.com/openwall/john/blob/bleeding-jumbo/run/ssh2john.py)
python ssh2john.py id_rsa > id_rsa.hash
Tamam! Şifreyi bulduk, şimdi bu rsa anahtarı ile giriş yapıyoruz, aşağıda giriş için komutu verdim.john id_rsa.hash -wordlist=rockyou.txt
Şifre soruyor, şifre kısmına yukarda kırdığımız rsa anahtarından çıkan şifreyi giriyoruz, ve içerdeyiz!ssh [email protected] -i id_rsa
Şimdi user.txt dosyasını bulmamız gerekli, terminale ls çektiğimizde karşımıza user.txt çıkıyor aşağıdaki komut ile okuyoruz.
cat user.txt
3. Privilege Escalation
Aşağıda verdiğim komut ile ayrıcalıklarımızı kontrol ettiğimizde "cat" komutunu yönetici izniyle şifresiz bir şekilde çalıştırabileceğimizi görüyoruz tabi bunu görüp durabilmek mümkün mu shadow dosyasını okumayı denemek için bir değişken atayıp içine shadow dosyasını koyuyoruz biraz karışık gelmiş olabilir, aşağıdaki komutlar ile bahsettiğim eylemi gerçekleştirip yönetici şifresinin hashına ulaşıyoruz.
asd=/etc/shadow
Bu hashı kırmamız gerek bunun için john'a gidiyoruz, shadow dosyasındaki metinleri kopyalayıp hash isimli bir dosyaya atıyoruz ve aşağıdaki komutu yazdığımızda root kullanıcısının şifresine ulaşıyoruz.sudo cat "$asd"
"su root" komutunu kullanarak root kullanıcısına geçip aşağıdaki komutu kullanarak root.txt dosyasının içeriğine ulaşıyoruz.john hash --wordlist=rockyou.txt
cat /root/root.txt
Daha fazla WriteUp için takipte kalın!