Shodan Kullanımı
Shodan ile internete açık servisleri savunma amacıyla araştırın, kendi sistemlerinizi doğrulayın ve arama sonuçlarını güvenli şekilde yorumlayın.
1. Shodan Nedir?
Shodan, internete açık cihazlar, servisler ve sistem başlıkları hakkında arama yapılmasını sağlayan bir internet varlık arama motorudur.
Web sunucuları, ağ cihazları, uzak erişim servisleri ve IoT cihazları gibi farklı sistemlerden elde edilen banner bilgilerini indeksler.
Shodan sonuçlarını yalnızca açık kaynak istihbaratı, savunma ve size ait sistemleri doğrulama amacıyla kullanın.
2. Shodan Nasıl Çalışır?
Shodan, internete açık IP adreslerine ait servislerden banner ve temel servis bilgileri toplar.
Bir sonuçta aşağıdaki bilgiler görülebilir:
- IP adresi
- Port numarası
- Servis adı
- Banner bilgisi
- Ülke ve şehir bilgisi
- İnternet servis sağlayıcısı
- Alan adı veya hostname
- Ürün ve sürüm bilgisi
Bu bilgiler her zaman güncel veya kesin olmayabilir; sonuçlar ayrıca doğrulanmalıdır.
3. Hesap ve API Anahtarı Güvenliği
Shodan hesabı oluşturduktan sonra API anahtarı hesabınıza özel olarak verilir.
- API anahtarını GitHub’a yüklemeyin.
- Ekran görüntülerinde anahtarı gizleyin.
- Ortak bilgisayarlarda oturum açık bırakmayın.
- Anahtarı kaynak kodun içine doğrudan yazmayın.
- Gerekirse çevresel değişken kullanın.
.env
shodan-config.json
*.key
4. Temel Arama Kullanımı
Shodan web arayüzünde servis veya ürün adıyla arama yapılabilir.
Genel ve savunma amaçlı örnekler:
nginx
apache
product:"OpenSSH"
port:443
Sonuçları yalnızca kendi varlıklarınızı veya genel istatistikleri anlamak için değerlendirin.
5. Temel Arama Operatörleri
| Operatör | Açıklama | Örnek |
|---|---|---|
| port: | Belirli bir portu filtreler. | port:443 |
| country: | Ülke koduna göre filtreler. | country:TR |
| city: | Şehre göre filtreler. | city:"Istanbul" |
| org: | Kuruluş veya ağ sahibine göre filtreler. | org:"Example ISP" |
| hostname: | Hostname veya alan adına göre filtreler. | hostname:"example.com" |
| product: | Ürün adına göre filtreler. | product:"nginx" |
| os: | İşletim sistemi tahminine göre filtreler. | os:"Linux" |
| net: | IP bloğuna göre filtreler. | net:"203.0.113.0/24" |
6. Kendi Alan Adını Araştırma
Kendi alan adınızla ilişkili sonuçları görmek için hostname filtresi kullanılabilir:
hostname:"alanadiniz.com"
Sonuçlarda beklemediğiniz portlar veya servisler bulunuyorsa sunucu yapılandırmanızı kontrol edin.
7. Kendi IP Adresini Kontrol Etme
Size ait genel IP adresi için doğrudan arama yapılabilir:
203.0.113.10
Bu örnek IP adresi dokümantasyon amaçlıdır. Kendi sunucunuzun gerçek IP adresini kullanın.
Shodan verileri anlık olmayabilir. Servisin hâlâ açık olup olmadığını kendi sunucunuzda ayrıca doğrulayın.
8. Sonuç Ekranını Yorumlama
| Alan | Açıklama |
|---|---|
| IP Address | İnternete açık sistemin IP adresidir. |
| Port | Shodan tarafından gözlemlenen servis portudur. |
| Transport | TCP veya UDP taşıma protokolünü gösterir. |
| Product | Banner üzerinden tahmin edilen ürün bilgisidir. |
| Version | Varsa tespit edilen sürüm bilgisidir. |
| Last Update | Son gözlem zamanını gösterir. |
| Organization | IP bloğının ilişkili olduğu kuruluş bilgisidir. |
9. Açık Portları Savunma Açısından Değerlendirme
Shodan’da görünen her port mutlaka zafiyet anlamına gelmez. Ancak gereksiz açık servisler saldırı yüzeyini artırır.
Kontrol edilmesi gerekenler:
- Bu port gerçekten gerekli mi?
- Servis internete açık olmak zorunda mı?
- Güvenlik duvarıyla IP kısıtlaması yapılabilir mi?
- Servis güncel mi?
- Varsayılan kimlik bilgileri değiştirilmiş mi?
- VPN arkasına alınabilir mi?
10. Banner Bilgisi ve Riskleri
Servis banner’ları ürün ve sürüm bilgisi sızdırabilir.
Örnek banner:
Server: nginx
SSH-2.0-OpenSSH
X-Powered-By: Example
Gereksiz sürüm bilgisini gizlemek faydalı olabilir; ancak asıl önlem servisi güncel ve güvenli tutmaktır.
11. Shodan CLI Kurulumu
Python paket yöneticisiyle Shodan komut satırı aracı kurulabilir:
python3 -m pip install --user shodan
Kurulumu kontrol edin:
shodan --help
12. CLI API Anahtarı Tanımlama
API anahtarını CLI aracına tanımlamak için:
shodan init API_ANAHTARINIZ
Komut geçmişi, ekran görüntüsü ve dokümanlarda gerçek API anahtarını gizleyin.
13. CLI ile Hesap Bilgisi Kontrolü
Hesap ve kullanım bilgilerini görmek için:
shodan info
Bu komut hesabın plan bilgisi ve kullanılabilir sorgu kredileri gibi ayrıntıları gösterebilir.
14. Kendi Sunucun İçin Host Sorgusu
Size ait bir IP adresinin Shodan kaydını görüntülemek için:
shodan host 203.0.113.10
Yalnızca size ait veya yönetim izniniz bulunan IP adreslerini ayrıntılı şekilde inceleyin.
15. CLI ile Savunma Amaçlı Arama
Kendi alan adınızla ilişkili sonuçları aramak için:
shodan search 'hostname:"alanadiniz.com"'
Ülke bazlı genel istatistik araması örneği:
shodan count 'product:"nginx" country:TR'
16. Sonuçları Güvenli Şekilde Kaydetme
Sorgu çıktısında hassas altyapı bilgileri bulunabilir. Bu nedenle dosyaları herkese açık depolara yüklemeyin.
Terminal çıktısını metin dosyasına yönlendirme örneği:
shodan host 203.0.113.10 > shodan-kendi-sunucum.txt
Dosya izinlerini sınırlandırın:
chmod 600 shodan-kendi-sunucum.txt
17. Shodan Sonuçlarını Kendi Sunucunda Doğrulama
Shodan’da görünen servisleri kendi sunucunuz üzerinde kontrol edin:
sudo ss -lntup
UFW durumunu görüntüleyin:
sudo ufw status numbered
Çalışan servisleri kontrol edin:
systemctl --type=service --state=running
18. Savunma Kontrol Listesi
- Gereksiz portları kapatın.
- Yönetim panellerini internete açık bırakmayın.
- SSH erişimini IP veya VPN ile sınırlandırın.
- Servisleri düzenli güncelleyin.
- Varsayılan kullanıcı adı ve parolaları değiştirin.
- MFA kullanın.
- UFW veya başka bir güvenlik duvarı uygulayın.
- Logları ve başarısız girişleri takip edin.
- Shodan üzerinde kendi varlıklarınızı düzenli kontrol edin.
19. Yanlış veya Eski Sonuçlar
Shodan sonuçları geçmiş bir taramaya ait olabilir. Servis kapatılmış olsa bile kayıt bir süre görünmeye devam edebilir.
Bu nedenle:
- Last Update tarihini kontrol edin.
- Kendi sunucunuzdaki dinleyen portları doğrulayın.
- DNS ve IP değişikliklerini dikkate alın.
- Sonucu tek başına zafiyet kanıtı olarak değerlendirmeyin.
20. Etik Kullanım İlkeleri
- Sonuçlarda görünen sistemlere izinsiz bağlanmayın.
- Parola denemesi yapmayın.
- Zafiyet doğrulaması için aktif saldırı gerçekleştirmeyin.
- Hassas bulguları herkese açık paylaşmayın.
- Size ait olmayan sistemlerde yalnızca pasif açık kaynak analizinde kalın.
- Bir risk fark ederseniz sorumlu bildirim süreçlerini kullanın.
21. Sık Karşılaşılan Hatalar
shodan komutu bulunamadı
python3 -m pip install --user shodan
Invalid API key hatası
API anahtarını hesabınızdan yeniden kontrol edin ve CLI yapılandırmasını yenileyin:
shodan init YENI_API_ANAHTARI
No information available hatası
IP adresi henüz indekslenmemiş, yakın zamanda değişmiş veya sonuç hesabınızın erişim düzeyinde bulunmuyor olabilir.
Search credits exhausted hatası
Hesabın sorgu limitini kontrol edin ve gereksiz geniş aramalardan kaçının.
22. Komut ve Arama Özeti
| İşlem | Komut / Arama |
|---|---|
| Port filtresi | port:443 |
| Ülke filtresi | country:TR |
| Kendi alan adın | hostname:"alanadiniz.com" |
| CLI başlatma | shodan init API_ANAHTARI |
| Hesap bilgisi | shodan info |
| Kendi IP sorgun | shodan host IP_ADRESI |
| Sonuç sayısı | shodan count 'product:"nginx" country:TR' |
23. Sonuç
Bu dokümanda Shodan’ın çalışma mantığı, temel filtreler, kendi alan adı ve IP adresini kontrol etme, CLI kurulumu, sonuç doğrulama ve savunma önlemleri ele alındı.
Shodan en doğru şekilde, internete açık kendi varlıklarınızı görmek ve gereksiz saldırı yüzeyini azaltmak amacıyla kullanılmalıdır.