Toppo WriteUp

Yıllar olmuş buraya bişeyler dökmeyeli.

Tabi bu yazıdan önce aslında olan biten hakkında bi bilgi verebilirdim ama çok uzun bir yazı olacağı için şimdilik pas geçiyor ve konumuza geçiyorum. Efenim konumuz Toppo isimli zafiyetli makine. Bu makineyi vulhub üzerinden bulabilir inceleyebilir ve çözmeye çalışabilirsiniz. Zira başlangıç için harika bir makine olduğunu düşünüyorum.

Makinede root yetkisi kazanmak için takla atmanıza gerek yok. Giriş seviyede bilgi ve ufak bir araştırma ile bayrağı alabiliyorsunuz.

Bilgi Toplama

Makinemizi kurup ayağa kaldırdıktan sonra ilk yapmamız gereken ağımızı taramak oluyor. Bunu arp-scan ile yapıyoruz. Localde bulunan kaç makinenin olduğunu soruyoruz ve bize bir makine çıkarıyor arp-scan. Makinemizin IPsi 10.0.2.6. Diğer IP adresleri ise VirtualBox tarafından rezerve edilmiş IP adresleri.

Daha sonra IP adresini bildiğimiz makinemizin üzerindeki açık portları ve bu portlardan sağlanan servisleri görmemiz gerek. Bunları bilmeliyiz ki onlara özel olarak saldırı yöntemimizi oluşturalım. Bu taramayı da nmap aracı ile yapıyoruz. Ben karmaşık argümanlar vermeden gerekli portları ve servisleri elde ettim. Şayet bu bilgileri elde edemeseydik, taramamızı daha değişik yollarla yapmalıydık.

Burada 22, 80 ve 111 portları açık bu portlarda hizmet veren servisleri tek tek inceleyelim.

22 portunda ssh servisimiz var. Buradan anlıyoruz ki makinemize erişimi bu hizmet üzerinden sağlayacağız. Yani bi yerde bulacağımız bi parola ile veya ssh-key ile yapacağız bunu. Zafiyet aramaya gerek duymadım çünkü güncel görünüyor.

80 portunda ise makinemiz bi web servisi sunuyor bizlere. Nmap bizim için gitmiş bulmuş bişeyler ve diyor ki “abi bu web servisinin headerı Apache … başlığı da Clean – Blog …” eyvallah diyor ve cebe atıyoruz.

111 portunda ise hizmet veren servisimiz bir dosya paylaşım servisi. Üzerinde çok durmadan direk 80 portuna atladım.

Tarayıcımızdan makinemizin 80 portuna eriştiğimizde bizi Bootstrap ile oluşturulmuş bir blog karşılıyor. Bu blog ise varsayılan ayarlarla gelmiş ve olduğu gibi bırakılmış. Üzerinde değişiklik yapılıp yapılmadığına bakmak için sayfaları gezdim ama herhangi bir bulguya rastlamadım. Bunlardan sonra web servisini nikto aracına verdim ve neler çıkaracağını merakla bekleyerek bekledim.

Nikto abimiz bize diyor ki web sunucusunda /admin/ diye bi dizin var içeride ilginç bişeyler olabilir bi bak bence. Aynı şeyleri diğer bulduğu dizinler için de söylüyor. En baştan bakarak inceliyorum.

Admin dizinine girdiğimizde bizi sadece bir tane dosya karşılıyor. Dosya txt uzantılı. Direkt atlıyorum ve ne göreyim.

Makinenin sahibi olan abimizin kendisine aldığı bir notla karşılaşıyoruz. Notta dediğine göre teknoloji onun işi değilmiş o daha çok balık tutma ve futbol izleme ile ilgileniyormuş. Bunun yanında bize asıl bilgiyi veren ise cümlenin ilk tarafında olan “I need to change my password :/ 12345ted123 is too outdated…” kısmı. Burada abimiz “12345ted123” olan parolasını değiştirmesi gerektiğini söylüyor kendine. Bu bilgiyi ele alıyoruz ve devam ediyoruz.

Ssh Servisi İle Bağlantı Kurmak

Bu parolayı aldığımız gibi direkt olarak ssh servisinde alıyoruz soluğu. Çünkü bu makineye sağlam bir erişim sağlamak istiyorsak bu ssh ile olacaktır. Root yekisi için bu parolayı kullandığımızda geçersiz olduğunu söylüyor. Daha sonra parolada geçen ted ismi dikkatimi çekiyor ve ssh servisine ted isimli kullanıcı ve elimizdeki parola ile giriş yapmaya çalışıyorum. Sonuç olarak ssh servisine bağlantıyı gerçekleştirmiş oluyorum.

Ted kullanıcısının yetkilerine baktığımızda yetkisiz standart bir kullanıcı olduğunu görüyorum. Bu durumda yapabileceğimiz 2 şey var. Ya LinEnum ile sistemi tarayıp verdiği verileri inceleyeceğiz ya da linux exploit suggester ile makinedeki açıklardan nasıl yetki yükseltebileceğimizi bakacağız.

LinEnum aracını ancak hedef sistem üzerinde çalıştırabiliriz. Hal böyle olunca ya git ile ya da wget ile bir şekilde çekmemiz gerek. İlk olarak git deniyorum ve git’in yüklü olmadığını görüyorum.

Bu arada belirtmem gerek ki bazı makinelerde öyle yetkilere sahip kullanıcılara erişim sağlarsınız ki bu kullanıcılar kendi masa üstünde bile dosya okuma/yazma iznine sahip değildir. bunun en pratik çözümü /tmp dizinine geçip olayları orada gerçekleştirmektir.

Git ile kendi bilgisayarıma çektiğim dosyaları ssh ile erişim sağladığım makineye aktaracağım. Bunun için ana makinemde python ile basit bir web servisi ayağa kaldırıyorum ve portunu da 8000 olarak ayarlıyorum. Daha sonra ssh ile bağlantı kurduğum makineden bu servis ile dosyaları çekiyor ve chmod ayarlarını düzenliyorum.

Daha sonra aracı çalıştırıp çıktısını inceliyorum ve ilginç bir nokta ile karşılaşıyorum.

Bayrağı Ele Geçirme

Ted kullanıcısı için yetkili bir işlem yaparken her zaman parola istenirken awk isimli programlama dilini parolasız bir biçimde çalıştırabiliyorum.

Awk isimli programlama dilini hiç bilmediğimden acaba bunu direkt satırda nasıl çalıştırabilirim diye araştırmaya başlıyorum. Amacım root kullanıcısının dizini altındaki flag dosyasını okumak. Araştırmalarım sonucunda komut satırından bu programlama dili ile dosya okuyabildiğimi görüyorum.

Dosya okumanın yanında bilgi almak için de kullanabileceğimi düşünüp deniyorum ve root kullanıcısının altındaki dosya ve dizinleri listelemesini istiyorum.

Flag.txt isimli dosyanın içerisinde almamız gereken bayrak olmalı. Komutumuzu buna göre düzenleyip tekrar çalıştırıyorum veeee ta taaaaa.

Bu yöntem haricinde linux exploit suggester ile deneme yapmıyorum. Çünkü amacıma ulaştım.

Yorum Bırak

E-posta hesabınız yayımlanmayacak. Gerekli alanlar * ile işaretlenmişlerdir