A single but high-fidelity OTX pulse from AlienVault (TLP:WHITE, modified 2026-09-02) details Knight Office, a newly documented Adversary-in-the-Middle (AiTM) phishing kit actively targeting Microsoft 365 tenants. Originally researched by Huntress, this kit represents the continuing industrialization of session-token theft — the same attack class popularized by Evilginx2, Tycoon 2FA, and Mamba 2FA, now repackaged with a polished operator console.
The attack chain is deliberately convoluted to defeat URL-reputation filtering:
- Lure: DocuSign-themed phishing emails — a brand pretext that reliably generates clicks in finance, legal, and HR workflows.
- Redirect laundering: Links route through legitimate Monday.com infrastructure and compromised Joomla websites, giving the initial hops clean reputations and bypassing secure email gateways that only detonate first-stage URLs.
- AiTM relay: Victims land on credential capture pages that proxy the real Microsoft login flow, harvesting credentials and the resulting session tokens in real time — defeating standard MFA (push, OTP, SMS).
- Post-compromise: Stolen session material is replayed to establish durable access, with the kit's tags indicating abuse of OAuth consent, device registration, and Windows Hello for Business (WHfB) enrollment to survive password resets.
Objective: persistent access to M365 mailboxes and SharePoint/OneDrive data for BEC, invoice fraud, internal spearphishing, and data theft. The operator console lowers the skill barrier, meaning this kit will likely be resold or rented across multiple affiliate groups — expect the indicator set to rotate rapidly while the TTPs remain stable.
The 26 indicators are dominated by .vu (Vanuatu) ccTLD domains with randomized, brand-mimicking names (e.g., capitalflwxinancialpartners.vu) — a pattern consistent with bulk-registered, low-cost disposable phishing infrastructure.
Threat Actor / Malware Profile
Kit Name: Knight Office (AiTM phishing kit) Attribution: Unknown — operator console model suggests Phishing-as-a-Service (PhaaS) distribution Target: Microsoft 365 enterprise tenants
| Attribute | Detail |
|---|---|
| Distribution method | DocuSign-themed emails → Monday.com redirect → compromised Joomla sites → AiTM landing page |
| Payload behavior | Transparent reverse-proxy of the genuine Microsoft login flow; captures credentials, OTP/MFA responses, and session cookies (ESTSAUTH / ESTSAUTHPERSISTENT) mid-authentication |
| C2 communication | Phishing frontends on bulk-registered .vu domains; captured tokens fed to the Knight Office operator console for session replay |
| Persistence mechanism | Stolen session tokens replayed post-compromise; rogue OAuth app consent grants, device registration/join, and Windows Hello for Business key enrollment to retain access after password resets and token expiry |
| Anti-analysis techniques | Multi-hop redirect chains through legitimate SaaS (Monday.com) and compromised CMS sites (Joomla); randomized domain names to evade static blocklists; likely conditional filtering of security scanners/sandboxes |
Why this matters: AiTM defeats the most common MFA deployments. Only phishing-resistant MFA (FIDO2/passkeys with origin binding) reliably blocks token relay — and even then, the WHfB enrollment step in this kit is an attempt to convert stolen access into attacker-controlled phishing-resistant credentials.
IOC Analysis
The pulse contains 26 indicators, all domain-based — specifically .vu ccTLD domains with brand-impersonating, randomized naming patterns:
kleepxrnlinecorporation.vuadvancedplacyncement.vuamstardmzsmc.vuarandasoftzfdware.vucapitalflwxinancialpartners.vucertififiycationedge.vuconnectivnqzityltd.vu
Operationalization guidance for SOC teams:
- Block at the perimeter: Push the full domain set to DNS sinkhole, web proxy/SWG, and secure email gateway blocklists. Given the TLD pattern, consider alerting (not necessarily blocking) on all
.vuresolutions from corporate endpoints — legitimate business use of Vanuatu domains is vanishingly rare. - Detect behaviorally, not just by IOC: These domains are disposable and will rotate. Prioritize behavioral detections: M365 sign-ins from unusual ASN/geography immediately following a proxied login, impossible-travel events, and OAuth consent grants within minutes of a suspicious authentication.
- Tooling: Enrich domains via WHOIS registration-date lookups (newly registered domains < 30 days old are high-signal). Use urlscan.io and VirusTotal to detonate redirect chains. Query OTX directly for pulse updates as the kit's infrastructure rotates.
- Identity telemetry is the ground truth: Because AiTM happens in the browser, network IOCs alone will under-detect. Entra ID sign-in logs (token issuer anomalies,
authenticationRequirementmismatches, session replay from foreign IPs) are where compromise is confirmed.
Detection Engineering
---
title: Suspicious M365 OAuth Consent Grant Following Sign-In
description: Detects user consent to OAuth applications, a persistence technique used by Knight Office AiTM phishing kit operators after session token theft
date: 2026/09/03
status: experimental
logsource:
product: azure
service: auditlogs
detection:
selection:
OperationName:
- 'Consent to application'
- 'Add service principal'
condition: selection
level: high
tags:
- attack.persistence
- attack.t1528
- attack.t1550
---
title: Windows Hello for Business or Device Registration Anomaly
description: Detects device registration/join and WHfB key enrollment events potentially indicating Knight Office post-compromise persistence after AiTM session theft
date: 2026/09/03
status: experimental
logsource:
product: azure
service: auditlogs
detection:
selection:
OperationName:
- 'Add registered device'
- 'Update device'
- 'Add strong authentication method'
- 'Register security info'
filter_known:
Result: 'success'
condition: selection and filter_known
level: high
tags:
- attack.persistence
- attack.t1098
- attack.t1556
---
title: Outbound Connection to Knight Office AiTM Phishing Infrastructure
description: Detects DNS resolution or web connections to known Knight Office .vu phishing kit domains identified in OTX pulse
date: 2026/09/03
status: experimental
logsource:
category: dns
detection:
selection_domains:
query:
- 'kleepxrnlinecorporation.vu'
- 'advancedplacyncement.vu'
- 'amstardmzsmc.vu'
- 'arandasoftzfdware.vu'
- 'avisoretentiunionllc.vu'
- 'capitalflwxinancialpartners.vu'
- 'certififiycationedge.vu'
- 'connectivnqzityltd.vu'
selection_tld:
query|endswith: '.vu'
condition: selection_domains or selection_tld
level: critical
tags:
- attack.initial_access
- attack.t1566
- attack.t1557
// Knight Office AiTM hunt: network hits + post-compromise identity behavior
let knightDomains = dynamic(["kleepxrnlinecorporation.vu","advancedplacyncement.vu","amstardmzsmc.vu","arandasoftzfdware.vu","avisoretentiunionllc.vu","capitalflwxinancialpartners.vu","certififiycationedge.vu","connectivnqzityltd.vu"]);
let SuspectHits = DeviceNetworkEvents
| where TimeGenerated > ago(14d)
| where RemoteUrl has_any (knightDomains) or RemoteUrl endswith ".vu"
| project HitTime=TimeGenerated, DeviceName, InitiatingProcessAccountName, RemoteUrl, InitiatingProcessFileName;
SuspectHits
| join kind=inner (
DeviceProcessEvents
| where TimeGenerated > ago(14d)
| where FileName in~ ("chrome.exe","msedge.exe","firefox.exe","iexplore.exe")
| project ProcTime=TimeGenerated, DeviceName, AccountName, FileName, ProcessCommandLine
) on DeviceName
| where ProcTime between (datetime_add('minute', -10, HitTime) .. datetime_add('minute', 10, HitTime))
| project HitTime, DeviceName, AccountName, RemoteUrl, ProcessCommandLine
| sort by HitTime desc;
// Identity-side: session replay / impossible travel after suspicious sign-in
// SigninLogs
// | where TimeGenerated > ago(14d)
// | where ResultType == 0
// | summarize Signins=count(), Locations=make_set(Location), ASNs=make_set(NetworkLocationDetails) by UserPrincipalName, bin(TimeGenerated, 1h)
// | where array_length(Locations) > 1
# Knight Office AiTM IOC Hunt — run across endpoints via EDR/Intune/GPO
# Checks DNS cache and proxy telemetry for .vu phishing infrastructure
$knightDomains = @(
"kleepxrnlinecorporation.vu",
"advancedplacyncement.vu",
"amstardmzsmc.vu",
"arandasoftzfdware.vu",
"avisoretentiunionllc.vu",
"capitalflwxinancialpartners.vu",
"certififiycationedge.vu",
"connectivnqzityltd.vu"
)
Write-Host "=== Knight Office AiTM IOC Hunt ===" -ForegroundColor Cyan
# 1. DNS client cache check
$dnsHits = Get-DnsClientCache | Where-Object {
$_.Entry -match '\.vu$' -or ($knightDomains | ForEach-Object { $_ -eq $_.Entry })
}
if ($dnsHits) {
Write-Host "[!] SUSPICIOUS DNS CACHE ENTRIES:" -ForegroundColor Red
$dnsHits | Format-Table Entry, RecordType, Data -AutoSize
} else { Write-Host "[+] DNS cache clean" -ForegroundColor Green }
# 2. Active network connections to .vu-hosted infrastructure
$conns = Get-NetTCPConnection -State Established -ErrorAction SilentlyContinue
foreach ($c in $conns) {
try {
$rdns = (Resolve-DnsName -Name $c.RemoteAddress -Type PTR -ErrorAction Stop).NameHost
if ($rdns -match '\.vu$') {
$proc = Get-Process -Id $c.OwningProcess -ErrorAction SilentlyContinue
Write-Host "[!] Active connection to .vu host: $rdns ($($c.RemoteAddress)) by $($proc.ProcessName)" -ForegroundColor Red
}
} catch {}
}
# 3. Check Entra ID device registration artifacts (local evidence of rogue device join)
$dsreg = & dsregcmd.exe /status 2>$null
if ($dsreg -match 'AzureAdJoined\s*:\s*YES') {
$joinTime = ($dsreg | Select-String 'DeviceCertificateValidity').ToString()
Write-Host "[i] Device is Entra-joined. Verify join was user-initiated and expected." -ForegroundColor Yellow
Write-Host " Cross-reference recent device registrations in Entra audit logs for this user."
}
# 4. Browser history sweep (Chrome/Edge) for known kit domains
$histPaths = @(
"$env:LOCALAPPDATA\Google\Chrome\User Data\Default\History",
"$env:LOCALAPPDATA\Microsoft\Edge\User Data\Default\History"
)
foreach ($p in $histPaths) {
if (Test-Path $p) {
Write-Host "[i] Browser history DB present: $p — submit for forensic parsing (look for .vu domains + docusign/monday.com redirect chains)" -ForegroundColor Yellow
}
}
Write-Host "=== Hunt complete. Escalate any [!] findings to IR immediately ===" -ForegroundColor Cyan
Response Priorities
Immediate (0–4 hours)
- Block all 26
.vuIOC domains at DNS, proxy/SWG, and email gateway; alert on any.vuTLD resolution enterprise-wide - Hunt the last 14 days of DNS/proxy logs and
DeviceNetworkEventsfor any hits — a single resolution event means a user clicked through - Search mail flow for DocuSign-themed messages containing
monday.comlinks or Joomla-hosted URLs; quarantine retroactively
24 Hours
- For any user with a confirmed or suspected click: revoke all active sessions and refresh tokens in Entra ID (not just password reset — token theft means passwords alone don't help), remove suspicious OAuth consent grants, and audit for rogue device registrations or new WHfB/security-info enrollments
- Review Entra sign-in logs for impossible travel, unfamiliar ASN/session replay, and MFA claim anomalies in the 72h surrounding the click
- Check mailbox rules, forwarding, and sent items for BEC staging
1 Week
- Migrate high-risk users (finance, execs, HR) to phishing-resistant MFA: FIDO2 passkeys or certificate-based auth with token binding — AiTM cannot relay origin-bound credentials
- Enforce Conditional Access with compliant-device and sign-in-risk policies; block legacy auth entirely
- Deploy OAuth app consent policies requiring admin approval for all third-party consent; restrict device registration to managed/enrolled devices only
- Add user-reporting drills specifically covering DocuSign/Monday.com pretexts; add OTX pulse subscription for ongoing Knight Office infrastructure rotation
Related Resources
Security Arsenal Incident Response Managed SOC & MDR Services AlertMonitor Threat Detection From The Dark Side Intel Hub
Is your security operations ready?
Get a free SOC assessment or see how AlertMonitor cuts through alert noise with automated triage.