Az - Conditional Access Policies / MFA Bypass

htARTE (HackTricks AWS Red Team Expert)를 통해 AWS 해킹을 처음부터 전문가까지 배우세요!

HackTricks를 지원하는 다른 방법:

기본 정보

Azure 조건부 액세스 정책은 Microsoft Azure에서 설정된 규칙으로, 특정 조건에 따라 Azure 서비스 및 응용 프로그램에 대한 액세스 제어를 강제합니다. 이러한 정책은 조직이 올바른 상황에서 올바른 액세스 제어를 적용하여 리소스를 안전하게 보호하는 데 도움이 됩니다. 조건부 액세스 정책은 기본적으로 누가 어디서 어떤 것어떻게 액세스할 수 있는지를 정의합니다.

다음은 몇 가지 예시입니다:

  1. 로그인 위험 정책: 이 정책은 로그인 위험이 감지될 때 다중 요소 인증(MFA)을 요구하도록 설정할 수 있습니다. 예를 들어, 사용자의 로그인 동작이 일반적인 패턴과 다른 경우(다른 국가에서 로그인하는 경우 등) 시스템은 추가 인증을 요청할 수 있습니다.

  2. 장치 규정 준수 정책: 이 정책은 조직의 보안 기준을 준수하는 장치에만 Azure 서비스 액세스를 제한할 수 있습니다. 예를 들어, 최신 백신 소프트웨어가 설치된 장치나 특정 운영 체제 버전을 실행하는 장치에서만 액세스를 허용할 수 있습니다.

조건부 액세스 정책 우회

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

장치 플랫폼 - 장치 조건

장치 플랫폼(Android, iOS, Windows, macOS)에 기반한 조건을 설정할 수 있지만, 이는 사용자 에이전트에 기반하므로 쉽게 우회할 수 있습니다. 심지어 모든 옵션을 MFA 강제로 설정해도, 인식하지 못하는 사용자 에이전트를 사용하면 MFA를 우회할 수 있습니다.

위치: 국가, IP 범위 - 장치 조건

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

Office365 클라이언트 앱

클라이언트가 브라우저를 통해 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>

도구

모든 정책 가져오기

roadrecon plugin policies

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

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

돈키 토큰은 조건부 액세스 정책을 유효성 검사해야 하는 보안 컨설턴트들을 위해 만들어진 함수들의 집합입니다. 이는 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

가정: 토큰에는 Sharepoint의 Sites.Read.All 권한이 있습니다. 웹에서 MFA로 인해 Sharepoint에 액세스할 수 없더라도 생성된 토큰을 사용하여 파일에 액세스할 수 있습니다:

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

참고 자료

htARTE (HackTricks AWS Red Team Expert)를 통해 제로부터 영웅이 될 때까지 AWS 해킹을 배우세요

HackTricks를 지원하는 다른 방법:

最終更新