hacktricks/network-services-pentesting/pentesting-rdp.md
2024-02-10 15:36:32 +00:00

195 lines
13 KiB
Markdown

# 3389 - Pentesting RDP
<details>
<summary><strong>Lernen Sie AWS-Hacking von Grund auf mit</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Andere Möglichkeiten, HackTricks zu unterstützen:
* Wenn Sie Ihr **Unternehmen in HackTricks bewerben möchten** oder **HackTricks als PDF herunterladen möchten**, überprüfen Sie die [**ABONNEMENTPLÄNE**](https://github.com/sponsors/carlospolop)!
* Holen Sie sich das [**offizielle PEASS & HackTricks-Merchandise**](https://peass.creator-spring.com)
* Entdecken Sie [**The PEASS Family**](https://opensea.io/collection/the-peass-family), unsere Sammlung exklusiver [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Treten Sie der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) bei oder **folgen** Sie uns auf **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **GitHub-Repositories** senden.
</details>
<figure><img src="/.gitbook/assets/image (2).png" alt=""><figcaption></figcaption></figure>
**Sofort verfügbare Einrichtung für Schwachstellenbewertung und Penetrationstests**. Führen Sie einen vollständigen Pentest von überall aus mit über 20 Tools und Funktionen durch, die von der Aufklärung bis zum Bericht reichen. Wir ersetzen keine Pentester - wir entwickeln benutzerdefinierte Tools, Erkennungs- und Exploit-Module, um ihnen etwas Zeit zu geben, um tiefer zu graben, Shells zu öffnen und Spaß zu haben.
{% embed url="https://pentest-tools.com/" %}
## Grundlegende Informationen
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 vom Benutzer eine **RDP**-Client-Software verwendet, und gleichzeitig muss der Remote-Computer **RDP**-Server-Software betreiben. Diese Einrichtung ermöglicht die nahtlose Steuerung und den Zugriff auf die Desktop-Umgebung eines entfernten Computers und bringt im Wesentlichen seine Benutzeroberfläche auf das lokale Gerät des Benutzers.
**Standardport:** 3389
```
PORT STATE SERVICE
3389/tcp open ms-wbt-server
```
## Enumeration
### 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ügbare Verschlüsselung und die DoS-Schwachstelle (ohne einen DoS-Angriff auf den Dienst auszuführen) 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
Es gibt verschiedene Möglichkeiten, sich mit einem Remote-Desktop-Protokoll (RDP) zu verbinden, wenn man über bekannte Anmeldeinformationen oder einen Hash verfügt. Dies kann hilfreich sein, um Zugriff auf ein System zu erhalten, ohne das Passwort zu kennen.
#### Verbindung mit bekannten Anmeldeinformationen herstellen
Um sich mit bekannten Anmeldeinformationen bei einem RDP-Server anzumelden, können Sie eine RDP-Clientanwendung verwenden. Geben Sie die IP-Adresse oder den Hostnamen des Ziel-Systems ein und geben Sie die Benutzername und das Passwort ein, um sich anzumelden.
#### Verbindung mit einem Hash herstellen
Wenn Sie über einen Hash des Passworts verfügen, können Sie diesen verwenden, um sich bei einem RDP-Server anzumelden. Verwenden Sie ein Tool wie "rdp-crack" oder "rdp-hashdump", um den Hash zu extrahieren. Anschließend können Sie den Hash mit einem Passwort-Cracking-Tool wie "John the Ripper" oder "Hashcat" knacken, um das ursprüngliche Passwort zu erhalten.
Es ist wichtig zu beachten, dass das Knacken von Passwörtern ohne Erlaubnis des Eigentümers illegal ist. Stellen Sie sicher, dass Sie alle geltenden Gesetze und Vorschriften einhalten, wenn Sie diese Techniken anwenden.
```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 bekannter Anmeldeinformationen gegen RDP-Dienste
rdp\_check.py von impacket ermöglicht es Ihnen, zu überprüfen, ob bestimmte Anmeldeinformationen für einen RDP-Dienst gültig sind:
```bash
rdp_check <domain>/<name>:<password>@<IP>
```
<figure><img src="/.gitbook/assets/image (2).png" alt=""><figcaption></figcaption></figure>
**Sofort verfügbare Einrichtung für Schwachstellenbewertung und Penetrationstests**. Führen Sie einen vollständigen Penetrationstest von überall aus mit mehr als 20 Tools und Funktionen durch, die von der Aufklärung bis zum Bericht reichen. Wir ersetzen keine Penetrationstester - wir entwickeln benutzerdefinierte Tools, Erkennungs- und Ausnutzungsmodule, um ihnen etwas Zeit zu geben, um tiefer zu graben, Shells zu öffnen und Spaß zu haben.
{% embed url="https://pentest-tools.com/" %}
## **Angriffe**
### Sitzungsraub
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**
Um auf eine ausgewählte RDP-Sitzung zuzugreifen, gibt es verschiedene Möglichkeiten:
1. **Brute-Force-Angriff**: Bei diesem Angriff wird versucht, sich mit verschiedenen Benutzernamen und Passwörtern anzumelden, um Zugriff auf die RDP-Sitzung zu erhalten. Es können Tools wie Hydra oder Medusa verwendet werden, um diesen Angriff durchzuführen.
2. **Pass-the-Hash-Angriff**: Bei diesem Angriff wird der Hash des Passworts eines Benutzers verwendet, um sich ohne Kenntnis des Klartext-Passworts anzumelden. Tools wie Mimikatz können verwendet werden, um den Hash zu extrahieren und für den Angriff zu verwenden.
3. **Man-in-the-Middle-Angriff**: Bei diesem Angriff wird der Netzwerkverkehr zwischen dem RDP-Client und dem RDP-Server abgefangen und manipuliert, um Zugriff auf die Sitzung zu erhalten. Tools wie Ettercap oder Wireshark können verwendet werden, um diesen Angriff durchzuführen.
4. **Exploit-Angriff**: Bei diesem Angriff wird eine Schwachstelle im RDP-Protokoll oder in der RDP-Implementierung ausgenutzt, um Zugriff auf die Sitzung zu erhalten. Es können Exploits wie BlueKeep oder DejaBlue verwendet werden, um diesen Angriff durchzuführen.
Es ist wichtig zu beachten, dass das unbefugte Zugreifen auf eine RDP-Sitzung illegal ist, es sei denn, es handelt sich um eine autorisierte Penetrationstest-Aktivität. Es ist immer ratsam, die Zustimmung des Eigentümers des Systems einzuholen, bevor man solche Angriffe durchführt.
```bash
tscon <ID> /dest:<SESSIONNAME>
```
Jetzt sind Sie in der ausgewählten RDP-Sitzung und müssen einen Benutzer mit nur Windows-Tools und Funktionen darstellen.
**Wichtig**: Wenn Sie auf eine aktive RDP-Sitzung zugreifen, wird der Benutzer, der sie verwendet hat, abgemeldet.
Sie könnten Passwörter aus dem Prozess extrahieren, indem Sie ihn dumpen, 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önnen 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 **Sticky-Keys** oder **Utilman** können Sie jederzeit auf eine administrative CMD und jede RDP-Sitzung zugreifen.
Sie können nach RDPs suchen, die bereits mit einer dieser Techniken kompromittiert wurden, unter: [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 **höheren Berechtigungen über RDP** auf dem PC anmeldet, auf dem **Sie Administrator sind**, können Sie Ihren 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 %}
### Hinzufügen eines Benutzers zur RDP-Gruppe
```bash
net localgroup "Remote Desktop Users" UserLoginName /add
```
## Automatische Tools
* [**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 **anzusehen** und ihn sogar auf Anfrage zu kontrollieren, indem er die nativen Tools des Betriebssystems selbst verwendet.
* [**EvilRDP**](https://github.com/skelsec/evilrdp)
* Steuern Sie Maus und Tastatur automatisiert über die Befehlszeile
* Steuern Sie die Zwischenablage automatisiert über die Befehlszeile
* Erzeugen Sie einen SOCKS-Proxy vom Client aus, der die Netzwerkkommunikation über RDP zum Ziel leitet
* Führen Sie beliebige SHELL- und PowerShell-Befehle auf dem Ziel aus, ohne Dateien hochzuladen
* Laden Sie Dateien auf das Ziel hoch und laden Sie sie herunter, auch 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/image (2).png" alt=""><figcaption></figcaption></figure>
**Sofort verfügbare Einrichtung für Schwachstellenbewertung und Penetrationstests**. Führen Sie einen vollständigen Pentest von überall aus mit über 20 Tools und Funktionen durch, die von der Aufklärung bis zum Bericht reichen. Wir ersetzen keine Pentester - wir entwickeln benutzerdefinierte Tools, Erkennungs- und Ausnutzungsmodule, um ihnen etwas Zeit zu geben, um tiefer zu graben, Shells zu öffnen und Spaß zu haben.
{% embed url="https://pentest-tools.com/" %}
<details>
<summary><strong>Lernen Sie AWS-Hacking von Null auf Held mit</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
Andere Möglichkeiten, HackTricks zu unterstützen:
* Wenn Sie Ihr **Unternehmen in HackTricks bewerben möchten** oder **HackTricks als PDF herunterladen möchten**, überprüfen Sie die [**ABONNEMENTPLÄNE**](https://github.com/sponsors/carlospolop)!
* Holen Sie sich das [**offizielle PEASS & HackTricks-Merchandise**](https://peass.creator-spring.com)
* Entdecken Sie [**The PEASS Family**](https://opensea.io/collection/the-peass-family), unsere Sammlung exklusiver [**NFTs**](https://opensea.io/collection/the-peass-family)
* **Treten Sie der** 💬 [**Discord-Gruppe**](https://discord.gg/hRep4RUj7f) oder der [**Telegram-Gruppe**](https://t.me/peass) bei oder **folgen** Sie uns auf **Twitter** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Teilen Sie Ihre Hacking-Tricks, indem Sie PRs an die** [**HackTricks**](https://github.com/carlospolop/hacktricks) und [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) GitHub-Repositories senden.
</details>