# Shadow RDP: jak atakujący przejmują sesje administratorów chmury
Atakujący omijają MFA w środowisku hybrydowym on-prem AD + Azure, wykorzystując wbudowaną funkcję Shadow RDP w Windows. Podłączyli się do aktywnej sesji administratora bez ponownej autentykacji, uzyskując pełną kontrolę nad zasobami Azure. Atak pozostał niezauważony w logach Azure AD aż do analizy czasu trwania sesji przekraczającego 12 godzin.
Warunki ataku i początkowe symptomy
Hybrydowa infrastruktura obejmowała lokalny Active Directory synchronizowany z Azure AD Connect. Kluczowe zasoby — maszyny wirtualne i magazyny — znajdowały się w Azure. MFA była stosowana do wszystkich uprzywilejowanych kont.
Azure AD odnotował jedyne udane logowanie z MFA rano. Kolejne działania wyglądały jak kontynuacja tej samej sesji. Anomalia ujawniła się w nadmiernym czasie trwania: ponad 12 godzin bez nocnej aktywności administratora.
| Objaw | Normalne zachowanie | Podczas ataku |
|-------|---------------------|---------------|
| Czas trwania sesji Azure AD | 8–9 godzin | 24+ godzin |
| Zapytania MFA | Każdego ranka lub przy zmianie IP | Brak po przejęciu |
| Adres IP | Biuro/VPN | Taki sam jak administratora |
| Procesy | Przeglądarka, PowerShell, RDP | + mstsc /shadow |
| Czas aktywności | 9:00–18:00 | Godziny nocne |
Implementacja techniczna Shadow RDP
Shadow RDP to wbudowana funkcja Windows 10/11 i Server z rolą RDSH. Umożliwia dołączenie do aktywnej sesji innego użytkownika.
Atakujący zmodyfikowali rejestr na stacji administratora, by uzyskać cichy dostęp:
# Pełna kontrola bez prośby o zgodę (tryb 2)
reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services" /v Shadow /t REG_DWORD /d 2 /f
# Wyłączenie powiadomienia o podglądzie
reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services" /v ShadowNotification /t REG_DWORD /d 0 /f
Tryby Shadow:
- 0 — zabronione
- 1 — pełna kontrola z zgodą
- 2 — pełna kontrola bez zgody
- 3 — podgląd z zgodą
- 4 — podgląd bez zgody (użyty w ataku)
Dodatkowo skonfigurowali reguły zapory Windows Defender dla portów RDP.
Podłączenie do sesji: mstsc /shadow:ID_sesji /control /noConsentPrompt.
Kluczowe zdarzenia w logach Windows
Monitorowanie poniższych Event ID pozwala wykryć Shadow RDP:
- Event ID 20508 — Shadow View Permission Granted
- Event ID 20503 — Shadow View Session Started
- Event ID 20504 — Shadow View Session Stopped
Inne logi do dochodzenia:
| Źródło | Event ID | Rejestruje |
|--------|----------|------------|
| Security (stacja admina) | 4657 | Zmiana Shadow/ShadowNotification w rejestrze |
| PowerShell Operational | 4103 | Set-ItemProperty dla rejestru |
| TerminalServices-LocalSessionManager | 20503 | Rozpoczęcie połączenia cieniowego |
| TerminalServices-LocalSessionManager | 20504 | Zakończenie połączenia cieniowego |
| Azure AD Sign-in | — | Czas trwania sesji |
| Azure AD Sign-in | — | Brak MFA przy zmianie IP |
Środki zaradcze
- GPO do wyłączenia Shadow RDP: Ustaw Shadow=0 na niepotrzebnych hostach.
- Ograniczenie sesji RDP: GPO „Ogranicz czas trwania sesji” — 8 godzin, z wymuszonym zakończeniem.
- Conditional Access w Azure AD:
* Częstotliwość MFA: co 1–2 godziny.
* Ponowna autentykacja przy zmianie IP.
* Zakaz „Zachowaj mnie zalogowanym” dla kont uprzywilejowanych.
- Ochrona hostów RDP:
* Restricted Admin Mode.
* Credential Guard.
* Remote Credential Guard.
- Stacje PAW/PAM: Izolowane maszyny do administracji, restart po sesji, bez internetu/poczty.
- Monitorowanie w SIEM/SOAR:
* Zmiany w rejestrze.
* Event ID 20503/20504.
* Korelacja logów chmurowych i lokalnych.
Co najważniejsze
- MFA nie chroni przed przejęciami sesji: skup się na kontroli czasu trwania i procesów.
- Shadow RDP to funkcja natywna, wykrywana po rejestrze i Event ID 20503+.
- Środowiska hybrydowe wymagają korelacji logów Azure AD i Windows.
- Conditional Access z częstym MFA to podstawowa bariera przeciw session hijacking.
- PAW minimalizuje powierzchnię ataku na stacjach końcowych.
— Editorial Team
Brak komentarzy.