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:
- Jeśli chcesz zobaczyć swoją firmę reklamowaną w HackTricks lub pobrać HackTricks w formacie PDF, sprawdź PLAN SUBSKRYPCJI!
- Zdobądź oficjalne gadżety PEASS & HackTricks
- Odkryj Rodzinę PEASS, naszą kolekcję ekskluzywnych NFT
- Dołącz do 💬 grupy Discord lub grupy telegramowej lub śledź nas na Twitterze 🐦 @carlospolopm.
- Podziel się swoimi sztuczkami hakerskimi, przesyłając PR-y do HackTricks i HackTricks Cloud github repos.
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:
- Uruchom klienta RDP na swoim komputerze.
- Wprowadź adres IP lub nazwę hosta zdalnego komputera.
- Wprowadź nazwę użytkownika i hasło, które znasz.
- 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:
- Skorzystaj z narzędzia do łamania hasła, takiego jak John the Ripper lub Hashcat, aby odzyskać oryginalne hasło na podstawie hasza.
- 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ć:
-
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.
-
Słownik atak: Wykorzystaj słownik zawierający popularne hasła i nazwy użytkowników, aby przyspieszyć proces ataku brute force.
-
Podsłuch sieciowy: Monitoruj ruch sieciowy w poszukiwaniu danych uwierzytelniających, które są przesyłane w otwartej formie.
-
Atak Man-in-the-Middle: Wykorzystaj atak Man-in-the-Middle, aby przechwycić dane uwierzytelniające podczas komunikacji między klientem a serwerem RDP.
-
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.
-
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:
- Jeśli chcesz zobaczyć swoją firmę reklamowaną w HackTricks lub pobrać HackTricks w formacie PDF, sprawdź PLAN SUBSKRYPCJI!
- Zdobądź oficjalne gadżety PEASS & HackTricks
- Odkryj Rodzinę PEASS, naszą kolekcję ekskluzywnych NFT
- Dołącz do 💬 grupy Discord lub grupy telegramowej lub śledź nas na Twitterze 🐦 @carlospolopm.
- Podziel się swoimi sztuczkami hakerskimi, przesyłając PR-y do HackTricks i HackTricks Cloud repozytoriów GitHub.