İçindekiler Tablosu
GİRİŞ
Overpass Oda linki: https://tryhackme.com/room/overpass
Bilgisayar Mühendisliği öğrencileri bir şifre yöneticisi oluşturursa ne olur? Bu soruyla başlayan bir odaya giriş yaptım. Öncelikle, hedef sistemi detaylı bir şekilde incelemek için standart tarama işlemlerine başladım. Port taraması ve gizli dizin taraması ile sistemdeki zayıf noktaları ortaya çıkarmaya çalıştım.
Port Taraması ve Gizli Dizin Taraması
Nmap taramasının sonuçları, yalnızca 80 numaralı bağlantı noktasında bir web sunucusunun ve 22 numaralı bağlantı noktasında SSH’nin çalıştığını gösterdi.


Böylelikle, dizin taraması yaptığımızda /admin sayfasının açık olduğunu gördüm. Ardından, admin sayfasına gittim ve karşıma bir kullanıcı adı ve şifre kutusu çıktı. Brute-Force ile giriş yapmaya çalışmadan önce, web sitesinin kaynak koduna bakmaya karar verdim.


Web sitesinin kaynak kodunu incelediğimde, /login.js ve /cookie.js gibi oturum yönetimiyle ilgili dosyaları keşfettim. Ve /login.js dosyası, kullanıcı girişi ve sunucu iletişimi gibi önemli işlemleri gerçekleştiren metodları içeriyordu. /login.js dosyasının İçeriğine baktığımız zaman:

Bu dosyada postData(), onLoad() ve login() adında 3 metot var. Bu metotlar, kullanıcı girişi, form işleme ve sunucu iletişimi gibi temel web geliştirme görevleri için önemli fonksiyonlardır. login metoduna baktığımızda:
- Kullanıcı adı ve şifre form alanlarından alınıyor.
- Alınan kullanıcı adı ve şifre bilgileri ile birlikte
/api/login
adresine POST isteği gönderiliyor. - Sunucudan dönen cevap (doğrulama başarılı ise oturum belirteci, hatalı ise “Incorrect credentials” metni) kontrol ediliyor.
- Kullanıcı adı veya şifre hatalıysa, hata mesajı gösterilir ve şifre alanı temizlenir.
- Eğer doğru kimlik bilgileri ile giriş yapıldıysa, session token tarayıcı çerezine eklenir ve kullanıcı yönlendirilir (örneğin,
/admin
sayfasına). Bu kullanıcıyı oturum açtığı sayfaya yönlendirme işlemine benziyor.
Ancak, sunucu tarafında doğrulama işlemlerinin doğru şekilde yapılmadığını fark ettim.Bu nedenle, çerez değeri doğrulanmadığı için kullanıcı adı ve şifre ihtiyaç duymadan erişim sağlanabilir.Çerez değerini konsol sekmesine girerek yapabiliriz.
Cookies.set("SessionToken", 'myCookieValue')
Sayfayı yenilediğimizde, yeni çerez değerleri kullanılacak ve Overpass Administrator area
erişim sağlanabilecektir.

Bu sayfada, James, şifresini sürekli unuttuğu için SSH anahtarları oluşturduğu ve şifresini unuttuğu zaman parolayı kırmamız gerektiği yazılıdır. Bunu yapmak için johntheripper
kullanacağız.
SSH ŞİFRESİNİ KIRMA
İlk paşta ssh2john kullanarak SSH değerini hash değerlerine dönüştürmemiz gerekiyor.
python ssh2john.py id.rsa > hash.txt
! ss2john.py ile id.rsa dosyası aynı dizinde yer almalı.
John kullanarak hash değerini kırmaya çalışıyoruz. Ve ssh şifresini buluyoruz
john --wordlist=/usr/share/wordlists/rockyou.txt hash.txt

Ve, şimdi kullanıcı ‘james’ için parolayı aldık. Artık RSA özel anahtarını bu parolayla birlikte kullanarak kutuya SSH erişimi elde edebiliriz

İlk bayrağımızı almış olduk.
YETKİ YÜKSELTME
todo.txt dosyasını inceleyerek bir automated build script hakkında bilgiler verdiğini gördüm, bu da beni crontab
‘ı kontol etmeye götürdü.

Bu durumda, fark ettim ki curl
komutu root kullanıcı olarak çalışıyor. Overpass.thm alan adını kendi IP adresimle değiştirip kendi makineme yönlendirdim. IP adresini /etc/hosts
dosyasında değiştirmek için gerekli düzenlemeleri yaptım. Bu işlemi gerçekleştirmek için terminalde nano /etc/hosts
komutunu kullandım.

Daha sonra, /downloads/src/
klasöründe buildscript.sh
adında bir dosya oluşturdum.Bu dosyayı oluşturduğumuzda içeriği şu şekilde olacaktır:

Bu komut(https://pentestmonkey.net/cheat-sheet/shells/reverse-shell-cheat-sheet), hedef sistemde bir reverse shell oluşturacaktır. Bu shell, 10.9.94.161 IP adresi ve 1437 portunu dinleyen bir HTTP sunucusuna bağlanacak. Daha sonra, hedef sistemden gelen bağlantıları beklemek için nc -lvnp 1437
komutunu kullandım. Bu komut, 1437 numaralı portta bir dinleyici oluşturacak ve gelen bağlantıları kabul edecek.

Ve, hedef sistemin dosya sisteminde yer alan root.txt
dosyasını okuyabilirim. Bu dosya hedef sisteminde bulunan ikinci bayrağı içerecektir.

Writeup kategorisinde bu yazımızı da inceleyebilirsiniz.
Leave a Comment