Shodan Arama Motoru: Siber Güvenlikte Keşif ve Zafiyet Analizi
İnternet üzerindeki web sitelerini bulmak için genellikle arama motorları kullanılır. Ancak siber güvenlik uzmanları için internet yalnızca web sitelerinden ibaret değildir. İnternete bağlı;
Sunucular
Güvenlik kameraları
Endüstriyel kontrol sistemleri (ICS/SCADA)
Router ve switch'ler
Veritabanları
IoT cihazları
NAS depolama sistemleri
VPN ağ geçitleri
gibi milyonlarca cihaz bulunmaktadır.
Bu noktada devreye Shodan girer.
Shodan, internete açık cihazları indeksleyen ve bunların teknik bilgilerini arayabilen özel bir arama motorudur.
Google web sayfalarını indekslerken Shodan cihazları indeksler.
Shodan Nedir?
Shodan, 2009 yılında John Matherly tarafından geliştirilmiştir.
Temel amacı:
İnternete bağlı sistemleri keşfetmek ve bunlar hakkında teknik bilgi sağlamaktır.
Shodan sürekli olarak interneti tarar ve cihazlardan gelen banner bilgilerini toplar.
Bu bilgiler arasında:
Açık portlar
Çalışan servisler
Yazılım sürümleri
SSL sertifikaları
İşletim sistemleri
Coğrafi konum bilgileri
bulunabilir.
Shodan Nasıl Çalışır?
Normal bir arama motoru:
Google → Web Sayfaları
Shodan:
Internet → Port Tarama↓Banner Toplama↓Veritabanı↓Arama Sonuçları
Örnek:
Bir web sunucusunun 80 numaralı portuna bağlanıldığında:
HTTP/1.1 200 OKServer: Apache/2.4.57
Shodan bu banner bilgisini kaydeder.
Daha sonra şu sorgu yapılabilir:
apache
ve Apache çalıştıran sistemler bulunabilir.
Banner Nedir?
Banner, bir servisin dış dünyaya sunduğu tanıtım bilgisidir.
Örnek FTP Banner:
220 FTP Server Ready
SSH Banner:
SSH-2.0-OpenSSH_8.9
HTTP Banner:
Server: nginx/1.25.1
Shodan'ın en önemli veri kaynağı banner'lardır.
Shodan'ın Kullanım Alanları
1. Saldırı Yüzeyi Yönetimi
Bir kurumun internete açık sistemlerini tespit etmek için kullanılır.
Örnek:
org:"ABC Company"
Kuruma ait görünen sistemler listelenebilir.
2. Güvenlik Açığı Avcılığı
Eski sürüm yazılımlar bulunabilir.
Örnek:
Apache 2.2OpenSSL 1.0.1
Bu sürümlerde bilinen güvenlik açıkları olabilir.
3. Açık Veritabanlarının Tespiti
Yanlış yapılandırılmış:
MongoDB
Elasticsearch
Redis
PostgreSQL
sunucuları bulunabilir.
4. IoT Güvenliği
İnternete açık:
IP kameralar
Akıllı ev cihazları
DVR sistemleri
tespit edilebilir.
5. Tehdit İstihbaratı
Blue Team ekipleri:
Kendi sistemlerini izlemek
Açık servisleri bulmak
Yanlış yapılandırmaları düzeltmek
amacıyla kullanır.
Shodan Arayüzü
Ana bileşenler:
Search
Arama motoru.
Explore
Popüler sorgular.
Maps
Dünya haritası üzerinde cihaz gösterimi.
Monitor
Varlık izleme.
Alerts
Yeni sistem tespiti uyarıları.
Temel Arama Operatörleri
Port Arama
port:80
80 portu açık sistemler.
Ülke
country:TR
Türkiye'deki cihazlar.
Şehir
city:"Ankara"
Ankara'daki cihazlar.
Organizasyon
org:"Turk Telekom"
Belirli kuruma ait sistemler.
İşletim Sistemi
os:"Windows"
Windows sistemler.
Ürün
product:"Apache"
Apache kullanan sistemler.
Hostname
hostname:gov.tr
Belirli alan adı yapısı.
Gelişmiş Aramalar
Apache + Türkiye
product:Apache country:TR
HTTPS Sunucuları
ssl:true
Nginx Sunucuları
product:Nginx
SSH Servisleri
port:22
VPN Ağ Geçitleri
port:443 "VPN"
RDP Sunucuları
port:3389
VNC Servisleri
port:5900
Filtreler
Netblock
net:192.168.1.0/24
Not: Özel IP aralıkları internette görünmez; bu filtre genel IP blokları için anlamlıdır.
ASN
asn:AS9121
SSL Sertifikası
ssl.cert.subject.cn
Domain
hostname:example.com
Shodan CLI
Linux üzerinde kurulum:
pip install shodan
API anahtarı tanımlama:
shodan init API_KEY
Arama:
shodan search apache
Host sorgulama:
shodan host 8.8.8.8
Shodan API
Python örneği:
import shodanapi = shodan.Shodan("API_KEY")results = api.search('apache')print(results['total'])
Kurumsal ortamlarda:
Asset Discovery
ASM (Attack Surface Management)
Threat Hunting
süreçlerinde yaygın olarak kullanılır.
Shodan ve CVE Analizi
Örneğin eski sürüm bir servis tespit edildiğinde:
product:OpenSSH 7.2
ilgili sürüm için bilinen güvenlik açıkları araştırılabilir.
İş akışı:
Shodan↓Servis Tespiti↓Sürüm Bilgisi↓CVE Eşleştirmesi↓Risk Analizi
Blue Team Kullanımı
Savunma ekipleri için:
Açık Port Envanteri
org:"Şirket Adı"
Gölgede Kalmış Sistemler
Unutulmuş:
Test sunucuları
Eski VPN cihazları
Geliştirme ortamları
tespit edilebilir.
Yanlış Yapılandırmalar
Açık kalan:
Yönetim panelleri
Veritabanları
Uzak erişim servisleri
belirlenebilir.
Red Team Kullanımı
Yetkili güvenlik testlerinde Shodan:
Keşif (Reconnaissance)
Hedef doğrulama
Teknoloji belirleme
Saldırı yüzeyi analizi
amacıyla kullanılabilir.
Ancak etik ve yasal sınırlar içinde kullanılmalıdır.
Shodan'ın Avantajları
✅ Çok hızlı keşif
✅ Küresel görünürlük
✅ Büyük cihaz veritabanı
✅ API desteği
✅ Otomasyon entegrasyonu
✅ Tehdit istihbaratı desteği
Sınırlamaları
❌ Gerçek zamanlı değildir
❌ Her cihaz indekslenmez
❌ Bazı bilgiler güncel olmayabilir
❌ Ücretsiz sürüm kısıtlıdır
❌ Yanlış pozitif sonuçlar görülebilir
Shodan, Censys ve ZoomEye Karşılaştırması
| Özellik | Shodan | Censys | ZoomEye |
|---|---|---|---|
| Kullanım Kolaylığı | Çok Yüksek | Orta | Orta |
| API | Evet | Evet | Evet |
| SSL Analizi | İyi | Çok İyi | İyi |
| IoT Keşfi | Çok İyi | İyi | Çok İyi |
| Endüstriyel Sistemler | Güçlü | Güçlü | Güçlü |
| Tehdit İstihbaratı | Güçlü | Güçlü | Orta |
Siber Güvenlik Uzmanları İçin Örnek Çalışma Akışı
Hedef Kurum↓Shodan Keşfi↓Açık Servisler↓Sürüm Analizi↓CVE Araştırması↓Risk Değerlendirmesi↓Raporlama
Sonuç
Shodan, modern siber güvenlik dünyasının en güçlü keşif ve görünürlük araçlarından biridir. Özellikle saldırı yüzeyi yönetimi, tehdit istihbaratı, varlık keşfi ve güvenlik değerlendirmelerinde önemli rol oynar. Doğru kullanıldığında kurumların internete açık sistemlerini daha iyi anlamasına ve risklerini azaltmasına yardımcı olur. Ancak Shodan'dan elde edilen bilgilerin yetkisiz erişim veya saldırı amacıyla kullanılması yasal ve etik sorunlara yol açabilir. Bu nedenle araç yalnızca eğitim, savunma ve yetkili güvenlik çalışmaları kapsamında kullanılmalıdır.
Elbette. Siber güvenlik uzmanları açısından bakıldığında Shodan yalnızca bir arama motoru değil, aynı zamanda bir OSINT (Open Source Intelligence - Açık Kaynak İstihbaratı) ve Attack Surface Management (Saldırı Yüzeyi Yönetimi) platformudur.
Shodan'ın Arkasındaki Mimari
1. İnternetin Sürekli Taranması
Shodan'ın dünya genelinde çok sayıda tarama sunucusu bulunur.
Bu sunucular sürekli olarak:
1.1.1.11.1.1.21.1.1.3...255.255.255.255
gibi herkese açık IP adreslerini tarar.
Amaç:
Hangi portlar açık?
Hangi servis çalışıyor?
Hangi sürüm kullanılıyor?
sorularına cevap bulmaktır.
2. Banner Grabbing
Shodan'ın temel çalışma mantığı banner grabbing'dir.
Örneğin bir SSH sunucusuna bağlanıldığında:
SSH-2.0-OpenSSH_8.9p1 Ubuntu-3
dönebilir.
Shodan bunu kaydeder.
Bir web sunucusunda:
Server: nginx/1.24.0
görürse bunu da indeksler.
Böylece milyonlarca cihazın yazılım sürümleri veritabanına işlenir.
Shodan Veritabanında Neler Saklanır?
Bir IP kaydında genellikle:
{"ip": "203.0.113.10","country": "Turkey","city": "Ankara","port": 443,"product": "nginx","version": "1.24.0","os": "Linux"}
gibi bilgiler bulunabilir.
Ek olarak:
SSL sertifikaları
Domain isimleri
ASN bilgileri
Hosting firması
Coğrafi koordinatlar
Açık port listesi
de saklanabilir.
Bir Güvenlik Uzmanı Shodan'ı Nasıl Kullanır?
Adım 1: Varlık Keşfi
Kurumlar çoğu zaman internete açık sistemlerinin tamamını bilmez.
Örneğin:
org:"Example Company"
sorgusu yapılır.
Sonuç:
Web ServerVPN GatewayMail ServerRemote Access Portal
gibi sistemler bulunabilir.
Bu yöntem "Shadow IT" tespiti için kullanılır.
Adım 2: Açık Servislerin Bulunması
Örneğin:
org:"Example Company"
sonucunda:
22 SSH80 HTTP443 HTTPS3389 RDP
açık portları görülebilir.
Böylece saldırı yüzeyi ortaya çıkar.
Adım 3: Sürüm Bilgilerinin Analizi
Örnek:
Apache/2.2.15
Bu sürüm 2010'lu yıllardan kalma olabilir.
Bir analist:
Sürümü belirler
CVE araştırır
Risk seviyesini hesaplar
Shodan ve CVE İlişkisi
Örneğin Shodan'da:
OpenSSL 1.0.1f
tespit edildi.
Bir uzman bunu gördüğünde aklına şu gelir:
👉 Heartbleed (CVE-2014-0160)
Shodan tek başına açık bulmaz.
Fakat:
Servis↓Versiyon↓Bilinen Açık↓Risk Analizi
zincirinin ilk halkasını sağlar.
Endüstriyel Sistemler (ICS/SCADA)
Shodan'ın en dikkat çekici özelliklerinden biri endüstriyel sistemleri gösterebilmesidir.
Örnek teknolojiler:
Modbus
Siemens S7
BACnet
DNP3
EtherNet/IP
Bunlar:
Fabrikalar
Enerji santralleri
Su arıtma tesisleri
Akıllı binalar
gibi yerlerde kullanılır.
Örneğin:
port:502
Modbus sistemlerini gösterebilir.
Ancak bu tür sistemlere erişmeye çalışmak veya müdahale etmek yetkisiz ise yasa dışıdır.
IoT Cihazları
Shodan internete açık IoT cihazlarını da indeksler.
Örnekler:
IP kameralar
DVR kayıt cihazları
Akıllı ev sistemleri
Yazıcılar
NAS cihazları
Bazı cihazların banner'larında şu bilgiler görülebilir:
Hikvision CameraFirmware 5.6.2
Bu bilgiler güvenlik ekiplerine envanter çıkarmada yardımcı olur.
SSL Sertifikası Analizi
Shodan SSL bilgilerini toplar.
Örnek:
ssl:"example.com"
veya
ssl.cert.subject.cn:"example.com"
Bir uzman:
Sertifika süresi
Sertifika sağlayıcısı
Alt alan adları
gibi bilgileri inceleyebilir.
Shodan Dorkları
Google Dork mantığının Shodan versiyonudur.
Web Kameraları
webcam
Apache Sunucuları
product:"Apache"
Linux Sunucuları
os:"Linux"
Türkiye'deki SSH Sunucuları
country:TR port:22
HTTPS Servisleri
ssl:true
Shodan Monitor
Kurumsal kullanıcılar için oldukça güçlü bir özelliktir.
Örneğin:
198.51.100.0/24
IP bloğu eklenir.
Shodan:
Yeni cihaz
Yeni port
Yeni servis
tespit ettiğinde uyarı oluşturabilir.
Bu özellik sürekli güvenlik izleme için kullanılır.
Shodan Maps
Harita üzerinde:
Şehir
Ülke
Servis
bazlı görüntüleme yapılabilir.
Örneğin:
SCADA Turkey
aramasında ilgili sistemlerin yoğunluğu haritada görülebilir.
Shodan API ile Otomasyon
Profesyonel SOC ve Blue Team ekipleri Shodan API kullanır.
Senaryo:
SIEM↓Shodan API↓Yeni Varlık Tespiti↓Alarm Üretimi
Örneğin:
Yeni bir RDP servisi açıldı
Shodan bunu gördü
SIEM alarm oluşturdu
Bu sayede güvenlik ekipleri hızla müdahale eder.
Gerçek Bir Pentest Sürecinde Shodan
Yetkili bir sızma testinde tipik süreç:
OSINT↓Shodan↓DNS Kayıtları↓Subdomain Tespiti↓Teknoloji Analizi↓Güvenlik Açığı Araştırması↓Risk Değerlendirmesi
Shodan genellikle aktif testlerden önce kullanılan pasif bilgi toplama aşamasının önemli araçlarından biridir.
Shodan'ın Güçlü Yönleri
✔ Pasif keşif sağlar
✔ Hedefe trafik göndermeniz gerekmez
✔ Küresel görünürlük sunar
✔ Hızlı envanter çıkarır
✔ IoT keşfinde çok güçlüdür
✔ Tehdit istihbaratı için değerlidir
Shodan'ın Zayıf Yönleri
❌ Sonuçlar anlık olmayabilir
❌ Bazı sistemler indekslenmemiş olabilir
❌ NAT arkasındaki cihazlar görünmez
❌ İç ağları göremez
❌ Bazı banner bilgileri yanıltıcı olabilir
İleri Seviye Kullanımlar
Profesyonel güvenlik ekipleri Shodan'ı şu araçlarla birlikte kullanır:
Nmap
Wireshark
Burp Suite
Metasploit Framework
Maltego
theHarvester
SpiderFoot
Bu kombinasyon, kurumsal ağların saldırı yüzeyini analiz etmek ve savunma amaçlı görünürlük sağlamak için oldukça güçlüdür.
Harika. Bu bölümde Shodan'ı bir güvenlik uzmanının gözünden ele alacağız. Ancak yalnızca savunma, envanter yönetimi, tehdit istihbaratı ve yetkili güvenlik değerlendirmesi amaçlı kullanımlara odaklanacağız.
Shodan Dorkları: Blue Team ve Tehdit İstihbaratı İçin Faydalı Sorgular
Shodan Dork Nedir?
Shodan'da belirli özelliklere sahip cihazları filtrelemek için kullanılan sorgulara "dork" denir.
Örnek:
product:"Apache"
Bu sorgu Apache çalıştıran sistemleri filtreler.
Birden fazla filtre birlikte kullanılabilir:
product:"Apache" country:"TR"
1. Varlık (Asset) Keşfi
Bir kurumun internete açık sistemlerini belirlemek için.
Kuruma Ait Sistemler
org:"Şirket Adı"
Belirli Alan Adı
hostname:"example.com"
ASN Bazlı Arama
asn:"AS9121"
Kullanım amacı:
Envanter çıkarma
Unutulmuş sistemleri bulma
Shadow IT tespiti
2. Uzak Erişim Servisleri
Uzak erişim servisleri risk açısından önemlidir.
SSH
port:22
RDP
port:3389
VNC
port:5900
Telnet
port:23
Blue Team açısından amaç:
Gereksiz servisleri tespit etmek
İnternete açık olmaması gereken erişimleri bulmak
3. VPN Ağ Geçitleri
Kurumsal ağların giriş noktalarıdır.
Genel VPN Aramaları
VPN
SSL VPN
ssl:true VPN
Amaç:
Kurumun dışa açık VPN yüzeylerini envanterlemek
Eski cihazları belirlemek
4. Web Sunucuları
Apache
product:"Apache"
Nginx
product:"nginx"
IIS
product:"Microsoft-IIS"
Amaç:
Teknoloji envanteri
Sürüm yönetimi
Yama takibi
5. E-posta Altyapısı
SMTP
port:25
Secure SMTP
port:465
Submission
port:587
Blue Team kullanımı:
Mail altyapısının görünürlüğünü kontrol etmek
Yanlış yapılandırmaları tespit etmek
6. DNS Sunucuları
DNS
port:53
DNS-over-TLS
port:853
Amaç:
Açık DNS sunucularını belirlemek
Envanteri doğrulamak
7. SSL Sertifika Analizi
Belirli bir alan adına ait sertifikaları görmek için:
ssl.cert.subject.cn:"example.com"
veya
ssl:"example.com"
Faydaları:
Alt alan adlarını keşfetme
Sertifika süresi kontrolü
Yanlış sertifika kullanımlarını bulma
8. IoT ve Akıllı Cihazlar
Shodan özellikle IoT görünürlüğünde güçlüdür.
Yazıcılar
category:printer
NAS Sistemleri
Synology
Ağ Kameraları
webcam
Bu tür sorgular güvenlik ekiplerinin internete açık cihazları fark etmesine yardımcı olabilir.
Tehdit İstihbaratında Shodan
Bir olay müdahale uzmanı (Incident Responder) için tipik süreç:
Şüpheli IP↓Shodan↓Servis Analizi↓Teknoloji Tespiti↓Risk Değerlendirmesi
Örneğin:
Hangi portlar açık?
Hangi yazılım çalışıyor?
SSL sertifikası var mı?
Hangi ülkede bulunuyor?
sorularına hızlı yanıt alınabilir.
Shodan + CVE Analizi
Shodan bir güvenlik açığı tarayıcısı değildir.
Ancak sürüm bilgileri sağlayarak risk değerlendirmesine yardımcı olur.
Örnek iş akışı:
Servis Bilgisi↓Yazılım Sürümü↓Güvenlik Bültenleri↓CVE İncelemesi↓Risk Önceliklendirmesi
Bu süreçte genellikle:
MITRE CVE kayıtları
NIST NVD veritabanı
Üretici güvenlik bültenleri
kullanılır.
Shodan ve Saldırı Yüzeyi Yönetimi (ASM)
Modern kurumlarda en büyük problemlerden biri:
"İnternete açık kaç sistemimiz olduğunu gerçekten biliyor muyuz?"
ASM yaklaşımı bunun üzerine kuruludur.
Tipik süreç:
Varlık Keşfi↓Servis Envanteri↓Teknoloji Analizi↓Risk Tespiti↓Yama Yönetimi↓Sürekli İzleme
Shodan bu sürecin keşif ve görünürlük kısmında önemli rol oynar.
SOC Ekipleri İçin Kullanım Senaryoları
Bir SOC analisti şu sorulara yanıt arayabilir:
Yeni Açılan Servisler
port:3389
Yeni Sertifikalar
ssl.cert.subject.cn:"firma.com"
Kuruma Ait Sistemler
org:"Firma Adı"
Amaç:
Beklenmeyen değişiklikleri fark etmek
Yanlış yapılandırmaları hızlı tespit etmek
Shodan + Nmap Birlikte Nasıl Kullanılır?
Güvenlik ekiplerinde yaygın yaklaşım:
Shodan↓Varlık Tespiti↓Doğrulama↓Nmap↓Detaylı Analiz
Shodan geniş görünürlük sağlar; ağ tarayıcıları ise yetkili ortamda daha ayrıntılı doğrulama yapılmasına yardımcı olur.
Savunma Amaçlı En İyi Uygulamalar
Düzenli varlık envanteri çıkarın.
Gereksiz açık servisleri kapatın.
Uzak erişim servislerini gözden geçirin.
Eski sürümleri güncelleyin.
İnternete açık yönetim panellerini sınırlandırın.
SSL sertifikalarını takip edin.
Sürekli izleme ve uyarı mekanizmaları kurun.
Yeni sistemlerin görünürlüğünü periyodik olarak kontrol edin.
Sonuç
Shodan'ın asıl gücü, tek bir sorguyla internet üzerindeki görünürlüğünüzü anlamaya yardımcı olmasıdır. Bir Blue Team uzmanı için Shodan; envanter yönetimi, tehdit istihbaratı, saldırı yüzeyi analizi ve risk önceliklendirmesi açısından oldukça değerli bir araçtır. Ancak Shodan çıktıları yalnızca başlangıç noktasıdır; sonuçların doğrulanması, risklerin değerlendirilmesi ve gerekli önlemlerin alınması her zaman kurumun güvenlik süreçlerinin bir parçası olmalıdır.
Shodan CLI ve API ile Otomatik Varlık Keşfi ve Güvenlik Raporlama
Bu bölümde Shodan'ı profesyonel güvenlik ekiplerinin nasıl kullandığını inceleyeceğiz. Amaç; kurumunuza ait internete açık sistemleri keşfetmek, envanter oluşturmak ve güvenlik raporları üretmektir.
Bölüm 1: Shodan API Nedir?
Shodan'ın web arayüzü günlük kullanım için yeterlidir.
Ancak kurumsal ortamlarda:
SOC
Blue Team
Tehdit İstihbaratı
Saldırı Yüzeyi Yönetimi (ASM)
ekipleri otomasyon ister.
Bu noktada Shodan API devreye girer.
API sayesinde:
Python Scripti↓Shodan API↓Sonuçlar↓Raporlama
iş akışı kurulabilir.
Bölüm 2: API Anahtarı Alma
API kullanmak için bir hesap gerekir.
Resmî site:
Profil bölümünde:
My Account↓API Key
alanında API anahtarınız bulunur.
Bölüm 3: Shodan CLI Kurulumu
Python kurulu sistemlerde:
pip install shodan
Kurulumu doğrulama:
shodan version
API tanımlama:
shodan init YOUR_API_KEY
Başarılı olursa:
Successfully initialized
mesajı görülür.
Bölüm 4: Temel CLI Kullanımı
Host Sorgulama
Örnek:
shodan host 8.8.8.8
Görebileceğiniz bilgiler:
IPHostnameCountryOpen PortsServicesSSL Information
Arama
shodan search nginx
Sonuç Sınırlandırma
shodan search nginx --limit 20
JSON Çıktısı
shodan search nginx --fields ip_str,port
Örnek:
203.0.113.10 443198.51.100.7 80
Bölüm 5: Python ile Shodan Kullanımı
Kurulum:
pip install shodan
Kütüphaneyi içe aktarma:
import shodan
API nesnesi oluşturma:
api = shodan.Shodan("API_KEY")
İlk Arama
import shodanapi = shodan.Shodan("API_KEY")results = api.search("nginx")print(results["total"])
Örnek çıktı:
12456789
Sonuçları Listeleme
for result in results["matches"]:print(result["ip_str"])
Daha Ayrıntılı Bilgiler
for result in results["matches"]:print("IP:", result["ip_str"])print("Port:", result["port"])print("-" * 50)
Bölüm 6: Belirli Bir Kuruma Ait Sistemleri Listeleme
Örnek:
results = api.search('org:"Example Company"')
Kurumsal saldırı yüzeyi analizlerinde sık kullanılır.
Bölüm 7: Açık Port Envanteri Çıkarmak
results = api.search('org:"Example Company"')ports = set()for result in results["matches"]:ports.add(result["port"])print(ports)
Örnek:
2280443587993
Bu yaklaşım, bir kuruluşun internete açık servislerini envanterlemek için kullanılabilir.
Bölüm 8: Raporlama Otomasyonu
Sonuçları CSV'ye yazdırmak:
import csvwith open("inventory.csv", "w", newline="") as f:writer = csv.writer(f)writer.writerow(["IP","Port"])for result in results["matches"]:writer.writerow([result["ip_str"],result["port"]])
Çıktı:
IP,Port203.0.113.10,443198.51.100.5,80
Bölüm 9: SSL Sertifikalarının Analizi
Bazı kayıtlar SSL bilgileri içerir.
if "ssl" in result:print(result["ssl"])
Kontrol edilebilecek bilgiler:
Sertifika konusu (Subject)
İhraç eden kuruluş (Issuer)
Son kullanma tarihi
SAN kayıtları
Bölüm 10: Risk Önceliklendirme
Örnek mantık:
SSH (22) → Düşük RiskHTTPS (443) → Düşük RiskRDP (3389) → Yüksek RiskTelnet (23) → Kritik Risk
Python ile:
high_risk = [23, 3389]for result in results["matches"]:if result["port"] in high_risk:print("High Risk:",result["ip_str"])
Bu, yalnızca örnek bir sınıflandırmadır; gerçek risk değerlendirmesi bağlama ve yapılandırmaya bağlıdır.
Bölüm 11: Güvenlik Operasyon Merkezi (SOC) Kullanımı
Tipik süreç:
Shodan↓Asset Discovery↓Envanter↓SIEM↓Alarm
Örneğin:
Yeni sistem bulundu
SIEM'e aktarıldı
Analiste alarm gönderildi
Bölüm 12: Shodan + SIEM Entegrasyonu
En sık kullanılan platformlar:
Splunk
Microsoft Sentinel
IBM QRadar
Wazuh
İş akışı:
Shodan↓API↓Python↓SIEM↓Alert
Bölüm 13: Tehdit İstihbaratı Entegrasyonu
Shodan tek başına yeterli değildir.
Profesyonel ekipler aşağıdaki kaynaklarla birleştirir:
MITRE ATT&CK
NIST NVD
MISP
OpenCTI
Amaç:
Servis↓Versiyon↓CVE↓TTP↓Risk
ilişkisini kurmaktır.
Bölüm 14: Kurumsal ASM (Attack Surface Management)
Modern güvenlik ekipleri şu soruya cevap arar:
"İnternete açık kaç sistemimiz var ve bunların hangileri riskli?"
ASM süreci:
Keşif↓Envanter↓Teknoloji Analizi↓Risk Değerlendirmesi↓Yama Yönetimi↓Sürekli İzleme
Shodan bu sürecin keşif ve görünürlük aşamalarında güçlü bir yardımcıdır.
Gerçek Dünya Kullanım Senaryosu
Bir kurumun:
example.com
alan adına sahip olduğunu düşünelim.
Blue Team şu adımları uygulayabilir:
1. Shodan ile görünür sistemleri listele2. Açık servisleri belirle3. Sertifikaları incele4. Eski sürümleri tespit et5. Yama durumunu kontrol et6. Sürekli izleme oluştur7. Aylık rapor hazırla
Bu yaklaşım saldırı yüzeyinin daha iyi anlaşılmasına yardımcı olur.
Sonuç
Shodan'ın gerçek gücü tek tek sorgularda değil, otomasyon ve görünürlük sağlamasında yatar. API ve CLI kullanılarak:
İnternete açık varlıklar keşfedilebilir
Envanter oluşturulabilir
Güvenlik raporları üretilebilir
Sürekli izleme süreçleri desteklenebilir
Tehdit istihbaratı verileriyle ilişkilendirme yapılabilir
Bu nedenle Shodan, günümüzde Blue Team, SOC, ASM ve tehdit istihbaratı ekiplerinin sık kullandığı araçlardan biridir.
Shodan + Python + CVE Veritabanı + PDF Raporlama ile Kurumsal Saldırı Yüzeyi Analiz Otomasyonu
Bu mimari, birçok kurumun Attack Surface Management (ASM), Vulnerability Management ve Cyber Threat Intelligence (CTI) süreçlerinde kullandığı yaklaşımın basitleştirilmiş bir versiyonudur.
Amaç:
İnternete Açık Sistemler↓Shodan↓Servis Tespiti↓Sürüm Analizi↓CVE Eşleştirme↓Risk Hesaplama↓PDF Rapor
Bu süreç savunma ve envanter yönetimi amacıyla kullanılır.
Kurumsal Mimari
Tipik bir ortamda sistem şu bileşenlerden oluşur:
┌─────────────────┐│ Shodan │└────────┬────────┘│▼┌─────────────────┐│ Python Collector│└────────┬────────┘│▼┌─────────────────┐│ Asset Database │└────────┬────────┘│▼┌─────────────────┐│ CVE Intelligence│└────────┬────────┘│▼┌─────────────────┐│ Risk Engine │└────────┬────────┘│▼┌─────────────────┐│ PDF Generator │└─────────────────┘
Aşama 1: Varlık Keşfi
İlk amaç kuruma ait sistemleri toplamaktır.
Örnek sorgular:
org:"Example Company"
veya
hostname:"example.com"
Toplanan bilgiler:
IP adresi
Açık portlar
Ürün adı
Yazılım sürümü
SSL bilgileri
ASN
Ülke
Örnek veri:
{"ip": "203.0.113.10","port": 443,"product": "nginx","version": "1.24.0"}
Aşama 2: Envanter Veritabanı
Kurumsal ortamlarda veriler genellikle:
PostgreSQL
MySQL
SQLite
Elasticsearch
üzerinde tutulur.
Örnek tablo:
CREATE TABLE assets (id INTEGER PRIMARY KEY,ip TEXT,port INTEGER,product TEXT,version TEXT,last_seen DATE);
Amaç:
Yeni sistemleri görmek
Kaldırılan sistemleri görmek
Değişiklikleri izlemek
Aşama 3: CVE Eşleştirme
Burada ürün ve sürüm bilgileri güvenlik açıklarıyla ilişkilendirilir.
Örnek:
nginx 1.24.0
↓
CVE Database Search
↓
İlgili CVE Kayıtları
Başlıca kaynaklar:
NIST NVD
MITRE CVE Program
CISA KEV Kataloğu
Aşama 4: Risk Motoru
Risk motoru her varlık için puan üretir.
Örnek mantık:
| Faktör | Puan |
|---|---|
| CVSS 9+ | 50 |
| CVSS 7-9 | 30 |
| İnternete Açık | 10 |
| Yönetim Servisi | 20 |
| Eski Sürüm | 15 |
Örnek:
Apache 2.2+CVSS 9.8+Internet Facing=Kritik Risk
Risk Seviyeleri
0-25 Düşük26-50 Orta51-75 Yüksek76-100 Kritik
Bu tür puanlama kurum ihtiyaçlarına göre değişebilir.
Python Mimarisi
Modüler yaklaşım tercih edilir.
project/├── shodan_collector.py├── asset_db.py├── cve_lookup.py├── risk_engine.py├── pdf_report.py└── main.py
Shodan Collector
Görevi:
Shodan↓JSON↓Python
veri toplamak.
Örnek veri yapısı:
asset = {"ip":"203.0.113.10","port":443,"product":"nginx","version":"1.24.0"}
CVE Lookup Modülü
Görev:
Ürün↓Sürüm↓CVE Veritabanı↓Açıklar
Örnek çıktı:
[{"cve":"CVE-2025-1234","cvss":9.8},{"cve":"CVE-2024-9876","cvss":8.1}]
Risk Engine
Risk hesaplaması yapar.
Örnek:
risk = 0risk += 50risk += 10risk += 20
Sonuç:
80
↓
KRİTİK
PDF Raporlama Sistemi
En çok kullanılan Python kütüphanesi:
reportlab
Çıktı:
Executive SummaryCritical FindingsHigh FindingsAsset InventoryRecommendations
Örnek Yönetici Özeti
Kurumsal raporlarda genellikle ilk sayfa:
Toplam Varlık: 125Kritik Risk: 7Yüksek Risk: 18Orta Risk: 34Düşük Risk: 66
şeklindedir.
Teknik Bulgular Bölümü
Örnek tablo:
| IP | Port | Ürün | Risk |
|---|---|---|---|
| 203.0.113.10 | 443 | nginx | Orta |
| 203.0.113.15 | 22 | OpenSSH | Düşük |
| 203.0.113.25 | 3389 | RDP | Yüksek |
Trend Analizi
Kurumsal ASM platformlarının güçlü yönlerinden biri zaman içindeki değişimi göstermeleridir.
Örnek:
Ocak 120 sistemŞubat 125 sistemMart 131 sistemNisan 146 sistem
Bu sayede yeni varlıklar görülebilir.
CTI Entegrasyonu
Kurumsal tehdit istihbaratı ekipleri genellikle:
MISP
OpenCTI
MITRE ATT&CK
ile entegrasyon kurar.
Örnek ilişki:
CVE↓Exploit↓ATT&CK Technique↓Threat Actor
Bu sayede yalnızca açık değil, olası tehdit senaryoları da değerlendirilebilir.
SIEM Entegrasyonu
Yaygın entegrasyonlar:
Splunk
Microsoft Sentinel
IBM QRadar
Wazuh
Örnek süreç:
Yeni Sistem↓Shodan Tespiti↓API↓SIEM↓Alarm
Gerçek Dünyadaki Olgunluk Seviyeleri
Seviye 1
Manuel Shodan sorguları
Excel raporları
Seviye 2
Python otomasyonu
Haftalık raporlar
Seviye 3
CVE eşleştirme
Risk puanlama
Seviye 4
SIEM entegrasyonu
Sürekli izleme
Seviye 5
Tam ASM platformu
Tehdit istihbaratı entegrasyonu
Yönetici panelleri
Trend analizleri
Profesyonel Mimari Örneği
Shodan│▼Asset Discovery Engine│▼Asset Inventory DB│┌─────────────┼─────────────┐▼ ▼ ▼CVE Engine Risk Engine CTI Engine│ │ │└───────┬─────┴─────┬───────┘▼Reporting Engine│┌───────┴─────────┐▼ ▼PDF Dashboard
Bu mimari günümüzde büyük kurumların ASM ve saldırı yüzeyi görünürlüğü programlarında kullanılan temel yaklaşımın sadeleştirilmiş bir örneğidir. Önemli nokta, Shodan'ın tek başına bir güvenlik açığı tarayıcısı değil; görünürlük ve envanter sağlayan bir veri kaynağı olmasıdır. Risk değerlendirmesi için CVE verileri, tehdit istihbaratı ve kurumun kendi bağlamı ile birlikte değerlendirilmelidir.
İnternet, sadece web sitelerinden ibaret değildir. Sunucular, yönlendiriciler, kameralar, akıllı tahtalar ve endüstriyel kontrol sistemleri gibi milyarlarca cihaz sürekli olarak internete bağlıdır. Geleneksel arama motorları (Google, Bing vb.) web sayfalarının içeriğini indekslerken, Shodan internete bağlı bu cihazları indeksler. Bu özelliğiyle Shodan, siber güvenlik uzmanları, sistem yöneticileri ve araştırmacılar için internetin en karanlık ve teknik yüzünü aydınlatan bir araçtır.
Bu makalede, Shodan'ın nasıl çalıştığını, temel arama filtrelerini ve ağ güvenliği süreçlerinde nasıl konumlandırılması gerektiğini detaylandıracağız.
1. Shodan Nasıl Çalışır?
Shodan, internetin tamamını düzenli olarak tarar (ping atar ve portları yoklar). Ancak amacı bir web sitesinin HTML kodunu okumak değil, açık portlardan dönen Banner (karşılama) mesajlarını yakalamaktır.
Bir cihaza SSH (22), HTTP (80/443), FTP (21) veya RDP (3389) gibi portlardan istek gönderildiğinde, cihaz genellikle kendini tanıtan bir metin (banner) döndürür. Shodan bu banner'ları analiz ederek cihazın işletim sistemini, kullandığı yazılım sürümlerini, IP adresini ve coğrafi konumunu veritabanına kaydeder.
2. Temel Shodan Arama Filtreleri
Shodan arayüzünde doğru sonuçlara ulaşmak için özel dork'lar (filtreler) kullanılır. Tıpkı terminal üzerinde tshark veya wireshark ile paket filtrelerken kullandığımız mantık gibi, Shodan'da da hedefi daraltmak esastır.
port:Belirli bir portu açık olan cihazları bulur.Örnek:
port:22(İnternete açık SSH servislerini listeler).
os:Belirli bir işletim sistemini arar.Örnek:
os:"Linux"(Linux tabanlı sistemleri hedefler).
product:Belirli bir yazılımı veya servisi arar.Örnek:
product:"nginx"(Nginx web sunucusu veya reverse proxy kullanan sunucuları bulur).
country:vecity:Coğrafi filtreleme yapar.Örnek:
country:TR city:"Ankara" product:"Apache"
org:Belirli bir organizasyona (ISP veya kurum) ait IP bloklarını tarar.Örnek:
org:"Turk Telekom"
vuln:(Premium özellik) Belirli bir CVE (Ortak Zafiyet) koduna sahip sistemleri tespit eder.Örnek:
vuln:CVE-2014-0160(Heartbleed zafiyeti barındıran sunucular).
3. Red Team ve Blue Team Senaryolarında Shodan
Özellikle geniş çaplı siber güvenlik simülasyonlarında ve ağ savunma stratejilerinde Shodan'ın çift taraflı bir kullanım alanı vardır.
Red Team (Saldırı ve Sızma Testi) Perspektifi
Red Team için Shodan, Pasif Bilgi Toplama (OSINT) aşamasının omurgasıdır. Hedef kurumun sistemlerine doğrudan herhangi bir paket (aktif tarama - örn: Nmap) göndermeden, sadece Shodan veritabanı sorgulanarak hedef ağın dış yüzeyi haritalandırılabilir.
Hedefin unutulmuş, yapılandırılması eksik bırakılmış veya dışarıya açık olmaması gereken servisleri (örneğin internete açık bir veritabanı veya zayıf parolalı bir FTP sunucusu) tespit edilebilir.
Blue Team (Savunma ve Analiz) Perspektifi
Sistem koordinatörleri ve Blue Team ekipleri için Shodan, Saldırı Yüzeyi Yönetimi (Attack Surface Management) aracıdır. Kendi yönettiğiniz altyapıların dışarıdan nasıl göründüğünü bilmek hayati önem taşır.
Kuruma ait dışa açık bir Nginx reverse proxy'nin versiyon bilgisini sızdırıp sızdırmadığı veya yeni kurulan bir Proxmox sanallaştırma sunucusunun yönetim panelinin yanlışlıkla internete açılıp açılmadığı doğrudan Shodan üzerinden denetlenebilir.
4. Shodan API ve Otomasyon Entegrasyonu
Gelişmiş kullanım için Shodan'ın sunduğu REST API oldukça güçlüdür. Manuel sorgular yerine, süreçleri otomatize etmek için Python kullanarak özel araçlar geliştirilebilir. shodan Python kütüphanesi ile ağınızdaki IP bloklarını düzenli olarak tarayan, açık yeni bir port bulunduğunda veya bir zafiyet tespit edildiğinde uyarı üreten sistemler yazmak mümkündür.
Basit bir Python API örneği:
import shodanSHODAN_API_KEY = "Sizin_API_Anahtariniz"api = shodan.Shodan(SHODAN_API_KEY)try: # Hedef IP hakkında bilgi alma host = api.host('8.8.8.8') print(f"IP: {host['ip_str']}") print(f"Organizasyon: {host.get('org', 'n/a')}") print(f"İşletim Sistemi: {host.get('os', 'n/a')}") # Açık portları listeleme print("Açık Portlar:") for item in host['data']: print(f"- Port: {item['port']} | Servis: {item.get('product', 'Bilinmiyor')}") except shodan.APIError as e: print(f"Hata: {e}")5. Etik Kullanım ve Yasal Sınırlar
Shodan, siber uzayın bir haritasını sunar. Bu haritaya bakmak, açık olan kapıları uzaktan izlemek (pasif keşif) yasal bir eylemdir ve eğitim/analiz süreçlerinin standart bir parçasıdır. Ancak, Shodan üzerinden tespit edilen sistemlere izinsiz giriş yapmak, zafiyetleri sömürmek (exploit) veya sistem yapılandırmalarını değiştirmek (default şifrelerle giriş yapmayı denemek dahi) yasa dışıdır ve siber suç kapsamına girer. Eğitim ortamlarında ve laboratuvar çalışmalarında bu etik sınırın korunması temel kuraldır.
Shodan’ın temel mantığının bir adım ötesine geçerek, bu aracın gerçek gücünü ortaya çıkaran gelişmiş arama tekniklerine, komut satırı (CLI) kullanımına ve spesifik sızma testi/ağ savunma senaryolarına detaylıca bakalım.
1. Gelişmiş Arama Filtreleri ve "Dorking"
Siber güvenlik uzmanları, hedeflerini tam on ikiden vurmak için filtreleri birleştirerek karmaşık sorgular oluştururlar.
Favicon Hashing (
http.favicon.hash:): Bir web uygulamasının kimliğini tespit etmenin en keskin yollarından biridir. Shodan, sitelerin favicon (sekme ikonu) dosyalarının hash değerlerini tutar. Örneğin, hedef kurumun kullandığı ama versiyonunu gizlediği bir web paneli varsa, o panelin varsayılan favicon hash'i üzerinden dünyadaki tüm benzer panelleri bulabilirsiniz.SSL/TLS Sertifika Filtreleri (
ssl.cert.subject.cn:): Bir kurumun alt alan adlarını (subdomain) ve gizli sunucularını bulmak için SSL sertifikalarındaki "Common Name" (CN) alanları taranır. Örneğin;ssl.cert.subject.cn:"hedefkurum.com"sorgusu, ana web sitesi arkasındaki gizli API sunucularını veya geliştirici makinelerini açığa çıkarabilir.Spesifik Ağ ve Alt Ağ Taraması (
net:): Belirli bir IP aralığını (CIDR bloğu) hedefler. Bir kurumun veya okulun sahip olduğu statik IP bloğu biliniyorsa, tüm dış yüzey analizi bu filtreyle yapılır:net:"195.175.x.x/24"Başlık ve İçerik Arama (
http.title:vehttp.html:): Bir sayfanın<title>etiketinde veya kaynak kodunda geçen spesifik kelimeleri arar.Örnek: Unutulmuş bir sanallaştırma panelini tespit etmek için:
http.title:"Proxmox Virtual Environment" port:8006
2. Kritik Sistemlerin ve Yapılandırma Hatalarının Keşfi
Red Team operasyonlarında Shodan'ın en çok parladığı yer, dışarıya açık olmaması gereken servislerin tespiti üzerinedir.
Kimlik Doğrulamasız Veritabanları: Geliştiricilerin test ortamlarında açık unuttuğu veritabanları büyük bir veri sızıntısı kaynağıdır. Örneğin, şifresiz bırakılmış ve internete açık MongoDB sunucularını bulmak için Shodan'da port ve dönen banner mesajı kombinlenir (örn:
port:27017 "MongoDB Server Information").Reverse Proxy Sızıntıları: Arka plandaki uygulamaları korumak için kurulan Nginx gibi reverse proxy sunucuları, yanlış yapılandırıldığında iç ağdaki IP adreslerini veya kullanılan arka uç teknolojilerini HTTP başlıklarında sızdırabilir.
Endüstriyel Kontrol Sistemleri (ICS/SCADA): Shodan, fabrikalardaki, enerji santrallerindeki veya akıllı binalardaki PLC cihazlarını bulmak için sıkça kullanılır (Örneğin Modbus protokolü için
port:502).
3. Shodan Komut Satırı Arayüzü (CLI) Profesyonel Kullanımı
Terminal üzerinden çalışmayı sevenler için Shodan CLI, web arayüzünden çok daha hızlı ve otomasyona yatkındır. Python tabanlı bu aracı kurduktan (pip install shodan) ve API anahtarınızı tanımladıktan (shodan init API_KEY) sonra terminaliniz güçlü bir istihbarat aracına dönüşür.
IP Analizi:
shodan host <Hedef_IP>komutu, hedefin açık portlarını, zafiyetlerini ve host isimlerini terminale döker.Süzülmüş Veri İndirme: Web arayüzünde saatler sürecek bir işi tek satırda yapabilirsiniz. Örneğin, Türkiye'deki Nginx sunucularının sadece IP ve port numaralarını temiz bir liste halinde çekmek için:
shodan search --fields ip_str,port "product:nginx country:TR"Ağ İzleme: Kendi yönettiğiniz IP bloklarını
shodan alertkomutlarıyla sisteme ekleyebilir, dış ağınızda aniden yeni bir port (örneğin bir öğrenci veya personel tarafından izinsiz açılan bir RDP portu) açıldığında bildirim alabilirsiniz.
4. Diğer Güvenlik Araçlarıyla Entegrasyon
Shodan, bağımsız bir araç olmanın ötesinde siber güvenlik ekosisteminin veri kaynağıdır:
Nmap Entegrasyonu: Hedefe doğrudan agresif bir Nmap taraması başlatmak yerine, Nmap'in NSE (Nmap Scripting Engine) altyapısındaki
shodan-apibetiği kullanılarak, hedefin bilgileri doğrudan Shodan veritabanından çekilebilir. Bu, hedef sistemin güvenlik duvarlarını (IDS/IPS) tetiklemeden bilgi toplamanızı sağlar.Maltego: İstihbarat görselleştirme aracı Maltego'ya Shodan eklentisi kurularak, bir şirketin alan adından IP adreslerine, oradan açık portlara ve zafiyetlere kadar tüm ağaç grafiksel olarak haritalandırılabilir.
Özellikle Red Team vs. Blue Team tatbikatları tasarlarken veya bir kurumun dış ağ güvenliğini sıkılaştırırken Shodan'ı bir "erken uyarı sistemi" olarak konumlandırmak en etkili stratejidir.
Bu derinlemesine özelliklerden hangisi şu anki çalışmalarınız veya eğitim planlarınız için daha çok ilginizi çekiyor; CLI üzerinden otomasyon scriptleri yazmak mı, yoksa favicon/SSL gibi spesifik OSINT teknikleri mi?
OSINT (Açık Kaynak İstihbaratı), siber güvenliğin "hedefe dokunmadan önceki" en kritik ve sanatsal aşamasıdır. Hedef sistemin veya kurumun dijital ayak izlerini, herkese açık verileri birleştirerek analiz etme sürecidir. Red Team tatbikatlarında veya sızma testlerinde, hedefin ağ yapısını ve zayıf noktalarını tespit etmek için hiçbir güvenlik duvarını (IDS/IPS) tetiklemeden bilgi toplamanızı sağlar.
Özellikle siber güvenlik senaryoları kurgularken veya ağ savunma stratejilerini anlatırken kullanabileceğiniz en etkili OSINT tekniklerini dört ana başlıkta toplayabiliriz:
1. Sertifika Şeffaflığı (Certificate Transparency) ve Subdomain Keşfi
Bir kurum, iç ağında test amaçlı kurduğu bir web paneli (örneğin test-crm.sirket.local veya dev.sirket.com) için SSL sertifikası aldığında, bu sertifika dünya çapındaki "Sertifika Şeffaflığı" loglarına işlenir. Bu loglar herkese açıktır ve hedefin gizli alt alan adlarını (subdomain) bulmak için mükemmel bir kaynaktır.
crt.sh Kullanımı: Tarayıcıdan
crt.shadresine gidip hedefin ana alan adını (örneğin%sirket.com) arattığınızda, o kurumun aldığı tüm SSL sertifikaları listelenir.Ne İşe Yarar?: Dışarıdan bakıldığında görünmeyen, ancak unutulmuş, test aşamasında bırakılmış veya geliştiricilerin kullandığı zayıf güvenlikli panelleri anında açığa çıkarır.
2. İleri Düzey Arama Motoru Operatörleri (Google Dorking)
Arama motorlarının indeksleme gücünü, filtrelenmemiş veya yanlışlıkla dışarı açılmış hassas verileri bulmak için kullanma tekniğidir. Google, Bing veya Yandex birer zafiyet arama motoruna dönüşebilir.
| Dork Operatörü | Kullanım Amacı ve Örnek |
| site: | Aramayı sadece belirli bir alan adıyla sınırlandırır. Örnek: |
| filetype: | Sadece belirli bir dosya uzantısını (pdf, docx, sql, env) arar. Örnek: |
intitle: / inurl: | Sayfa başlığında veya URL'sinde belirli anahtar kelimeleri arar. Örnek: |
| Kombinasyon | Bir kurumun dışarı sızmış PDF veya Excel dosyalarını bulmak için: Örnek: |
3. Metadata Analizi (Belge İstihbaratı)
Kurumların veya kişilerin internette yayınladığı dökümanlar (örneğin yönergeler, proje şablonları, sunumlar veya görseller) çıplak gözle görünmeyen metadata (üst veri) barındırır.
Nasıl Yapılır?:
Exiftoolveya benzeri araçlar kullanılarak, internetten indirilen bir PDF veya JPEG dosyası analiz edilir.Ne İşe Yarar?: Dosyayı oluşturan yazarın bilgisayar kullanıcı adı, işletim sistemi versiyonu, dosyanın oluşturulduğu yazılımın tam sürümü (örneğin LibreOffice 7.4 veya Adobe Illustrator 2023) ve bazen GPS koordinatları elde edilir. Bu bilgiler, hedefe yönelik özel bir oltalama (phishing) maili hazırlamak veya kullanılan yazılıma özel bir zafiyet (CVE) aramak için kullanılır.
4. Kaynak Kod ve Depo İstihbaratı (GitHub Dorks)
Geliştiriciler, projelerini GitHub veya GitLab gibi platformlara yüklerken genellikle API anahtarlarını, veritabanı şifrelerini veya sunucu IP adreslerini kodun içinde unuturlar.
Teknik: GitHub'ın arama çubuğunda kuruma ait anahtar kelimelerle spesifik aramalar yapılır.
Örnek Sorgular:
"hedefkurum.com" API_KEY"hedefkurum.com" extension:pem private(Sızmış SSH/SSL anahtarlarını arar)"db_password" org:hedefkurum
Senaryo Odaklı Bakış: Red/Blue Team Entegrasyonu
Eğitim laboratuvarlarında veya siber güvenlik simülasyonlarında bir Red Team vs. Blue Team (Kırmızı/Mavi Takım) tatbikatı düzenlerken OSINT harika bir başlangıç fazıdır:
Red Team Görevi: Hedef sistemin (örneğin sanal olarak kurgulanmış bir ağın) dış dünyada bıraktığı izleri toplamak. Shodan ile Favicon hash'lerini çıkarmak, açık portları bulmak ve GitHub'da sızmış bir veritabanı parolası yakalamak.
Blue Team Görevi: Dışarıya sızan bu bilgileri tespit edip kapatmak. Örneğin, web sunucusunun (Nginx/Apache) versiyon bilgisini gizlemek, PDF dökümanlarının metadatalarını temizleyen otomasyon betikleri yazmak ve test sertifikalarını iptal etmek.
Bu tekniklerden birini pratik bir örnek üzerinden detaylandırmamızı ister misiniz?
Shodan, internete bağlı cihazların servislerini tanımlamak için benzersiz bir yöntem kullanır: Favicon Hash Analizi. Bir web uygulamasının sekme ikonu (favicon.ico), o uygulamanın kimlik kartı gibidir. Shodan, bu ikon dosyasını indirir, özel bir algoritma ile sayısal bir değere (hash) dönüştürür ve veritabanına kaydeder.
Siber güvenlik uzmanları, versiyon bilgisini gizleyen veya standart portların dışındaki limanlarda çalışan gizli panelleri (örneğin kurumsal bir VPN arayüzü veya Proxmox yönetim paneli) bulmak için bu hash değerlerini kullanırlar.
Python ile Favicon Hash Hesaplama Mantığı
Shodan'ın kullandığı algoritma MurmurHash3 (32-bit signed integer) algoritmasıdır. Ancak burada kritik bir detay vardır: Shodan, doğrudan görsel dosyasının kendisine değil, görselin Base64 ile kodlanmış ve her 76 karakterde bir satır sonu (\n) karakteri eklenmiş (MIME standartlarında) haline hash uygular.
Bu işlemi Python'da gerçekleştirmek için requests (görseli indirmek için) ve mmh3 (MurmurHash algoritması için) kütüphanelerine ihtiyaç duyulur.
Gerekli Kütüphanelerin Kurulumu:
pip install requests mmh3
Python Kod Örneği:
import requestsimport base64import mmh3
def calculate_favicon_hash(url): try: # 1. Favicon dosyasını indiriyoruz headers = {'User-Agent': 'Mozilla/5.0 (Windows NT 10.0; Win64; x64)'} response = requests.get(url, headers=headers, timeout=10) if response.status_code == 200: # 2. Shodan'ın kullandığı standartta Base64 kodlaması yapıyoruz # base64.encodebytes, otomatik olarak her 76 karakterde bir '\n' ekler. favicon_b64 = base64.encodebytes(response.content) # 3. MurmurHash3 algoritması ile imzalı 32-bit integer değerini hesaplıyoruz favicon_hash = mmh3.hash(favicon_b64) return favicon_hash else: print(f"Hata: Sunucu {response.status_code} kodu döndürdü.") return None except Exception as e: print(f"Bir hata oluştu: {e}") return None
# Örnek Kullanım:target_url = "https://www.google.com/favicon.ico"hash_result = calculate_favicon_hash(target_url)
if hash_result: print(f"\nHedef URL : {target_url}") print(f"Favicon Hash : {hash_result}") print(f"Shodan Dork : http.favicon.hash:{hash_result}")Bu Değer Shodan'da Nasıl Aratılır?
Elde ettiğiniz benzersiz sayısal değeri Shodan arama çubuğunda veya Shodan CLI üzerinde http.favicon.hash: filtresiyle aratabilirsiniz.
Arama Sorgusu Şablonu:
http.favicon.hash:<hesaplanan_hash_değeri>
Örnek Senaryolar:
http.favicon.hash:-1045233156: Dünyadaki tüm standart Jenkins entegrasyon sunucularını listeler.
http.favicon.hash:2073240212 country:TR: Türkiye sınırları içindeki internete açık Proxmox sanallaştırma panellerini filtreler.
Aşağıdaki simülatör üzerinden, sıkça karşılaşılan altyapıların gerçek Shodan hash değerlerini ve bu verinin arka planda hangi aşamalardan geçerek dork haline geldiğini interaktif olarak inceleyebilirsiniz.
Exiftool, dijital dosyaların içine gömülmüş olan metadata (üst veri) bilgilerini okumak, yazmak ve düzenlemek için kullanılan, siber güvenlik dünyasındaki en güçlü standart araçtır. Perl diliyle yazılmış bu araç, PDF'lerden fotoğraflara, videolardan ofis belgelerine kadar yüzlerce farklı dosya formatını destekler.
Terminal üzerinden Exiftool kullanarak OSINT (Açık Kaynak İstihbaratı) araştırmaları yapmak oldukça basittir ancak elde edilen veriler kritik düzeyde önemlidir.
1. Kurulum
Eğer sisteminizde Exiftool kurulu değilse, Debian/Ubuntu tabanlı sistemlerde şu komutla kurabilirsiniz:
sudo apt update && sudo apt install libimage-exiftool-perl
(macOS kullanıcıları brew install exiftool komutunu kullanabilirler.)
2. Temel Kullanım: Bilgi Toplama (Red Team)
Bir dosyanın barındırdığı tüm metadatayı ekrana dökmek için terminalde dosyanın dizinine gidip aracı çalıştırmanız yeterlidir:
exiftool ornek_belge.pdf
Bu komut size uzun bir liste verecektir. Ancak profesyonel bir analizde genellikle spesifik bilgileri ararız. Çıktıyı daraltmak ve gruplamak için bazı parametreler kullanılır:
Sadece Belirli Etiketleri Çekmek: Bir belgenin sadece yazarını ve oluşturulduğu yazılımı görmek istiyorsanız:
Bashexiftool -Author -Creator -CreateDate ornek_belge.pdfGrup Halinde Gösterim (
-g): Verileri karmaşık bir liste yerine "Dosya Sistemi", "XMP", "EXIF" gibi mantıksal gruplara ayırarak okumak analizi kolaylaştırır:Bashexiftool -g ornek_belge.pdfGPS Koordinatlarını Çıkarmak: Bir akıllı telefonla çekilmiş fotoğrafı analiz ediyorsanız, doğrudan konum verisine odaklanabilirsiniz:
Bashexiftool -gpslatitude -gpslongitude tatil_fotografi.jpg
3. Kritik OSINT Bulguları: Ne Arıyoruz?
Bir Exiftool analizinde göze masum görünen bir PDF veya JPEG dosyasından şu istihbaratları elde edebilirsiniz:
İç Ağ Bilgileri ve Kullanıcı Adları: Belgeyi oluşturan kişinin bilgisayarındaki dizin yolları dosyaya sızabilir.
Örnek Çıktı:
C:\Users\Nuri\Desktop\Projeler\gizli_proje_v2.docx(Hedef sistemin Windows olduğunu ve aktif bir kullanıcı adını tespit ettiniz).
Yazılım Sürümleri: Belgenin hangi programla oluşturulduğu (örn: LibreOffice 7.4 veya Adobe Photoshop 2022). Bu sürümlerde bilinen bir CVE (zafiyet) varsa, doğrudan hedef alınabilir.
Cihaz Modelleri: Fotoğrafın çekildiği kamera modeli veya akıllı telefonun tam sürümü.
Zaman Çizelgeleri (Timestamps): Dosyanın ilk oluşturulma ve son değiştirilme tarihleri incelenerek belgenin sahte olup olmadığı doğrulanabilir.
4. Savunma ve Temizlik: Metadata Silme (Blue Team)
Kurumların dışarıya paylaştığı PDF raporları veya basın görselleri, saldırganlara istihbarat sağlamamalıdır. Blue Team perspektifinden Exiftool, bu sızıntıları temizlemek için harika bir araçtır.
Bir dosyadaki tüm metadatayı temizlemek (dosya sisteminin çalışması için gereken zorunlu veriler hariç) için şu komut kullanılır:
exiftool -all= temizlenecek_rapor.pdf
Not: Exiftool güvenlik amacıyla orijinal dosyayı temizlenecek_rapor.pdf_original adıyla yedekler ve temizlenmiş yeni bir dosya oluşturur. Yedeği oluşturmadan doğrudan üzerine yazmak isterseniz komutun sonuna -overwrite_original parametresini ekleyebilirsiniz.
Aşağıdaki simülatör üzerinden, farklı dosya türlerinin (PDF raporu, akıllı telefon fotoğrafı, düzenlenmiş grafik) arka planında ne tür metadatalar barındırdığını ve Exiftool'un bunları nasıl modellediğini etkileşimli olarak inceleyebilirsiniz.
GitHub Dorking: Kaynak Kodlarındaki Zafiyetleri Keşfetme Sanatı
Geliştiriciler, projelerini GitHub gibi versiyon kontrol platformlarına yüklerken (push işlemi sırasında) genellikle hız ve kolaylık adına hassas verileri kodun içinde (hardcoded) unuturlar. Veya yerel ortamda (localhost) çalışması için oluşturulan yapılandırma dosyalarını yanlışlıkla herkese açık depolara (public repository) gönderirler.
OSINT süreçlerinde GitHub Dorking, GitHub'ın kendi gelişmiş arama motorunu kullanarak bu "unutulmuş" veya "sızdırılmış" verileri noktasal olarak tespit etme işlemidir.
Özellikle bilişim öğrencileriyle gerçekleştirilen Red/Blue Team tatbikatlarında veya bitirme projelerinde güvenli kodlama pratiklerini anlatırken, GitHub Dorking en çarpıcı konulardan biridir. Aşağıda, saldırganların (veya sızma testi uzmanlarının) bu verileri bulmak için kullandığı temel filtreleri ve hedefe yönelik dork kombinasyonlarını bulabilirsiniz.
1. GitHub Arama Filtrelerinin Temelleri
GitHub'da başarılı bir arama yapmak için standart kelime aramasından ziyade dosya tipi, dil ve uzantı filtreleri kullanılır:
"aranan_kelime": Tam kelime veya karakter dizisi eşleşmesi sağlar.extension:: Dosya uzantısını belirtir (örn.extension:env,extension:pem,extension:sql).filename:: Spesifik bir dosya adını hedefler (örn.filename:wp-config.php,filename:id_rsa).org:veyauser:: Taramayı belirli bir kurumun veya kullanıcının depolarıyla sınırlandırır (örn.org:turktelekomveyauser:hedef_kullanici).language:: Yazılım dilini filtreler (örn.language:python,language:rust).
2. Kritik Sızıntı Kategorileri ve Örnek Dorklar
Aşağıda, en yaygın sızıntı türlerine göre kategorize edilmiş gelişmiş arama sorguları (dork'lar) bulunmaktadır.
A. Veritabanı Parolaları ve Bağlantı Dizeleri (Connection Strings)
Veritabanı bilgileri genellikle .env dosyalarında, JSON konfigürasyonlarında veya doğrudan veritabanı bağlantı sınıflarında unutulur.
Django / Python Projeleri için:
"DATABASES" "PASSWORD" language:python extension:pyGenel Çevre Değişkenleri (.env):
"DB_PASSWORD" extension:envMongoDB Bulut Bağlantıları:
"mongodb+srv://" extension:json OR extension:jsWordPress Siteler:
filename:wp-config.php "define('DB_PASSWORD'"
B. Bulut Servisleri ve API Anahtarları (API Keys)
Bulut altyapılarına (AWS, Google Cloud, Azure) veya ödeme sistemlerine (Stripe, PayPal) ait anahtarlar, saldırganlara doğrudan kurumsal kaynaklara erişim sağlar.
AWS Erişim Anahtarları (Her zaman AKIA ile başlar):
"AKIA" extension:csv OR extension:txt(Geliştiriciler genellikle AWS'den indirdikleri csv dosyasını yanlışlıkla projeye dahil ederler).Google Cloud / Maps API Anahtarları (AIza ile başlar):
"AIza" "googleapis.com"Ödeme Sistemi (Stripe) Gizli Anahtarları:
"sk_live_" extension:env OR extension:jsJWT (JSON Web Token) Secret Key Sızıntıları:
"JWT_SECRET" OR "JWT_SECRET_KEY" extension:env
C. Sunucu ve Şifreleme Anahtarları (SSH / SSL)
Sunuculara uzaktan erişim sağlamak için kullanılan özel (private) anahtarların sızması, doğrudan sistemin ele geçirilmesi anlamına gelir.
SSH Özel Anahtarları (RSA):
filename:id_rsa "BEGIN RSA PRIVATE KEY"SSL/TLS Sertifika Anahtarları:
extension:pem "PRIVATE KEY"Bash Geçmişi (Terminalde unutulan şifreler):
filename:.bash_history
3. Blue Team (Savunma) Perspektifi: Sızıntılar Nasıl Önlenir?
Bir kurumun ağını ve sunucularını dışarıdan (örneğin güvenlik duvarları ile) korumak ne kadar önemliyse, yazılım geliştirme döngüsündeki (SDLC) sızıntıları önlemek de o kadar önemlidir.
Etkili
.gitignoreKullanımı: Proje oluşturulurken IDE'lerin veya işletim sistemlerinin (macOS.DS_Storegibi) oluşturduğu gereksiz dosyalar ve.envgibi konfigürasyon dosyaları.gitignoreiçine mutlaka eklenmelidir.Otomatize Tarama Araçları (Pre-commit Hooks): Geliştiriciler kodlarını GitHub'a göndermeden önce yerel bilgisayarlarında çalışan araçlar kullanılmalıdır. TruffleHog veya Gitleaks gibi açık kaynaklı araçlar, commit işlemi sırasında kodun içinde "AKIA" gibi bir şifre formatı yakalarsa işlemi iptal eder ve uyarı verir.
Çevre Değişkenleri (Environment Variables): Şifreler hiçbir zaman koda doğrudan yazılmaz; sunucu tarafında yapılandırılan çevre değişkenlerinden çağrılır (Örn. Python'da
os.environ.get('DB_PASS')).
Aşağıdaki simülatör üzerinden, saldırganların kullandığı bu dork'ların GitHub üzerinde nasıl sonuçlar ürettiğini ve Blue Team (Savunma) tarafının bu kodları nasıl düzeltmesi gerektiğini etkileşimli olarak inceleyebilirsiniz.
Bu OSINT tekniklerini düşünürsek; yerel bir okul ağı veya özel bir proje için hazırladığınız uygulamaların güvenliğini test etmek adına Gitleaks gibi otomatik bir analiz aracını yapılandırma üzerine mi odaklanmak istersiniz, yoksa Shodan ve GitHub OSINT verilerini birleştirerek bir sızma testi (Red Team) senaryosu tasarlamaya mı devam edelim?
Harika. Hem Shodan'ın dış ağ analizi gücünü hem de GitHub'daki kaynak kod istihbaratını birleştirerek, 11. sınıf bilişim teknolojileri öğrencileri veya bitirme projeleri için laboratuvar ortamında uygulanabilecek, uçtan uca bir Red Team vs. Blue Team (Kırmızı ve Mavi Takım) OSINT Senaryosu tasarlayalım.
Bu senaryo, öğrencilerin zafiyetlerin sadece sistem yapılandırmasından değil, yazılım geliştirme süreçlerindeki dikkatsizliklerden de kaynaklanabileceğini anlamalarını sağlayacaktır.
Senaryo Adı: "Operasyon: Unutulan Anahtar"
Senaryo Özeti: Hayali bir kurum (veya okulun kendi iç ağında izole edilmiş bir laboratuvar sunucusu), yeni geliştirdiği bir Python (Django) öğrenci takip sistemini test amaçlı bir Pardus sunucuda yayına almıştır. Ancak geliştirici ekip, projeyi hızlıca test etmek için bazı güvenlik adımlarını atlamıştır.
Kırmızı Takımın Amacı: Hedef sisteme hiçbir aktif tarama (Nmap vb.) yapmadan, sadece açık kaynak istihbaratı (Shodan ve GitHub) kullanarak yönetici veritabanı parolasını ele geçirmek.
Mavi Takımın Amacı: Zafiyeti tespit etmek, kaynak kod sızıntısını temizlemek ve sunucu tarafında gerekli sıkılaştırmaları yapmak.
🔴 Faz 1: Kırmızı Takım (Saldırı ve Keşif)
Kırmızı takım öğrencileri, hedef sunucuya doğrudan temas etmeden dijital izleri takip eder.
Adım 1: Shodan ile Dış Yüzey Keşfi
Öğrenciler, hedefin dışarıya açık IP bloğunu (simüle edilmiş) Shodan üzerinde aratır.
Shodan Dork Sorgusu: net:"192.168.10.0/24" product:"nginx" (Laboratuvar ağına göre uyarlanır).
Bulgu: Shodan sonuçlarında, standart web portu (80/443) dışında 8000 portunda çalışan bir servis keşfedilir. Shodan'ın yakaladığı HTTP banner'ında şu bilgi sızmıştır: Server: WSGIServer/0.2 CPython/3.9.
Çıkarım: Hedef sistemde bir Python web uygulaması (muhtemelen Django) test modunda (DEBUG=True) dışarıya açık unutulmuştur.
Adım 2: GitHub Dorking ile Kod Keşfi
Öğrenciler, Shodan'dan elde ettikleri proje adını, kurum adını veya sayfada gördükleri özel bir başlığı (Örn: "Öğrenci Takip Sistemi v1.0 Beta") GitHub'da aratırlar.
GitHub Dork Sorgusu: "Öğrenci Takip Sistemi" org:hayalikurum extension:py
Bulgu: Kurumun veya bir öğrencinin kişisel GitHub hesabında, public (herkese açık) olarak unutulmuş proje deposu bulunur.
Adım 3: Kritik Veri Hırsızlığı
Kırmızı takım, projenin kaynak kodlarını inceler. Özellikle veritabanı bağlantılarının yapıldığı settings.py veya unutulmuş bir .env dosyasını ararlar.
GitHub Dork Sorgusu (Depo İçi): "DATABASES" "PASSWORD"
Sonuç: Geliştiricinin yerel test ortamında kullandığı ve silmeyi unuttuğu veritabanı parolası kabak gibi ortadadır: 'PASSWORD': 'pardus_admin_2026!'. Kırmızı takım, bu parolayı kullanarak sistemdeki açığı doğrular ve "Bayrağı Yakalar" (Capture the Flag).
🔵 Faz 2: Mavi Takım (Savunma ve İyileştirme)
Mavi takım öğrencileri, sistem koordinatörü rolünü üstlenerek bu felaketi durdurmak ve izleri temizlemek zorundadır.
Adım 1: Kaynak Kod Sızıntısının Kapatılması
Sadece parolayı değiştirmek yetmez. Kod deposundaki şifre os.environ kullanılarak çevre değişkenlerine (environment variables) taşınmalıdır.
Düzeltme: ```python
ESKİ (Zafiyetli) Kod:
'PASSWORD': 'pardus_admin_2026!'
YENİ (Güvenli) Kod:
import os'PASSWORD': os.environ.get('DB_PASSWORD', 'varsayilan_sifre_yapilandirilmadi')
Adım 2: Git Geçmişinin (History) Temizlenmesi
Mavi takım, şifreyi koddan silip yeni bir commit atmanın yeterli olmadığını öğrenir. Eski commit geçmişine bakan bir saldırgan şifreyi yine görebilir.
Aksiyon: Öğrenciler, BFG Repo-Cleaner veya git filter-branch gibi araçlar kullanarak sızan parolayı Git geçmişinden tamamen kazıyıp silerler.
Adım 3: Sunucu ve Ağ Sıkılaştırması (Pardus / Nginx)
Test amaçlı açık bırakılan 8000 portu (Django geliştirme sunucusu) dış erişime kapatılır.
Sistem bir Nginx Reverse Proxy arkasına alınır. Nginx yapılandırmasında (Server Tokens) versiyon bilgisinin sızması engellenir.
Nginx# nginx.conf içine eklenmesi gereken satır:server_tokens off;
💡 Eğitmen Notu ve Değerlendirme (Rubrik) Odakları
Bu tarz bir simülasyonu değerlendirirken şu kriterler ön plana çıkar:
Analitik Düşünme: Kırmızı takımın Shodan'daki teknik bir banner bilgisini (CPython), GitHub'daki bir kod deposuyla eşleştirebilme yeteneği.
Kapsamlı Savunma: Mavi takımın sadece Nginx'i kapatmakla kalmayıp, Git geçmişini de temizlemeyi akıl etmesi (Derinlemesine Savunma - Defense in Depth prensibi).
Bu senaryoyu laboratuvar ortamında hayata geçirmek için teknik altyapı hazırlığına (örneğin izole bir ağda kasıtlı olarak zafiyetli bir Django projesi ve Nginx ayağa kaldırma adımlarına) odaklanmamızı ister misiniz?
Bu kapsamlı laboratuvar çalışmasını izole bir eğitim ortamında (örneğin Proxmox veya VirtualBox üzerinde çalışan sanal Pardus Server makinelerinde) hayata geçirmek için gerekli olan teknik altyapı kurulum adımlarını, kasıtlı olarak zafiyet barındıran konfigürasyonları ve yapılması gereken sıkılaştırma işlemlerini detaylandıralım.
Bu kurulum, öğrencilerin hem bir web uygulamasını canlıya alma (deployment) süreçlerini öğrenmelerini hem de yapılandırma hatalarının siber güvenlikteki yansımalarını bizzat deneyimlemelerini sağlayacaktır.
1. Hedef Sunucu Altyapısının Hazırlanması (Pardus Server)
Laboratuvarda hedef olarak kullanılacak Linux sunucu üzerinde Python ortamı, Django ve Nginx proxy servislerinin kurulması gerekir.
Gerekli Paketlerin Kurulması:
Bashsudo apt updatesudo apt install python3-pip python3-venv nginx git -y
İzole Python Sanal Ortamı (Virtual Env) ve Django Kurulumu:
Bashmkdir -p /opt/ogrenci_takipcd /opt/ogrenci_takippython3 -m venv venvsource venv/bin/activatepip install django
2. Kasıtlı Olarak Zafiyetli Django Yapılandırması
Öğrencilerin Shodan ve GitHub aramalarında yakalayacakları ipuçlarını oluşturmak için settings.py dosyası kasıtlı olarak hatalı yapılandırılır.
/opt/ogrenci_takip/sistem/settings.py dosyası içinde:
Python# KASITLI HATA 1: DEBUG modu açık bırakılarak detaylı hata sayfalarının # ve sunucu imzasının (CPython/WSGI) dışarı sızması sağlanır.DEBUG = True
# KASITLI HATA 2: Her yerden erişime izin verilir.ALLOWED_HOSTS = ['*']
# KASITLI HATA 3: Hassas veritabanı parolası koda gömülür (Hardcoded).# Bu dosya daha sonra GitHub simülasyonunda public olarak paylaşılacaktır.DATABASES = { 'default': { 'ENGINE': 'django.db.backends.postgresql', 'NAME': 'okul_db', 'USER': 'pardus_user', 'PASSWORD': 'pardus_admin_2026!', # <-- Saldırganın hedefi 'HOST': '127.0.0.1', 'PORT': '5432', }}
Uygulamanın Test Modunda Başlatılması (Zafiyetli Durum):
Bash# Uygulama doğrudan dışarıya açık 8000 portundan çalıştırılırpython manage.py runserver 0.0.0.0:8000
Bu aşamada Shodan (veya yerel ağdaki tarayıcılar) 8000 portunu yokladığında Django'nun imzasını toplayacaktır.
3. Nginx Reverse Proxy ve Sıkılaştırma (Mavi Takım Aşaması)
Mavi takımın görevi, uygulamayı doğrudan dış dünyaya açmak yerine güvenli bir reverse proxy arkasına almak ve sunucu bilgilerini gizlemektir.
Zafiyetli/Eksik Nginx Konfigürasyonu:
Saldırganların versiyon analizi yapabilmesi için varsayılan Nginx yapılandırmasında imza gizleme aktifleştirilmemiştir.
Güvenli Nginx Konfigürasyonu (Mavi Takım Çözümü):
/etc/nginx/sites-available/ogrenci_takip dosyası oluşturulur ve sıkılaştırılır:
Nginx# Mavi Takım Sıkılaştırma Ayarı: Nginx versiyon bilgisini HTTP başlıklarından gizlerserver_tokens off;
server { listen 80; server_name okul.local;
location / { proxy_pass http://127.0.0.1:8000; # Django artık sadece localhost'u dinler proxy_set_header Host $host; proxy_set_header X-Real-IP $remote_addr; proxy_set_header X-Forwarded-For $proxy_add_x_forwarded_for; }}
Konfigürasyonun aktif edilmesi:
Bashsudo ln -s /etc/nginx/sites-available/ogrenci_takip /etc/nginx/sites-enabled/sudo systemctl restart nginx
4. GitHub Sızıntı Simülasyonu
Eğitmen, laboratuvar öncesinde öğrencilerin arayıp bulabilmesi için uzak bir Git deposuna (veya okulun yerel GitLab/Gitea sunucusuna) yukarıdaki settings.py dosyasını içeren bir commit yükler.
Mavi takımın buradaki temizlik görevi şu komut dizisini uygulayarak geçmişi kazımaktır:
Bash# Şifreyi koddan kaldırdıktan sonra Git geçmişindeki izleri de silmek gerekirgit filter-branch --force --index-filter \"git rm --cached --ignore-unmatch /opt/ogrenci_takip/sistem/settings.py" \--prune-empty --tag-name-filter cat -- --all
Eğitim esnasında öğrencilerin bu ağ topolojisini, saldırı adımlarını ve atılması gereken savunma komutlarını etkileşimli olarak inceleyebilmeleri için hazırlanan laboratuvar simülatörünü aşağıdan kullanabilirsiniz:
Yorumlar