Hack The Box: Valentine Çözümü

0
278
views
Hack the Box platformu sızma testi alıştırmaları için kullanılabilecek çevrimiçi platformlardan birisidir. Bu yazıda, Hack The Box platformundaki Valentine isimli Kolay zorluktaki sanal makinenin ele geçirilmesi incelenecektir.

 

Valentine sanal makinesinin IP ve işletim sistemi bilgileri aşağıdaki gibidir.

  • IP Adresi: 10.10.10.79
  • İşletim Sistemi: Linux

 

A) Port Tarama

Port taraması sonucunda 3 adet portun açık olduğu tespit edilmiştir.

https://github.com/21y4d/nmapAutomator
nmapAuthomator.sh 10.10.10.79 Quick

 

Açık portlar aşağıdaki gibidir:

  • 22/tcp
  • 80/tcp
  • 443/https

 

Ardından açık olduğu tespit edilen portlar üzerinde bulunan hizmetlere ait detayların tespiti için versiyon ve detaylı tarama gerçekleştirilir.

nmap -n -p 22,80,443 –script vuln 10.10.10.79

 

Not: Detaylı Nmap tarama sonucu için kaynaklardaki ivanitlearning’e ait Github bağlantısı incelenebilir.

 

B) SSH Servisinin İncelenmesi

Gerçekleştirilen nmap taramasında, TCP\22 portunda çalışan SSH servisinin sürümünde (OpenSSH 5.9p1) herhangi bir zafiyet bulunmadığı tespit edilmiştir.

Not: Her zaman her makineye göre atak vektörleri çalışmak gerekiyor! Buradaki HTTP ve SSH servisleri boşuna açık değil illa ki webden bir bilgi edinip SSH yapacağız. Burayı unutma!

 

C) HTTP Servisinin İncelenmesi

Gerçekleştirilen nmap taramasında, TCP\80 portunda Apache (HTTPD 2.2.22) servisi çalışmaktadır. İlgili adresi tarayıcı üzerinden ziyaret ettiğimizde karşılaştığımız sayfa aşağıdaki gibidir.

 

Bizi karşılayan ekran görüntüsü bilindik bir zafiyet için ipucu taşıyor. Kanayan bir kalp: “Heartbleed

Not: CTF’lerde makine isimleri, ekran görüntüleri, özelleştirilmiş isimler vs. önemlidir.

Öncelikle “gobuster” aracı ile dizin taraması gerçekleştirilir. Bunun için aşağıdaki komut kullanılabilir.

gobuster dir -w /usr/share/wordlists/dirbuster/directory-list-lowercase-2.3-medium.txt -u 10.10.10.79

 

Dizin tarama işlemi sonrası yukarıda verilen dizinler tespit edilmiştir. İlgili dizinlerin içerikleri sıra ile kontrol edilebilir.

İlk olarak “/omg” dizini altına gidildiğinde (/index gibi) anasayfadaki kanayan kalp resmi ile karşılaşılmaktadır.

İkinci olarak “/dev” dizini altına gidildiğinde 2 farklı dosyayı tespit edilmiştir.

 

/dev/notes.txt” içerisinde SSL sertifikasıyla ilgili bir takım notlar buluyoruz.

 

/dev/hype_key” içerisinde ise kodlanmış bir takım bilgiler tespit edilmiştir.

 

İlgili HEX kodu “Cyber Chef” ile ASCII formatına çevrilebilir.

https://gchq.github.io/CyberChef/

 

Not: Sonraki adımlarda bu veri kullanılacaktır.

Üçüncü olarak “/encode.php” hedefi ziyaret edildiğinde veri kodlamak için bir adres olduğu görülmektedir.

 

Dördüncü ve son olarak “/decode.php” hedefi ziyaret edildiğinde kodlanmış veriyi çözmek için bir adres olduğu görülmektedir.

 

D) HTTPS Servisinin İncelenmesi

Gerçekleştirilen nmap taramasında, TCP\443 portunda da Apache (HTTPD 2.2.22) servisi çalışmaktadır.

Nmap tarafından bu serviste olduğu tespit edilen 3 zafiyet aşağıdaki gibi idi:

  • SSL/TLS MITM vulnerability (CCS Injection)
  • SSL POODLE information leak
  • The Heartbleed Bug

 

İlk 2 zafiyet MITM olduğu için kapsam dışı olarak bırakıyoruz. Üçüncüsü olan Heartbleed zafiyeti ile ilerlenecektir.

 

E) Heartbleed Zafiyeti ve Tespiti

Heartbleed zafiyeti (CVE-2014-0160), 1.0.1f ve 1.0.2-beta1 dahil olmak üzere 1.0.1 ve 1.0.2-beta sürümlerindeki OpenSSL kütüphanesindeki bir tasarım hatasından kaynaklanmaktır. Bu zafiyetin istismarı ile hedef sistemde OpenSSL kütüphanesinin kullandığı bellek alanından 64 kilobaytlık bölümler halinde bilgiler okunabilir. Bu bilgiye SSL/TLS özel anahtarı da dahildir.

 

Zafiyetin tespiti için SSLyze aracı da kullanılabilir. SSLyze aracı ile ilgili detaylı bilgi için kaynaklardaki Siberportal [i] bağlantısı incelenebilir.

sslyze –heartbleed 10.10.10.79

 

Zafiyetin logosu aşağıdaki gibidir ve anasayfadaki resim ile de ipucu olarak verilmişti.

 

F) Heartbleed Zafiyetinin İstismarı – 1

Zafiyete ait istismar kodlarının tespiti için searchsploit aracı kullanılabilir.

searchsploit heartbleed

 

4 farklı istismar kodu tespit edilmiştir. İlk olarak python, ruby vs. dillerle yazılmış olan istismar kodları incelenebilir. 32764.py isimli python betiğini “-m” parametresi ile lokalimize kopyalıyoruz.

searchsploit -m 32764

 

Zafiyetin istismarı ile birçok “00” karakterlerinden oluşan satırların olduğu bir sonuç elde edilmektedir.

python 32764.py 10.10.10.79

 

Gereksiz satırlar silindiğinde aşağıdaki gibi bir sonuç elde edilebilir.

python 32764.py 10.10.10.79 | grep -v “00 00 00 00 00 00 00 00 00 00 00 00 00 00 00 00”

 

Not: Bellekten okunan veri içerisinde işe yarar bir bilgi elde etmek için bu istismar işlemini birden fazla kere yapmak gerekebilir.

G) Heartbleed Zafiyetinin İstismarı – 2

Benzer işlemler 32745.py betiği ile gerçekleştirildiğinde sonuç elde edilebilmiştir.

python 32745.py 10.10.10.79 | grep -v 00 | grep -v “00 00 00” | grep -v “11 11 11”

 

Tespit edilen ifade aşağıdaki gibidir.

$text=aGVhcnRibGVlZGJlbGlldmV0aGVoeXBlCg==

 

H) Heartbleed Zafiyetinin İstismarı – 3

Google ile “heartbleed python” araması yaparak “eelsivart/heartbleed.py” istismar kodunu buluyoruz.

https://gist.github.com/eelsivart/10174134

İstismar kodunu 443 portunda çalıştırdığımızda bize ekran görüntüsünün en altında görüldüğü şekilde base64 ile kodlanmış bir ifade veriyor.

python heartbleed.py -n 5 10.10.10.79 -p 443

 

Tespit edilen ifade yine aşağıdaki gibidir.

$text=aGVhcnRibGVlZGJlbGlldmV0aGVoeXBlCg==

 

Bu ifade Cyber Chef ile decode edilebileceği gibi base64 aracı ile de decode edilebilir.

echo aGVhcnRibGVlZGJlbGlldmV0aGVoeXBlCg== | base64 -d

 

Benzer olarak /decode.php adresine gidilerek de decode etme işlemi gerçekleştirilir.

 

Sonuç olarak “heartbleedbelievethehype” ifadesi tespit edilir.

 

I) SSH Erişiminin Sağlanması

Önceki adımlarda “http://10.10.10.79/dev/hype_key” adresinde bir anahtar dosyası ve Heartbleed zafiyeti ile de “heartbleedbelievethehype” ifadesi elde edilmişti.

“hype” kullanıcı adı ve bu tespit edilen bu değerler ile SSH denemesi yapıldığında başarılı bir erişim elde edilememektedir.

chmod 0600 hype_key
ssh hype@10.10.10.79 -i hype_key

 

Not: SSH anahtarı ile bağlantı sağlamak için anahtar dosyasının izinleri 600 olarak verilmelidir. Aksi halde parola doğru olsa bile, kimlik doğrulama hatasına benzer bir sonuç verilir.

 

Sitede decode.php/encode.php sayfaları vardı. Ayrıca “hype_key” dosyasına tekrar baktığımızda bir şey dikkatimizi çekiyor. Ekran görüntüsünde görüldüğü üzere anahtar dosyası aslında şifreli imiş. Şifreli bu dosyayı deşifre etmemiz gerekiyor.

 

Hemen Google’a “decode ssh key” yazarak aşağıdaki linke ulaşıyoruz.

https://support.citrix.com/article/CTX122930/

 

Burada görüleceği üzere aradığımız araç “openssl” ve ilgili sayfada komutun kullanımı da var.

openssl rsa -in <Encrypted key filename> -out <desired output file name>

 

İlgili alanları doldurarak anahtarı deşifre edelim. Şifre çözme işlemi yapılırken bizden bir parola istiyor. Parola olarak da “heartbleedbelievethehype” değerini girdiğimizde hata almadığımızı görüyoruz.

openssl rsa -in hype_key -out hype_key_decode

 

Artık elimizde şifresi çözülmüş bir anahtar dosyası var.

 

Böylece SSH erişimi sağlanmıştır.

chmod 0600 hype_key_decode
ssh hype@10.10.10.79 -i hype_key_decode

 

“user.txt” dosyası da elde edilmiş olur.

cat user.txt

 

J) Hak Yükseltme İşleminin Gerçekleştirilmesi: Tmux

Hak yükseltme yöntemi için g0tmi1k‘in belirttiği adımlar uygulanabilir.

https://blog.g0tmi1k.com/2011/08/basic-linux-privilege-escalation/

 

Biraz araştırma yaptıktan sonra root haklarıyla çalışan proseslere de göz atıyoruz.

ps -ef | grep root

 

/usr/bin/tmux aracının (çoklu terminal) root haklarıyla çalıştığını görüyoruz. Yani “root” yetkisi ile bir tmux/terminal oturumunun olduğu görülmektedir. Bu oturuma geçmek için aşağıdaki komutu çalıştırabilmek gereklidir.

/usr/bin/tmux -S /.devs/dev_sess

 

“hype” kullanıcısının komut geçmişine de baktığımızda aynı komutun geçtiği (başarılı mı başarısız mı olduğu henüz bilinmemektedir) görülmektedir.

history

 

Bu terminale erişebilmek için /.devs/dev_sess dosyasına (soketine) yetki verilmiş olması gereklidir. Mevcut durumdaki yetkilendirme aşağıdaki gibidir.

 

Aşağıdaki komutu çalıştırdığımızda yetki hatası alınmadığı ve “root” yetkisine sahip olunabildiği görülmüştür.

tmux -S /.devs/dev_sess

 

Not: “hype” kullanıcısına yetki verilmemiş olması durumunda, aşağıdaki gibi bir hata alınacaktır.

 

K) Hak Yükseltme İşleminin Gerçekleştirilmesi: DirtyCow

Mevcut işletim sistemi bilgisi aşağıdaki gibidir.

Linux Valentine 3.2.0-23-generic #36-Ubuntu SMP Tue Apr 10 20:39:51 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux

 

Bu sürümde DirtyCow zafiyeti mevcuttur.

https://www.exploit-db.com/exploits/40839

 

Bu zafiyetin istismarı için kaynaklardaki Siberportal [ii] bağlantısı incelenebilir.

 

 

Kaynaklar:

https://medium.com/@orhan_yildirim/valentine-hackthebox-write-up-73f54ef07682
https://github.com/ivanitlearning/CTF-Repos/blob/master/HTB/Valentine/nmap-TCP.txt
https://0xdf.gitlab.io/2018/07/28/htb-valentine.html
https://v3ded.github.io/ctf/htb-valentine
https://isroot.nl/2018/07/30/hack-the-box-write-up-valentine/
https://medium.com/bugbountywriteup/valentine-a-hackthebox-writeup-f5b731e35138
https://www.absolomb.com/2018-07-31-HackTheBox-Valentine/
HackTheBox – Valentine
https://qiita.com/sanpo_shiho/items/39450e07718d1d8734a0
[i] https://www.siberportal.org/blue-team/securing-web-servers/sslyze-araci-ile-uygulamalardaki-ssl-tls-yapilandirmasinin-incelenmesi/
[ii] https://www.siberportal.org/red-team/linux-penetration-tests/linux-exploit-suggester-betigi-ile-tespit-edilen-isletim-sistemi-zafiyeti-istismar-edilerek-root-yetkileri-ile-komut-satirinin-elde-edilmesi/

 

 

 

 

CEVAP VER

Yorumunuzu giriniz
İsminizi giriniz

This site uses Akismet to reduce spam. Learn how your comment data is processed.