← back to blog
EN TR

Hackviser NetGuard — Walkthrough

On this page

NetGuard | Hackviser

image

Bu yazıda, Nmap taramasıyla başlayan ve sonrasında FTP, NFS servisleri ile Textpattern CMS üzerinden root yetkisine kadar ilerleyen adım‑adım süreci anlatıyorum.


1. Nmap ve Dirsearch Çıktılarının Analizi


  

21/tcp FTP (vsftpd 3.0.3) – anonim giriş açık, PDF dosyası mevcut

  

22/tcp SSH (OpenSSH 8.4p1)

  

80/tcp HTTP (Apache) – Textpattern CMS

  

111/tcp rpcbind (NFS & RPC servisleri)

  

2049/tcp NFS (v3–4) – paylaşılan dizin mount edilebilir

  

3306/tcp MySQL 8.0.36

  

Nmap Çıktısı

Dirsearch taramasında da Textpattern CMS dizinini doğruladık:

Dirsearch Çıktısı

Not: CMS’ye daha sonra döneceğiz.


2. FTP Sunucusuna Anonim Giriş

Anonim kullanıcı ile bağlanıp iki PDF dosyasını indirdik:

  • firewall-default-configuration.pdf

  • firewall-documentation.pdf

FTP İndirme


3. Varsayılan Firewall Kimlik Bilgileri

firewall-default-configuration.pdf içinde “Firewall kurulumu için kullanılan varsayılan kullanıcı adı/şifre nedir?” sorusunun cevabı bulunuyor.

PDF İncelemesi


4. Blog Yazarı Bilgisi

Sitedeki Author alanından “Blog gönderilerini yazan yazar kimdir?” sorusunun cevabını aldık: Arthur.

Yazar Bilgisi


5. NFS Paylaşımlarını Keşfetmek

Nmap çıktısı, NFS paylaşımlarını gösteriyordu. Mount edip içerik kontrolü yaptık:

NFS Mount


6. Site Yedeğini İndirmek

Paylaşılan dizinde site-backup.zip bulduk ve çıkardık:

Yedek Dosyalar


7. Veritabanı Kimlik Bilgilerini Bulmak

Yedekteki textpattern/config.php dosyasında database erişim bilgileri yer alıyordu. Böylece “Web sitesinin MySQL veritabanına erişim için kullandığı kullanıcı adı/şifre nedir?” sorusunu da yanıtladık.

config.php


8. MySQL’e Bağlanmak

Elde ettiğimiz kimlik bilgileriyle veritabanına giriş yaptık:

MySQL Bağlantısı


9‑10. Tabloları İncelemek

textpattern veritabanındaki tabloları listelerken txp_users özellikle dikkat çekiciydi:

txp_users Tablosu

Burada bcrypt ile hashlenmiş parola ve Arnold’ın e‑posta adresini bulduk.


11‑14. Parolayı Güncelleyerek CMS’ye Sızmak

Hash’i kırmak yerine, kendi oluşturduğumuz bcrypt hash’i ile admin parolasını güncelledik:

bcrypt Hash

UPDATE Sorgusu

Ardından Textpattern arayüzüne textpattern:admin ile giriş yaptık:

Textpattern Girişi

Panel Görünümü


15‑19. Reverse Shell Yüklemek

Paneldeki Upload bölümüne, revshells.com’dan düzenlediğim PHP reverse shell dosyasını yükledim. Dirsearch çıktısında gördüğümüz /files/ dizinine yüklenen dosyayı doğruladım ve dinleyici (listener) açarak shell’i tetikledim.

Reverse Shell Yükleme

Yüklenen Dosya

Listener

Sonuç: www‑data kullanıcısı ile başarılı bağlantı.


20‑24. Cron Yetki Yükseltmesi ile Root

Çalışan dizinde iki ilginç dosya fark ettim:

İlginç Dosyalar

system_status_report.sh dosyasının her dakika root yetkisiyle çalıştığını, ayrıca başka bir .sh betiğini çağırdığını gördüm. system_status.log dosyasının içeriğini değiştirebildiğim için, içine reverse shell komutu ekledim:

Log Değişikliği

Dinleyiciye geri döndüğümde root yetkisiyle shell elde ettim:

Root Shell


25. Son Flag’ler

Son olarak /project dizinine gidip kalan iki flag’i topladım:

  1. “Firewall’ın dijital imzası nedir?”

  2. “Firewall’a, administrator erişimi olan kişinin kullanıcı adı nedir?”

Project Dizini


Sonuç

Zor olan bu senaryoda, başlangıçtaki temel port taramasından yola çıkarak FTP, NFS ve CMS zafiyetlerini zincir şeklinde kullanıp tam yetki (root) elde ettik. Adımların her biri, gerçek dünyadaki saldırı yüzeylerini anlamak açısından öğreticiydi. Umarım bu write‑up hem CTF çözenlere hem de sistemlerini güvence altına almak isteyenlere fayda sağlar.