Az - Conditional Access Policies / MFA Bypass
Last updated
Last updated
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Azure Conditional Access 정책은 특정 조건에 따라 Azure 서비스 및 애플리케이션에 대한 액세스 제어를 시행하기 위해 Microsoft Azure에서 설정된 규칙입니다. 이러한 정책은 조직이 적절한 상황에서 올바른 액세스 제어를 적용하여 자원을 보호하는 데 도움을 줍니다. Conditional access 정책은 기본적으로 누가 무엇에 어디서 어떻게 접근할 수 있는지를 정의합니다.
여기 몇 가지 예가 있습니다:
로그인 위험 정책: 이 정책은 로그인 위험이 감지될 때 다단계 인증(MFA)을 요구하도록 설정될 수 있습니다. 예를 들어, 사용자의 로그인 행동이 정기적인 패턴과 비교하여 비정상적일 경우, 예를 들어 다른 국가에서 로그인하는 경우, 시스템은 추가 인증을 요청할 수 있습니다.
장치 준수 정책: 이 정책은 조직의 보안 기준을 준수하는 장치에만 Azure 서비스에 대한 액세스를 제한할 수 있습니다. 예를 들어, 최신 바이러스 백신 소프트웨어가 설치된 장치나 특정 운영 체제 버전을 실행하는 장치에서만 액세스를 허용할 수 있습니다.
조건부 액세스 정책이 우회할 수 있는 정보를 쉽게 조작하고 있는 경우가 있을 수 있습니다. 예를 들어, 정책이 MFA를 구성하고 있다면 공격자는 이를 우회할 수 있습니다.
장치 플랫폼(Android, iOS, Windows, macOS)을 기반으로 조건을 설정할 수 있지만, 이는 사용자 에이전트에 기반하므로 우회하기가 매우 쉽습니다. 모든 옵션에서 MFA를 강제하더라도, 인식하지 못하는 사용자 에이전트를 사용하면 MFA를 우회할 수 있습니다.
물론 이것이 조건부 정책에 설정되어 있다면, 공격자는 허용된 국가에서 VPN을 사용하거나 허용된 IP 주소에서 접근할 방법을 찾으려고 할 수 있습니다.
클라이언트가 브라우저에서 Office 365 앱에 접근할 경우 MFA가 필요하다고 지정할 수 있습니다:
이를 우회하기 위해, 데스크톱 애플리케이션(예: 다음 예의 Microsoft Teams)에서 앱에 로그인하는 척 할 수 있으며, 이는 보호를 우회할 수 있습니다:
Microsoft Teams 앱은 많은 권한을 가지고 있으므로, 해당 접근을 사용할 수 있습니다.
사전 정의된 Office365 권한을 가진 더 많은 공개 애플리케이션의 I**D를 roadtools 데이터베이스에서 찾을 수 있습니다:
이 공격은 기본적으로 공개 Office365 애플리케이션이 일부 데이터에 접근할 수 있는 권한을 가지기 때문에 특히 흥미롭습니다.
기본적으로 사용자가 만든 다른 앱은 권한이 없으며 비공개일 수 있습니다. 그러나 사용자는 공개 앱을 생성하여 일부 권한을 부여할 수도 있습니다.
정책이 애플리케이션에 접근하기 위해 MFA를 요구하도록 설정된 잠재적인 시나리오에서 사용자가 브라우저를 사용하고 있다면(웹 애플리케이션이기 때문에 유일한 방법일 수 있음), 프록시 애플리케이션이 있을 경우 -사용자를 대신하여 다른 앱과 상호작용할 수 있는 애플리케이션-, 사용자는 프록시 애플리케이션에 로그인한 다음 이 프록시 애플리케이션을 통해 처음에 MFA로 보호된 앱에 로그인할 수 있습니다.
Invoke-MFASweep 및 donkeytoken 기술을 확인하세요.
Azure MFA 옵션 중 하나는 구성된 전화번호로 전화를 받는 것이며, 여기서 사용자에게 문자 #
을 보내도록 요청합니다.
문자는 단지 톤이기 때문에, 공격자는 전화번호의 음성 메일 메시지를 타협하고 메시지로 #
의 톤을 설정한 다음, MFA 요청 시 피해자의 전화가 통화 중인지 확인하여 Azure 전화를 음성 메일로 리디렉션할 수 있습니다.
정책은 종종 준수 장치 또는 MFA를 요구하므로, 공격자는 준수 장치를 등록하고 PRT 토큰을 얻어 이 방법으로 MFA를 우회할 수 있습니다.
먼저 Intune에 준수 장치를 등록한 다음, PRT를 얻으세요:
다음 페이지에서 이러한 종류의 공격에 대한 추가 정보를 찾으십시오:
Az - Pass the PRT모든 정책 가져오기
MFASweep는 제공된 자격 증명을 사용하여 다양한 Microsoft 서비스에 로그인하려고 시도하고 MFA가 활성화되어 있는지 식별하려고 시도하는 PowerShell 스크립트입니다. 조건부 액세스 정책 및 기타 다단계 인증 설정이 구성되는 방식에 따라 일부 프로토콜은 단일 요소로 남을 수 있습니다. 또한 ADFS 구성에 대한 추가 검사가 있으며, 감지된 경우 온프레미스 ADFS 서버에 로그인하려고 시도할 수 있습니다.
Donkey token은 Conditional Access Policies를 검증해야 하는 보안 컨설턴트와 2FA가 활성화된 Microsoft 포털을 테스트하는 데 도움을 주기 위한 함수 집합입니다.
각 포털을 테스트하여 MFA 없이 로그인할 수 있는지 확인하십시오:
Azure 포털이 제한되지 않기 때문에 이전 실행에서 **감지된 모든 서비스에 접근하기 위해 포털 엔드포인트에서 토큰을 수집하는 것이 가능합니다. 이 경우 Sharepoint가 식별되었고, 이를 접근하기 위한 토큰이 요청됩니다:
토큰이 Sites.Read.All (Sharepoint에서) 권한을 가지고 있다고 가정할 때, MFA 때문에 웹에서 Sharepoint에 접근할 수 없더라도, 생성된 토큰을 사용하여 파일에 접근하는 것이 가능합니다:
AWS 해킹 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE) GCP 해킹 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE)