hacktricks/network-services-pentesting/pentesting-rdp.md

204 lines
12 KiB
Markdown
Raw Normal View History

2024-02-11 01:46:25 +00:00
# 3389 - Testowanie penetracyjne RDP
2022-04-28 16:01:33 +00:00
<details>
2024-02-11 01:46:25 +00:00
<summary><strong>Naucz się hakować AWS od zera do bohatera z</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
2022-04-28 16:01:33 +00:00
2024-02-11 01:46:25 +00:00
Inne sposoby wsparcia HackTricks:
2024-01-03 10:42:55 +00:00
2024-02-11 01:46:25 +00:00
* Jeśli chcesz zobaczyć swoją **firmę reklamowaną w HackTricks** lub **pobrać HackTricks w formacie PDF**, sprawdź [**PLAN SUBSKRYPCJI**](https://github.com/sponsors/carlospolop)!
* Zdobądź [**oficjalne gadżety PEASS & HackTricks**](https://peass.creator-spring.com)
* Odkryj [**Rodzinę PEASS**](https://opensea.io/collection/the-peass-family), naszą kolekcję ekskluzywnych [**NFT**](https://opensea.io/collection/the-peass-family)
* **Dołącz do** 💬 [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegramowej**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Podziel się swoimi sztuczkami hakerskimi, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) i [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) github repos.
2022-04-28 16:01:33 +00:00
</details>
2024-01-11 13:23:18 +00:00
<figure><img src="/.gitbook/assets/image (2).png" alt=""><figcaption></figcaption></figure>
2024-02-11 01:46:25 +00:00
**Natychmiastowe dostępne narzędzie do oceny podatności i testowania penetracyjnego**. Uruchom pełne testowanie penetracyjne z dowolnego miejsca za pomocą ponad 20 narzędzi i funkcji, które obejmują od rozpoznania po raportowanie. Nie zastępujemy testerów penetracyjnych - opracowujemy niestandardowe narzędzia, moduły wykrywania i eksploatacji, aby umożliwić im zagłębianie się, zdobywanie powłok i dobrą zabawę.
2024-01-11 13:23:18 +00:00
{% embed url="https://pentest-tools.com/" %}
2024-02-11 01:46:25 +00:00
## Podstawowe informacje
2022-04-28 16:01:33 +00:00
2024-02-11 01:46:25 +00:00
Rozwinięty przez firmę Microsoft, **Protokół zdalnego pulpitu** (**RDP**) ma na celu umożliwienie połączenia interfejsu graficznego między komputerami w sieci. Aby nawiązać takie połączenie, użytkownik korzysta z oprogramowania klienta **RDP**, a jednocześnie zdalny komputer musi działać jako serwer **RDP**. Taka konfiguracja umożliwia płynne sterowanie i dostęp do pulpitu zdalnego komputera, co pozwala na wyświetlanie jego interfejsu na lokalnym urządzeniu użytkownika.
2024-02-11 01:46:25 +00:00
**Domyślny port:** 3389
2022-05-01 13:25:53 +00:00
```
PORT STATE SERVICE
3389/tcp open ms-wbt-server
```
2024-02-11 01:46:25 +00:00
## Wyliczanie
2024-02-11 01:46:25 +00:00
### Automatyczne
{% code overflow="wrap" %}
```bash
2022-10-03 20:20:19 +00:00
nmap --script "rdp-enum-encryption or rdp-vuln-ms12-020 or rdp-ntlm-info" -p 3389 -T4 <IP>
```
{% endcode %}
2024-02-11 01:46:25 +00:00
Sprawdza dostępne szyfrowanie i podatność na DoS (bez powodowania DoS dla usługi) oraz uzyskuje informacje o systemie Windows NTLM (wersje).
2022-10-03 20:20:19 +00:00
2022-05-01 13:25:53 +00:00
### [Brute force](../generic-methodologies-and-resources/brute-force.md#rdp)
2024-02-11 01:46:25 +00:00
**Bądź ostrożny, możesz zablokować konta**
2022-10-03 20:20:19 +00:00
### **Password Spraying**
2024-02-11 01:46:25 +00:00
**Bądź ostrożny, możesz zablokować konta**
```bash
2022-10-03 20:20:19 +00:00
# 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
```
2024-02-11 01:46:25 +00:00
### Połącz się za pomocą znanych poświadczeń/haszowania
Jeśli masz dostęp do znanych poświadczeń lub haszowania, możesz spróbować połączyć się z usługą RDP. W przypadku posiadania poświadczeń, możesz je wprowadzić ręcznie podczas logowania. Jeśli masz dostęp tylko do haszowania, możesz użyć narzędzi do łamania hasła, takich jak John the Ripper lub Hashcat, aby odzyskać oryginalne hasło.
Aby połączyć się z usługą RDP za pomocą znanych poświadczeń, wykonaj następujące kroki:
1. Uruchom klienta RDP na swoim komputerze.
2. Wprowadź adres IP lub nazwę hosta zdalnego komputera.
3. Wprowadź nazwę użytkownika i hasło, które znasz.
4. Kliknij przycisk "Połącz" lub naciśnij Enter, aby rozpocząć sesję RDP.
Jeśli masz dostęp tylko do haszowania, wykonaj następujące kroki:
2024-02-11 01:46:25 +00:00
1. Skorzystaj z narzędzia do łamania hasła, takiego jak John the Ripper lub Hashcat, aby odzyskać oryginalne hasło na podstawie hasza.
2. Po odzyskaniu hasła, wykonaj kroki opisane powyżej, aby połączyć się z usługą RDP za pomocą znanych poświadczeń.
2024-02-11 01:46:25 +00:00
Pamiętaj, że próba połączenia się z usługą RDP za pomocą nieautoryzowanych poświadczeń lub haszowania jest nielegalna i narusza prywatność innych osób. Wykorzystuj te techniki tylko w legalnych i uprawnionych celach, takich jak testowanie penetracyjne.
```bash
2022-10-03 20:20:19 +00:00
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
```
2024-02-11 01:46:25 +00:00
### Sprawdzanie znanych poświadczeń w usługach RDP
2024-02-11 01:46:25 +00:00
rdp\_check.py z pakietu impacket pozwala sprawdzić, czy określone poświadczenia są poprawne dla usługi RDP:
```bash
2022-10-03 20:20:19 +00:00
rdp_check <domain>/<name>:<password>@<IP>
```
2024-01-11 13:23:18 +00:00
<figure><img src="/.gitbook/assets/image (2).png" alt=""><figcaption></figcaption></figure>
2024-02-11 01:46:25 +00:00
**Natychmiastowe dostępne narzędzia do oceny podatności i testowania penetracyjnego**. Uruchom pełny test penetracyjny z dowolnego miejsca za pomocą ponad 20 narzędzi i funkcji, które obejmują odzyskiwanie informacji i raportowanie. Nie zastępujemy testerów penetracyjnych - rozwijamy niestandardowe narzędzia, moduły wykrywania i eksploatacji, aby umożliwić im zagłębianie się, zdobywanie dostępu i dobrą zabawę.
2024-01-11 13:23:18 +00:00
{% embed url="https://pentest-tools.com/" %}
2024-02-11 01:46:25 +00:00
## **Ataki**
2022-10-03 20:20:19 +00:00
2024-02-11 01:46:25 +00:00
### Kradzież sesji
2024-02-11 01:46:25 +00:00
Z uprawnieniami **SYSTEM** możesz uzyskać dostęp do dowolnej **otwartej sesji RDP przez dowolnego użytkownika** bez konieczności znajomości hasła właściciela.
2024-02-11 01:46:25 +00:00
**Pobierz otwarte sesje:**
2022-05-01 13:25:53 +00:00
```
query user
```
2024-02-11 01:46:25 +00:00
**Dostęp do wybranej sesji**
2024-02-11 01:46:25 +00:00
Aby uzyskać dostęp do wybranej sesji, możesz skorzystać z różnych technik. Poniżej przedstawiam kilka sposobów, które możesz wypróbować:
2024-02-11 01:46:25 +00:00
1. **Brute force**: Wypróbuj atak brute force, próbując różne kombinacje nazw użytkowników i haseł, aż znajdziesz poprawne dane uwierzytelniające.
2. **Słownik atak**: Wykorzystaj słownik zawierający popularne hasła i nazwy użytkowników, aby przyspieszyć proces ataku brute force.
3. **Podsłuch sieciowy**: Monitoruj ruch sieciowy w poszukiwaniu danych uwierzytelniających, które są przesyłane w otwartej formie.
4. **Atak Man-in-the-Middle**: Wykorzystaj atak Man-in-the-Middle, aby przechwycić dane uwierzytelniające podczas komunikacji między klientem a serwerem RDP.
5. **Wykorzystanie słabych haseł**: Sprawdź, czy użytkownicy korzystają z łatwych do odgadnięcia haseł, takich jak "password" lub "123456". Wykorzystaj te słabe hasła do uzyskania dostępu.
6. **Wykorzystanie podatności**: Sprawdź, czy serwer RDP jest podatny na znane luki bezpieczeństwa. Jeśli tak, wykorzystaj te podatności do uzyskania dostępu.
Pamiętaj, że przed przeprowadzeniem jakiejkolwiek próby uzyskania dostępu do sesji, upewnij się, że masz odpowiednie uprawnienia i zgodę na przeprowadzenie testów penetracyjnych.
```bash
tscon <ID> /dest:<SESSIONNAME>
```
2024-02-11 01:46:25 +00:00
Teraz będziesz wewnątrz wybranej sesji RDP i będziesz musiał podać się za użytkownika, korzystając tylko z narzędzi i funkcji systemu Windows.
2024-02-11 01:46:25 +00:00
**Ważne**: Gdy uzyskasz dostęp do aktywnej sesji RDP, wylogujesz użytkownika, który z niej korzystał.
2024-02-11 01:46:25 +00:00
Możesz uzyskać hasła, dumpując proces, ale ta metoda jest znacznie szybsza i pozwala na interakcję z wirtualnym pulpitem użytkownika (hasła w notatniku, które nie są zapisywane na dysku, inne otwarte sesje RDP na innych maszynach...)
2022-05-01 13:25:53 +00:00
#### **Mimikatz**
2024-02-11 01:46:25 +00:00
Możesz również użyć narzędzia mimikatz do tego:
```bash
ts::sessions #Get sessions
ts::remote /id:2 #Connect to the session
```
2022-10-03 20:20:19 +00:00
### Sticky-keys & Utilman
2024-02-11 01:46:25 +00:00
Kombinując tę technikę z **stickykeys** lub **utilman, będziesz w stanie uzyskać dostęp do administracyjnego CMD i dowolnej sesji RDP w dowolnym momencie**
2024-02-11 01:46:25 +00:00
Możesz wyszukać RDP, które zostały już zainfekowane jedną z tych technik za pomocą: [https://github.com/linuz/Sticky-Keys-Slayer](https://github.com/linuz/Sticky-Keys-Slayer)
2024-02-11 01:46:25 +00:00
### Wstrzykiwanie procesu RDP
2022-10-03 20:20:19 +00:00
2024-02-11 01:46:25 +00:00
Jeśli ktoś z innej domeny lub z **lepszymi uprawnieniami zaloguje się przez RDP** do komputera, na którym **jesteś administratorem**, możesz **wstrzyknąć** swój beacon w jego **proces sesji RDP** i działać jak on:
2022-08-16 00:18:24 +00:00
{% content-ref url="../windows-hardening/active-directory-methodology/rdp-sessions-abuse.md" %}
[rdp-sessions-abuse.md](../windows-hardening/active-directory-methodology/rdp-sessions-abuse.md)
{% endcontent-ref %}
2024-02-11 01:46:25 +00:00
### Dodawanie użytkownika do grupy RDP
```bash
net localgroup "Remote Desktop Users" UserLoginName /add
```
2024-02-11 01:46:25 +00:00
## Automatyczne narzędzia
* [**AutoRDPwn**](https://github.com/JoelGMSec/AutoRDPwn)
2022-10-03 20:20:19 +00:00
2024-02-11 01:46:25 +00:00
**AutoRDPwn** to framework do post-eksploatacji stworzony w Powershell, zaprojektowany głównie do automatyzacji ataku **Shadow** na komputery z systemem Microsoft Windows. Ta podatność (zgłoszona przez Microsoft jako funkcja) pozwala zdalnemu atakującemu **obejrzeć pulpit swojej ofiary bez jej zgody**, a nawet kontrolować go na żądanie, korzystając z narzędzi wbudowanych w sam system operacyjny.
2022-10-03 20:20:19 +00:00
* [**EvilRDP**](https://github.com/skelsec/evilrdp)
2024-02-11 01:46:25 +00:00
* Kontroluj myszkę i klawiaturę w sposób zautomatyzowany z wiersza poleceń
* Kontroluj schowek w sposób zautomatyzowany z wiersza poleceń
* Uruchom proxy SOCKS z klienta, które kieruje komunikację sieciową do celu za pośrednictwem RDP
* Wykonuj dowolne polecenia SHELL i PowerShell na celu bez przesyłania plików
* Przesyłaj pliki do/czytaj pliki z celu, nawet gdy przesyłanie plików jest wyłączone na celu
2021-08-12 13:26:30 +00:00
2024-02-11 01:46:25 +00:00
## Automatyczne polecenia HackTricks
2022-05-01 13:25:53 +00:00
```
2021-08-12 13:26:30 +00:00
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
2021-08-15 17:55:52 +00:00
Entry_1:
2024-02-11 01:46:25 +00:00
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.
2021-08-15 17:55:52 +00:00
2024-02-11 01:46:25 +00:00
https://book.hacktricks.xyz/pentesting/pentesting-rdp
2021-08-15 17:55:52 +00:00
Entry_2:
2024-02-11 01:46:25 +00:00
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}
2021-08-12 13:26:30 +00:00
```
2024-01-11 13:23:18 +00:00
<figure><img src="/.gitbook/assets/image (2).png" alt=""><figcaption></figcaption></figure>
2024-02-11 01:46:25 +00:00
**Natychmiastowe dostępne narzędzia do oceny podatności i testowania penetracyjnego**. Uruchom pełny test penetracyjny z dowolnego miejsca za pomocą ponad 20 narzędzi i funkcji, które obejmują rozpoznanie i raportowanie. Nie zastępujemy testerów penetracyjnych - opracowujemy niestandardowe narzędzia, moduły wykrywania i eksploatacji, aby umożliwić im zagłębianie się, zdobywanie powłok i dobrą zabawę.
2024-01-11 13:23:18 +00:00
{% embed url="https://pentest-tools.com/" %}
2022-04-28 16:01:33 +00:00
<details>
2024-02-11 01:46:25 +00:00
<summary><strong>Dowiedz się, jak hakować AWS od zera do bohatera z</strong> <a href="https://training.hacktricks.xyz/courses/arte"><strong>htARTE (HackTricks AWS Red Team Expert)</strong></a><strong>!</strong></summary>
2022-04-28 16:01:33 +00:00
2024-02-11 01:46:25 +00:00
Inne sposoby wsparcia HackTricks:
2024-01-03 10:42:55 +00:00
2024-02-11 01:46:25 +00:00
* Jeśli chcesz zobaczyć swoją **firmę reklamowaną w HackTricks** lub **pobrać HackTricks w formacie PDF**, sprawdź [**PLAN SUBSKRYPCJI**](https://github.com/sponsors/carlospolop)!
* Zdobądź [**oficjalne gadżety PEASS & HackTricks**](https://peass.creator-spring.com)
* Odkryj [**Rodzinę PEASS**](https://opensea.io/collection/the-peass-family), naszą kolekcję ekskluzywnych [**NFT**](https://opensea.io/collection/the-peass-family)
* **Dołącz do** 💬 [**grupy Discord**](https://discord.gg/hRep4RUj7f) lub [**grupy telegramowej**](https://t.me/peass) lub **śledź** nas na **Twitterze** 🐦 [**@carlospolopm**](https://twitter.com/hacktricks_live)**.**
* **Podziel się swoimi sztuczkami hakerskimi, przesyłając PR-y do** [**HackTricks**](https://github.com/carlospolop/hacktricks) **i** [**HackTricks Cloud**](https://github.com/carlospolop/hacktricks-cloud) **repozytoriów GitHub.**
2022-04-28 16:01:33 +00:00
</details>