hacktricks/network-services-pentesting/pentesting-rdp.md
2024-02-11 01:46:25 +00:00

12 KiB

3389 - Testowanie penetracyjne RDP

Naucz się hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks:

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ę.

{% embed url="https://pentest-tools.com/" %}

Podstawowe informacje

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.

Domyślny port: 3389

PORT     STATE SERVICE
3389/tcp open  ms-wbt-server

Wyliczanie

Automatyczne

{% code overflow="wrap" %}

nmap --script "rdp-enum-encryption or rdp-vuln-ms12-020 or rdp-ntlm-info" -p 3389 -T4 <IP>

{% endcode %}

Sprawdza dostępne szyfrowanie i podatność na DoS (bez powodowania DoS dla usługi) oraz uzyskuje informacje o systemie Windows NTLM (wersje).

Brute force

Bądź ostrożny, możesz zablokować konta

Password Spraying

Bądź ostrożny, możesz zablokować konta

# 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

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:

  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ń.

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.

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

Sprawdzanie znanych poświadczeń w usługach RDP

rdp_check.py z pakietu impacket pozwala sprawdzić, czy określone poświadczenia są poprawne dla usługi RDP:

rdp_check <domain>/<name>:<password>@<IP>

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ę.

{% embed url="https://pentest-tools.com/" %}

Ataki

Kradzież sesji

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.

Pobierz otwarte sesje:

query user

Dostęp do wybranej sesji

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ć:

  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.

tscon <ID> /dest:<SESSIONNAME>

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.

Ważne: Gdy uzyskasz dostęp do aktywnej sesji RDP, wylogujesz użytkownika, który z niej korzystał.

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...)

Mimikatz

Możesz również użyć narzędzia mimikatz do tego:

ts::sessions        #Get sessions
ts::remote /id:2    #Connect to the session

Sticky-keys & Utilman

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

Możesz wyszukać RDP, które zostały już zainfekowane jedną z tych technik za pomocą: https://github.com/linuz/Sticky-Keys-Slayer

Wstrzykiwanie procesu RDP

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:

{% content-ref url="../windows-hardening/active-directory-methodology/rdp-sessions-abuse.md" %} rdp-sessions-abuse.md {% endcontent-ref %}

Dodawanie użytkownika do grupy RDP

net localgroup "Remote Desktop Users" UserLoginName /add

Automatyczne narzędzia

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.

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

Automatyczne polecenia 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.xyz/pentesting/pentesting-rdp

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}

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ę.

{% embed url="https://pentest-tools.com/" %}

Dowiedz się, jak hakować AWS od zera do bohatera z htARTE (HackTricks AWS Red Team Expert)!

Inne sposoby wsparcia HackTricks: