VulnHub dpwwn-1 Zafiyetli Makine Çözümü

Codx

Katılımcı Üye
30 Tem 2017
309
1

Merhabalar, iyi forumlar herkese.

www.vulnhub.com üzerinden zafiyetli makina çözümü yapacağız.

Çözümünü gerçekleştireceğimiz makineye buradan ulaşabilirsiniz: https://www.vulnhub.com/entry/dpwwn-1,342/


Amacımız: Sisteme sızıp root yetkisi elde etmek.

Önelikle sistemizi sanal makine üzerinde kuruyoruz.



TARAMA​

Daha sonrasında arka planda çalışmasına izin veriyoruz. Aynı ağda bulunduğumuz için net discover aracından IP adresini tespit ediyoruz.

Kod:
netdiscover


Netdiscover ile tespit ettiğimiz IP adresine hangi portların açık olduğunu keşfetmek için nmap aracını kullanarak agresif tarama yapıyoruz.

Kod:
nmap -A 192.168.42.129


SQL
3306 default olarak mysql portudur. Bağlanmayı deneyelim belki işimize yararlı bir bilgi çıkar.

CLI arayüzünden mysql bağlantısı sağlamak için ;

Kod:
mysql -u DBUSER -h DBSERVERNAME_OR_IP -p
Şeklinde komutumuzu giriyoruz. DBUSER olarak root SERVERNAME yerine de IP adresimizi veriyoruz.



Bizden bağlanırken password istiyor. Ben ilk deneme olarak sadece enter diyerek şansımı deniyorum. Başarılı sonuç aldık. Şifre belirlenmemiş. Veri tabanına bağlantımızı sağladık.

Database içerisinde kullanabileceğim bilgiler var mı diye bakmak istiyorum. Bunun için sırasıyla;


Database'leri listeyeceğim.
Kod:
show databases;


Bakmak istediğim database'i use komutu ile kullanacağım.
Kod:
use ssh


Database içerisindeki tabloları listeleyeceğim.
Kod:
show tables


Tablo(lar)dan içerisini görmek istediğim tablonun bütün kolonlarını SELECT edeceğim.
Kod:
select * from users;


ssh isimli database'den users isimli tablodan bir username ve password elde ettim. Hatırlayacak olursak eğer 22 numaralı portumuzda ssh servisi çalışıyordu.

Not: SSH diğer adı ile Scure Shell, Telnetin güvenli halidir. Sunucuların, kullanıcılar tarafından uzaktan yönetilmesine olanak tanır.

SÖMÜRMEK
SSH ile bağlanmak için kullanılması gereken komut;
Kod:
ssh user@IP -pPORTNUMBER
Şeklinde bir komut girilmelidir. Eğer port belirtilmez ise default olarak 22 numaralı porta istek gönderilmektedir.

Gereken komutu kendimize uyarlayarak giriyoruz.


SSH ile başarılı bir şekilde bağlandık. Şimdi yetki yükseltelim öyleyse.


Yetkimiz mistic kullanıcısı ile sınırlı. Bir sisteme sızıldığı zaman ilk bakılması gereken şey hangi yetkilere sahip olunulduğudur.

Bulunduğum dizinde var olan dosyalara bakmak istiyorum.
Kod:
ls -al
'a' parametresini kullanma sebebim nokta ile başlayan gizli dosyaları da görütülemek isteyişimden, 'l' parametrseini kullanma sebebim bu dosyanın hangi gruba ait olduğunun bilgisine erişmek istediğimdendir.


Bir .sh uzantılı dosyaya rastlıyorum. Bu dosyanın içini okumak için cat komutunu kullanıyoruz.


Bunun sistemin loglarını toplayan bir script olduğu görüyoruz. Bu türden dosyalar crontab'da root yetkisi ile çalıştırmak için hazırlanır.

Not: Crontab, temelde işlemin gerçekleştirileceği zaman(lar) ve tekrar ardından işlemin kendisi tanımlanarak crontab dosyasına eklenmesi şeklinde gerçekleştirilir. crontab dosyasına /etc/crontab üzerinden erişilebilir.

Biz crontab'a bakıyoruz.



Görüldüğü üzere burada bizim içerisine baktığımız .sh dosyası çalıştırılan her komutun loglanması için crontab'a yazılmış bulunmaktadır.

Sistem içeriğine bakmaksızın aynı ada sahip bir dosyayı çalıştırır mı? Madem ismi sebebiyle bulabiliyor, o zaman bu durumdan yararlanalım.

msfvenom kullanarak reverse netcad payload oluşturuyoruz.


lhost kısmına kendi IP'mi lport kısmına ise kullanabileceğim 65.536 porttan istediğim her hangi birini veriyorum.

Payload'ımız hazır. Şimdi bunu o dosyanın içerisine yazalım.



echo ile içerisine yazıyoruz.Sadece bizim yazdığımız kodun içerisinde bulunması diğerlerinin silinmesi için sadece bir adet > işareti koyuyoruz, ardından dosya adımızı veriyoruz.

YETKİ YÜKSELTME
Şimdi portu dinlemeye başlayalım ve bağlanmasını bekleyelim.



Bağlantı kurulduktan sonra stabil bir shell oluşturmak için şu komutu yazmalıyız.
Kod:
python -c 'import pty;pty.spawn("/bin/bash")'


Sistemde yetkimiz root'a yükselmiş bulunmaktadır.

Şimdi sistemde flag değerimizi arayalım. Artık root olduğumuza göre, root dizininden başlayalım.

root dizininde bir txt uzantılı dosya görüp cat ile içini okuyorum ve sonuç;


Flag değerine ulaşılmıştır.

Okuduğunuz için teşekkürler, iyi forumlar dilerim.

 
Moderatör tarafında düzenlendi:
Ü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.