En Çok Kullanılan Hacking Ve Pentest Araçları

Sıradaki içerik:

En Çok Kullanılan Hacking Ve Pentest Araçları

Overpass Writeup

54 okunma — 17 Kasım 2023 11:59
avatar

Büşra Bakkal

  • e

    Eğlenmiş

  • e

    Eğlenmiş

  • e

    Şaşırmış

  • e

    Kızgın

  • e

    Üzgün

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:

  1. Kullanıcı adı ve şifre form alanlarından alınıyor.
  2. Alınan kullanıcı adı ve şifre bilgileri ile birlikte /api/login adresine POST isteği gönderiliyor.
  3. Sunucudan dönen cevap (doğrulama başarılı ise oturum belirteci, hatalı ise “Incorrect credentials” metni) kontrol ediliyor.
  4. Kullanıcı adı veya şifre hatalıysa, hata mesajı gösterilir ve şifre alanı temizlenir.
  5. 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.

  • Site İçi Yorumlar

En az 10 karakter gerekli

Gönderdiğiniz yorum moderasyon ekibi tarafından incelendikten sonra yayınlanacaktır.