Ağ Güvenliği Laboratuvarı: RDP Servis Analizi ve Zafiyet Taraması
Uzak masaüstü servisleri, özellikle kurumsal ağlarda en sık karşılaşılan servislerden biridir. Bir sızma testi veya güvenlik değerlendirmesi sırasında 3389/TCP (RDP - Remote Desktop Protocol) portunun açık olduğunu görmek önemli bir bulgu olabilir. Ancak yalnızca portun açık olması sistemin ele geçirilebileceği anlamına gelmez.
Uyarı: Bu içerik yalnızca yetkili sistemler üzerinde gerçekleştirilen güvenlik testleri içindir.
İçindekiler
RDP Nedir?
RDP Servisinin Tespiti
Servis ve Sürüm Bilgisi Toplama
Şifreleme Yapısının İncelenmesi
NTLM Bilgilerinin Elde Edilmesi
MS12-020 Güvenlik Açığı Kontrolü
xFreeRDP ile Güvenli Bağlantı Testi
Elde Edilen Bilgilerin Analizi
Savunma Önerileri
Sonuç
RDP Nedir?
Remote Desktop Protocol (RDP), Microsoft tarafından geliştirilen uzak masaüstü protokolüdür.
Varsayılan port:
TCP/3389
RDP sayesinde kullanıcılar uzaktaki Windows sistemlere grafiksel arayüz üzerinden erişebilir.
Kurumsal ortamlarda:
Sunucu yönetimi
Uzaktan destek
Sistem yönetimi
Sanal masaüstü altyapıları
için yaygın olarak kullanılmaktadır.
1. RDP Servisinin Tespit Edilmesi
İlk aşama ilgili portun gerçekten açık olup olmadığını belirlemektir.
nmap -sV -p3389 HEDEF_IP
Örnek:
nmap -sV -p3389 192.168.1.25
Parametreler
| Parametre | Açıklama |
|---|---|
-sV | Servis sürüm tespiti |
-p3389 | Yalnızca RDP portunu tarar |
Örnek çıktı:
PORT STATE SERVICE VERSION3389/tcp open ms-wbt-server Microsoft Terminal Services
Bu çıktı:
Servisin aktif olduğunu,
RDP çalıştığını,
Nmap'in Microsoft Terminal Services tespit ettiğini
gösterir.
2. RDP Şifreleme Mekanizmasını İnceleme
RDP servisinin hangi güvenlik katmanlarını desteklediğini incelemek oldukça önemlidir.
Nmap NSE scripti:
nmap --script rdp-enum-encryption -p3389 HEDEF_IP
Örnek:
nmap --script rdp-enum-encryption -p3389 192.168.1.25
Amaç:
TLS desteğini öğrenmek
Network Level Authentication (NLA) kullanımını görmek
Güvenlik katmanlarını belirlemek
Örnek çıktı:
| rdp-enum-encryption:| Security layer| CredSSP (NLA): SUCCESS| RDSTLS: SUCCESS| SSL: SUCCESS| Native RDP: SUCCESS
Sonuçların Yorumu
CredSSP (NLA)
En güvenli yöntemlerden biridir.
CredSSP (NLA): SUCCESS
görülüyorsa istemciler bağlantı kurmadan önce kimlik doğrulaması yapmalıdır.
Native RDP
Eski sistemlerde görülebilir.
NLA kullanılmıyorsa:
Kimlik doğrulama öncesi daha fazla bilgi sızabilir.
Bazı eski saldırılar mümkün olabilir.
Güvenlik Açısından Önemi
İdeal yapı:
CredSSP (NLA) = EnabledTLS = Enabled
3. NTLM Bilgilerinin Toplanması
Nmap'in NSE modülü uzak sistem hakkında çeşitli kimlik bilgilerini pasif biçimde ortaya çıkarabilir.
Komut:
nmap --script rdp-ntlm-info -p3389 HEDEF_IP
Örnek:
nmap --script rdp-ntlm-info -p3389 192.168.1.25
Örnek çıktı:
| rdp-ntlm-info:| Target_Name: SERVER01| NetBIOS_Domain_Name: CORP| NetBIOS_Computer_Name: SERVER01| DNS_Domain_Name: corp.local| DNS_Computer_Name: server01.corp.local| Product_Version: 10.0.20348
Elde Edilebilecek Bilgiler
| Bilgi | Açıklama |
|---|---|
| Hostname | Bilgisayar adı |
| Domain adı | Active Directory etki alanı |
| DNS bilgileri | İç ağ isimlendirmesi |
| İşletim sistemi sürümü | Windows sürümü hakkında ipucu |
Bu bilgiler:
Ağ haritalama
Varlık envanteri oluşturma
Savunma zafiyetlerinin tespiti
için kullanılabilir.
4. MS12-020 Güvenlik Açığının Kontrolü
Microsoft tarafından yayımlanan MS12-020, eski Windows RDP servislerini etkileyen kritik bir güvenlik açığıdır.
Kontrol komutu:
nmap --script rdp-vuln-ms12-020 -p3389 HEDEF_IP
Örnek:
nmap --script rdp-vuln-ms12-020 -p3389 192.168.1.25
Örnek çıktı:
| rdp-vuln-ms12-020:| VULNERABLE:| Remote Desktop Protocol vulnerability (MS12-020)
Bu script yalnızca güvenlik açığının varlığını test eder.
Modern Windows sürümlerinin büyük çoğunluğu bu açığa karşı yamalanmıştır.
Etkilenen Sistemler
Windows XP
Windows Server 2003
Windows Server 2008 (yamasız)
Windows 7 (yamalanmamış)
5. xFreeRDP ile Güvenli Bağlantı Testi
Linux ortamında RDP istemcisi olarak sıklıkla:
xFreeRDP kullanılır.
Komut:
xfreerdp /v:HEDEF_IP /cert:ignore
Örnek:
xfreerdp /v:192.168.1.25 /cert:ignore
Parametre açıklaması:
| Parametre | Açıklama |
|---|---|
/v: | Hedef sistem |
/cert:ignore | Sertifika uyarılarını yok sayar |
Eğer sistem kimlik doğrulama istiyorsa:
Username:Password:
ekranı görüntülenir.
Bu aşama:
RDP servisinin gerçekten erişilebilir olduğunu
Ağ seviyesinde engel bulunmadığını
NLA kullanımını
doğrulamaya yardımcı olur.
Örnek Keşif Süreci
# Servis doğrulamanmap -sV -p3389 192.168.1.25# Şifreleme analizinmap --script rdp-enum-encryption -p3389 192.168.1.25# NTLM bilgilerinmap --script rdp-ntlm-info -p3389 192.168.1.25# MS12-020 kontrolünmap --script rdp-vuln-ms12-020 -p3389 192.168.1.25# Bağlantı testixfreerdp /v:192.168.1.25 /cert:ignore
Savunma Tarafı İçin Öneriler
Kurumlar aşağıdaki önlemleri uygulamalıdır:
✅ Gereksiz RDP servislerini kapatın.
✅ İnternete doğrudan RDP açmayın.
✅ VPN üzerinden erişim sağlayın.
✅ Çok faktörlü kimlik doğrulama (MFA) kullanın.
✅ NLA'yı etkinleştirin.
✅ Güçlü parola politikaları uygulayın.
✅ Başarısız giriş denemelerini izleyin.
✅ Düzenli güvenlik yamaları yükleyin.
✅ RDP erişimlerini yalnızca belirli IP adresleriyle sınırlandırın.
Sonuç
3389 numaralı portun açık olması, sistem yöneticileri ve güvenlik uzmanları için önemli bir göstergedir. Ancak gerçek güvenlik değerlendirmesi; servis sürümünün, şifreleme mekanizmalarının, kimlik doğrulama yapılandırmasının ve yama seviyesinin incelenmesiyle yapılmalıdır.
Doğru yapılandırılmış bir RDP servisi, uzaktan yönetim için güvenli bir çözüm sunarken; yanlış yapılandırılmış veya güncel olmayan sistemler ciddi riskler oluşturabilir.
Ağ Güvenliği Laboratuvarı: RDP Servis Analizi ve Zafiyet Taraması
Siber güvenlik süreçlerinde hedef sistemin yüzey alanını haritalamak, hem saldırganlar (Red Team) hem de savunmacılar (Blue Team) için kritik bir adımdır. Ağda açık bir 3389 (RDP - Remote Desktop Protocol) portu ile karşılaşmak, sistem yöneticilerine doğrudan grafiksel erişim imkanı sunabileceği için her zaman dikkat çekicidir.
1. Keşif ve Bilgi Toplama Adımları
Ağ taramaları sırasında 3389 portunun açık olduğu tespit edildikten sonra, servisin detaylarını öğrenmek için Nmap'in güçlü betik (script) motoru olan NSE (Nmap Scripting Engine) devreye girer.
Servis Versiyon Tespiti
nmap -sV -p3389 HEDEF_IP
Mekanik:
-sVparametresi, portta çalışan servisin tam sürümünü tespit etmeye çalışır. RDP genellikle standart yapılandırmalarda çalışsa da, versiyon tespiti savunmacılar için varlık envanteri (asset inventory) oluşturmada, saldırganlar için ise sürüme özel bilinen zafiyetleri (CVE) araştırmada kullanılır.
Şifreleme Protokollerinin Analizi
nmap --script rdp-enum-encryption -p3389 HEDEF_IP
Mekanik: Bu betik, hedef RDP sunucusunun desteklediği şifreleme seviyelerini ve protokolleri (örneğin; SSL/TLS, CredSSP veya standart RDP şifrelemesi) listeler.
Önemi: Zayıf veya eski şifreleme algoritmalarının kullanılıp kullanılmadığını (örneğin, RC4 zafiyetleri) tespit etmek, Ortadaki Adam (MitM) saldırılarına karşı risk durumunu belirlemek için gereklidir.
NTLM Bilgi Çıkarımı
nmap --script rdp-ntlm-info -p3389 HEDEF_IP
Mekanik: RDP servisi NLA (Network Level Authentication) gerektiriyorsa, genellikle NTLMSSP (NTLM Security Support Provider) üzerinden iletişim kurar. Bu Nmap betiği, kimlik doğrulaması yapmadan hedeften Windows Domain adı, bilgisayarın NetBIOS adı ve işletim sistemi sürümü gibi kritik iç ağ bilgilerini sızdırır. Savunma mimarisinde bu bilgi sızıntısı, Active Directory yapısının ifşa olması anlamına gelir.
Zafiyet Taraması (Örnek: MS12-020)
nmap --script rdp-vuln-ms12-020 -p3389 HEDEF_IP
Mekanik: RDP protokolünde geçmişte yaşanmış en kritik açıklardan biri olan MS12-020 (CVE-2012-0002) için tarama yapar.
Önemi: Bu zafiyet, saldırganın uzaktan özel olarak hazırlanmış paketler göndererek sunucuyu çökertmesine (Mavi Ekran - DoS) veya uzaktan kod çalıştırmasına (RCE) olanak tanır. Laboratuvar ortamlarında yama yönetiminin (patch management) önemini göstermek için ideal bir örnektir.
2. RDP Bağlantı Testleri
Keşif aşaması tamamlandıktan sonra, elde edilen veriler ışığında servise meşru bir araç ile bağlanılarak testler gerçekleştirilir.
xfreerdp /v:HEDEF_IP /cert:ignore
Mekanik:
xfreerdp, Linux tabanlı sistemlerde RDP bağlantısı kurmak için kullanılan açık kaynaklı ve yetenekli bir istemcidir./cert:ignoreParametresi: RDP sunucusunun sunduğu SSL/TLS sertifikasının geçerliliğini denetlemeyi atlar. Eğitim ve test laboratuvarlarında (self-signed sertifikalar kullanıldığı için) kolaylık sağlasa da, gerçek dünyada bu parametrenin kullanımı trafiğin araya girilerek (MitM) dinlenmesine zemin hazırlayabilir.
3. Blue Team Savunma Stratejisi: RDP Nasıl Sıkılaştırılır?
Bir sistem yöneticisi veya siber güvenlik uzmanı olarak, RDP servisinin dış ağlara açık olması veya iç ağda güvensiz yapılandırılması kabul edilemez bir risktir. Bu riskleri bertaraf etmek için şu adımlar uygulanmalıdır:
İnternete Kapalı Tutun: RDP (Port 3389) kesinlikle doğrudan internete (WAN) açık olmamalıdır. Uzak bağlantı gerekiyorsa VPN (Virtual Private Network) tünelleri veya RDP Gateway sunucuları kullanılmalıdır.
NLA (Network Level Authentication) Aktifleştirin: Bağlantı kurulmadan önce kimlik doğrulaması yapılmasını zorunlu kılarak, MS12-020 gibi kimlik doğrulama öncesi (pre-auth) RCE zafiyetlerinin önüne geçer.
Erişim Kontrolleri ve Loglama: Sadece belirli IP adreslerinden veya VLAN'lardan RDP erişimine izin verecek Firewall kuralları yazılmalıdır. Ayrıca başarısız giriş denemeleri (Brute-Force tespiti) merkezi bir log sunucusunda (SIEM) izlenmelidir.
Güncel Tutun: Sistemlerin Windows güncellemeleri düzenli olarak yapılmalı, yeni keşfedilen RDP zafiyetlerine karşı sistemler yamanmalıdır.
Wireshark ve Tshark ile RDP Trafik Analizi
Bir önceki bölümde Nmap ve xfreerdp kullanarak hedef sistemdeki 3389 portunu keşfetmiş ve zafiyet taraması gerçekleştirmiştik. Ancak gerçek bir siber güvenlik uzmanı, araçların ekrana yazdırdığı çıktıların ötesine geçerek ağ kablosundan veya havadan geçen paketlerin anatomisini okuyabilmelidir.
Bu bölümde, RDP (Remote Desktop Protocol) bağlantısının el sıkışma (handshake) sürecini ve Nmap taramalarının ağda bıraktığı izleri Wireshark (Grafiksel Arayüz) ve Tshark (Komut Satırı) ile nasıl analiz edeceğimizi inceleyeceğiz.
1. RDP Bağlantısının Anatomisi (El Sıkışma Süreci)
Standart bir RDP oturumu başladığında, TCP 3'lü el sıkışmasının (SYN, SYN-ACK, ACK) ardından karmaşık bir müzakere süreci başlar. RDP, verilerini TPKT (ISO Transport Service) ve COTP (Connection-Oriented Transport Protocol) protokolleri içerisine kapsüller (encapsulation).
Paket yakalama araçlarında şu aşamaları gözlemleriz:
Connection Initiation (Bağlantı Başlatma): İstemci, X.224 Connection Request PDU paketi gönderir. Hangi güvenlik protokolünün (Standart RDP, TLS, CredSSP) kullanılacağı burada talep edilir.
Basic Settings Exchange (Temel Ayar Değişimi): Ekran çözünürlüğü, klavye dili ve istemci adı (hostname) gibi bilgiler sunucuya iletilir.
Channel Connection (Kanal Bağlantısı): Ses, pano (clipboard) ve dosya paylaşımı gibi sanal kanallar oluşturulur.
Security Setup (Güvenlik Kurulumu): Şifreleme anahtarları takas edilir.
2. Tshark ile Terminal Üzerinden RDP İz Avı
Öğrencilerin komut satırı hakimiyetini artırmak (özellikle Red Team senaryolarında grafik arayüz bulunmayan sunucularda çalışırken) Tshark kullanımı kritiktir.
Ağ Arayüzünü Dinlemeye Başlamak: Sadece 3389 portuna gelen ve giden trafiği yakalamak için şu komut kullanılır:
tshark -i eth0 -f "tcp port 3389" -w rdp_analiz.pcap
(Not:
eth0yerine laboratuvarınızdaki aktif ağ arayüzünü yazmalısınız.)
Yakalanan Trafikte Sadece RDP Paketlerini Filtrelemek:
Kaydedilen .pcap dosyasını okurken TCP el sıkışmalarını gizleyip doğrudan RDP protokolü detaylarına odaklanmak için:
tshark -r rdp_analiz.pcap -Y "rdp or tpkt"
Nmap NTLM Sızıntısını Tespit Etmek (Blue Team):
Nmap'in rdp-ntlm-info betiği çalıştırıldığında, NTLMSSP protokolü üzerinden Domain ve Hostname bilgileri açık veya kolay çözülebilir şekilde iletilir. Tshark ile bu sızıntıyı yakalamak için:
tshark -r rdp_analiz.pcap -Y "ntlmssp" -V
Bu komutun çıktısında, makinenin Windows sürümü ve NetBIOS adı gibi kritik istihbarat verilerinin ağda nasıl dolaştığı net bir şekilde görülecektir.
3. Wireshark ile Görsel Analiz (Blue Team Perspektifi)
Grafiksel arayüz, paketlerin hiyerarşik yapısını (OSI Modeli katmanları) öğrencilere göstermek için mükemmeldir.
Wireshark Filtreleme Kuralları:
Üstteki arama çubuğuna (Display Filter) sadece tcp.port == 3389 yazmak yerine daha spesifik filtreler kullanılmalıdır:
Sadece RDP paketlerini görmek için:
rdpNmap zafiyet tarama (MS12-020) paketlerini tespit etmek için: Nmap, bu taramayı yaparken özel boyutlu, parçalanmış (fragmented) RDP paketleri gönderir. Anormal boyuttaki TPKT paketlerini incelemek, saldırı girişimini doğrular.
Şifrelenmemiş RDP bağlantı denemeleri:
rdp.encryption_level == 0
Öğrenciler İçin Kritik Soru: "Bu Saldırıyı Nasıl Gördük?"
Eğer Nmap ile rdp-enum-encryption taraması yapılmışsa, Wireshark üzerinde arka arkaya çok sayıda Connection Request (Bağlantı İsteği) ve sunucudan dönen Connection Confirm (Bağlantı Onayı) paketleri görülür. Normal bir kullanıcı saniyeler içinde 15 farklı şifreleme algoritmasını test edemeyeceğine göre, bu durum Mavi Takım için bariz bir "Otomatize Tarama/Reconnaissance" alarmıdır.
Laboratuvar Çıktısı: Güvenlik yalnızca portları kapatmak değil, o portlardan geçen verinin ne anlama geldiğini bilmektir. Ağ dinleme araçları, sistemlere gönderilen körleme komutların gerçek dünyadaki fiziksel (paket bazlı) karşılığını gösteren en iyi öğretmenlerdir.
Yorumlar