mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
131 lines
8.0 KiB
Markdown
131 lines
8.0 KiB
Markdown
# 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}}
|