top of page

Virtual Hosts (VHost) Nedir?

Yazarın fotoğrafı: Songül ÖZÜGÜRLER
Songül ÖZÜGÜRLER
28 Nis
7 dakikada okunur

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

Ama 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.com

Web 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.com

Bu 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-domain

Parametreler:

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

Bu, 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 -u

Komutun 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 -u

Sonuç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/wafw00f

Kullanı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ı.

 
 
bottom of page