# 3389 - RDP Pentesting
AWS hacklemeyi sıfırdan kahraman olmak içinhtARTE (HackTricks AWS Kırmızı Takım Uzmanı)öğrenin!
HackTricks'ı desteklemenin diğer yolları:
* **Şirketinizi HackTricks'te reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARINI**](https://github.com/sponsors/carlospolop) kontrol edin!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* [**The PEASS Ailesi'ni**](https://opensea.io/collection/the-peass-family) keşfedin, özel [**NFT'lerimiz**](https://opensea.io/collection/the-peass-family) koleksiyonumuz
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**'ı takip edin**.
* **Hacking hilelerinizi** [**HackTricks**](https://github.com/carlospolop/hacktricks) ve [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github depolarına **PR göndererek paylaşın**.
**Hemen kullanılabilir zafiyet değerlendirme ve penetrasyon testi kurulumu**. 20'den fazla araç ve özellikle birlikte her yerden tam bir pentest çalıştırın. Bu araçlar ve modüller, pentester'ları değiştirmez - onlara daha derine kazma, kabukları patlatma ve eğlenme zamanı kazandırmak için özel olarak geliştirilmiştir.
{% embed url="https://pentest-tools.com/" %}
## Temel Bilgiler
Microsoft tarafından geliştirilen **Uzak Masaüstü Protokolü** (**RDP**), bilgisayarlar arasında ağ üzerinden grafik arayüz bağlantısı kurmayı sağlamak için tasarlanmıştır. Bu tür bir bağlantı kurmak için kullanıcı tarafından **RDP** istemci yazılımı kullanılırken, aynı anda uzak bilgisayarın **RDP** sunucu yazılımını çalıştırması gerekmektedir. Bu kurulum, uzak bir bilgisayarın masaüstü ortamının sorunsuz kontrol ve erişimini sağlar ve temel olarak kullanıcının yerel cihazına arayüzünü getirir.
**Varsayılan port:** 3389
```
PORT STATE SERVICE
3389/tcp open ms-wbt-server
```
## Numaralandırma
### Otomatik
{% code overflow="wrap" %}
```bash
nmap --script "rdp-enum-encryption or rdp-vuln-ms12-020 or rdp-ntlm-info" -p 3389 -T4
```
{% endcode %}
Bu, mevcut şifreleme ve DoS zafiyetini kontrol eder (hizmete DoS yapmadan) ve NTLM Windows bilgilerini (sürümleri) elde eder.
### [Brute force](../generic-methodologies-and-resources/brute-force.md#rdp)
**Dikkatli olun, hesapları kilitleyebilirsiniz**
### **Password Spraying**
**Dikkatli olun, hesapları kilitleyebilirsiniz**
```bash
# 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/parola ile bağlanma
RDP (Uzak Masaüstü Protokolü) hedef sistemlere erişmek için kullanılan bir protokoldür. Bilinen kimlik bilgileri veya parolalar kullanılarak RDP'ye bağlanmak, hedef sisteme yetkisiz erişim sağlamak için kullanılan bir yöntemdir.
Bu yöntem, hedef sistemin varsayılan kimlik bilgileri veya parolaları kullanılarak gerçekleştirilebilir. Örneğin, hedef sistemin yönetici hesabının varsayılan parolasını veya başka bir kullanıcının parolasını biliyorsanız, RDP üzerinden hedef sisteme bağlanabilirsiniz.
Ayrıca, hedef sistemin parolasının hash değerini elde ettiyseniz, bu hash değerini kullanarak da RDP'ye bağlanabilirsiniz. Hash değeri, parolanın şifrelenmiş bir biçimidir ve doğru algoritma kullanılarak çözülebilir.
Bu yöntem, hedef sistemin güvenlik zafiyetlerini veya zayıf noktalarını hedefleyen bir saldırı yöntemidir. Ancak, etik olmayan veya yasa dışı amaçlarla kullanıldığında yasa dışı bir faaliyet olarak kabul edilir.
```bash
rdesktop -u
rdesktop -d -u -p
xfreerdp [/d:domain] /u: /p: /v:
xfreerdp [/d:domain] /u: /pth: /v: #Pass the hash
```
### Bilinen kimlik bilgilerini RDP hizmetlerine karşı kontrol etme
rdp\_check.py, impacket tarafından sağlanan bir araçtır ve belirli kimlik bilgilerinin bir RDP hizmeti için geçerli olup olmadığını kontrol etmenizi sağlar:
```bash
rdp_check /:@
```
**Anında kullanılabilir zafiyet değerlendirme ve penetrasyon testi kurulumu**. Recon'dan raporlamaya kadar olan 20'den fazla araç ve özellikle herhangi bir yerden tam bir pentest çalıştırın. Pentester'ları değiştirmiyoruz - özel araçlar, tespit ve istismar modülleri geliştiriyoruz, böylece daha derine inmek, kabukları patlatmak ve eğlenmek için biraz zaman kazanıyorlar.
{% embed url="https://pentest-tools.com/" %}
## **Saldırılar**
### Oturum çalma
**SYSTEM izinleriyle**, sahibinin şifresini bilmeye gerek olmadan, herhangi bir kullanıcının **açık RDP oturumuna erişebilirsiniz**.
**Açık oturumları alın:**
```
query user
```
**Seçilen oturuma erişim**
Bir hedefin RDP (Uzak Masaüstü Protokolü) sunucusuna erişim sağladıktan sonra, hedefin oturumlarına erişmek isteyebilirsiniz. Bu, hedefin oturumlarını izlemek, kontrol etmek veya manipüle etmek için kullanışlı olabilir.
RDP sunucusunda mevcut oturumları kontrol etmek için aşağıdaki adımları izleyebilirsiniz:
1. RDP sunucusuna bağlanın.
2. Oturum açma ekranında, "Diğer Kullanıcı" seçeneğini tıklayın.
3. "Kullanıcı Adı" alanına `.\` veya `localhost\` yazın.
4. "Parola" alanına boş bir değer girin ve "Oturum Aç" düğmesini tıklayın.
Bu adımları takip ettiğinizde, RDP sunucusunda mevcut olan oturumları görüntüleyebilir ve seçilen bir oturuma erişebilirsiniz. Bu, hedef sistemdeki kullanıcıların oturumlarını izlemek veya hedef sistemdeki bir oturumu ele geçirmek için kullanışlı bir yöntem olabilir.
```bash
tscon /dest:
```
Şimdi seçilen RDP oturumunun içinde olacaksınız ve yalnızca Windows araçları ve özelliklerini kullanarak bir kullanıcıyı taklit etmeniz gerekecek.
**Önemli**: Eriştiğiniz aktif bir RDP oturumu, onu kullanan kullanıcıyı oturumdan atar.
Süreci belleğe dökerek şifreleri alabilirsiniz, ancak bu yöntem çok daha hızlıdır ve kullanıcının sanal masaüstleriyle etkileşimde bulunmanızı sağlar (diskte kaydedilmemiş not defterindeki şifreler, diğer makinelerde açılmış diğer RDP oturumları...).
#### **Mimikatz**
Bunu yapmak için mimikatz'ı da kullanabilirsiniz:
```bash
ts::sessions #Get sessions
ts::remote /id:2 #Connect to the session
```
### Sticky-keys & Utilman
Bu teknikleri **stickykeys** veya **utilman** ile birleştirerek herhangi bir yönetici CMD'sine ve herhangi bir RDP oturumuna her zaman erişebilirsiniz.
Bu tekniklerden biriyle önceden backdoor eklenmiş RDP'leri arayabilirsiniz: [https://github.com/linuz/Sticky-Keys-Slayer](https://github.com/linuz/Sticky-Keys-Slayer)
### RDP Süreci Enjeksiyonu
Farklı bir etki alanından veya **daha iyi yetkilere sahip biri**, sizin yönetici olduğunuz PC'ye RDP üzerinden giriş yaptığında, kendi **RDP oturumu sürecine** beacon'ınızı enjekte edebilir ve onun gibi davranabilirsiniz:
{% content-ref url="../windows-hardening/active-directory-methodology/rdp-sessions-abuse.md" %}
[rdp-sessions-abuse.md](../windows-hardening/active-directory-methodology/rdp-sessions-abuse.md)
{% endcontent-ref %}
### RDP grubuna kullanıcı ekleme
```bash
net localgroup "Remote Desktop Users" UserLoginName /add
```
## Otomatik Araçlar
* [**AutoRDPwn**](https://github.com/JoelGMSec/AutoRDPwn)
**AutoRDPwn**, öncelikle Microsoft Windows bilgisayarlarda **Shadow** saldırısını otomatikleştirmek için Powershell'de oluşturulmuş bir son-exploitasyon çerçevesidir. Bu zafiyet (Microsoft tarafından bir özellik olarak listelenir) uzaktan bir saldırganın, işletim sistemi tarafından sağlanan araçları kullanarak, kurbanının izni olmadan masaüstünü **görüntülemesine** ve hatta talep üzerine kontrol etmesine olanak tanır.
* [**EvilRDP**](https://github.com/skelsec/evilrdp)
* Fare ve klavyeyi komut satırından otomatik olarak kontrol etme
* Pano üzerinden komut satırından otomatik olarak kontrol etme
* İstemciden hedefe RDP üzerinden ağ iletişimini yönlendiren bir SOCKS proxy oluşturma
* Dosya aktarımları hedefte devre dışı bırakıldığında bile hedefe keyfi SHELL ve PowerShell komutları yürütme
* Dosyaları hedefe yükleme ve hedeften indirme
```
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.xyz/pentesting/pentesting-rdp
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}
```
**Hemen kullanılabilir zafiyet değerlendirme ve penetrasyon testi kurulumu**. Keşiften raporlamaya kadar 20'den fazla araç ve özellikle her yerden tam bir pentest çalıştırın. Pentesterları değiştirmiyoruz - özel araçlar, tespit ve sömürü modülleri geliştiriyoruz, böylece daha derine inmek, kabukları patlatmak ve eğlenmek için zaman kazanıyorlar.
{% embed url="https://pentest-tools.com/" %}
Sıfırdan kahraman olmak için AWS hackleme öğreninhtARTE (HackTricks AWS Red Team Expert)!
HackTricks'i desteklemenin diğer yolları:
* Şirketinizi HackTricks'te **reklamınızı görmek** veya **HackTricks'i PDF olarak indirmek** için [**ABONELİK PLANLARI**](https://github.com/sponsors/carlospolop)'na göz atın!
* [**Resmi PEASS & HackTricks ürünlerini**](https://peass.creator-spring.com) edinin
* Özel [**NFT'lerden**](https://opensea.io/collection/the-peass-family) oluşan koleksiyonumuz [**The PEASS Family**](https://opensea.io/collection/the-peass-family)'i keşfedin
* 💬 [**Discord grubuna**](https://discord.gg/hRep4RUj7f) veya [**telegram grubuna**](https://t.me/peass) **katılın** veya **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)'u **takip edin**.
* Hacking hilelerinizi göndererek **HackTricks** ve **HackTricks Cloud** github depolarına PR göndererek paylaşın.