Performing Adversary-in-the-Middle Phishing Detection
Overview
Adversary-in-the-Middle (AiTM) phishing attacks use reverse-proxy infrastructure to sit between the victim and the legitimate authentication service, intercepting both credentials and session cookies in real time. This allows attackers to bypass multi-factor authentication (MFA). The most prevalent PhaaS kits in 2025 include Tycoon 2FA, Sneaky 2FA, EvilProxy, and Evilginx. Over 1 million PhaaS attacks were detected in January-February 2025 alone. These attacks have evolved from QR codes to HTML attachments and SVG files for link distribution.
When to Use
Trigger phrases:
"performing adversary in the middle phishing detection"
"Detect and respond to Adversary-in-the-Middle (AiTM) phishing attacks that use r"
When conducting security assessments that involve performing adversary in the middle phishing detection
When following incident response procedures for related security events
When performing scheduled security testing or auditing activities
When validating security controls through hands-on testing
Prerequisites
- Azure AD / Entra ID Conditional Access policies
- SIEM with authentication log ingestion (Azure AD sign-in logs)
- Web proxy with SSL inspection and URL categorization
- Endpoint Detection and Response (EDR) solution
- FIDO2/phishing-resistant MFA capability
Key Concepts
This section covers key concepts for performing adversary in the middle phishing detection.
- Ensure all prerequisites are met before proceeding
- Follow the documented workflow steps in sequence
- Record results and any anomalies encountered during this phase
How AiTM Works
- Victim receives phishing email with link to attacker-controlled domain
- Attacker domain runs reverse proxy that mirrors legitimate login page
- Victim enters credentials on proxied page; credentials captured in transit
- Reverse proxy forwards credentials to real authentication service
- MFA challenge sent to victim; victim completes MFA on proxied page
- Attacker captures session cookie returned by legitimate service
- Attacker replays session cookie to access victim's account without MFA
Major AiTM Kits (2025)
| Kit |
Type |
Primary Targets |
Evasion |
| Tycoon 2FA |
PhaaS |
Microsoft 365, Google |
CAPTCHA, Cloudflare turnstile |
| EvilProxy |
PhaaS |
Microsoft 365, Google, Okta |
Random URLs, IP rotation |
| Evilginx |
Open-source |
Any web application |
Custom phishlets |
| Sneaky 2FA |
PhaaS |
Microsoft 365 |
Anti-bot checks |
| NakedPages |
PhaaS |
Multiple |
Minimal infrastructure |
Detection Indicators
- Authentication from unusual IP not matching user profile
- Session cookie reuse from different IP/device than authentication
- Login page served from non-Microsoft/non-Google infrastructure
- CDN requests to legitimate auth providers from phishing domains
- Impossible travel between authentication and session usage
Workflow
# Example: IOC detection
import re
IOC_PATTERNS = {
"ip": r"\b(?:\d{1,3}\.){3}\d{1,3}\b",
"domain": r"\b[a-z0-9-]+\.[a-z]{2,}\b",
"hash_md5": r"\b[a-f0-9]{32}\b",
"hash_sha256": r"\b[a-f0-9]{64}\b",
}
def extract_iocs(text: str) -> dict:
return {k: re.findall(v, text) for k, v in IOC_PATTERNS.items()}
- Isolate the sample — ensure the malware is in a sandboxed environment with no network access
- Record file metadata — hash the sample and note file type, size, and compile timestamp
- Static analysis — examine strings, imports, and disassembled code without execution
- Dynamic analysis — execute in a monitored sandbox and record behavior (file, registry, network)
- Document IOCs — extract indicators of compromise and write the analysis report
Step 1: Deploy Phishing-Resistant MFA
- Implement FIDO2 security keys or Windows Hello for Business for high-value accounts
- Configure Conditional Access to require phishing-resistant MFA for admins
- Enable certificate-based authentication where possible
- Disable SMS and voice MFA for privileged accounts
- AiTM cannot intercept FIDO2 because authentication is bound to origin domain
Step 2: Configure Conditional Access Policies
- Require compliant/managed device for sensitive application access
- Block authentication from anonymous proxies and Tor exit nodes
- Enforce token binding to limit session cookie replay
- Configure continuous access evaluation (CAE) for real-time token revocation
- Implement sign-in risk policies that require re-authentication for risky sign-ins
Step 3: Build AiTM Detection Rules
- Alert on sign-in followed by session from different IP within 10 minutes
- Detect authentication where proxy IP does not match user's expected location
- Monitor for impossible travel patterns in session usage
- Alert on inbox rules created immediately after authentication (common post-compromise)
- Detect new MFA method registration from suspicious sign-in
Step 4: Monitor Web Proxy for AiTM Infrastructure
- Log and analyze DNS queries to newly registered domains
- Detect connections to known PhaaS infrastructure IPs
- Alert on authentication page backgrounds loaded from legitimate CDNs through proxy domains
- Monitor for SSL certificates issued to domains mimicking corporate login pages
- Block access to known EvilProxy/Evilginx infrastructure via threat intelligence
Step 5: Implement Post-Compromise Detection
- Alert on mailbox forwarding rules created after suspicious authentication
- Detect OAuth app consent after AiTM sign-in
- Monitor for email sending patterns indicating BEC follow-up
- Alert on SharePoint/OneDrive mass download after session hijack
- Track lateral movement from compromised account
When NOT to Use
- You don't have explicit written authorization to test
- Task is about defense/detection, not offense (use detection skills)
- You need to implement security controls (use implementing-* skills)
- Task requires compliance auditing (use auditing-* skills)
- You're investigating an incident (use incident response skills)
- Target is out of scope for your engagement
- Task is about vulnerability scanning only (use scanning tools)
Red Flags
- Performing actions without explicit written authorization from the asset owner
- Testing against production systems without a defined scope and rules of engagement
- Analyzing malware on a machine connected to the production network
- Failing to isolate the analysis environment from the internet
- Executing samples without proper containment (VM, sandbox)
Verification
- All steps executed successfully against a test environment before production use
- Output documented with screenshots or logs demonstrating expected behavior
- Sample hash recorded and verified (MD5, SHA-1, SHA-256)
- Analysis environment confirmed isolated from production network
- Indicators of compromise (IOCs) extracted and documented
Tools & Resources
- Microsoft Entra ID Protection: Risk-based Conditional Access
- Azure AD Sign-in Logs: Authentication event analysis
- Okta ThreatInsight: AiTM proxy detection at IdP level
- Sekoia TDR: AiTM campaign tracking and intelligence
- Evilginx (defensive): Understanding attack mechanics for detection
Validation
- Phishing-resistant MFA blocks AiTM session capture in test scenario
- Conditional Access denies session replay from different device/IP
- SIEM alerts fire on simulated AiTM sign-in patterns
- Web proxy blocks connections to known PhaaS infrastructure
- Post-compromise rules detect inbox rule creation after suspicious auth
Process
- Analyze the task requirements
- Apply domain expertise
- Verify output quality
Anti-Rationalization Table
| Rationalization |
Reality |
| "We are too small to be targeted" |
Automated attacks target everyone. Size does not matter. |
| "Security slows us down" |
A breach slows you down 100x more. Build security in from the start. |
| "We will fix it after launch" |
Vulnerabilities in production are exploited within hours. Fix before deploy. |
1---2name: performing-adversary-in-the-middle-phishing-detection3description: Use when detect and respond to Adversary-in-the-Middle (AiTM) phishing attacks that use reverse proxy kits like EvilProxy, Evilginx, and Tycoon 2FA to bypass MFA and steal session tokens. Use when detecting and respond to adversary-in-the-middle (aitm) phishing attacks that use.4license: Apache-2.05---67# Performing Adversary-in-the-Middle Phishing Detection89## Overview10Adversary-in-the-Middle (AiTM) phishing attacks use reverse-proxy infrastructure to sit between the victim and the legitimate authentication service, intercepting both credentials and session cookies in real time. This allows attackers to bypass multi-factor authentication (MFA). The most prevalent PhaaS kits in 2025 include Tycoon 2FA, Sneaky 2FA, EvilProxy, and Evilginx. Over 1 million PhaaS attacks were detected in January-February 2025 alone. These attacks have evolved from QR codes to HTML attachments and SVG files for link distribution.111213## When to Use14**Trigger phrases:**15- "performing adversary in the middle phishing detection"16- "Detect and respond to Adversary-in-the-Middle (AiTM) phishing attacks that use r"171819- When conducting security assessments that involve performing adversary in the middle phishing detection20- When following incident response procedures for related security events21- When performing scheduled security testing or auditing activities22- When validating security controls through hands-on testing2324## Prerequisites25- Azure AD / Entra ID Conditional Access policies26- SIEM with authentication log ingestion (Azure AD sign-in logs)27- Web proxy with SSL inspection and URL categorization28- Endpoint Detection and Response (EDR) solution29- FIDO2/phishing-resistant MFA capability3031## Key Concepts3233This section covers key concepts for performing adversary in the middle phishing detection.3435- Ensure all prerequisites are met before proceeding36- Follow the documented workflow steps in sequence37- Record results and any anomalies encountered during this phase38### How AiTM Works391. Victim receives phishing email with link to attacker-controlled domain402. Attacker domain runs reverse proxy that mirrors legitimate login page413. Victim enters credentials on proxied page; credentials captured in transit424. Reverse proxy forwards credentials to real authentication service435. MFA challenge sent to victim; victim completes MFA on proxied page446. Attacker captures session cookie returned by legitimate service457. Attacker replays session cookie to access victim's account without MFA4647### Major AiTM Kits (2025)48| Kit | Type | Primary Targets | Evasion |49|---|---|---|---|50| Tycoon 2FA | PhaaS | Microsoft 365, Google | CAPTCHA, Cloudflare turnstile |51| EvilProxy | PhaaS | Microsoft 365, Google, Okta | Random URLs, IP rotation |52| Evilginx | Open-source | Any web application | Custom phishlets |53| Sneaky 2FA | PhaaS | Microsoft 365 | Anti-bot checks |54| NakedPages | PhaaS | Multiple | Minimal infrastructure |5556### Detection Indicators57- Authentication from unusual IP not matching user profile58- Session cookie reuse from different IP/device than authentication59- Login page served from non-Microsoft/non-Google infrastructure60- CDN requests to legitimate auth providers from phishing domains61- Impossible travel between authentication and session usage6263## Workflow6465```python66# Example: IOC detection67import re6869IOC_PATTERNS = {70 "ip": r"\b(?:\d{1,3}\.){3}\d{1,3}\b",71 "domain": r"\b[a-z0-9-]+\.[a-z]{2,}\b",72 "hash_md5": r"\b[a-f0-9]{32}\b",73 "hash_sha256": r"\b[a-f0-9]{64}\b",74}7576def extract_iocs(text: str) -> dict:77 return {k: re.findall(v, text) for k, v in IOC_PATTERNS.items()}78```79801. **Isolate the sample** — ensure the malware is in a sandboxed environment with no network access812. **Record file metadata** — hash the sample and note file type, size, and compile timestamp823. **Static analysis** — examine strings, imports, and disassembled code without execution834. **Dynamic analysis** — execute in a monitored sandbox and record behavior (file, registry, network)845. **Document IOCs** — extract indicators of compromise and write the analysis report85### Step 1: Deploy Phishing-Resistant MFA86- Implement FIDO2 security keys or Windows Hello for Business for high-value accounts87- Configure Conditional Access to require phishing-resistant MFA for admins88- Enable certificate-based authentication where possible89- Disable SMS and voice MFA for privileged accounts90- AiTM cannot intercept FIDO2 because authentication is bound to origin domain9192### Step 2: Configure Conditional Access Policies93- Require compliant/managed device for sensitive application access94- Block authentication from anonymous proxies and Tor exit nodes95- Enforce token binding to limit session cookie replay96- Configure continuous access evaluation (CAE) for real-time token revocation97- Implement sign-in risk policies that require re-authentication for risky sign-ins9899### Step 3: Build AiTM Detection Rules100- Alert on sign-in followed by session from different IP within 10 minutes101- Detect authentication where proxy IP does not match user's expected location102- Monitor for impossible travel patterns in session usage103- Alert on inbox rules created immediately after authentication (common post-compromise)104- Detect new MFA method registration from suspicious sign-in105106### Step 4: Monitor Web Proxy for AiTM Infrastructure107- Log and analyze DNS queries to newly registered domains108- Detect connections to known PhaaS infrastructure IPs109- Alert on authentication page backgrounds loaded from legitimate CDNs through proxy domains110- Monitor for SSL certificates issued to domains mimicking corporate login pages111- Block access to known EvilProxy/Evilginx infrastructure via threat intelligence112113### Step 5: Implement Post-Compromise Detection114- Alert on mailbox forwarding rules created after suspicious authentication115- Detect OAuth app consent after AiTM sign-in116- Monitor for email sending patterns indicating BEC follow-up117- Alert on SharePoint/OneDrive mass download after session hijack118- Track lateral movement from compromised account119120## When NOT to Use121122- You don't have explicit written authorization to test123- Task is about defense/detection, not offense (use detection skills)124- You need to implement security controls (use implementing-* skills)125- Task requires compliance auditing (use auditing-* skills)126- You're investigating an incident (use incident response skills)127- Target is out of scope for your engagement128- Task is about vulnerability scanning only (use scanning tools)129130131## Red Flags132133- Performing actions without explicit written authorization from the asset owner134- Testing against production systems without a defined scope and rules of engagement135- Analyzing malware on a machine connected to the production network136- Failing to isolate the analysis environment from the internet137- Executing samples without proper containment (VM, sandbox)138139## Verification140141- All steps executed successfully against a test environment before production use142- Output documented with screenshots or logs demonstrating expected behavior143- Sample hash recorded and verified (MD5, SHA-1, SHA-256)144- Analysis environment confirmed isolated from production network145- Indicators of compromise (IOCs) extracted and documented146147## Tools & Resources148- **Microsoft Entra ID Protection**: Risk-based Conditional Access149- **Azure AD Sign-in Logs**: Authentication event analysis150- **Okta ThreatInsight**: AiTM proxy detection at IdP level151- **Sekoia TDR**: AiTM campaign tracking and intelligence152- **Evilginx (defensive)**: Understanding attack mechanics for detection153154## Validation155- Phishing-resistant MFA blocks AiTM session capture in test scenario156- Conditional Access denies session replay from different device/IP157- SIEM alerts fire on simulated AiTM sign-in patterns158- Web proxy blocks connections to known PhaaS infrastructure159- Post-compromise rules detect inbox rule creation after suspicious auth160161## Process1621631. Analyze the task requirements1642. Apply domain expertise1653. Verify output quality166167## Anti-Rationalization Table168169| Rationalization | Reality |170|---|---|171| "We are too small to be targeted" | Automated attacks target everyone. Size does not matter. |172| "Security slows us down" | A breach slows you down 100x more. Build security in from the start. |173| "We will fix it after launch" | Vulnerabilities in production are exploited within hours. Fix before deploy. |