Tryhackme | Bite Me CTF WriteUp

w1sd0m

Katılımcı Üye
28 Mar 2020
699
626
/802.1x/
Tryhackme | Bite Me CTF WriteUp by w1sd0m


BITE ME


qnt451p.png


Selam dostlar, bu gün sizlere Tryhackme'de yer alan "Bite Me" adlı CTF'in çözümünü anlatacağım.
Makine genel hatlarıyla güzel ve can sıkmıyor.
Çözümü biraz uzun gelebilir.
Şimdiden teşekkür ederim.


Platform: Tryhackme.com
Title: biteme
Difficulty: Medium
Created by: fire015

Total point: 60

Öncelikle bir port taraması yapalım bakalım yolumuz ne olacak.


oln5a96.png


22 ve 80 portları açık görünüyor. Demek ki web serverinden bir kullanıcı adı bulup onunla ssh servisine bağlanacağız.
Gidelim bakalım web sitesine.


k12he2e.png


Bizi default bir apache sayfası karşıladı.
Sayfanın kaynak kodlarında herhangi bir ipucu yok.
O zaman standart işlem olan dizin taramamızı yapalım bakalım neler çıkacak.

57169l5.png


"/console" adında bir dizin bulduk. Kontrol edelim.

2g7v6hi.png


Burada bir giriş-kontrol sayfası var. Bizim bir kullanıcı adı ve parolası bulmamız gerek.
Dolaşmaya ve kurcalamaya devam ediyorum.
Sayfanın kaynak kodlarına baktım ve ilgimi çeken bir durum gördüm.

6hh8jr8.png


Buraya bir fonksiyon bırakılmış ancak biraz karmaşık.
Kod:
function handleSubmit() {
        eval(function(p,a,c,k,e,r){e=function(c){return c.toString(a)};if(!''.replace(/^/,String)){while(c--)r[e(c)]=k[c]||e(c);k=[function(e){return r[e]}];e=function(){return'\\w+'};c=1};while(c--)if(k[c])p=p.replace(new RegExp('\\b'+e(c)+'\\b','g'),k[c]);return p}('0.1(\'2\').3=\'4\';5.6(\'@7 8 9 a b c d e f g h i... j\');',20,20,'document|getElementById|clicked|value|yes|console|log|fred|I|turned|on|php|file|syntax|highlighting|for|you|to|review|jason'.split('|'),0,{}))
        return true;
      }
Bizim bu karmaşayı çözmemiz gerek.
Biraz araştırma yaptım ve "PHP syntax highlighting" makalesine denk geldim.


cvg07r2.png


JS fonksiyonunun içerisine yukarıda gördüğünüz notu eklemiş eleman.
Bir "fred" bir de "jason" isminde arkadaşımız var.
Tekrar "/console" sayfasına gidiyorum ve bu sefer burası için bir dizin taraması yapmak istiyorum.

gwnnidq.png


Burada artık birşeyler bulabileceğim yeni dizinler görüyorum.
Hızlıca bunlara göz gezdirdim ve aradığımı buldum.


pf9ikwg.png

6lq6ryz.png


"/console/config.phps" sayfasında bize bir adet şifrelenmiş kullanıcı adı verilmiş,
"/console/functions.phps" sayfasında ise bunun fonksiyonu bırakılmış.
Peki öyleyse bizde işlemi tersine çeviririz.
Kod:
$ echo "6a61736f6e5f746573745f6163636f756e74" | xxd -r -p
jason_test_account

"jason_test_account" , aradığımız kullanıcı adıymış.
Peki şimdi bu hesabın parolasını kıralım.


php -S 127.0.0.1:80

[/CENTER] hydra -l jason_test_account -P /usr/share/wordlists/rockyou.txt 127.0.0.1 http-post-form “/index.php:user=^USER^&pwd=^PASS^:F=Incorrect details” [CENTER]

Şifreyi kırması saniyeler aldığı için resim yüklemedim.
Parola "
violet"

Hemen "
/console" sayfasına giderek giriş işlemi yaptım.
Ancak bu sefer de karşıma doğrulama ekranı geldi.

hqjvgaq.png


Benden 4 haneli bir sayı istiyor. Buraya da kaba-kuvvet uygulayacağım o halde.
"F12" ye basarak bu sayfada, cookie bilgimi kopyaladıktan sonra saldırıyı gerçekleştirmek üzere terminale dönüyorum.
Hemen 4 haneli sayıları bir dosyaya yazdırarak wordlist oluşturuyorum ve saldırıya başlıyorum.

qnc8bds.png


Yaklaşık 1 dakika sonra ihtiyacım olan sayıyı bana verdi, "1799"
(Yalnız bu sayı kişiye göre değişebilir haberiniz olsun)
Şimdi doğrulama ekranını da geçerek girişi tamamlıyorum ve karşıma böyle bir sayfa geliyor.

lynq2hu.png


Bu kutucuklar ile biraz oynayalım ve istediğimiz dosyayı bize gösterebiliyor mu bi bakalım.

cu8onp3.png


Burada daha önce gördüğüm "jason" ve "fred" ikilisinden birinin ssh-key'ini görebiliyor muyum diye baktım ve istediğime ulaştım.
Şimdi bunu kaydedip "
jason" dostumuzun parolasını kırmaya çalışalım.


q5lxyse.png


Opss!
İçerdeyiz...
Hemen ilk flagı koyayım şuraya ve devam edeyim;

13u8gao.png


Şimdi asıl meseleye geldik; yetki yükseltme.

p9yrae9.png


Burada biraz araştırma yapmak gerekiyor. "fail2ban" nedir, nasıl exploit edilir gibi aramalar yapmalıyız.
Google'da biraz gezindikten sonra işe yarar birşeyler gördüm.
Aslında olay "
/etc/fail2ban/action.d/iptables-multiport.conf" dosyası üzerinde değişiklik yapmakmış.
Bu düzenleme bize "root" kapısını açacak diye ümit ediyorum.

fred@biteme:~$ nano /etc/fail2ban/action.d/iptables-multiport.conf

dedik ve dosyada gösterdiğim yere bi "reverse shell" yazdık.
5tyeaco.png
ingbf2r.png


Dosyamızı resim2'deki gibi ayarladıktan sonra kaydedip çıkalım.
Daha sonra "Netcat" ile bir dinleme başlatalım.
Ancak burası biraz karışık. Nedeni ise; dinlemeyi başlatacağız, servise rest atacağız, ssh ile başarısız bağlantı istekleri yollayacağız ve sonunda içeri "root" olarak gireceğiz.

Nasıl mı?
deslnnw.png
tcez2dk.png
t1s7xwt.png


Soldan sağa doğru işlemleri gerçekleştirmemiz gerekiyor.
Bağlantıyı alana kadar ssh ile bağlantı isteği yollamaya devam edin.
2.kez redden sonra bağlantıyı aldık...

Ve işte son flag'de karşımızda....

5lnryho.png


Biraz sancılı bir süreç olabilir okuması, kusuruma bakmayın :)

^
|
|

Evet dostlarım, ailemizin CTF'cilerinden biri olarak bir makalenin daha sonuna geldik.
Okuduğunuz için teşekkür ederim.
Umarım birkaç tüyo,bilgi,taktik vb. gösterebilmişizdir.


EyvAllah...

|
|
v


agwiylw.jpg



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