TryHackMe | Athena

Will Graham

Katılımcı Üye
14 Eki 2022
581
489
TryHackMe | Athena

merhaba arkadaşlar bu konumda tryhackme.com platformu üzerinde ki athena isimli makinenin çözümünü göstereceğim. makinenin etiketlerinde web, misconfig, reversing, rootkit ibaretleri yer alıyor. bunlar ile ilgili çıkarımlarda bulunmak için çok erken olduğundan bunları şimdilik göz ardı edip, bir port taraması yapalım.

2h4hg84.png


tarama sonucunda 22 (ssh), 80 (http) ve smb (139/445) portlarının açık olduğunu görüyoruz. ilk olarak smb servisinden başlayacağız. smbmap aracını kullanarak tüm dizinleri ve bu dizinlerin (eğer okunabiliyorsa) içeriğinin göstermesini sağlıyoruz.

2j3zrr7.png


sonuç olarak public ve IPC$ isimli iki dizinin olduğunu ve sadece public dizinini okuyabildiğimizi öğrendik. public dizini içerisinde msg_for_administrator.txt dosyası var ve içerisinde ki yazıdan bir ping servisinin geliştirildiğini ve test etmek amacıyla /myrouterpanel dizini altına koyulduğunu öğrendik. bunu tarayıcı üzerinden açalım.

2tcjs6e.png


söylendiği gibi burada bir ping hizmeti var. pingin belirtilen adreslere icmp paketlerini gönderen bir program olduğunu düşünürsek, burada command injection zafiyetinin olabileceğini tahmin edebiliriz. belli başlı komut çalıştırma yöntemleri var, bunları tek tek deneyerek sonuçlarını görelim.

;ls şeklinde bir girdi girdiğimizde "Attempt hacking!" sonucunu döndürüyor.
diğer girdileri girince ise "Failed to execute ping." sonucunu döndürüyor ama bu girdinin çalıştırılmadığı anlamına gelmiyor tabi ki. curl ile kontrol ettiğimizde bize komutun çıktısını gösterdiğini görebiliyoruz.

burada bağlantımızı ncat ile sağlayacağız, diğer komutların içerisinde & karakteri geçtiği için, terminal & karakterinden sonrasını farklı bir komut olarak algılıyor.

aqwmifo.png


bağlantı geldikten sonra ilk yaptığım, şey /home dizini altında ki kullanıcı dizinlerini kontrol etmek oldu ama gel gör ki bu dizinleri görüntülemek için yeterli yetkim yok. crontab, suid vs üzerinden de sonuç çıkaramadım. bu yüzden find / -user "athena" 2>/dev/null komutunu kullanarak athena kullanıcısına ait dosya ve dizinleri listelemesini istedim. böylece athena kullanıcısına yükselmemi sağlayacak bir dosya var ise onu bulmuş olacaktım.

9n8xrh7.png


gördüğünüz gibi bir dizin buldu ve içerisinde düzenleme yetkisine sahip olduğumuz bir dosya var. içerisine shell alabilmek için bir komut girebiliriz fakat bunu athena kullanıcısı adına çalıştıramayacağımız için kullanıcının yetkisine erişemeyiz. biraz önce sistem hakkında bilgi topladığımızda gözüme çarpan bir şey olmadığından herhalde bunu otomatik olarak kendisi çalıştıracak düşüncesine kapıldım ve biraz bekledim. hemen ardından bağlantı geldi ve athena kullanıcısına girmiş, ilk bayrağı almış oldum.

cwmzwi0.png


geriye root yetkisini alıp, root dizininde ki root.txt dosyasını okumak kaldı. bunun için sudo -l komutunu kullandığımda root yetkisi ile venom.ko dosyasını çalıştırabildiğimi gördüm. dosyayı çalıştırdığımda herhangi bir şey olmadı.

konunun başında sizlere makinenin etiketlerinde rootkit, reversing ve misconfig ibarelerinin bulunduğunu söylemiştim. bahsettiği rootkit venom.ko dosyasıdır. bizden bu dosyasyı tersine mühendislik araçları ile çözmemizi ve yanlış yapılandırma üzerinden yararlanmamızı istediğini biliyoruz.

dosyayı inceleyebilmek için pwncat'e geçiş yapıyorum ve hemen ardından bu dosyayı bulunduğum konuma indiriyorum. şimdi ise yapmamız gereken sadece tersine mühendislik işi kaldı. bu iş için radare2 isimli aracı kullanacağım. radare2 aracını başka bir ctf'nin etiketinde görmüştüm.

b5shluc.png


aaaa komutu ile üst düzey bir analiz yapmasını istediğimizi belirtiyoruz sonra ise afl komutu ile fonksiyonları listeliyoruz. işaretlediğim kısımda ki "diamorphine" sözcüğü muhtemelen rootkit'in ismini belirtiyor. bu ismi google üzerinden arattığımızda rootkit'in kaynak kodunu barındıran bir github deposu ile karşılaşıyoruz.

burada herhangi bir PID'e 63 sinyali gönderildiğinde rootkit'in kaldırılacağını, 64 sinyali gönderildiğinde ise root yetkisine erişilebileceği yazıyor. aşağıda ise kill -63 0 komutunu örnek olarak vermiş. tabi biz bunu yapmadan önce rootkit'i inceleyeceğiz, sonuçta makine etiketlerinde yanlış yapılandırma ibaresini görmüştük.


i369xcs.png


resimden gördüğünüz üzere "s sym.hacked_kill" komutu ile gösterilmesini istediğimiz fonksiyonu seçtik, pdf komutuyla da fonksiyonu assembly dilinde ekrana yazdırdık.

işaretlediğim yerde 3 farklı koşul bulunuyor. ilkinde gönderilen sinyal 57 sayısına eşit ise (cmp eax, 0x39) give_root isimli fonksiyonu çalıştırıyor (je give_root). bu fonksiyon, adından da anlaşılacağı üzere bize root yetkisini veriyor. github deposunda gösterildiği gibi komutu girdiğimizde root yetkisine erişmiş oluyoruz. devamında da son bayrağımızı /root dizininden alıyoruz.

5287l2s.png


<< Makine Linki >>
 
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.