Skip to main content
Closed Beta

SuiteAuth

Conditional Access Pen Testing Toolkit

Simulate every signal. Test every policy. Trust nothing.

Purpose-built for purple teams who need to validate what happens when identity, authentication, network, and device controls are pushed to their limits.

Built by researchers with a proven track record of finding critical flaws in Microsoft Entra ID, including MFA bypass and device compliance bypass vulnerabilities.

Your local Conditional Access pen testing toolkit.

Simulated run , Contoso test tenant

SuiteAuth
Registered

Device Registration

session 4a2e8f91-bc47-4d3a-9e12-7f6c8d5a0b34

Status
Registered
Device
Android Contoso
Compliance
Compliant (3/3)
PRT
v4 acquired

PRT Acquired11/11

LogsTokens54 entries
  1. 07:21:38.006INFOCreated device registration session 4a2e8f91-bc47-4d3a-9e12-7f6c8d5a0b34
  2. 07:21:38.018INFOEnqueued device registration request for session 4a2e8f91-bc47-4d3a-9e12-7f6c8d5a0b34at DeviceRegistrationRequestService.cs:65
  3. 07:21:38.038INFOExecuting device registration for session 4a2e8f91-bc47-4d3a-9e12-7f6c8d5a0b34at DeviceRegistrationExecutorService.cs:80
  4. 07:21:38.072INFOResolving identity handler for type UserIdentityContextat DeviceRegistrationRequestService.cs:107
  5. 07:21:38.143INFOResolved identity 8b3d0e72-af91-4c28-b614-05a72fa5b001 (UserIdentity)at DeviceRegistrationRequestService.cs:118
  6. 07:21:38.382INFOResolving device handler for device type MobileRegisteredDeviceat DeviceRegistrationRequestService.cs:129
  7. 07:21:38.414INFOSearching for existing token matching requirement (ClientId=29d9ed98-a469-4536-ade2-f981bc1d605e, TenantId=organizations)at DeviceRegistrationRequestService.cs:155
  8. 07:21:38.438INFONo cached token found for identity 8b3d0e72-af91-4c28-b614-05a72fa5b001 - interactive authentication requiredat DeviceRegistrationRequestService.cs:170
  9. 07:21:38.601INFOStarting interactive OAuth flow to acquire registration token (ClientId=29d9ed98-a469-4536-ade2-f981bc1d605e)at DeviceRegistrationRequestService.cs:190
  10. 07:21:38.986INFOStarting Interactive OAuth authentication flowat InteractiveOAuthHandler.cs:1000
  11. 07:21:38.990INFOLaunching browser (Headless=False, Timeout=120000ms)at InteractiveOAuthHandler.cs:1025
  12. 07:21:42.512INFOStarting state machine executionat InteractiveOAuthHandler.cs:1117
  13. 07:21:42.917INFODetected UPN entry pageat InteractiveOAuthHandler.cs:971
  14. 07:21:43.123INFOEntering user principal name: user@contoso.onmicrosoft.comat InteractiveOAuthHandler.cs:1226
  15. 07:21:44.799INFODetected auth factor page: Passwordat InteractiveOAuthHandler.cs:838
  16. 07:21:45.054INFOStarting password authentication for method 3b4594b1-0194-4622-b1f8-a11be946fda9at PasswordMethodHandler.cs:54
  17. 07:21:46.760INFOPassword authentication completed successfullyat PasswordMethodHandler.cs:83
  18. 07:21:48.042INFODetected auth factor page: OTPat InteractiveOAuthHandler.cs:838
  19. 07:21:50.332INFO[StateMachine] AttemptAuthFactorChallenge --[AuthenticationComplete]--> Successat InteractiveOAuthHandler.cs:198
  20. 07:21:50.885INFORedeeming authentication result for flow type: AuthorizationCodeFlowat InteractiveOAuthHandler.cs:1172
  21. 07:21:51.524INFOReceived HTTP response headers after 566.4ms - 200
  22. 07:21:51.586INFOToken request successful, status code: OKat InteractiveOAuthFlowManager.cs:620
  23. 07:21:51.614INFOAuthentication successful: HasAccessToken=True, HasRefreshToken=True, HasIdToken=Trueat InteractiveOAuthHandler.cs:1190
  24. 07:21:52.011INFOSuccessfully acquired registration token for identity 8b3d0e72-af91-4c28-b614-05a72fa5b001at DeviceRegistrationRequestService.cs:227
  25. 07:21:52.248INFORegistering device 'Android Contoso' with Entra ID via Secure Enclave (JoinType=AzureAdJoin, OS=Android)at SecureEnclaveDeviceHandler.cs:128
  26. 07:21:52.280INFO// Built with love by Modern 42 Labs - we're hiring! modern42.com/open-jobsat M42LabsAwesome.cs:42
  27. 07:21:52.402INFOPOST https://enterpriseregistration.windows.net/EnrollmentServer/device/?*at SecureEnclaveDeviceHandler.cs:320
  28. 07:21:59.525INFOReceived HTTP response headers after 7089.9ms - 200
  29. 07:21:59.549INFOEntra DRS registration succeeded - DeviceId=6c1fa4e8-b2d3-4f7a-91c5-2e8d0a3b7f49at SecureEnclaveDeviceHandler.cs:347
  30. 07:22:00.101INFOInitiating Intune MDM enrolment for device 6c1fa4e8-b2d3-4f7a-91c5-2e8d0a3b7f49at IntuneMdmEnrolmentService.cs:84
  31. 07:22:00.230INFOPOST https://enrollment.manage.microsoft.com/enrollmentserver/discovery.svcat IntuneMdmEnrolmentService.cs:112
  32. 07:22:01.445INFOMDM discovery successful - EnrolmentServiceUrl resolvedat IntuneMdmEnrolmentService.cs:130
  33. 07:22:01.612INFOSubmitting MDM enrolment CSR with device certificateat IntuneMdmEnrolmentService.cs:155
  34. 07:22:03.891INFOIntune MDM enrolment succeeded - ManagedDeviceId=a7e2c491-3d8f-4b1a-bc65-9f4e0d2a8c73at IntuneMdmEnrolmentService.cs:189
  35. 07:22:04.022INFOFetching compliance policies for device a7e2c491-3d8f-4b1a-bc65-9f4e0d2a8c73at CompliancePolicyService.cs:45
  36. 07:22:04.198INFOGET https://graph.microsoft.com/beta/deviceManagement/deviceCompliancePoliciesat CompliancePolicyService.cs:62
  37. 07:22:04.876INFOResolved 3 compliance policies targeting device group 'All Mobile Devices'at CompliancePolicyService.cs:88
  38. 07:22:04.912INFOEvaluating policy: 'Contoso Mobile - OS Version' - Result=Compliantat CompliancePolicyService.cs:105
  39. 07:22:04.934INFOEvaluating policy: 'Contoso Mobile - Encryption' - Result=Compliantat CompliancePolicyService.cs:105
  40. 07:22:04.958INFOEvaluating policy: 'Contoso Mobile - Screen Lock' - Result=Compliantat CompliancePolicyService.cs:105
  41. 07:22:05.112INFOReporting device compliance state to Intuneat CompliancePolicyService.cs:142
  42. 07:22:05.334INFOPATCH https://graph.microsoft.com/beta/deviceManagement/managedDevices/a7e2c491-3d8f-4b1a-bc65-9f4e0d2a8c73at CompliancePolicyService.cs:158
  43. 07:22:05.998INFODevice compliance state updated: Compliant (3/3 policies passed)at CompliancePolicyService.cs:175
  44. 07:22:06.042INFO// M42 Labs tip: if you can break it, we can probably hire you -> modern42.com/open-jobsat M42LabsRecruiting.cs:1337
  45. 07:22:06.210INFOInitiating Windows Hello for Business key registrationat WindowsHelloService.cs:67
  46. 07:22:06.445INFOGenerating NGC key pair (KeyType=RSA2048, Attestation=TPM)at WindowsHelloService.cs:95
  47. 07:22:06.891INFOPOST https://login.microsoftonline.com/contoso.onmicrosoft.com/oauth2/v2.0/token (grant_type=urn:ietf:params:oauth:grant-type:jwt-bearer)at WindowsHelloService.cs:128
  48. 07:22:07.234INFONGC key registered successfully - KeyId=WHfB-a7e2c491at WindowsHelloService.cs:156
  49. 07:22:07.445INFOAcquiring PRT for device 'Android Contoso' (DeviceId=6c1fa4e8-b2d3-4f7a-91c5-2e8d0a3b7f49)at PrimaryRefreshTokenV4Service.cs:173
  50. 07:22:07.612INFOPOST https://login.microsoftonline.com/organizations/oauth2/v2.0/token (grant_type=urn:ietf:params:oauth:grant-type:device-code)at PrimaryRefreshTokenV4Service.cs:236
  51. 07:22:07.934INFOReceived HTTP response headers after 108.5ms - 200
  52. 07:22:08.012INFOPRT v4 acquired successfully - session key bound (WHfB attestation)at PrimaryRefreshTokenV4Service.cs:280
  53. 07:22:08.145INFODevice registration complete - persisted to databaseat DeviceRegistrationRequestService.cs:290
  54. 07:22:08.148INFO// Another day, another identity boundary pushed. M42 Labs does it different.at M42Labs.cs:42
The Problem

Your Conditional Access policies are untested.

You've spent months building layered Conditional Access policies. But have you actually tested what happens when an attacker simulates a compliant device? Registers their own MFA? Spoofs a trusted network? Most organisations can't answer that.

Blind Trust in Policy Logic

Policies are configured based on documentation, not adversarial testing. Edge cases are invisible until exploited.

No Visibility Into Gaps

External dependencies like Intune compliance, VPN detection, and PRT validation create hidden attack surfaces you can't see in the portal.

Manual Testing Doesn't Scale

Manually testing every combination of identity, device, network, and auth method is impossible. You need automation.
Capabilities

Four pillars of total simulation.

SuiteAuth simulates the four signal categories that Conditional Access evaluates, giving purple teams full control over every variable in the authentication decision.

01

Identity Simulation

Become anyone.

Simulate any user or service principal in your tenant. Test how policies respond to different identity types, roles, and group memberships without compromising real credentials.

  • User identity impersonation
  • Service principal simulation
  • Role & group membership emulation
  • Guest vs member identity testing
02

Authentication Simulation

Bypass every factor.

Simulate the full spectrum of authentication methods, from passkeys and FIDO2 to Microsoft Authenticator push, OTP, and mobile app protections. Auto-register MFA factors programmatically.

  • Passkey / FIDO2 attestation
  • Microsoft Authenticator simulation
  • OTP factor registration & capture
03

Network Simulation

Spoof any location.

Simulate VPN connections and trusted network locations. Test whether your Named Locations and network-based CA policies actually enforce what you think they do.

  • VPN tunnel simulation
  • Named Location emulation
  • IP-based policy emulation
  • Compliant network attestation
04

Device Simulation

Trust nothing.

Simulate mobile and desktop devices with full Intune MDM enrolment, PRT v3/v4 token acquisition, and device compliance. Register real devices programmatically and achieve compliance state.

  • Intune MDM active enrolment
  • PRT v3, v4 and Secure Enclave emulation
  • Device compliance achievement
  • Mobile & desktop simulation
Session Engine

Intelligent session & request management.

SuiteAuth doesn't just simulate signals, it manages the full lifecycle. From active Intune device registration to automated MFA factor enrolment, every request is tracked, every token is managed, and every session is persistent.

  • Active Device Registration

    Register devices to Intune MDM programmatically and achieve compliance state in real-time.

  • Automated MFA Enrolment

    Register for MFA factors automatically, no manual intervention required.

  • Persistent Session Store

    All tokens, sessions, and state are stored in a local database for full auditability.

  • Token Lifecycle Management

    Automatic token refresh, expiry tracking, and re-authentication when needed.

suiteauth session --status

Session manager

Active sessions
3
Tokens managed
12
Devices enrolled
2
MFA factors
4
Compliance status
Achieved

labs@m42:~$ suiteauth enrol --device "WIN-PENTEST01" --mdm intune

[*] Initiating MDM enrolment...

[✓] Device registered: WIN-PENTEST01

[✓] Compliance policies evaluated: 6/6 pass

[✓] PRT v4 acquired, token cached

labs@m42:~$

Automation

Playbooks: end‑to‑end attack chains.

Define repeatable, automated attack sequences that chain together device enrolment, authentication, policy testing, and exploitation, all in a single YAML playbook.

  1. 01

    Register Device

    Enrol a simulated device into Intune MDM, configure compliance policies, and acquire a PRT.

  2. 02

    Authenticate

    Register MFA factors, simulate auth methods, and obtain access tokens with the desired claims.

  3. 03

    Validate Policy

    Test which CA policies grant or block access across every combination of signals.

  4. 04

    Exploit & Report

    Execute post-exploitation actions, enumerate accessible resources, and generate findings.

ca-policy-validation.yml
name: "Full CA Policy Assessment"version: 1.0 phases:   - name: "device_registration"    action: enrol_device    mdm: intune    compliance: true   - name: "authenticate"    action: acquire_token    methods: [passkey, authenticator]   - name: "exploit"    action: post_exploit    targets: [mail, teams, sharepoint]
Post-Exploitation

See what an attacker sees. After the bypass.

Once SuiteAuth achieves access, it demonstrates the real-world impact by interacting with Microsoft 365 services, proving the business risk of policy gaps to stakeholders who need to see it to believe it.

Email Access

Read, search, and send emails from compromised mailboxes. Full Graph API mailbox enumeration.

GET /me/messagesFull Mailbox

Teams Messages

Read and send messages across Teams channels and chats. Enumerate team memberships and files.

GET /me/chatsAll Channels

SharePoint & OneDrive

Upload and download files from SharePoint sites and OneDrive. Enumerate site structures and permissions.

GET /sites/{id}/driveFile Access

Resource Enumeration

Map accessible resources, permissions, and lateral movement paths from the compromised identity.

GET /me/memberOfFull Scope
SuiteAuth
Playbooks
Local DB
Identity
VPN
MFA
Entra ID
Intune
Architecture

Portable. Self-contained. No cloud required.

SuiteAuth runs entirely on your machine. All sessions, tokens, device registrations, and findings are stored in a local encrypted database. Take it anywhere: client sites, your home lab, or on the road. Nothing phones home.

Local Database
Encrypted SQLite store for all state
Playbook Engine
YAML-defined automation chains
Zero Dependencies
Single binary, no external services
Cross-Platform
Windows, macOS, and Linux support
Attack Path Intelligence

See the attack path before the attacker does.

Conditional Access policies are only as strong as the assumptions they're built on. SuiteAuth doesn't just test individual signals, it chains them together to reveal the full attack path an adversary would follow to bypass your controls and reach critical resources.

The result is a visual, step-by-step breakdown of every path through your policy stack, from initial access to blast radius. Run it before and after policy changes to validate remediation with deterministic evidence, not assumptions.

Proprietary engine, built on years of Conditional Access research and real-world bypass discovery. This is the tooling behind our findings.

  1. 01

    Signal Emulation

    SuiteAuth reconstructs the exact combination of identity, device, network, and authentication signals your policies evaluate, replicating what an attacker would present at the gate.

  2. 02

    Policy Traversal

    Each Conditional Access policy is exercised against the emulated signals. SuiteAuth maps which policies grant, block, or silently fall through, exposing logic gaps no audit tool can catch.

  3. 03

    Blast Radius Analysis

    For every validated bypass, SuiteAuth calculates the downstream impact, which resources are reachable, what data is exposed, and how far lateral movement extends from a single policy gap.

  4. 04

    Before & After Validation

    Replay the same attack path after remediation. SuiteAuth gives you deterministic proof that your policy change closed the gap, evidence your board and auditors can rely on.

Get early access.

SuiteAuth is currently in closed beta with select purple teams and security consultancies. Join the waitlist to be notified when we open the next cohort.

Built by the researchers who found MFA & device compliance bypasses in Microsoft Entra ID.

SuiteAuth is provided for security testing of environments you own or are contracted to test under written authorisation. Unauthorised access to computer systems is an offence under the Cybercrime Act 2001 (Cth) and equivalent foreign law.

We use cookies

We use cookies and similar technologies to help personalise content, measure the performance of our site, and provide a better experience. By clicking Accept, you consent to the use of all cookies.
Learn more.