<?xml version="1.0" encoding="UTF-8"?><rss xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:atom="http://www.w3.org/2005/Atom" version="2.0"><channel><title><![CDATA[Educate. Protect. Empower.]]></title><description><![CDATA[Practical Cyber Security education and advice for everyone.]]></description><link>https://blog.cybersync.uk</link><image><url>https://cdn.hashnode.com/uploads/logos/69af2eb9af06a097c3cc8216/29bcf212-33aa-4a0d-9273-1e7a2da45523.png</url><title>Educate. Protect. Empower.</title><link>https://blog.cybersync.uk</link></image><generator>RSS for Node</generator><lastBuildDate>Fri, 24 Apr 2026 12:00:38 GMT</lastBuildDate><atom:link href="https://blog.cybersync.uk/rss.xml" rel="self" type="application/rss+xml"/><language><![CDATA[en]]></language><ttl>60</ttl><item><title><![CDATA[Zero to Conditional Access: Your First Five Policies and Why Order Matters]]></title><description><![CDATA[Audience: IT Pros
Platform: Microsoft 365
Series: MFA & Conditional Access
Part: 2 of 7


In Part 1 of this series, we looked at how AiTM phishing defeats MFA by stealing session cookies — and I menti]]></description><link>https://blog.cybersync.uk/the-first-five</link><guid isPermaLink="true">https://blog.cybersync.uk/the-first-five</guid><category><![CDATA[ConditionalAccess]]></category><category><![CDATA[MFA]]></category><category><![CDATA[Microsoft]]></category><category><![CDATA[Microsoft365]]></category><category><![CDATA[cybersecurity]]></category><dc:creator><![CDATA[CyberSyncUK]]></dc:creator><pubDate>Mon, 23 Mar 2026 11:30:00 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/69af2eb9af06a097c3cc8216/9585b65f-adcc-4fd7-b621-7bcb7f0e11c1.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<blockquote>
<p><strong>Audience:</strong> IT Pros</p>
<p><strong>Platform:</strong> Microsoft 365</p>
<p><strong>Series:</strong> MFA &amp; Conditional Access</p>
<p><strong>Part: 2 of 7</strong></p>
</blockquote>
<hr />
<p>In <a href="https://blog.cybersync.uk/aitm-cookie-theft">Part 1 of this series</a>, we looked at how AiTM phishing defeats MFA by stealing session cookies — and I mentioned that a single Conditional Access policy could have stopped the attack that cost a UK legal firm £87,000 in under five minutes.</p>
<p>The most common message I got after that post was some version of:</p>
<p><em>"OK. But where do I actually start?"</em></p>
<p>This post is the answer to that question.</p>
<p>I'm going to walk you through the first five Conditional Access policies you should deploy in any Microsoft 365 SMB environment — in the right order, with the right safeguards, and with enough context that you understand <em>why</em> each one matters before you touch anything.</p>
<p>This is written for the Level 1 IT tech who's been handed M365 admin access and told to "tighten things up." No assumed security background. Real configurations. Honest caveats about what can go wrong.</p>
<p>Let's get into it.</p>
<hr />
<h2>Before You Touch Anything: The Break Glass Account</h2>
<p>I'm going to say this once, clearly, and then repeat it throughout this post because it matters that much.</p>
<p><strong>Before you create a single Conditional Access policy, you need a Break Glass account.</strong></p>
<p>A Break Glass account is a cloud-only, emergency admin account that is explicitly excluded from all Conditional Access policies. It exists for one reason: to give you a way back into your tenant if a misconfigured policy locks everyone out — including you.</p>
<p>This isn't a theoretical concern. Locking yourself out of a Microsoft 365 tenant with a badly configured CA policy is a rite of passage in this industry. It happens to experienced admins. It will happen to you if you skip this step.</p>
<p>Here's how to set one up properly:</p>
<p><strong>Creating your Break Glass account:</strong></p>
<pre><code class="language-plaintext">Entra ID Admin Center
→ Users → New User → Create User

Display name:    BreakGlass-Admin (or similar — make it obvious)
Username:        breakglass@yourdomain.onmicrosoft.com
                 (use the .onmicrosoft.com domain, NOT your custom domain)
Password:        Generate a strong random password (20+ characters)
                 Store it in a sealed physical envelope, locked away
                 Also store in your password manager with restricted access
</code></pre>
<p><strong>Assign it the right role:</strong></p>
<pre><code class="language-plaintext">Entra ID → Roles and Administrators
→ Global Administrator → Add Assignment → [your Break Glass account]
</code></pre>
<p><strong>Exclude it from everything:</strong></p>
<p>Every single Conditional Access policy you create should have this account in the exclusions list. No exceptions.</p>
<p><strong>Monitor it religiously:</strong></p>
<p>The Break Glass account should never be used in normal operations. Set an alert for any sign-in from this account — that's either you responding to a genuine lockout, or an attacker who has somehow compromised it.</p>
<pre><code class="language-plaintext">Microsoft Sentinel / Defender → Analytics Rules → New rule
Alert on: SigninLogs where UserPrincipalName == "breakglass@yourdomain.onmicrosoft.com"
</code></pre>
<p>If you don't have Sentinel, set a Logic App or use the Entra ID audit log alerts instead. The point is: if that account ever signs in, you need to know immediately.</p>
<div>
<div>💡</div>
<div>If you have a Microsoft Partner supporting you and they have the Privileged Authentication Administrator role via their GDAP relationship they can usually get back into your tenant, even if you nuke it with a policy that locks out your Global Admins. <em>YOU SHOULD STILL MAINTAIN A BREAKGLASS ACCOUNT REGARDLESS. CONSIDER YOURSELF WARNED.</em></div>
</div>

<hr />
<h2>Understanding Report-Only Mode</h2>
<p>Before we get to the policies themselves, there's one more concept you need to understand: <strong>Report-Only mode</strong>.</p>
<p>Every Conditional Access policy can be set to one of three states:</p>
<ul>
<li><p><strong>Off</strong> — Policy is disabled, does nothing</p>
</li>
<li><p><strong>Report-only</strong> — Policy evaluates against all sign-ins and logs what it <em>would</em> have done, but doesn't actually enforce anything</p>
</li>
<li><p><strong>On</strong> — Policy is live and enforcing</p>
</li>
</ul>
<p>Report-only mode is your safety net. For every policy in this guide, I'm going to recommend you run it in report-only first — ideally for at least a week in a live environment — and review the results before turning it on.</p>
<p>You can review report-only results in:</p>
<pre><code class="language-plaintext">Entra ID → Monitoring → Sign-in logs
→ Filter: "Conditional Access" column → "Report-only: Failure"
</code></pre>
<p>Any entry showing as "Report-only: Failure" is a sign-in that <em>would have been blocked or challenged</em> if the policy were live. Review these before enabling. You'll often find service accounts, shared mailboxes, or legacy applications you didn't know existed that would break on day one.</p>
<p>That's exactly the point. Find out in report-only, not in production.</p>
<hr />
<h2>The Five Policies — In Order</h2>
<p>Here's the sequence. Order matters because some policies are foundational and others build on top of them. Enabling them out of sequence can create gaps or — worse — lock out the very accounts you need to manage the others.</p>
<hr />
<h2>Policy 1: Block Legacy Authentication</h2>
<p><strong>Enable this one first. Always. No exceptions.</strong></p>
<p>Legacy authentication refers to older protocols that don't support modern MFA challenges: SMTP AUTH, POP3, IMAP4, Exchange ActiveSync (basic auth), and older Office client authentication. These protocols are baked into older email clients, some line-of-business applications, and — critically — they completely bypass MFA.</p>
<p>If you have MFA enforced but legacy authentication is allowed, an attacker with stolen credentials can use a legacy protocol to sign in and MFA will never be triggered. All your MFA work is irrelevant for any sign-in using these protocols.</p>
<blockquote>
<p>⚠️ <strong>Common misconception:</strong> "But we disabled Basic Auth in Exchange Online." Disabling Basic Auth in Exchange Online is not the same as blocking legacy authentication at the Entra ID / Conditional Access level. Do both.</p>
</blockquote>
<h3>Configuration</h3>
<pre><code class="language-plaintext">Entra ID Admin Center → Protection → Conditional Access → New Policy

Name:        CA001 - Block Legacy Authentication

Assignments:
  Users:     All Users
             Exclusions: [Your Break Glass account]
  Resources: All cloud apps
  Conditions:
    Client apps: ☑ Exchange ActiveSync clients
                 ☑ Other clients
    (Leave Browser and Mobile apps/desktop clients UNCHECKED)

Access Controls → Grant:
  ● Block access

Enable policy: Report-only first
</code></pre>
<blockquote>
<p>💡 <strong>Before you enable:</strong> Run in report-only for one week. Check the Sign-in logs for any "Other clients" sign-ins. Common culprits are:</p>
<ul>
<li><p>Old printers or scanners sending email via SMTP AUTH</p>
</li>
<li><p>Line-of-business applications using basic auth</p>
</li>
<li><p>Older versions of Outlook (pre-2016)</p>
</li>
</ul>
<p>For printers/scanners: configure them to use a service account with SMTP AUTH explicitly enabled (you can allow legacy auth per-account while blocking it globally). For LOB apps: this is the impetus to get them updated or replaced.</p>
</blockquote>
<p><strong>Why first?</strong> Because blocking legacy auth is the fastest win with the broadest impact. Until this is on, everything else you do has a hole in it.</p>
<hr />
<h2>Policy 2: Require MFA for All Users</h2>
<p>With legacy auth blocked, you can now enforce MFA for all modern authentication sign-ins. This is the foundational policy that everything else builds on.</p>
<p>A word on the <em>right</em> way to do this, because there are a few approaches and they're not all equal:</p>
<ul>
<li><p><strong>Security Defaults</strong> — Microsoft's one-click MFA enforcement. Fine as a starting point, but it's a blunt instrument with no customisation. It also conflicts with Conditional Access policies — you must disable Security Defaults before creating CA policies. If you're here reading this guide, you should be using CA, not Security Defaults.</p>
</li>
<li><p><strong>Per-User MFA</strong> — The old way. Avoid it. It doesn't integrate with Conditional Access properly, creates management headaches, and doesn't give you the policy granularity you need.</p>
</li>
<li><p><strong>Conditional Access — Require MFA for all users</strong> — The right way. This is what we're building.</p>
</li>
</ul>
<h3>Configuration</h3>
<pre><code class="language-plaintext">Entra ID Admin Center → Protection → Conditional Access → New Policy

Name:        CA002 - Require MFA - All Users

Assignments:
  Users:     All Users
             Exclusions: [Your Break Glass account]
  Resources: All cloud apps
  Conditions: None

Access Controls → Grant:
  ● Grant access
    ☑ Require multifactor authentication

Session:
  Sign-in frequency: Every time
    (For high-security environments. For normal users, you can
     leave this at default — we'll refine it in a later policy)

Enable policy: Report-only first
</code></pre>
<blockquote>
<p>💡 <strong>Check before enabling:</strong> In report-only, look for any service accounts or shared accounts that don't have MFA registered. These will break when the policy goes live. Use this opportunity to do a sweep: Entra ID → Users → Filter by "MFA registration status."</p>
<p>Also check: do all your users have the Microsoft Authenticator app set up? If not, now is the time to run an MFA registration campaign before this policy goes live.</p>
</blockquote>
<p><strong>The order matters here:</strong> Policy 1 (blocking legacy auth) should be live before this one. If you enable MFA enforcement while legacy auth is still allowed, users on legacy clients will start getting blocked — but not because of your MFA policy. The error messages will be confusing and you'll spend hours troubleshooting the wrong thing.</p>
<hr />
<h2>Policy 3: Block High-Risk Sign-Ins (Entra ID Protection)</h2>
<p>With the basics in place, we can start using intelligence. Entra ID Protection — included in Microsoft 365 Business Premium and Entra ID P2 — evaluates every sign-in using Microsoft's threat intelligence and assigns a risk score: Low, Medium, or High.</p>
<p>High-risk sign-ins are those that Microsoft's systems have flagged as almost certainly malicious. This includes:</p>
<ul>
<li><p>Sign-ins from known attacker IP addresses</p>
</li>
<li><p>Sign-ins accompanied by credential stuffing patterns</p>
</li>
<li><p>Sign-ins immediately after the same account was seen on a credential dump</p>
</li>
<li><p>Impossible travel (signed in from London, then Lagos, 10 minutes apart)</p>
</li>
<li><p>Token replay — which is exactly what happens when an attacker uses a stolen session cookie</p>
</li>
</ul>
<blockquote>
<p>🎯 <strong>Remember our AiTM adversary from the first blog in this series?:</strong> This is how Entra ID Protection helps catch AiTM attacks. When an attacker replays a stolen cookie from a different IP or device, the anomaly often triggers a high-risk sign-in flag — which this policy will automatically block.</p>
</blockquote>
<h3>Configuration</h3>
<pre><code class="language-plaintext">Entra ID Admin Center → Protection → Conditional Access → New Policy

Name:        CA003 - Block High Risk Sign-ins

Assignments:
  Users:     All Users
             Exclusions: [Your Break Glass account]
  Resources: All cloud apps
  Conditions:
    Sign-in risk: ☑ High

Access Controls → Grant:
  ● Block access

Enable policy: Report-only first
</code></pre>
<p><strong>A note on licensing:</strong> This policy requires Entra ID P2 or Microsoft 365 Business Premium for the sign-in risk condition. If you're on a lower tier, you won't see the "Sign-in risk" option. This is one of the strongest arguments for Business Premium — the risk-based CA capability alone is worth the licensing delta for most SMBs.</p>
<p><strong>Optional — Medium risk, require MFA:</strong></p>
<p>You can also create a companion policy that challenges Medium risk sign-ins with MFA rather than blocking them outright. This is more user-friendly and still provides meaningful protection:</p>
<pre><code class="language-plaintext">Name:        CA003b - Require MFA for Medium Risk Sign-ins

Conditions:
  Sign-in risk: ☑ Medium

Grant:
  ● Grant access
    ☑ Require multifactor authentication
</code></pre>
<blockquote>
<p>⚠️ <strong>Review before enabling:</strong> In report-only, any High risk sign-ins you see are worth investigating immediately — even though the policy isn't live yet. These are real flagged events, not simulations.</p>
</blockquote>
<hr />
<h2>Policy 4: Require Compliant Device for Microsoft 365</h2>
<p>This is the policy I referred to in the AiTM post as the one that stops cookie theft cold.</p>
<p>When a device compliance requirement is in place, Microsoft 365 checks that the device making the request is:</p>
<ol>
<li><p><strong>Enrolled in Intune</strong> — Microsoft's device management platform</p>
</li>
<li><p><strong>Compliant with your compliance policy</strong> — which you define (encryption enabled, AV running, OS up to date, etc.)</p>
</li>
</ol>
<p>An attacker who has stolen a session cookie and is replaying it from their own machine will fail this check. Their machine isn't enrolled in your Intune. The cookie replay is blocked. Access denied.</p>
<p>This policy requires Intune to be set up and devices to be enrolled before it can do anything useful. If you haven't done that yet, this is the one to pause on — but it's also the one to prioritise getting there.</p>
<h3>Prerequisites</h3>
<p>Before enabling this policy:</p>
<ol>
<li><p><strong>Set up an Intune compliance policy</strong> — Intune Admin Center → Devices → Compliance Policies → Create Policy. At minimum, require: BitLocker encryption, Windows Defender active, OS minimum version.</p>
</li>
<li><p><strong>Enrol your devices</strong> — Either via Autopilot, manual enrolment, or Group Policy (hybrid join). All devices that users sign in from must be enrolled before this policy goes live.</p>
</li>
<li><p><strong>Check enrolment status</strong> — Intune Admin Center → Devices → All Devices. Every device your users work from should appear here and show as "Compliant" before you enable the policy.</p>
</li>
</ol>
<h3>Configuration</h3>
<pre><code class="language-plaintext">Entra ID Admin Center → Protection → Conditional Access → New Policy

Name:        CA004 - Require Compliant Device - M365

Assignments:
  Users:     All Users
             Exclusions: [Your Break Glass account]
  Resources: Office 365
             (Scope to O365 specifically, not "All cloud apps" —
              some apps may not support device compliance checks)
  Conditions: None

Access Controls → Grant:
  ● Grant access
    ☑ Require device to be marked as compliant

Enable policy: Report-only first — run for at LEAST two weeks
</code></pre>
<blockquote>
<p>⚠️ <strong>This one needs extra care in report-only.</strong> The failure logs will show you every device that isn't enrolled. Before you enable, every device in your environment that users need to work from must be enrolled and compliant. Personal devices (BYOD) that users work from are a particular challenge — you'll need to decide whether to enforce Intune enrolment on personal devices (requires App Protection Policies as an alternative), or whether to accept that BYOD remains a gap.</p>
<p>For most SMBs: enforce compliant device on company-owned devices, use App Protection Policies for BYOD. That's a separate guide — but don't enable this policy on "All Devices" until you've thought through your BYOD position.</p>
</blockquote>
<hr />
<h2>Policy 5: Restrict Azure Portal and Admin Tools to Admins Only</h2>
<p>The final foundational policy is one that prevents a compromised standard user account from accessing the Azure portal, Entra ID admin center, or Microsoft Intune admin center.</p>
<p>Standard users have no legitimate reason to access these portals. If a regular employee's account is compromised and an attacker starts poking around the admin portals, that's a major escalation risk. This policy shuts that door.</p>
<h3>Configuration</h3>
<pre><code class="language-plaintext">Entra ID Admin Center → Protection → Conditional Access → New Policy

Name:        CA005 - Restrict Admin Portals to Admins

Assignments:
  Users:     All Users
             Exclusions: [Your Break Glass account]
                         [All admin accounts / admin role members]
  Resources: Microsoft Admin Portals
             (This is a specific option in the resource selector —
              covers Azure portal, Entra ID admin center,
              Microsoft 365 admin center, Intune admin center)
  Conditions: None

Access Controls → Grant:
  ● Block access

Enable policy: Report-only first
</code></pre>
<blockquote>
<p>💡 <strong>Exclusions matter here.</strong> Make sure every account that legitimately needs admin portal access is in the exclusions — either individually or via a group. The Break Glass account must also be excluded. After enabling, test by signing in as a standard user and attempting to access <a href="http://portal.azure.com">portal.azure.com</a> — you should get an access blocked message.</p>
</blockquote>
<hr />
<h2>Putting It All Together: The Deployment Sequence</h2>
<p>Here's the order to go from report-only to live, with recommended time in report-only before enabling:</p>
<table>
<thead>
<tr>
<th>#</th>
<th>Policy</th>
<th>Report-Only Period</th>
<th>Enable Order</th>
</tr>
</thead>
<tbody><tr>
<td>1</td>
<td>Block Legacy Authentication</td>
<td>1 week</td>
<td>First</td>
</tr>
<tr>
<td>2</td>
<td>Require MFA - All Users</td>
<td>1 week (after CA001 live)</td>
<td>Second</td>
</tr>
<tr>
<td>5</td>
<td>Restrict Admin Portals</td>
<td>3 days</td>
<td>Third</td>
</tr>
<tr>
<td>3</td>
<td>Block High-Risk Sign-ins</td>
<td>1 week</td>
<td>Fourth</td>
</tr>
<tr>
<td>4</td>
<td>Require Compliant Device</td>
<td>2 weeks minimum</td>
<td>Last</td>
</tr>
</tbody></table>
<p>The compliant device policy goes last because it has the most prerequisites and the highest potential to impact users if deployed before devices are enrolled. Everything else can layer on while you're working through Intune enrolment.</p>
<hr />
<h2>Naming Conventions: The Thing Nobody Talks About</h2>
<p>Before I let you go, a word on naming. It sounds boring. It will save you significant pain at 11pm when something breaks and you're trying to figure out which policy is doing what.</p>
<p>Use a consistent naming convention from day one:</p>
<pre><code class="language-plaintext">CA[number] - [Action] - [Target/Scope]

Examples:
CA001 - Block - Legacy Authentication
CA002 - Require MFA - All Users
CA003 - Block - High Risk Sign-ins
CA003b - Require MFA - Medium Risk Sign-ins
CA004 - Require Compliant Device - M365
CA005 - Block - Admin Portals Non-Admins
</code></pre>
<p>The number prefix means your policies sort in deployment order in the portal. The action prefix (Block / Require / Allow) tells you at a glance what a policy does before you open it. The scope tells you what it applies to.</p>
<p>Future you will thank present you.</p>
<hr />
<h2>What You've Built</h2>
<p>After deploying these five policies, your Microsoft 365 environment now:</p>
<ul>
<li><p><strong>Blocks all legacy authentication</strong> — closing the MFA bypass hole</p>
</li>
<li><p><strong>Requires MFA for all modern sign-ins</strong> — the foundational layer</p>
</li>
<li><p><strong>Automatically blocks high-risk and anomalous sign-ins</strong> — using Microsoft's threat intelligence</p>
</li>
<li><p><strong>Stops cookie replay attacks</strong> — by requiring device compliance (once Intune is rolled out)</p>
</li>
<li><p><strong>Limits the blast radius of a compromised standard account</strong> — by locking them out of admin portals</p>
</li>
</ul>
<p>That's not a complete security programme. There's more to do — Named Locations, token lifetime controls, app-specific policies, and the more advanced Entra ID Protection configurations we'll cover later in this series. But it's a genuine, meaningful baseline that puts you significantly ahead of most SMB environments.</p>
<p>The attacks that are successfully compromising UK businesses right now are not sophisticated. They're exploiting the absence of exactly these controls.</p>
<p>Get these in place. Then we'll build on them.</p>
<hr />
<h2>Quick Reference Checklist</h2>
<ul>
<li><p>[ ] Break Glass account created, password stored securely offline</p>
</li>
<li><p>[ ] Break Glass account assigned Global Administrator role</p>
</li>
<li><p>[ ] Security Defaults disabled (required before CA policies work)</p>
</li>
<li><p>[ ] CA001 — Block Legacy Authentication — report-only, then live</p>
</li>
<li><p>[ ] CA002 — Require MFA All Users — report-only, then live (after CA001)</p>
</li>
<li><p>[ ] CA003 — Block High Risk Sign-ins — report-only, then live</p>
</li>
<li><p>[ ] CA005 — Restrict Admin Portals — report-only, then live</p>
</li>
<li><p>[ ] Intune set up and devices being enrolled (prerequisite for CA004)</p>
</li>
<li><p>[ ] CA004 — Require Compliant Device — report-only for 2+ weeks, then live</p>
</li>
<li><p>[ ] Break Glass account excluded from ALL policies above</p>
</li>
<li><p>[ ] Sign-in alerts configured for Break Glass account</p>
</li>
<li><p>[ ] Naming convention documented and followed</p>
</li>
</ul>
<hr />
<h2>Up Next in the Series</h2>
<p><strong>Part 3: MFA Fatigue Attacks — How Attackers Weaponise Your Authenticator App Against You</strong></p>
<p>We've built the defensive layer. In Part 3, we zoom back out to the threat side — specifically the technique that has successfully breached Uber, Caesars, and countless SMBs: MFA push fatigue. How it works, why people fall for it, and the free settings that make it dramatically harder to pull off.</p>
<hr />
<p><em>CyberSync UK — Practical cybersecurity for UK businesses and the people who defend them.</em> <em>Questions about your M365 setup? Get in touch at</em> <a href="http://cybersync.uk"><em>cybersync.uk</em></a></p>
<hr />
<p><strong>Tags:</strong> <code>ConditionalAccess</code> <code>EntraID</code> <code>Microsoft365</code> <code>MFA</code> <code>ITsecurity</code> <code>UKcyber</code> <code>Intune</code> <code>EntraIDProtection</code> <code>cybersecurity</code> <code>ITpro</code></p>
<p><strong>Series Link:</strong> <a href="https://blog.cybersync.uk/series/mfa-and-ca">MFA &amp; Conditional Access</a></p>
]]></content:encoded></item><item><title><![CDATA[When MFA Isn't Enough: AiTM Phishing & the Microsoft 365 Cookie Theft Problem]]></title><description><![CDATA[Audience: IT Pros & End Users
Platform: Microsoft 365
Threat Class: Adversary-in-the-Middle (AiTM) Phishing
Series: MFA & Conditional Access
Part: 1 of 7


Telling your users to enable Multi-Factor Au]]></description><link>https://blog.cybersync.uk/aitm-cookie-theft</link><guid isPermaLink="true">https://blog.cybersync.uk/aitm-cookie-theft</guid><category><![CDATA[Microsoft]]></category><category><![CDATA[Microsoft365]]></category><category><![CDATA[cybersecurity]]></category><category><![CDATA[phishing]]></category><category><![CDATA[MFA]]></category><category><![CDATA[aitools]]></category><category><![CDATA[Entra ID]]></category><category><![CDATA[ConditionalAccess]]></category><category><![CDATA[#infosec]]></category><category><![CDATA[cybersyncuk]]></category><category><![CDATA[ukcyber]]></category><category><![CDATA[IT_Security]]></category><dc:creator><![CDATA[CyberSyncUK]]></dc:creator><pubDate>Mon, 09 Mar 2026 21:17:44 GMT</pubDate><enclosure url="https://cdn.hashnode.com/uploads/covers/69af2eb9af06a097c3cc8216/7f1d034c-820f-48cb-948a-b0ea6fb89afe.png" length="0" type="image/jpeg"/><content:encoded><![CDATA[<blockquote>
<p><strong>Audience:</strong> IT Pros &amp; End Users</p>
<p><strong>Platform:</strong> Microsoft 365</p>
<p><strong>Threat Class:</strong> Adversary-in-the-Middle (AiTM) Phishing</p>
<p><strong>Series:</strong> MFA &amp; Conditional Access</p>
<p><strong>Part: 1 of 7</strong></p>
</blockquote>
<hr />
<p>Telling your users to enable Multi-Factor Authentication (MFA) has been Level 1 IT advice for years — and rightly so. It's one of the most effective defences we have. So imagine the sinking feeling when you discover that an attacker has walked straight past it.</p>
<p>That's exactly what's happening with <strong>Adversary-in-the-Middle (AiTM) phishing</strong> — a technique that doesn't crack MFA, doesn't brute-force passwords, and doesn't need malware on the victim's device. Instead, it tricks the victim into handing over everything the attacker needs in a single, polished, completely convincing interaction.</p>
<blockquote>
<p>⚠️ <strong>Why This Matters for UK SMBs</strong></p>
<p>AiTM kits like <strong>Evilginx</strong>, <strong>Modlishka</strong>, and <strong>Muraena</strong> are freely available and well-documented. You don't need to be a nation-state actor to pull this off. Financially motivated criminals are actively deploying these tools against UK businesses using Microsoft 365 — particularly targeting finance, legal, and professional services firms.</p>
</blockquote>
<hr />
<h2>A Quick Refresher: How MFA Actually Works</h2>
<p>Before we can understand how AiTM defeats MFA, let's quickly recap how MFA protects you in the first place. When you sign into Microsoft 365 normally:</p>
<ol>
<li><p>You enter your username and password.</p>
</li>
<li><p>Microsoft's server challenges you for a second factor (Authenticator app push, SMS code, etc.).</p>
</li>
<li><p>You approve the push or enter the code.</p>
</li>
<li><p>Microsoft issues you a <strong>session cookie</strong> — essentially a digital "you've been verified" sticker that your browser stores.</p>
</li>
<li><p>Every subsequent request to Microsoft 365 uses that cookie. You don't re-authenticate on every click.</p>
</li>
</ol>
<blockquote>
<p>💡 <strong>Key Concept — The Session Cookie</strong></p>
<p>The session cookie is the crown jewel. Once Microsoft has issued it after a successful MFA challenge, it's proof of a complete authentication. <strong>If an attacker steals this cookie, they don't need your password or your MFA code ever again.</strong> They can import it into their browser and pick up your session as if they were you.</p>
</blockquote>
<hr />
<h2>How AiTM Phishing Actually Works</h2>
<p>Traditional phishing steals credentials. AiTM phishing is far more sophisticated — it acts as a <strong>real-time relay between the victim and the legitimate Microsoft sign-in page</strong>. The attacker sits in the middle, letting the real authentication happen while silently siphoning everything off.</p>
<h3>The Traffic Flow</h3>
<pre><code class="language-plaintext">Victim's Browser  →→  AiTM Proxy (Evilginx)  →→  Microsoft login.microsoft.com
                                ↑↓
                   [Steals cookie in transit]
                                ↓
                    Attacker's Browser  →  Full M365 Access ✓
</code></pre>
<p>The victim successfully signs in and sees nothing unusual. The attacker has a fully authenticated session. MFA was correctly completed — by the victim — but the resulting proof of authentication was stolen in transit.</p>
<hr />
<h3>Step-by-Step: The Kill Chain</h3>
<p><strong>Step 1 — Phishing Email Lands in the Inbox</strong></p>
<p>The victim receives a convincing email — often a fake "shared document" notification, invoice, voicemail alert, or IT security warning. The link leads to a lookalike domain (e.g. <code>login.microsoft-secure-portal.com</code>) hosted on the attacker's AiTM proxy, complete with a valid TLS certificate. The padlock is there — it just doesn't mean what most people think it does.</p>
<p><strong>Step 2 — Victim Sees a Perfect Microsoft Login Page</strong></p>
<p>The proxy fetches the real Microsoft sign-in page and serves it to the victim in real time. Every pixel looks authentic because it <em>is</em> the authentic page — just relayed through the attacker's server. The victim enters their credentials, which the proxy captures and forwards silently to the real Microsoft servers.</p>
<p><strong>Step 3 — Microsoft Issues a Real MFA Challenge</strong></p>
<p>Because the credentials were real, Microsoft responds with an actual MFA challenge. The proxy relays this back to the victim's browser. The victim sees their normal Authenticator push notification or SMS code request. Nothing looks wrong.</p>
<p><strong>Step 4 — Victim Approves MFA, Completing Authentication</strong></p>
<p>The victim approves the push or enters their code. This is forwarded to Microsoft through the proxy. Microsoft is satisfied — a real user, real password, real second factor. It issues a session cookie.</p>
<p><strong>Step 5 — Proxy Intercepts and Clones the Session Cookie</strong></p>
<p>As the session cookie passes through the proxy on its way to the victim's browser, the attacker's kit makes a copy. The victim gets their cookie and signs in normally, completely unaware.</p>
<p><strong>Step 6 — Cookie Replay: Full Account Access Without Authentication</strong></p>
<p>The attacker imports the stolen cookie into their own browser. Microsoft sees a valid, recently-issued session cookie and grants full access — email, OneDrive, Teams, SharePoint, the whole tenant. No password needed. No MFA needed. From here, attackers typically pivot to Business Email Compromise (BEC), data exfiltration, or lateral movement.</p>
<hr />
<h2>What Attackers Are Actually Using</h2>
<p>Several polished, well-maintained tools exist — and some are freely available.</p>
<h3>Evilginx</h3>
<p><strong>Evilginx</strong> is the most widely observed AiTM framework in the wild. Originally created as a penetration testing tool, it functions as a man-in-the-middle reverse proxy with built-in "phishlets" — configuration files that define how to intercept and relay authentication sessions for specific targets like Microsoft 365 and Google Workspace. It handles TLS termination, cookie extraction, and credential logging automatically.</p>
<pre><code class="language-yaml"># Simplified Evilginx phishlet structure for M365
name: microsoft
proxy_hosts:
  - phish_sub: login
    orig_sub: login
    domain: microsoft.com
    session: true
auth_tokens:
  - domain: .microsoft.com
    keys: [ESTSAUTHPERSISTENT, ESTSAUTH]
    # ↑ These are the M365 session cookies it hunts for
</code></pre>
<h3>Modlishka &amp; Muraena</h3>
<p>Alternative open-source AiTM frameworks with similar capabilities. Muraena has been observed combined with <strong>NecroBrowser</strong> to automate post-compromise actions on stolen sessions at scale.</p>
<h3>Phishing-as-a-Service (PhaaS) Kits</h3>
<p>Perhaps most concerning: you can now buy AiTM-capable phishing kits as a subscription service on underground forums. <strong>Caffeine</strong>, <strong>W3LL Panel</strong>, and similar PhaaS platforms offer point-and-click campaign management, pre-built Microsoft 365 lures, and automatic cookie harvesting — with no technical knowledge required.</p>
<blockquote>
<p>⚡ <strong>The W3LL Panel</strong></p>
<p>Discovered by Group-IB in 2023, the W3LL Panel PhaaS kit was responsible for compromising at least <strong>8,000+ Microsoft 365 accounts</strong> across 56,000+ corporate emails, generating an estimated $500,000 in criminal revenue. It specifically included an AiTM module targeting Microsoft 365 with pre-built lures designed to bypass spam filters.</p>
</blockquote>
<hr />
<h2>Real-World Incidents</h2>
<p>These aren't theoretical. AiTM campaigns have caused serious, measurable harm to real organisations — including UK businesses.</p>
<h3>Microsoft Threat Intelligence — Large-Scale AiTM Campaign (July 2022)</h3>
<p>Microsoft's Security Research team published details of a campaign that targeted over <strong>10,000 organisations</strong> using AiTM phishing pages specifically designed to harvest Microsoft 365 session cookies. After gaining access, attackers used compromised accounts within minutes to initiate <strong>Business Email Compromise (BEC) fraud</strong> — targeting financial contacts at partner companies with fake invoice payment requests.</p>
<p>The speed was the defining characteristic: attackers set up auto-forwarding rules and accessed payment thread emails within <strong>2–5 minutes</strong> of cookie theft, then immediately deleted the sign-in alert emails so the victim wouldn't notice.</p>
<p><strong>Impact:</strong> 10,000+ organisations, BEC fraud at scale, forwarding rules set on compromised accounts.</p>
<hr />
<h3>Scattered Spider — MGM &amp; Caesars (September 2023)</h3>
<p>While US-based, the <strong>Scattered Spider</strong> threat group's techniques are a masterclass in social engineering combined with AiTM. They combined phishing, SIM swapping, and AiTM to bypass MFA at scale against major enterprises. The MGM incident alone caused <strong>estimated losses of over $100 million</strong>.</p>
<p>Critically, the UK's National Cyber Security Centre (NCSC) issued specific guidance following these incidents warning that the group's tactics were being adapted and replicated by criminal actors targeting European businesses, including UK financial services firms.</p>
<p><strong>Impact:</strong> $100M+ losses, NCSC warnings issued for UK organisations.</p>
<hr />
<h3>UK Professional Services Firm — BEC via AiTM (2023, Anonymised)</h3>
<p>A UK-based legal firm with around 150 staff had Microsoft 365 MFA enforced across all accounts. A finance manager received a convincing "DocuSign" email — delivering an Evilginx-backed AiTM page. They signed in, approved the Authenticator push, and thought nothing of it.</p>
<p>Within <strong>4 minutes</strong>, the attacker accessed the mailbox, located a live client payment email thread, and modified the bank account details in a reply. The client transferred <strong>£87,000</strong> to the attacker's mule account before the fraud was discovered. Only £12,000 was recovered through the banking fraud recall process. The firm faced significant reputational damage and a potential ICO investigation for the data breach element.</p>
<p><strong>Impact:</strong> £87,000 lost, 4 minutes from compromise to fraud, ICO notification required.</p>
<hr />
<h3>Nobelium / APT29 — Microsoft 365 Targeting (Ongoing, 2021–Present)</h3>
<p><strong>Nobelium</strong> — the Russian state-linked group behind the SolarWinds attack — has incorporated AiTM techniques as a standard part of their Microsoft 365 intrusion playbook. They've been documented targeting government supply chains, including contractors and suppliers who interact with UK government departments. Their campaigns are notable for patience: after stealing cookies, they often conduct weeks of passive monitoring before taking any action, making detection extremely difficult.</p>
<p><strong>Impact:</strong> Nation-state threat, UK government supply chain targeting, long-term undetected persistence.</p>
<hr />
<h2>Why "Standard" MFA Doesn't Stop This</h2>
<p>It's important to be precise here: <strong>MFA isn't broken</strong>. It still stops the vast majority of credential-based attacks — password spray, credential stuffing, brute force. But AiTM exploits a specific gap: the difference between <em>authenticating the user</em> and <em>trusting the session</em>.</p>
<p>These MFA methods are <strong>vulnerable to AiTM</strong> because they only verify identity at login time, not on an ongoing basis:</p>
<table>
<thead>
<tr>
<th>MFA Method</th>
<th>AiTM Vulnerable?</th>
<th>Why</th>
</tr>
</thead>
<tbody><tr>
<td>Authenticator App Push</td>
<td>✗ Yes</td>
<td>Cookie issued after approval, stolen in transit</td>
</tr>
<tr>
<td>SMS One-Time Code</td>
<td>✗ Yes</td>
<td>Code relayed in real time; also vulnerable to SIM swap</td>
</tr>
<tr>
<td>TOTP Apps (Google Authenticator, Authy)</td>
<td>✗ Yes</td>
<td>6-digit code relayed live; cookie stolen after</td>
</tr>
<tr>
<td>Voice Call Verification</td>
<td>✗ Yes</td>
<td>Least secure; also prone to social engineering</td>
</tr>
</tbody></table>
<blockquote>
<p>🎯 <strong>The Fundamental Issue</strong></p>
<p>All of the above methods verify <em>who you are</em> at the moment of login. They do nothing to verify <em>where the resulting session will be used from</em>. AiTM exploits this gap by letting authentication happen legitimately, then using the resulting proof in an entirely different context.</p>
</blockquote>
<hr />
<h2>What Actually Stops AiTM: Phishing-Resistant MFA &amp; Conditional Access</h2>
<p>Here's the good news: Microsoft has built the tools to address this problem into Entra ID. The bad news: most SMBs aren't using them because configuration takes effort and often requires higher-tier licensing. Here's what actually works.</p>
<h3>Tier 1: Phishing-Resistant MFA</h3>
<p>These methods are <strong>fundamentally immune to AiTM</strong> because they cryptographically bind authentication to the legitimate domain. They cannot be relayed.</p>
<p><strong>✅ FIDO2 Security Keys (e.g. YubiKey)</strong></p>
<p>A physical USB/NFC key that uses public key cryptography. When authenticating, it signs a challenge that includes the domain name. An AiTM proxy on a different domain cannot forge this — the cryptographic signature will fail. This is currently the gold standard for phishing resistance.</p>
<p><strong>✅ Windows Hello for Business</strong></p>
<p>Biometric or PIN-based authentication tied to a specific, enrolled, Entra ID-joined device. The private key never leaves the device's TPM chip. Phishing a Windows Hello session is cryptographically infeasible.</p>
<p><strong>✅ Microsoft Authenticator with Number Matching + Context</strong></p>
<p>Alone, push notifications are AiTM-vulnerable. But with <strong>number matching</strong> enabled (the user must type the number shown on the sign-in page into the app) and <strong>additional context</strong> (the app shows the sign-in location and application name), MFA fatigue attacks are significantly harder. Note: this doesn't fully prevent AiTM, but adds meaningful friction and is free to enable today.</p>
<hr />
<h3>Tier 2: Conditional Access Policies</h3>
<p>Even if you can't immediately roll out phishing-resistant MFA to everyone, Conditional Access policies in Entra ID give you powerful controls to reduce the blast radius of a successful AiTM attack.</p>
<p><strong>1. Require Compliant Device</strong> <em>Effectiveness against AiTM: Very High | Licence: Microsoft 365 Business Premium / Entra ID P1 + Intune</em></p>
<p>Requires device to be Intune-enrolled and compliant before granting M365 access. An attacker's browser with a stolen cookie will fail this check immediately — the cookie replay attack is stopped cold. This is your single highest-value AiTM mitigation if you have Business Premium licensing.</p>
<p><strong>2. Sign-in Frequency / Token Lifetime Controls</strong> <em>Effectiveness: Moderate | Licence: Entra ID P1</em></p>
<p>Forces re-authentication after a short period. Stolen cookies expire quickly, limiting the attacker's window of access. Doesn't prevent initial compromise, but reduces the damage window significantly.</p>
<p><strong>3. Named Locations — Block Non-UK Traffic</strong> <em>Effectiveness: Moderate | Licence: Entra ID P1</em></p>
<p>Define trusted IP ranges and block sign-ins from unusual geographies. Many attackers use residential proxies in the UK to bypass this, but it stops opportunistic overseas actors.</p>
<p><strong>4. Require Phishing-Resistant MFA Strength</strong> <em>Effectiveness: Highest | Licence: Entra ID P1</em></p>
<p>Enforce that only FIDO2 or Windows Hello is accepted as MFA — standard push notifications are rejected for sensitive applications. This completely defeats AiTM as the authentication method cannot be relayed.</p>
<p><strong>5. Entra ID Protection — Risk-Based Conditional Access</strong> <em>Effectiveness: High | Licence: Entra ID P2 / Microsoft 365 Business Premium</em></p>
<p>Microsoft's ML-driven risk engine evaluates each sign-in. Anomalous properties — new country, impossible travel, anonymising proxy — trigger step-up authentication or an automatic block. A stolen cookie used from an unusual IP is flagged as high-risk and blocked automatically.</p>
<hr />
<h3>Recommended Configuration: Compliant Device Policy</h3>
<p>If you can only implement one Conditional Access policy today to address AiTM, make it a compliant device requirement.</p>
<pre><code class="language-plaintext">Entra ID Admin Center → Protection → Conditional Access → New Policy

Policy Name:  "Require Compliant Device - M365 Apps"

Assignments:
  Users:      All Users (EXCLUDE your Break Glass account!)
  Resources:  Office 365
  Conditions: None (apply to all platforms)

Access Controls → Grant:
  ☑ Require device to be marked as compliant

Session:
  Sign-in frequency: 1 hour (for sensitive roles)
  Persistent browser session: Never persistent

Enable Policy: Report-only first → then On
</code></pre>
<blockquote>
<p>⚠️ <strong>Before You Enable</strong></p>
<p>Always create a <strong>Break Glass account</strong> — a cloud-only, excluded admin account with a very strong password stored securely offline — before enabling any Conditional Access policy. A misconfigured policy can lock everyone out of your tenant, including you.</p>
</blockquote>
<hr />
<h2>How to Detect AiTM Attacks in Your Environment</h2>
<p>Prevention is essential, but you need to be able to spot when an attack has succeeded.</p>
<h3>Entra ID Sign-In Logs</h3>
<p>Navigate to <strong>Entra ID → Monitoring → Sign-in logs</strong> and look for:</p>
<ul>
<li><p>Two sign-ins in quick succession from <strong>different IP addresses or countries</strong> for the same user</p>
</li>
<li><p>Sign-in flagged as using a token from an <strong>anonymising proxy or VPN</strong></p>
</li>
<li><p><strong>Impossible travel</strong> — user signed in from London, then from Eastern Europe 10 minutes later</p>
</li>
<li><p><strong>Sign-in Risk Level: High</strong> — Microsoft's detection may have already flagged it</p>
</li>
</ul>
<h3>Microsoft Unified Audit Log</h3>
<p>In <strong>Microsoft Purview → Audit</strong> (or Microsoft 365 Defender), search for:</p>
<ul>
<li><p>⚠️ <strong>New inbox rules created</strong> — especially rules that forward, delete, or hide emails. A classic post-AiTM move.</p>
</li>
<li><p>⚠️ <strong>MailItemsAccessed</strong> events from an unusual IP or user agent — access without a corresponding sign-in event</p>
</li>
<li><p>⚠️ <strong>New delegated mailbox permissions or external email forwarding rules</strong> added</p>
</li>
<li><p>⚠️ <strong>OAuth app consents</strong> — attacker granting a malicious app persistent access</p>
</li>
</ul>
<blockquote>
<p>💡 <strong>If You Suspect a Compromise</strong></p>
<p>Don't just reset the password — that won't revoke stolen session cookies. You must use <strong>Revoke-AzureADUserAllRefreshToken</strong> (PowerShell) or the "Revoke sessions" button in Entra ID to invalidate all active sessions. Then reset the password, investigate the audit log, and check for persistence mechanisms like inbox rules and OAuth app grants.</p>
</blockquote>
<hr />
<h2>What to Tell Your Users (In Plain English)</h2>
<p>Technical controls are essential, but your users are still the first line of detection — and the primary target. Here's a pragmatic, non-fear-mongering message to share with them:</p>
<p><strong>"The padlock doesn't mean the website is genuine."</strong> A padlock just means the connection is encrypted — not that the site is legitimate. Microsoft will only ever ask you to sign in at <code>login.microsoftonline.com</code> or <code>login.microsoft.com</code>. Check the full domain carefully.</p>
<p><strong>"If you're asked to approve an MFA push you didn't initiate — decline it immediately and call IT."</strong> You should only ever be approving Authenticator requests that you triggered yourself.</p>
<p><strong>"Urgency is a red flag."</strong> Phishing lures almost always create false urgency. "Your account will be suspended." "Action required immediately." Pause, question it, and call IT if unsure.</p>
<hr />
<h2>IT Team Action Checklist</h2>
<p>Work through these in priority order:</p>
<ul>
<li><p>[ ] <strong>Enable Authenticator Number Matching</strong> — Entra ID → Authentication Methods → Microsoft Authenticator. Enable number matching and additional context for all users. Free. Do this today.</p>
</li>
<li><p>[ ] <strong>Deploy Conditional Access — Compliant Device Required</strong> — Start in report-only mode for two weeks, then enable. Highest-value AiTM mitigation with Business Premium licensing.</p>
</li>
<li><p>[ ] <strong>Enable Entra ID Protection</strong> — Configure sign-in risk policies to block High risk sign-ins automatically (requires P2 or Business Premium).</p>
</li>
<li><p>[ ] <strong>Pilot FIDO2 Security Keys</strong> — Start with finance, IT admins, and directors. YubiKey 5 series, approximately £45–55 per key. These are your highest-value targets.</p>
</li>
<li><p>[ ] <strong>Enable Unified Audit Logging</strong> — Ensure it's on across your tenant. Set log retention to at least 90 days.</p>
</li>
<li><p>[ ] <strong>Configure Safe Links (Defender for Office 365)</strong> — Rewrites URLs in emails and can identify AiTM phishing domains at click time.</p>
</li>
<li><p>[ ] <strong>Run Phishing Simulations</strong> — Use Microsoft Attack Simulator (included in Business Premium) to test user responses to realistic AiTM-style lures.</p>
</li>
<li><p>[ ] <strong>Create and document a Break Glass account</strong> — Before any Conditional Access deployment. Store credentials offline in a secure location.</p>
</li>
<li><p>[ ] <strong>Review OAuth app consents</strong> — Entra ID → Enterprise Applications. Remove any unknown or unused third-party app consents that could be attacker persistence.</p>
</li>
<li><p>[ ] <strong>Block legacy authentication protocols</strong> — SMTP AUTH, POP, IMAP bypass MFA entirely. Use a Conditional Access policy to block legacy auth if you haven't already.</p>
</li>
</ul>
<hr />
<h2>The Bottom Line</h2>
<p>AiTM phishing represents a genuine evolution in the threat landscape — one that directly neutralises a control that most organisations have come to rely on.</p>
<p><strong>MFA is not enough on its own.</strong> Push notifications, SMS codes, and TOTP apps are all bypassable by AiTM. This doesn't mean you should remove MFA — it means you need to go further.</p>
<p><strong>Compliant device enforcement is your highest-value Conditional Access control.</strong> An attacker with a stolen cookie connecting from their own machine will fail a device compliance check cold. This breaks the AiTM attack chain decisively.</p>
<p><strong>Phishing-resistant MFA is the end state to work towards.</strong> FIDO2 keys for your highest-risk users — finance, IT admins, directors — should be a near-term priority. Windows Hello for Business gives you the same protection at scale for managed devices.</p>
<p><strong>Detection matters as much as prevention.</strong> Audit logging, Entra ID Protection, and knowing what post-compromise indicators to look for are what give you a fighting chance of catching a breach quickly — before £87,000 leaves your client's bank account.</p>
<p>The adversaries targeting UK SMBs are using commercial-grade tooling and well-rehearsed playbooks. The good news is that Microsoft has built equally capable defences into the M365 stack — they just need to be switched on and configured correctly.</p>
<p>The organisations that take AiTM seriously today are the ones that won't be calling Action Fraud tomorrow.</p>
<hr />
<p><em>Published by CyberSync UK — Cyber Security Education for End Users, IT Professionals, and the C-Suite.</em> <em>Have questions about your Microsoft 365 security posture? Get in touch at</em> <a href="https://cybersync.uk/"><em>cybersync.uk</em></a></p>
<hr />
<p><strong>Tags:</strong> <code>microsoft365</code> <code>cybersecurity</code> <code>phishing</code> <code>MFA</code> <code>AiTM</code> <code>EntraID</code> <code>ConditionalAccess</code> <code>infosec</code> <code>UKcyber</code> <code>ITsecurity</code></p>
]]></content:encoded></item></channel></rss>