Az - Conditional Access Policies / MFA Bypass

Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE) Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)

Support HackTricks

Basic Information

Azure Conditional Access policies are rules set up in Microsoft Azure to enforce access controls to Azure services and applications based on certain conditions. These policies help organizations secure their resources by applying the right access controls under the right circumstances. Conditional access policies basically defines Who can access What from Where and How.

여기 몇 가지 예가 있습니다:

  1. Sign-In Risk Policy: 이 정책은 로그인 위험이 감지될 때 다중 요소 인증(MFA)을 요구하도록 설정될 수 있습니다. 예를 들어, 사용자의 로그인 행동이 평소와 다르게 다른 국가에서 로그인하는 경우 시스템은 추가 인증을 요청할 수 있습니다.

  2. Device Compliance Policy: 이 정책은 조직의 보안 표준을 준수하는 장치에서만 Azure 서비스에 접근할 수 있도록 제한할 수 있습니다. 예를 들어, 최신 안티바이러스 소프트웨어가 설치된 장치나 특정 운영 체제 버전을 실행하는 장치에서만 접근을 허용할 수 있습니다.

Conditional Access Policies Bypasses

조건부 액세스 정책이 쉽게 조작할 수 있는 정보를 확인하여 정책을 우회할 수 있는 경우가 있습니다. 예를 들어, 정책이 MFA를 구성하고 있었다면 공격자는 이를 우회할 수 있습니다.

Device Platforms - Device Condition

디바이스 플랫폼(Android, iOS, Windows, macOS)을 기반으로 조건을 설정할 수 있지만, 이는 user-agent를 기반으로 하기 때문에 우회하기 매우 쉽습니다. 모든 옵션에 MFA를 강제하더라도 인식하지 못하는 user-agent를 사용하면 MFA를 우회할 수 있습니다.

Locations: Countries, IP ranges - Device Condition

물론 조건부 정책에 이것이 설정되어 있다면, 공격자는 허용된 국가에서 VPN을 사용하거나 허용된 IP 주소에서 접근하는 방법을 찾아 이러한 조건을 우회할 수 있습니다.

Office365 Client Apps

클라이언트가 브라우저에서 Office 365 앱에 접근할 때 MFA가 필요하도록 설정할 수 있습니다:

이를 우회하기 위해, 데스크탑 애플리케이션(다음 예제에서 Microsoft Teams와 같은)에서 앱에 로그인하는 척하여 보호를 우회할 수 있습니다:

roadrecon auth -u user@email.com -r https://outlook.office.com/ -c 1fec8e78-bce4-4aaf-ab1b-5451cc387264 --tokrns-stdout

<token>

Microsoft Teams 앱에는 많은 권한이 있으므로 해당 액세스를 사용할 수 있습니다.

사전 정의된 Office365 권한이 있는 더 많은 공개 애플리케이션의 ID는 roadtools의 데이터베이스에서 찾을 수 있습니다:

SELECT appId, displayName FROM ApplicationRefs WHERE publicCLient = 1 ORDER BY displayName ASC

이 공격은 기본적으로 공용 Office365 애플리케이션이 일부 데이터에 접근할 수 있는 권한을 가지기 때문에 특히 흥미롭습니다.

다른 앱들

기본적으로 사용자가 생성한 다른 앱들은 권한이 없고 비공개일 수 있습니다. 그러나 사용자는 일부 권한을 부여하여 공용 을 생성할 수도 있습니다.

사용자가 브라우저를 사용할 때 애플리케이션에 접근하기 위해 MFA를 요구하는 정책이 설정된 잠재적 시나리오에서 (아마도 웹 애플리케이션이기 때문에 유일한 방법일 것입니다), 프록시 애플리케이션 -사용자를 대신하여 다른 앱과 상호작용할 수 있는 애플리케이션-이 있다면, 사용자는 프록시 애플리케이션에 로그인한 다음 이 프록시 애플리케이션을 통해 초기 MFA로 보호된 앱에 로그인할 수 있습니다.

Invoke-MFASweepdonkeytoken 기술을 확인하십시오.

다른 Az MFA 우회 방법

벨소리

하나의 Azure MFA 옵션은 설정된 전화번호로 전화를 받아 사용자가 # 문자를 보내도록 요청하는 것입니다.

문자는 단지 음조이기 때문에, 공격자는 전화번호의 음성사서함 메시지를 # 음조로 설정하여 타협할 수 있으며, MFA를 요청할 때 피해자의 전화가 통화 중(전화를 걸어)인 상태에서 Azure 전화가 음성사서함으로 전환되도록 할 수 있습니다.

준수 장치

정책은 종종 준수 장치 또는 MFA를 요구하므로, 공격자는 준수 장치를 등록하고 PRT 토큰을 받아 이 방법으로 MFA를 우회할 수 있습니다.

먼저 Intune에서 준수 장치를 등록한 다음 PRT를 얻으십시오:

$prtKeys = Get-AADIntuneUserPRTKeys - PfxFileName .\<uuid>.pfx -Credentials $credentials

$prtToken = New-AADIntUserPRTToken -Settings $prtKeys -GertNonce

Get-AADIntAccessTokenForAADGraph -PRTToken $prtToken

<token returned>

이러한 종류의 공격에 대한 자세한 정보는 다음 페이지에서 찾을 수 있습니다:

Az - Pass the PRT

도구

모든 정책 가져오기

roadrecon plugin policies

MFASweep은 제공된 자격 증명을 사용하여 다양한 Microsoft 서비스에 로그인하고 MFA가 활성화되어 있는지 식별하려고 시도하는 PowerShell 스크립트입니다. 조건부 액세스 정책 및 기타 다중 요소 인증 설정이 구성된 방식에 따라 일부 프로토콜은 단일 요소로 남을 수 있습니다. 또한 ADFS 구성에 대한 추가 검사를 수행하며, 감지되면 온프레미스 ADFS 서버에 로그인하려고 시도할 수 있습니다.

Invoke-MFASweep -Username <username> -Password <pass>

Donkey token은 Conditional Access Policies를 검증하고, 2FA가 활성화된 Microsoft 포털을 테스트해야 하는 보안 컨설턴트를 돕기 위한 함수 세트입니다.

Import-Module 'C:\Users\Administrador\Desktop\Azure\Modulos ps1\donkeytoken' -Force

각 포털을 테스트하여 MFA 없이 로그인이 가능한지 확인하십시오:

Test-MFA -credential $cred -Verbose -Debug -InformationAction Continue

Azure 포털제한되지 않기 때문에 이전 실행에서 감지된 모든 서비스에 접근하기 위해 포털 엔드포인트에서 토큰을 수집하는 것이 가능합니다. 이 경우 Sharepoint가 식별되었고, 접근하기 위한 토큰이 요청되었습니다:

$token = Get-DelegationTokenFromAzurePortal -credential $cred -token_type microsoft.graph -extension_type Microsoft_Intune
Read-JWTtoken -token $token.access_token

토큰이 Sites.Read.All (Sharepoint에서)의 권한을 가지고 있다고 가정하면, 웹에서 MFA 때문에 Sharepoint에 접근할 수 없더라도 생성된 토큰을 사용하여 파일에 접근하는 것이 가능합니다:

$data = Get-SharePointFilesFromGraph -authentication $token $data[0].downloadUrl

참고 자료

AWS Hacking 배우기 및 연습하기:HackTricks Training AWS Red Team Expert (ARTE) GCP Hacking 배우기 및 연습하기: HackTricks Training GCP Red Team Expert (GRTE)

HackTricks 지원하기

Last updated