TryHackMe – Vulnversity Çözümü

2021, May 29    

Start Machine ile makinemizi başlattık.

image

Şekil 1.1 Makineyi Başlatma

Task 2 de nmap ile bilgi toplamamızı istemektedir.

image

Şekil 1.2 Task 2

Öncelikle aşağıdaki komutu kullanarak versiyon taraması gerçekleştireceğiz.

image

Şekil 1.3

Tarama sonucunda elde ettiğimiz veriler aşağıdaki gibidir. (Makine IP = 10.10.168.30 (Makinanın her başlatılışında ip adresi değişecektir))

image

Şekil 1.4 Tarama Çıktısı

Şekil 1.4 ten de görüleceği üzere açık portlarımızın sayıdır 6 adettir.

image

Şekil 1.5

Squid proxy in versiyon bilgisine de şekil 1.4 te ki taramada gözlemleyebilmekteyiz. (3.*.**)

image

Şekil 1.6

Bir sonraki soru da ise –p-400 parametresi ile nmap in kaç adet bağlantı noktasını tarayacağını sormaktadır. Bu da –p parametresinden sonra verilen değer kadar noktayı tarayacağından dolayı cevabımız 400 olacaktır.

image

Şekil 1.7

Bir sonraki soruda ise –n parametresinin neyi çözümlemeyeceği sorulmaktadır. Bu sorunun cevabına ise nmap –help ile ulaşabilmemiz mümkündür.

image

Şekil 1.8

Şekil 1.8 den de anlaşılacağı üzere bu soruya cevabımız ‘DNS’ dir.

image

Şekil 1.9

Bir sonraki soruda ise işletim sistemi bilgisini sormaktadır. Bu soru için ise - O parametresini kullanabiliriz.

image

Şekil 1.10

Çıktımız bize tam olarak işletim sistemi bilgisini verememiş olsada ssh servisinden işletim sistemi bilgimizin ‘Ubuntu’ olduğunu söyleyebilmemiz mümkündür.

image

Şekil 1.11

Task 2 deki son sorumuz ise web server ın hangi portta çalıştığı ile ilgili. Yine bu sorunun cevabına da Şekil 1.4 te yaptığımız taramadan ulaşabilmekteyiz.

image

Şekil 1.12

image

Şekil 1.13

Bir sonraki task ise GoBuster i kullanmaya yönelik.

image

Şekil 1.14

Bu araç kalide kurulu olarak gelmektedir. Kurulu olmaması durumunda buradan ya da Kali Linux 2020.1 ve üzeri bir sürüm kullanılması durumunda sudo apt-get install gobuster komutu ile kurulumu gerçekletirebilmek mümkündür.

image

Şekil 1.15

‘common.txt’ wordlistini kullanarak taramamızı başlatıyoruz. (Wordlist makinede hazır olarak bulunmaktadır.)

image

Şekil 1.16

Tarama sonucunda bir adet index.html elde ettik.

image

Şekil 1.17

Tarayıcıdan index.html e gittiğimizde karşımıza aşağıdaki sayfa çıktı.

image

Şekil 1.18

Fakat bizden yükleme yapabileceğimiz alana sahip sayfa istenmektedir ve index.html sayfasında böyle bir alan bulunmamaktadır.

image

Şekil 1.19

Şimdi ise şekil 1.17 deki taramada elde ettiğimiz internal sayfasını kontrol ediyoruz.

image

Şekil 1.20

Bunun sonucunda aradımızın sayfanın ‘internal’ dizini olduğunu gözlemliyoruz.

image

Şekil 1.21

Bir sonraki task e geçtiğimzde ilk soruda elde ettiğimiz yüklenebilir sayfada hangi uzantılı sayfanın engellenmiş olduğunu sormaktadır. Bir kaç farklı uzantılı sayfayı yuklemeyi denedikten sonra ‘.php’ uzantılı sayfaların engellenmiş olduğunu gözlemledik.

image

Şekil 1.22

Bir sonraki işlem için bir adet wordlist oluşturuyoruz.

image

Şekil 1.23

Sonrasında trafiği yakalamak adına Burp Suite yi aktif ediyoruz.

image

Şekil 1.24

Sayfamıza dosya yükleyerek trafiğin oluşmasını sağlıyoruz.

image

Şekil 1.25

İşlem sonrasında Burp Suite trafiği yakalamaktadır.

image

Şekil 1.26

Sağ tıklayıp ‘Send to Intruder’ seçeneğini seçiyoruz.

image

Şekil 1.27

Çıkan ekranda ‘Possitions’ seçeneğinden atak tipini ‘sniper’ seçiyoruz ve atak yapılacak kısmı seçiyoruz.

image

Şekil 1.28

Payloads sekmesinden ise hazırladığımız word list i ekliyoruz. (Bu ekrandan elle girişte yapabilmemiz mümkündür.)

image

Şekil 1.29

Sonrasında ‘Start Attack’ diyerek saydırıyı başlatıyoruz. Atak sonucunda tüm değerler 200 döndürdü fakat elle tek tek denedikten sonra aradığımız cevabın ‘.phtml’ olduğunu gözlemliyoruz.

image

Şekil 1.30

Bir sonraki işlem için sayfamıza ‘.phtml’ uzantılı shell dosyamızı yüklüyoruz.

image

Şekil 1.31

Internal ın altında ‘uploads’ dizini olduğunu gözlemliyoruz. Ayrıca yüklediğimiz shell in de başarılı bir şekilde yüklenmiş olduğunu buradan gözlemleyebiliyoruz.

image

Şekil 1.32

Shell imizdeki port u dinlemeye alıp, sayfanın /uploads dizininden shellimizi çalıştırıyoruz.

image

Şekil 1.33

Bunun sonucunda bağlantı sağlamış oluyoruz.

image

Şekil 1.34

Web sunucusunu yöneten kullanıcıyı bulmak için /etc/passwd dizininden kullanıcıları inceleyerek ilgili kullanıcıyı elde ediyoruz.

image

Şekil 1.35

Task içerisindeki flag i de user.txt dosyası içerisinden elde ediyoruz.

image

Şekil 1.36

Son Task imizde SUID özelliğine sahip dosyaları listelemek için; image komutunu kullanabiliriz.

Bunun sonucunda aşağıdaki gibi bir çıktı elde ediyoruz.

image

Şekil 1.37

‘/bin/systemctl’ root yetkisi elde etme işlemlerinde kullanabileceğimiz bir dizin olduğu için ilgili cevabın bu olduğunu düşündüm ve cevap alanına yazdığımızda zaman doğru olduğunu gözlemliyoruz.

image

Şekil 1.38