홈으로 돌아가기

Shadow RDP가 Azure에서 MFA를 우회합니다

Shadow RDP 공격은 공격자가 MFA 없이 Azure 관리자 세션에 참여할 수 있게 함. 레지스트리 분석, Event ID 로그 및 보호 조치: GPO, Conditional Access, PAW. 시니어 인프라 전문가를 위한 자료.

Shadow RDP 세션 하이재킹: 클라우드에서 MFA 우회
Advertisement 728x90

# Shadow RDP: 공격자들이 클라우드 관리자 세션을 장악하는 방법

공격자들은 하이브리드 온프레미스 AD + Azure 환경에서 Windows의 내장 Shadow RDP 기능을 이용해 MFA를 우회했습니다. 재인증 없이 활성 관리자 세션에 침투해 Azure 리소스에 대한 완전한 제어권을 얻었습니다. 이 침해는 세션이 12시간 이상 지속되는 것을 누군가 발견할 때까지 Azure AD 로그에서 전혀 눈에 띄지 않았습니다.

공격 조건과 초기 경고 신호

하이브리드 환경은 온프레미스 Active Directory를 Azure AD Connect로 동기화했습니다. VM과 스토리지 같은 핵심 자산은 Azure에 위치하며, 모든 특권 계정에 MFA가 강제 적용되었습니다.

Azure AD에는 그날 아침 하나의 성공적인 MFA 로그인만 기록되었습니다. 이후 모든 작업은 그 세션의 자연스러운 연장처럼 보였습니다. 문제의 신호? 비정상적으로 긴 세션—12시간 이상—밤새 관리자 활동이 없음에도 불구하고요.

Google AdInline article slot

| 지표 | 정상 동작 | 공격 중 |

|----------|-----------------|---------------|

| Azure AD 세션 지속 시간 | 8–9시간 | 24+시간 |

Google AdInline article slot

| MFA 프롬프트 | 매일 아침 또는 IP 변경 시 | 장악 후 없음 |

| IP 주소 | 사무실/VPN | 관리자와 동일 |

| 프로세스 | 브라우저, PowerShell, RDP | + mstsc /shadow |

Google AdInline article slot

| 활동 시간 | 오전 9:00–오후 6:00 | 야간 시간 |

Shadow RDP 기술적 분석

Shadow RDP는 Windows 10/11 및 Server의 기본 기능 (RDSH 역할 필요)으로, 다른 사용자의 활성 세션에 참여할 수 있게 합니다.

공격자들은 관리자 워크스테이션의 레지스트리를 조작해 은밀하게 접근했습니다:

# 동의 프롬프트 없이 완전 제어 (mode 2)
reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services" /v Shadow /t REG_DWORD /d 2 /f

# 관찰 알림 비활성화
reg add "HKLM\SOFTWARE\Policies\Microsoft\Windows NT\Terminal Services" /v ShadowNotification /t REG_DWORD /d 0 /f

Shadow 모드:

  • 0 — 비활성화
  • 1 — 권한 필요 완전 제어
  • 2 — 권한 없이 완전 제어
  • 3 — 권한 필요 보기 전용
  • 4 — 권한 없이 보기 전용 (이번 공격에서 사용)

또한 RDP 포트를 위한 Windows Defender 방화벽 규칙도 조정했습니다.

세션 장악 명령어: mstsc /shadow:SESSION_ID /control /noConsentPrompt.

주요 Windows 로그 이벤트

Shadow RDP를 탐지하려면 다음 Event ID를 모니터링하세요:

  • Event ID 20508 — Shadow 보기 권한 부여
  • Event ID 20503 — Shadow 보기 세션 시작
  • Event ID 20504 — Shadow 보기 세션 종료

조사할 기타 로그:

| 소스 | Event ID | 캡처 내용 |

|--------|----------|----------|

| Security (관리자 워크스테이션) | 4657 | Shadow/ShadowNotification 레지스트리 변경 |

| PowerShell Operational | 4103 | 레지스트리 Set-ItemProperty |

| TerminalServices-LocalSessionManager | 20503 | Shadow 세션 시작 |

| TerminalServices-LocalSessionManager | 20504 | Shadow 세션 종료 |

| Azure AD 로그인 | — | 세션 지속 시간 |

| Azure AD 로그인 | — | IP 변경 시 MFA 없음 |

방어 및 대응책

  • GPO로 Shadow RDP 비활성화: 필수적이지 않은 호스트에서 Shadow=0 설정.
  • RDP 세션 제한: GPO "활성 상태이지만 유휴 Terminal Services 세션 시간 제한 설정" — 8시간, 강제 연결 해제.
  • Azure AD 조건부 액세스:

* MFA 빈도: 1–2시간마다.

* IP 변경 시 재인증.

* 특권 역할에서 "로그인 상태 유지" 차단.

  • RDP 호스트 강화:

* 제한된 관리자 모드.

* Credential Guard.

* Remote Credential Guard.

  • PAW/PAM 워크스테이션: 격리된 관리자 머신, 사용 후 재부팅, 인터넷/이메일 금지.
  • SIEM/SOAR 모니터링:

* 레지스트리 변경.

* Event ID 20503/20504.

* 클라우드 및 온프레미스 로그 상관 분석.

주요 교훈

  • MFA만으로는 세션 장악을 막을 수 없음—세션 지속 시간과 프로세스 모니터링에 집중.
  • Shadow RDP는 정당한 기능; 레지스트리 조작과 Event ID 20503+로 탐지.
  • 하이브리드 환경에서는 Azure AD와 Windows 로그 상관 분석 필수.
  • 빈번한 MFA를 적용한 조건부 액세스가 세션 장악 방어의 기본.
  • PAW로 엔드포인트 공격 표면 최소화.

— Editorial Team

Advertisement 728x90

다음 읽기