Jeśli używasz klienta Remote Desktop Connection (w skrócie RDP) lub innego i łączysz się nim do serwerów musisz wiedzieć, że hasło Twojego użytkownika może być w bardzo łatwy sposób przechwycone!
Autor programu Mimikatz – Benjamin Delpy zrobił na Dzień Dziecka zespołom RedTeam ciekawy prezent. W nocy 31 maja wydał nową wersję 2.2.0, która oprócz przechwytywania haseł użytkowników z sesji RDP uruchomionych na serwerze/stacji roboczej (link) potrafi przechwycić „hasło z klienta RDP”! Tak, dobrze słyszycie z tego klienta, którym często łączycie się do innych serwerów. Narzędzie wykorzystuje w tym przypadku bibliotekę „mstscax.dll”. Wystarczy uruchomić „mimikatz.exe” na komputerze Windows skąd wykonywane jest połączenie RDP do dowolnego serwera i wpisać 2 komendy:
- privilege::debug – wymaga lokalnego administratora na systemie lub uprawnienia SeDebugPrivilege
- ts::mstsc – polecenie pozwalające poznać hasło użytkownika łączącego się z lokalnej maszyny sesją RDP do innego serwera
Przykład pobrania hasła użytkownika z klienta RDP
Poniżej przedstawiamy test połączenia RDP nawiązywanego ze stacji klienckiej Microsoft Windows 10 na serwer Windows 2019 (kontroler domeny).
Na komputerze z klientem RDP Windows 10 mamy uruchomione narzędzie Mimikatz.
Po wpisaniu powyższych komend byliśmy w stanie wyciągnąć z systemu hasło użytkownika KapitanHack.pl, którym zdalnie łączyliśmy się do kontrolera domeny (DC).
Co ciekawe, autor programu twierdzi, że w najnowszej wersji Mimikatz jest w stanie pobierać hasła użytkowników wykonujących sesje RDP także z nie Microsoft’owych programów klienckich takich jak freerdp lub rdesktop na Linux. Poniżej prezentujemy zrzuty z profilu autora na Twitterze pokazujące próby poznania haseł użytkowników logujących się z klientów: xfreerdp oraz rdesktop. W tym przypadku Mimikatz uruchamiany jest na serwerze, do którego wykonywana jest sesja.
Podsumowanie
Powyższy przypadek stanowi poważne zagrożenie dla firm, w których połączenia RDP są często wykonywane przez zwykłych użytkowników do serwerów terminali (codzienna praca) lub administratorów (administracja serwerami). Już nie tylko możemy wykradać hasła z sesji RDP na serwerze (poprzedni artykuł), ale także z klienta jaki jest na nim uruchamiany. Dobra radą jest na pewno stosowanie mechanizmu 2FA, wdrożenie Credential Guard oraz rozwiązań dobrych rozwiązań PIM/PAM. Należy również nie zapominać o pilnowaniu i odpowiednim zarządzaniu uprawnieniami, gdyż to głownie one są źródłem ryzyka związanego z atakami na systemy.