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 OK
Server: 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.2
OpenSSL 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 shodan
api = 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ı

ÖzellikShodanCensysZoomEye
Kullanım KolaylığıÇok YüksekOrtaOrta
APIEvetEvetEvet
SSL AnaliziİyiÇok İyiİyi
IoT KeşfiÇok İyiİyiÇok İyi
Endüstriyel SistemlerGüç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.1
1.1.1.2
1.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 Server
VPN Gateway
Mail Server
Remote 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 SSH
80 HTTP
443 HTTPS
3389 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:

  1. Sürümü belirler

  2. CVE araştırır

  3. 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 Camera
Firmware 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

  1. Düzenli varlık envanteri çıkarın.

  2. Gereksiz açık servisleri kapatın.

  3. Uzak erişim servislerini gözden geçirin.

  4. Eski sürümleri güncelleyin.

  5. İnternete açık yönetim panellerini sınırlandırın.

  6. SSL sertifikalarını takip edin.

  7. Sürekli izleme ve uyarı mekanizmaları kurun.

  8. 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:

Shodan

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:

IP
Hostname
Country
Open Ports
Services
SSL 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 443
198.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 shodan
api = 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:

22
80
443
587
993

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 csv
with 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,Port
203.0.113.10,443
198.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 Risk
HTTPS (443) → Düşük Risk
RDP (3389) → Yüksek Risk
Telnet (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 listele
2. Açık servisleri belirle
3. Sertifikaları incele
4. Eski sürümleri tespit et
5. Yama durumunu kontrol et
6. Sürekli izleme oluştur
7. 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örPuan
CVSS 9+50
CVSS 7-930
İnternete Açık10
Yönetim Servisi20
Eski Sürüm15

Örnek:

Apache 2.2
+
CVSS 9.8
+
Internet Facing
=
Kritik Risk

Risk Seviyeleri

0-25 Düşük
26-50 Orta
51-75 Yüksek
76-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 = 0
risk += 50
risk += 10
risk += 20

Sonuç:

80

KRİTİK

PDF Raporlama Sistemi

En çok kullanılan Python kütüphanesi:

reportlab

Çıktı:

Executive Summary
Critical Findings
High Findings
Asset Inventory
Recommendations

Örnek Yönetici Özeti

Kurumsal raporlarda genellikle ilk sayfa:

Toplam Varlık: 125
Kritik Risk: 7
Yüksek Risk: 18
Orta Risk: 34
Düşük Risk: 66

şeklindedir.


Teknik Bulgular Bölümü

Örnek tablo:

IPPortÜrünRisk
203.0.113.10443nginxOrta
203.0.113.1522OpenSSHDüşük
203.0.113.253389RDPYü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 sistem
Mart 131 sistem
Nisan 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: ve city: 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:

Python
import shodan
SHODAN_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: ve http.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 alert komutları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-api betiğ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.sh adresine 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: site:kurum.edu.tr

filetype:

Sadece belirli bir dosya uzantısını (pdf, docx, sql, env) arar.


Örnek: filetype:sql "INSERT INTO"

intitle: / inurl:

Sayfa başlığında veya URL'sinde belirli anahtar kelimeleri arar.


Örnek: intitle:"index of" "password.txt"

Kombinasyon

Bir kurumun dışarı sızmış PDF veya Excel dosyalarını bulmak için:


Örnek: site:hedefkurum.com filetype:pdf "gizli" OR "confidential"

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?: Exiftool veya 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:

  1. 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.

  2. 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:

Bash
pip install requests mmh3

Python Kod Örneği:

Python
import requests
import base64
import 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:

Plaintext
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:

Bash
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:

Bash
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:

    Bash
    exiftool -Author -Creator -CreateDate ornek_belge.pdf
    
  • Grup 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:

    Bash
    exiftool -g ornek_belge.pdf
    
  • GPS Koordinatlarını Çıkarmak: Bir akıllı telefonla çekilmiş fotoğrafı analiz ediyorsanız, doğrudan konum verisine odaklanabilirsiniz:

    Bash
    exiftool -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:

Bash
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: veya user: : Taramayı belirli bir kurumun veya kullanıcının depolarıyla sınırlandırır (örn. org:turktelekom veya user: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:py

  • Genel Çevre Değişkenleri (.env):

    "DB_PASSWORD" extension:env

  • MongoDB Bulut Bağlantıları: "mongodb+srv://" extension:json OR extension:js

  • WordPress 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:js

  • JWT (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.

  1. Etkili .gitignore Kullanımı: Proje oluşturulurken IDE'lerin veya işletim sistemlerinin (macOS .DS_Store gibi) oluşturduğu gereksiz dosyalar ve .env gibi konfigürasyon dosyaları .gitignore içine mutlaka eklenmelidir.

  2. 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.

  3. Ç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:

  1. 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.

  2. 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ı:

Bash
sudo apt update
sudo apt install python3-pip python3-venv nginx git -y

İzole Python Sanal Ortamı (Virtual Env) ve Django Kurulumu:

Bash
mkdir -p /opt/ogrenci_takip
cd /opt/ogrenci_takip
python3 -m venv venv
source venv/bin/activate
pip 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ır
python 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 gizler
server_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:

Bash
sudo 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 gerekir
git 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