Virtual Hosts (VHost) Nedir?
Virtual Hosts (VHost) Nedir?

Web Sunucuları Aynı IP’de Birden Fazla Siteyi Nasıl Barındırır?
Web uygulama güvenliği çalışırken bir noktada şunu fark edersiniz:
Aynı IP adresi üzerinde birden fazla web sitesi çalışabiliyor.
Peki bu nasıl mümkün oluyor?
Cevap: Virtual Hosting (Sanal Sunucu Yapılandırması)
Bu yazıda şunları netleştireceğiz:
- Virtual Host nedir?
- Subdomain ile farkı nedir?
- Host header neden kritik?
- VHost brute force nasıl yapılır?
- Pentest sırasında neden önemli?
DNS Sonrası Asıl Olay Nerede Başlıyor?
DNS sadece domain’i IP’ye çevirir.
Örneğin:
www.example.com → 192.168.1.10Ama aynı IP adresi üzerinde:
- example.com
- example2.org
- dev.example.net
gibi birden fazla site olabilir.
İşte burada web sunucusu devreye girer.
Apache, Nginx veya IIS gibi sunucular, gelen isteği HTTP Host header ’ına göre ayırt eder.
Yani sihir DNS’te değil, Host header’dadır.
Host Header Nedir?
Her HTTP isteğinde şu bilgi vardır:
Host: www.example.comWeb sunucusu bu değere bakar ve:
“Bu isteği hangi siteye yönlendirmeliyim?” diye karar verir.
Host header, aynı IP üzerinde çalışan siteler için bir “anahtar” gibi çalışır.
Subdomain vs Virtual Host
Bu ikisi sık karıştırılır ama aynı şey değildir.
Subdomain
Örnek:
blog.example.com- DNS kaydı vardır.
- Aynı IP’ye ya da farklı IP’ye gidebilir.
- Genelde servis ayrımı için kullanılır.
Virtual Host (VHost)
- Web sunucusu içindeki konfigürasyondur.
- DNS kaydı olmak zorunda değildir.
- Aynı sunucuda birden fazla siteyi ayırır.
- Her VHost farklı DocumentRoot’a sahip olabilir.
Yani:
Subdomain → DNS tarafı VHost → Web server tarafı
Bu farkı oturtmak kritik.
DNS Kaydı Olmadan VHost’a Erişilebilir mi?
Evet.
Eğer VHost DNS’te görünmüyorsa, lokal hosts dosyasına manuel ekleme yaparak erişebilirsin:
192.168.1.10 dev.example.comBu sayede DNS çözümlemesini bypass edersin.
Pentest’te çok işe yarar.
Apache VHost Örneği
<VirtualHost *:80>
ServerName www.example1.com
DocumentRoot /var/www/example1
</VirtualHost><VirtualHost *:80>
ServerName www.example2.org
DocumentRoot /var/www/example2
</VirtualHost>Aynı IP → Farklı domain → Farklı içerik
Sunucu Host header’a bakarak doğru dizini döndürür.
Virtual Hosting Türleri
Name-Based Virtual Hosting
- En yaygın yöntem
- Host header’a dayanır
- Tek IP ile birçok site
Avantaj: Ucuz ve esnek Dezavantaj: SSL/TLS yapılandırması karmaşık olabilir
IP-Based Virtual Hosting
- Her siteye ayrı IP
- Host header’a gerek yok
Avantaj: Daha izole yapı Dezavantaj: IP maliyeti
Port-Based Virtual Hosting
- Aynı IP, farklı portlar
- Örnek: site1:80, site2:8080
Daha az kullanılır çünkü kullanıcı port yazmak zorunda kalır.
Host Discovery Neden Önemli?
Web keşfi sırasında şunları ararız:
- Gizli admin paneller
- Internal test ortamları
- Geliştirme sunucuları
- Backup sistemleri
Çoğu zaman bu ortamlar:
- DNS’te görünmez
- Ama web sunucusunda aktif olabilir
İşte burada VHost fuzzing devreye girer.
Gobuster ile VHost Brute Force
Önce ihtiyacımız olanlar:
- Hedef IP adresi
- Wordlist (örneğin SecLists)
Komut:
gobuster vhost -u http://target_IP -w wordlist.txt --append-domainParametreler:
-u → hedef URL
- -w → wordlist
- --append-domain → domain’i otomatik ekler
Ek flag’ler:
-t 50 → thread artır
-k → SSL hatalarını yok say
-o out.txt → çıktıyı kaydetÖrnek çıktı:
Found: forum.inlanefreight.htb:81 Status: 200Bu, geçerli bir VHost bulduğun anlamına gelir.
Güvenlik Açısından Kritik Nokta
VHost brute force:
- Yüksek trafik üretir
- IDS/WAF tarafından fark edilebilir
- Yetkisiz sistemlerde yapılmamalıdır
Etik sınırlar net olmalı.
Sonuç
Virtual hosting, modern web altyapısının temel taşlarından biridir.
Ama aynı zamanda:
- Yanlış yapılandırıldığında
- DNS’te görünmeyen servisler bırakıldığında
- Internal ortamlar expose edildiğinde
ciddi güvenlik riskine dönüşür.
Gerçek web keşfi DNS ile başlar ama Host header ile derinleşir.
Certificate Transparency (CT) Logs Nedir?
Subdomain Keşfinde En Güçlü Silahlardan Biri
İnternet devasa bir yapı. Ama bu yapının ayakta kalmasını sağlayan şey güven .
Bu güvenin temel taşlarından biri de SSL/TLS protokolüdür . Tarayıcınız ile bir web sitesi arasındaki iletişimi şifreler.
Bu sistemin merkezinde ise küçük ama kritik bir dosya vardır:
Dijital sertifika.
Ancak sertifika sistemleri kusursuz değildir. Yanlış ya da kötü niyetli şekilde üretilmiş sertifikalar:
- Sahte site oluşturmak
- Ortadaki adam (MITM) saldırısı yapmak
- Zararlı yazılım yaymak
gibi amaçlarla kullanılabilir.
İşte burada devreye giren mekanizma: Certificate Transparency (CT) Logs
Certificate Transparency (CT) Logs Nedir?
CT log’ları:
- Herkese açık
- Append-only (sadece ekleme yapılabilen)
- SSL/TLS sertifikalarının kaydedildiği global defterlerdir.
Bir Certificate Authority (CA) yeni bir sertifika ürettiğinde, bunu birden fazla CT log’a göndermek zorundadır.
Bu log’lar bağımsız organizasyonlar tarafından tutulur ve herkes tarafından incelenebilir.
Basitçe söylemek gerekirse:
CT Logs = İnternette üretilen tüm sertifikaların halka açık arşivi.
Neden Bu Kadar Önemli?
Rogue Sertifikaların Erken Tespiti
Rogue certificate = Yetkisiz ya da sahte üretilmiş sertifika.
CT log’ları sayesinde:
- Domain sahipleri
- Güvenlik araştırmacıları
şüpheli sertifikaları erkenden fark edebilir ve iptal ettirebilir.
Certificate Authority Hesap Verebilirliği
Eğer bir CA kurallara aykırı sertifika üretirse, bu durum CT log’larda görünür.
Bu da:
- Güven kaybına
- Yaptırıma
- İtibar zedelenmesine
neden olabilir.
Web PKI Güçlenir
Web PKI (Public Key Infrastructure), güvenli internet iletişiminin temelidir.
CT log’ları, sertifikaların şeffaf şekilde izlenmesini sağlayarak bu güven zincirini güçlendirir.
CT Logs ve Web Recon
Şimdi olayın pentest tarafına gelelim.
Subdomain enumeration yaparken genelde:
- Wordlist brute force
- DNS brute forcing
- Permutation teknikler
kullanırız.
Ama bunların hepsi tahmine dayanır.
CT log’lar ise tahmin değil, gerçek verilere dayanır.
CT Logs’un Subdomain Keşfindeki Gücü
CT log’lar sayesinde:
- Domain için üretilmiş tüm sertifikaları görebilirsin.
- Bu sertifikaların SAN (Subject Alternative Name) alanlarını inceleyebilirsin.
- Aktif olmayan ama geçmişte kullanılmış subdomain’leri bulabilirsin.
Bu ne demek?
Wordlist’in yetmediği yerde CT log’lar seni kurtarır.
Ayrıca:
- Eski
- Süresi dolmuŞ
- Terk edilmiş
subdomain’leri de görebilirsin.
Ve tahmin et bakalım…
Bu ortamlar genelde patch’lenmemiş olur.
CT Log Arama Araçları
İki popüler araç var:
crt.sh
Özellikler:
- Basit web arayüzü
- Domain ile arama
- SAN bilgilerini gösterme
Avantaj:
- Ücretsiz
- Kayıt gerektirmez
- Hızlı kullanım
Dezavantaj:
- Gelişmiş filtreleme sınırlı
Censys
Özellikler:
- Gelişmiş filtreleme
- Sertifika özelliklerine göre arama
- API erişimi
Avantaj:
- Detaylı analiz
- Misconfiguration tespiti
Dezavantaj:
- Kayıt gerekir
- Ücretsiz plan kısıtlıdır
Terminal Üzerinden CT Log Arama (crt.sh API)
Web arayüzü güzel ama otomasyon istiyorsak API kullanırız.
Örnek: facebook.com için “dev” içeren subdomain’leri bulalım.
curl -s "https://crt.sh/?q=facebook.com&output=json" | \
jq -r '.[] | select(.name_value | contains("dev")) | .name_value' | \
sort -uKomutun Açıklaması
curl -s "https://crt.sh/?q=facebook.com&output=json"facebook.com için JSON çıktısı alır.
jq -r '.[] | select(.name_value | contains("dev")) | .name_value'JSON içinde “dev” geçen domain’leri filtreler.
sort -uSonuçları sıralar ve tekrarları siler.
CT Logs vs Brute Force
ÖzellikBrute ForceCT LogsTahmin gerektirirEvetHayırWordlist’e bağlıEvetHayırTarihsel veriHayırEvetEski subdomain keşfiZorKolay
CT log’lar brute force’un alternatifi değil, tamamlayıcısıdır.
Gerçek bir recon sürecinde:
- CT logs
- Subfinder / Amass
- DNS brute force
- Permutation
birlikte kullanılır.
Güvenlik Perspektifi
CT log’lar sadece saldırganlar için değil:
- SOC ekipleri
- Blue team
- Domain sahipleri
için de kritik bir izleme kaynağıdır.
Eğer domain’iniz için bilinmeyen bir sertifika üretildiyse, CT log’da görürsünüz.
Ve erken aksiyon alırsınız.
Sonuç
Certificate Transparency logs:
- Web PKI’nin şeffaflık mekanizmasıdır.
- Subdomain keşfinde güçlü bir veri kaynağıdır.
- Eski ve unutulmuş servisleri ortaya çıkarabilir.
- Recon kalitesini ciddi şekilde artırır.
Eğer web güvenliği öğreniyorsanız, CT log kullanmadan yapılan recon eksik kalır.
Web Fingerprinting Nedir?
Bir Hedefin Teknoloji Stack’ini Çıkarmanın En Pratik Yolu (HTB Örnekli)
Web reconnaissance (keşif) dediğimiz şeyin en kritik parçalarından biri fingerprinting .
Mantık basit: Bir hedefin “dijital DNA”sını çıkarırsın.
- Hangi web server?
- Hangi işletim sistemi?
- CMS var mı?
- WAF var mı?
- Versiyonlar güncel mi?
- Header’lar güvenli mi?
Bu bilgiler tek başına “hack” değildir ama doğru saldırı stratejisini seçtirir. Yanlış stack’e saldırmak zaman kaybıdır.
Fingerprinting Neden Bu Kadar Kritik?
Fingerprinting’in web recon içinde “çekirdek” olmasının birkaç net sebebi var:
- Hedefe yönelik saldırı (Targeted Attacks) Teknolojiyi bilince, o teknolojiye ait bilinen zafiyetleri ve exploit’leri araştırırsın. Rastgele deneme yerine “nokta atışı” yaparsın.
- Misconfiguration yakalama Eski sürüm, default ayar, yanlış header konfigürasyonu, açık debug endpoint’i… Bunlar çoğu zaman fingerprinting ile ortaya dökülür.
- Önceliklendirme (Prioritising Targets) Birden fazla hedef varsa, hangisinin daha “yumuşak” olduğunu versiyon/konfigürasyona göre seçersin.
- Komple profil çıkarma WHOIS + DNS + subdomain + fingerprinting = hedefin altyapı haritası. Bu harita olmadan exploit aşaması çoğu zaman kör dövüş.
Fingerprinting Teknikleri
Web fingerprinting genelde şu yöntemlerle yapılır:
- Banner Grabbing Servisin verdiği banner’ları okuyarak ürün/versiyon yakalamak.
- HTTP Header Analizi Server , X-Powered-By , Link , Set-Cookie gibi header’lar bazen resmen her şeyi söyler.
- Özel isteklerle “tepki” alma Bazı sunucuların error mesajları / davranışları parmak izi gibidir.
- Sayfa içeriği analizi HTML, JS dosyaları, footer/copyright, wp- gibi path’ler, kaynak kodunda kalan ipuçları…
Kullanılan Araçlar
Fingerprinting’i otomatikleştiren araçlar var. Öne çıkanlar:
- Wappalyzer: Tarayıcı eklentisi/online analiz (framework, analytics, CMS vs.)
- BuiltWith: Daha detaylı teknoloji raporu (ücretsiz + ücretli)
- WhatWeb: CLI tabanlı, signature database ile çalışır
- Nmap: Servis/OS fingerprinting + NSE scriptleri
- Netcraft: Hosting/tech/security raporu
- wafw00f: WAF var mı, varsa ne?
Uygulamalı Örnek: inlanefreight.com Fingerprinting
Hedefin “DNA”sını çıkarmak için önce en basitinden başlarız: curl ile header çekmek.
1) Banner Grabbing (curl -I)
curl -I inlanefreight.comÖrnek çıktı:
HTTP/1.1 301 Moved Permanently
Server: Apache/2.4.41 (Ubuntu)
Location: https://inlanefreight.com/Buradan iki şey yakaladık:
- Web server: Apache
- Versiyon: 2.4.41
- Distro: Ubuntu
Ama bir de redirect var. O zaman HTTPS banner’ını da çekiyoruz.
curl -I https://inlanefreight.comÖrnek çıktı:
HTTP/1.1 301 Moved Permanently
Server: Apache/2.4.41 (Ubuntu)
X-Redirect-By: WordPress
Location: https://www.inlanefreight.com/Burada olay büyüyor: X-Redirect-By: WordPress = arka tarafta WordPress var.
Redirect yine var. O yüzden bir de www’ye bakıyoruz:
curl -I https://www.inlanefreight.comÖrnek çıktı:
HTTP/1.1 200 OK
Server: Apache/2.4.41 (Ubuntu)
Link: <https://www.inlanefreight.com/index.php/wp-json/>; rel="https://api.w.org/"wp-json gördün mü? WordPress kokusu değil, bildiğin WordPress’in kendisi.
2) WAF Var mı? (wafw00f)
Recon yaparken WAF varsa bilmek zorundasın, çünkü:
- bazı isteklerin bloklanır,
- rate limit yersin,
- false positive’ler oluşur.
Kurulum:
pip3 install git+https://github.com/EnableSecurity/wafw00fKullanım:
wafw00f inlanefreight.comÖrnek çıktı:
[+] The site https://inlanefreight.com is behind Wordfence (Defiant) WAF.Demek ki WordPress + Wordfence var. Yani “normal recon” bile bazen filtrelenebilir. Notunu al.
3) Nikto ile Teknoloji + Zayıf Nokta İpuçları
Nikto normalde web server scanner ama fingerprinting için de güçlü.
Sadece “software identification” çalıştırmak için:
nikto -h inlanefreight.com -Tuning bÖrnek bulguların özeti:
- IP’ler: hem IPv4 hem IPv6
- Server: Apache/2.4.41 (Ubuntu)
- WordPress tespiti + wp-login sayfası
- license.txt dosyası (bilgi sızdırma)
- Bazı security header’lar eksik:
- Strict-Transport-Security (HSTS) yok
- X-Content-Type-Options yok
- Cookie’lerde httponly eksikliği gibi güvenlik zayıflıkları
- Apache sürümü eski olabilir (güncel sürümlerle kıyaslanmalı)
- Content-Encoding deflate → BREACH gibi saldırılara dair risk notu
Burada kritik nokta şu: Nikto “buldu” diye hemen “vuln var” diye atlamazsın. Ama sana nereye bakacağını söyler. Recon’un olayı budur.
HTB Tarzı Mini Checkpoint (Lab Soruları Gibi)
Bir hedefte fingerprinting’den şunları net cevaplayabilmelisin:
- Apache sürümü ne?
- Hangi CMS kullanılıyor?
- Sunucu OS ne?
Örnek lab çıktısı gibi:
- Apache: 2.4.41
- CMS: Joomla
- OS: Ubuntu
Bu üçlü, devamında yapacağın her şeyi yönlendirir.
Sonuç: Fingerprinting = Zaman Kazandıran “Ön İstihbarat”
Fingerprinting, “havalı görünmek” için değil; yanlış yere saldırıp saatlerini çöpe atmamak için yapılır.
- Stack’i bil → doğru zafiyete bak
- WAF’ı bil → tekniğini ayarla
- Header’ları gör → misconfig yakala
- CMS’yi bul → saldırı yüzeyini belirle
Kısaca: Recon’u gerçek recon yapan kısım burası.







