Pasif keşif: hedefe dokunmadan
- Pasif keşif, hedefe hiç paket yollamadan üçüncü kaynaklardan bilgi toplayıp bir kurumun dışarıya açık saldırı yüzeyini çıkarma yöntemidir.
- Kaynak üçüncü taraflardır: alan adı kayıtları, sertifika günlükleri, arama motoru, arşiv siteleri.
- Bu aşama hedef listesini daraltır ve sonraki taramanın gürültüsünü azaltır.
Puan bütün etkinlikleri cevaplayınca hesaba yazılır. Bu dersi tamamlayınca +45 XP alacaksın. Giriş yapmadan ilerlersen puan yalnız bu tarayıcıda durur.
Yetkili bir sızma testi taramayla değil, dinlemeyle başlar. Pasif keşif, hedefe tek paket yollamadan onun dışarıya nasıl göründüğünü çıkarır. Veriyi hedeften değil, üçüncü kaynaklardan alırsın: alan adı kayıtları, sertifika günlükleri, arama motorları ve arşiv siteleri.
Elindeki kapsam belgesi genelde birkaç alan adı ve bir IP aralığından ibarettir. İlk işin, o dar listenin gerçekte ne kadar geniş bir yüzeye açıldığını anlamaktır. Bu bölümde bu kaynakları tek tek açar, her birinin hangi soruya yanıt verdiğini ve nerede kişisel veri sınırına dokunduğunu görürsün.
Keşfin üç tonu ve MITRE haritası
Keşif tek bir eylem değildir, bir ton skalasıdır. Pasif uçta hedefin sunucusuna hiç dokunmazsın; veriyi bir başkasının topladığı arşivden okursun. Yarı pasif uçta hedefe ait olmayan ama onu tarayan servisleri sorgularsın; istek senden değil, o servisten hedefe gider. Aktif uçta ise paketi doğrudan hedefe yollarsın ve onun günlüğüne satır düşer.
Bir işlemin hangi tona düştüğünü belirleyen tek soru şudur: bu eylem hedefin kayıtlarında iz bırakır mı? Bu soruyu her adımda kendine sorman, kapsamın dışına erken çıkmanı önler.
MITRE ATT&CK bu aşamayı Reconnaissance taktiği (TA0043) altında toplar ve on iki tekniğe böler. Pasif çalışmada üç öbek işine yarar. T1596 Search Open Technical Databases açık teknik veri tabanlarını kapsar: T1596.001 pasif DNS, T1596.002 WHOIS, T1596.003 sayısal sertifikalar. T1590 Gather Victim Network Information ağ verisini toplar: alan adı özellikleri (.001) ve DNS (.002).
T1593 Search Open Websites/Domains ise arama motorlarını (.002) ve kod depolarını (.003) içine alır. İnsan tarafını iki teknik daha okur: T1589 çalışan adları ve e-posta adresleri gibi kimlik bilgisini, T1591 kurumun yapısını ve iş ilişkilerini toplar. Kişisel veriye en çok bu ikisi dokunur. Her teknik farklı bir üçüncü kaynağı okur; hepsi hedefe paket yollamadan çalışır.
Etkinlik 1 / 8
Her MITRE tekniğini okuduğu üçüncü kaynakla eşleştir.
Kayıt verisi: whois'ten RDAP'a
Bir alan adının arkasındaki kayıt verisi ilk duraktır. Klasik whois protokolü 43. portta düz metin döner: kayıt sahibi, kayıt ve bitiş tarihleri, ad sunucuları.
Ad sunucusu satırı çoğu zaman en değerli ipucudur, çünkü alan adının hangi barındırma ya da bulut sağlayıcısında durduğunu söyler. Kayıt tarihleri ise altyapının yaşını verir; yeni kaydedilmiş bir alan adı genelde bir kampanya ya da geçici bir proje işaretidir.
Kayıt verisine erişim biçimi son yıllarda değişti. ICANN, yapılandırılmış ve yetkilendirilebilir bir protokol olan RDAP'ı zorunlu kıldı. 28 Ocak 2025 tarihinden sonra genel üst düzey alan adı kayıt kuruluşları artık whois hizmeti vermek zorunda değil; istisna olarak yalnız .com, .name ve .post kaldı.
Pratikte ne değişir? whois çıktısının biçimi sağlayıcıdan sağlayıcıya oynayabilir, RDAP ise JSON döner. İki kaynağı da denersen, birinin kısıtladığı alanı çoğu zaman öbüründen tamamlarsın.
$ whois hedef.example | grep -i 'Registrant\|Name Server' $ dig +short NS hedef.example # $RDAP: alan adının üst düzey uzantısına düşen RDAP uç noktası $ curl -s "$RDAP/domain/hedef.example" | jq '.nameservers[].ldhName, .events[].eventDate'
Bu satırlar aynı kayıt verisini farklı kanaldan çeker. whois çıktısını grep ile daraltırsın, ilk dig satırı ad sunucularını kısa biçimde verir.
RDAP tarafında ise önce doğru sunucuyu bulman gerekir: IANA'nın yayımladığı önyükleme kaydı, hangi üst düzey uzantının hangi RDAP sunucusuna düştüğünü söyler. O adresi bir değişkene alır, alan adını sorar ve yapılandırılmış JSON yanıt alırsın; ad sunucuları ve olay tarihleri ayrı alanlarda durur. Hiçbir komut hedefin web sunucusuna istek atmaz; sorgu kayıt kuruluşuna ya da RDAP sunucusuna gider.
Etkinlik 2 / 8
Komutu oku ve çıktının ne döneceğini tahmin et.
Önce kodu oku, sonra çıktıyı seç.
$ whois hedef.example | grep -i 'Registrant\|Name Server'
Kayıt verisini okurken kaynakların birbirini doğrulaması önemlidir. Tek bir sitede gördüğün bilgi eski olabilir. İki ayrı kaynak aynı ad sunucusunu söylüyorsa o satıra güvenirsin.
Bir IP ortak barındırmada başka kuruma da ait olabilir; kayıt sahibi, sertifika adı ve ters DNS birlikte okunduğunda varlığın gerçekten hedefe ait olup olmadığı netleşir. Bu çapraz okumanın hepsi pasif kalır, çünkü kayıt kuruluşu, sertifika günlüğü ve arşiv hedefle senin yerine çoktan konuşmuştur. Hedefin giriş sayfasını açtığın an ise aktif tarafa geçersin.
Etkinlik 3 / 8
Her adımı pasif ya da aktif keşif kovasına koy.
Önce bir seçeneğe, sonra aşağıdaki uygun kutuya bas. İstersen seçeneği kutuya sürükleyip bırak. Yerini değiştirmek için aynı işlemi tekrarla.
0/5 seçenek yerleşti.
Derinleş:WHOIS'ten RDAP'a geçiş
whois protokolü 1980'lerden kalma bir tasarımdır: kimin sorguladığını doğrulamaz, çıktısı serbest metindir ve her kayıt kuruluşu kendi biçimini uydurur. Bu, otomatik ayrıştırmayı kırılgan kılar ve erişim denetimi kurmayı olanaksızlaştırır. RDAP (Registration Data Access Protocol) bu iki sorunu birden çözer: yanıtı JSON döner, HTTP üstünde çalışır ve sorgulayana göre farklı alan setleri gösterebilir.
ICANN, genel üst düzey alan adları için RDAP'ı zorunlu tuttu ve 28 Ocak 2025 sonrasında whois yükümlülüğünü büyük ölçüde kaldırdı. Sızma testçisi için pratik sonuç şudur: bir alan adında whois boş dönerse RDAP uç noktasını dene, çoğu zaman aynı veriyi yapılandırılmış biçimde alırsın. Bu yüzden modern keşifte iki protokolü de sırayla denemek standart alışkanlıktır.
DNS ve e-posta izleri
DNS kayıtları bir kurumun teknoloji haritasını sessizce açar. MX kaydı posta altyapısını gösterir; posta bir bulut servisinde duruyorsa oltalama senaryosu o servisin kurallarına göre kurulur. TXT kayıtları özellikle bereketlidir.
SPF satırı, adına posta gönderebilen sunucuları listeler ve şirketin hangi posta sağlayıcısını kullandığını ele verir. Doğrulama satırları ise hangi bulut ürünlerine kayıt olunduğunu söyler. Tek bir TXT sorgusundan bir bağımlılık listesi çıkar.
SPF'nin biçimi RFC 7208'de tanımlıdır. 'v=spf1' ile başlar, 'include:' ifadeleriyle yetkili sağlayıcıları sıralar ve genelde 'all' mekanizmasıyla biter. E-posta kimlik doğrulamasının ikinci ayağı DMARC'tır; '_dmarc' alt alanındaki TXT kaydında durur ve 'p=' etiketiyle politikayı bildirir.
Bir kurumun DMARC politikası 'p=none' ise sahte gönderim engellenmez, yalnız raporlanır. Bu satır hem savunmanın olgunluğunu hem de bir oltalama testinin ne kadar kolay geçeceğini önceden söyler.
$ dig +short MX hedef.example $ dig +short TXT hedef.example $ dig +short TXT _dmarc.hedef.example
İkinci komutun örnek çıktısı 'v=spf1 include:_spf.saglayici.example -all' biçiminde döner. Bunu satır satır oku. 'v=spf1' kayıt türünü belirtir.
'include:_spf.saglayici.example' hangi sağlayıcının posta göndermeye yetkili olduğunu söyler ve doğrudan bir bağımlılık ifşasıdır. Sondaki '-all' ise listedeki dışında her kaynağı sert biçimde reddet demektir; '~all' görseydin bu yumuşak bir uyarı olurdu. Tek satırdan hem posta sağlayıcısını hem de kurumun ne kadar sıkı yapılandırdığını çıkardın.
Etkinlik 4 / 8
hedef.example alan adının MX kayıtlarını dig ile kısa biçimde sor.
Bu izleri okumanın karşılığı savunma tarafında da vardır. TXT ve SPF kayıtlarını temiz tutmak, artık kullanılmayan sağlayıcıları listeden çıkarmak dışarıya sızan bağımlılık sayısını düşürür. WHOIS gizliliği kayıt sahibi bilgisini maskeler.
DMARC politikasını 'p=reject' seviyesine çekmek, adına gönderilen sahte postayı doğrudan engeller. Saldırganın okuduğu her satır, savunanın kapatabileceği bir açıklıktır; bu yüzden aynı sorguları kurumun kendisi de düzenli çalıştırır. Geçişi aceleye getirmez: önce 'p=none' ile gelen raporları okur, meşru gönderenleri SPF'ye ekler, sonra politikayı sıkılaştırır.
Etkinlik 5 / 8
Doğru mu, yanlış mı?
Pasif keşif hedefin sunucu loglarında kayıt bırakmaz.
Sertifika şeffaflık günlükleri
Bir kuruma verilen her TLS sertifikası, herkese açık ve yalnız eklenebilir günlüklere yazılır. Buna sertifika şeffaflığı (Certificate Transparency) denir. Amaç sahte sertifikayı yakalamaktır, ama yan etkisi keşif için altın değerindedir: bir kurum yönetim panelini gizlese bile, o panele verdiği sertifikanın adı günlükte kalır. crt.sh gibi arayüzler bu günlükleri sorgular ve tek bir joker sertifikadan onlarca iç alt alan adı düşer.
$ curl -s 'https://crt.sh/?q=%25.hedef.example&output=json' | jq -r '.[].name_value' | sort -u
Komutu parça parça çöz. '%25' işareti URL kodlamasında yüzde imidir ve crt.sh için 'her şey' anlamına gelen joker görevi görür; yani '*.hedef.example' altındaki tüm adları ister. jq süzgeci JSON yanıtından yalnız 'name_value' alanını çeker.
Çıktıda 'www.hedef.example', 'posta.hedef.example' gibi düz adların yanında '*.hedef.example' biçiminde joker satırlar da görünür. Joker satırlar tek bir sertifikanın tüm alt alanları kapsadığını gösterir ama tekil bir hedef vermez; genelde 'grep -v "^\*"' ile elenir. sort -u ise tekrar eden adları tek satıra indirir.
Etkinlik 6 / 8
Sertifika şeffaflık kayıtlarını arayarak alt alan adı toplayan popüler site: ____
Bir örnek üstünden gidelim. Bir kurum panelini 'panel-internal.hedef.example' adında yayımlamış ve bu adı hiçbir yere bağlamamış olsun. Ama panele HTTPS verdiği an, sunucu bu adı taşıyan bir sertifika alır ve sertifika günlüğe yazılır. Sen crt.sh sorgusunda bu adı görürsün, oysa arama motorunda ya da sitenin menüsünde izi yoktur.
Gizlemek işe yaramaz; sertifika günlüğü tek satırda paneli açığa çıkarır. Bu kaynak savunan taraf için de erken uyarı sistemidir. Kendi adına verilen sertifikaların günlüğünü izleyen kurum, izinsiz açılmış bir alt alanı saatler içinde fark eder. Dışarıdan nasıl göründüğünü bilmeyen kurum ise o listeyi saldırgana kendi eliyle hazırlatmış olur.
Etkinlik 7 / 8
crt.sh çıktısındaki '*.hedef.example' satırı neden tekil bir hedef vermez?
Derinleş:Sertifika şeffaflığın doğuşu
2011'de bir sertifika otoritesi kırıldı ve saldırganlar büyük servisler adına geçerli sahte sertifikalar üretti. Kimse fark etmeden haftalar geçti, çünkü verilen sertifikaları izleyen açık bir kayıt yoktu. Bu olay sertifika şeffaflığını doğurdu: her sertifika, yalnız eklenebilen ve kriptografik olarak doğrulanan genel günlüklere yazılır.
Protokolün ilk sürümü RFC 6962'de tanımlandı, güncel 2.0 sürümü ise RFC 9162'de duruyor. Tarayıcılar bu düzeni zorunlu kıldı: Chrome, genel güvenilir bir TLS sertifikasını kabul etmek için sertifikanın içine gömülü en az iki ayrı günlük operatöründen imzalı zaman damgası (SCT) ister; ömrü 180 günü aşan sertifikalarda gömülü SCT sayısı üçe çıkar. Sonuç, gizli kalması gereken hiçbir alan adının artık sertifika günlüğünden saklanamamasıdır.
Arama motoru, arşiv ve savunma
Arama motoru operatörleri keşif tablosunu tamamlar. 'site:hedef.example' sorgusu yalnız hedefe ait dizinli sayfaları getirir. 'filetype:pdf' ya da 'filetype:xlsx' belge türünü daraltır ve çoğu zaman yanlışlıkla yayımlanmış iç belgeleri açar.
'inurl:admin' adres içindeki bir sözcüğü, 'intitle:index of' ise dizin listeleme açık bir klasörü arar. Bu sorgular hedefe istek atmaz; arama motorunun daha önce topladığı dizini okur, bu yüzden pasiftir ve hedefin kaydına satır düşürmez.
Arşiv siteleri sabırlı olana ödül verir. web.archive.org silinmiş sayfaların eski kopyalarını tutar. Bir kurum yönetim bağlantısını sitesinden kaldırmış olabilir, ama iki yıl önceki kopya hâlâ arşivde durur.
Eski bir sayfanın kaynağında kaldırılmış bir uç adresi, bir belge üstverisinde kalmış iç kullanıcı adı bulmak olağandır. Bunlar canlı sistemde görünmez ama yapı hakkında doğrudan ipucu verir ve otomatik taramaya nereden başlayacağını söyler.
Topladığın veriyi düzenli tutmak işin ayrılmaz parçasıdır. Her kaynağın çıktısını ayrı dosyaya yaz, tarih at ve çalıştırdığın komutu kaydet. Rapor aşamasında bir bulgunun nereden geldiğini göstermek zorundasın; hafızadan yazılan keşif bölümü denetlenemez. Çalışan adları ve e-postaları toplarken de kişisel veri kurallarına uyar, yalnız testin gerektirdiği kadarını alır ve raporda maskelersin.
Belge üstverisi için de aynı özen gerekir. Bir PDF'in yazar alanında çıkan kullanıcı adı bulgudur, ama kişinin kendisi hedef değildir. Savunma tarafı bu yüzden belgeleri yayımlamadan önce üstveriden arındırır.
Gerçek işte bu aşamanın en somut karşılığı ödül avı (bug bounty) kapsam belgesidir. Bir program hangi alan adlarının test edilebilir olduğunu, hangilerinin dışarıda kaldığını satır satır yazar. Pasif keşif tam da burada değer üretir: topladığın adları kapsamla eşleştirir, dışarıda kalan varlıklara hiç dokunmadan yalnız izinli yüzeye odaklanırsın.
Kapsamı okumadan taramaya başlamak, hem boşa emek hem de yetki sınırını aşma riskidir. İyi keşif, ne yapmayacağını da bilmektir.
Etkinlik 8 / 8
Yetkili bir testte pasif keşif neden aktif taramadan önce gelir?
Okumayı istediğin sırayla sürdürebilirsin. Ders, bütün etkinlikleri cevapladığında tamamlanır.
- Etkinlik 1· Keşfin üç tonu ve MITRE haritası
- Etkinlik 2· Kayıt verisi: whois'ten RDAP'a
- Etkinlik 3· Kayıt verisi: whois'ten RDAP'a
- Etkinlik 4· DNS ve e-posta izleri
- Etkinlik 5· DNS ve e-posta izleri
- Etkinlik 6· Sertifika şeffaflık günlükleri
- Etkinlik 7· Sertifika şeffaflık günlükleri
- Etkinlik 8· Arama motoru, arşiv ve savunma