Threat Summary
Two concurrent OTX pulses — both TLP:WHITE, both published within 48 hours — paint a consistent picture: credential and session theft at scale is being commoditized and delivered through phishing infrastructure that rotates faster than static blocklists can track.
The higher-severity signal is Mirage2FA, attributed to the actor cluster tracked as LinX Coders. This is a phishing-as-a-service (PhaaS) toolkit purpose-built for Adversary-in-the-Middle (AiTM) attacks against Microsoft 365. Rather than harvesting passwords alone, Mirage2FA proxies the entire authentication flow — including MFA — and steals the authenticated session cookie, rendering 2FA effectively useless. ANY.RUN's analysis attributes over 4,000 compromise events in the United States alone (63.7% of identified victims), with Technology, Manufacturing, Education, Finance, Healthcare, and Telecommunications all represented. The operation has been running since 2024 and remains active as of September 2026.
The second pulse is a consumer-facing but enterprise-relevant smishing campaign impersonating T-Mobile rewards expiry notices, active since May 2026. Messages cite a fabricated balance (~18,400 points) expiring imminently and direct victims to rotating look-alike domains under .top TLDs (e.g., t-mobile.biktpw.top). While the payload is a classic credential/payment-harvesting phishing kit, the campaign matters to enterprises because (a) employees receive these on BYOD devices enrolled in M365, and (b) the harvested data feeds the same criminal ecosystems that buy PhaaS tooling like Mirage2FA.
Collective assessment: Credential theft operations are converging on session-token theft as the primary objective. Static MFA is no longer a sufficient control boundary against this class of attack.
Threat Actor / Malware Profile
Mirage2FA (LinX Coders) — PhaaS / AiTM Framework
- Distribution method: Phishing emails with HTML smuggling attachments and links impersonating Microsoft 365, ADP (
adp.pslcertlive.site), HR/benefits portals (ans.rsxbenefits.com,ari.vslbertlive.info), and legitimate-looking business domains (cementslabconstruction.com). Lures are themed around document shares, benefits enrollment, and payroll. - Payload behavior: The landing page acts as a reverse proxy between the victim and the real Microsoft login endpoint. Victims see the genuine Microsoft UI; credentials, MFA responses, and the resulting session token are captured in transit.
- C2 communication: Notably uses WebSocket channels for real-time exfiltration of session data back to the operator panel — this is a distinguishing network artifact versus standard HTTPS POST exfiltration and is a high-fidelity detection surface.
- Persistence mechanism: No host-based persistence. Persistence is identity-layer: the stolen session cookie (
ESTSAUTH/ESTSAUTHPERSISTENT) is replayed from attacker infrastructure until expiry or revocation. Post-compromise, operators typically create inbox forwarding rules and register attacker-controlled MFA methods to maintain access. - Anti-analysis techniques: HTML smuggling to bypass email attachment scanning, rotating domains across low-reputation TLDs (
.store,.shop,.site,.info), and fingerprinting of sandbox/analysis environments before serving the phishing page.
T-Mobile Rewards Smishing Kit (Unknown Actor)
- Distribution method: SMS with urgency-based social engineering (points expiry), no malware payload — pure credential/payment harvesting.
- Infrastructure pattern: Templated
t-mobile.<8-random-chars>.tophostnames, rotated continuously; at least 12 hostnames in this pulse sample alone. - Objective: Harvested credentials and card data are resold or used for account takeover, frequently funneling into the same dark web credential marketplaces that supply PhaaS customers.
IOC Analysis
The pulse indicator set is exclusively network infrastructure — no file hashes, no IPs — which is characteristic of proxy-based phishing: the malicious logic lives server-side.
| Type | Count (sample) | Notes |
|---|---|---|
| Hostnames | ~16 | AiTM landing subdomains (office.pcvgtech.store, ver.verpox.shop, adp.pslcertlive.site) and smishing hosts (t-mobile.*.top) |
| Domains | ~2+ | Parent phishing domains (galatasaraydanhaberler.com, sopbtech.store, rsxbenefits.com) |
Operationalization guidance for SOC teams:
- DNS is your primary control plane. Push all hostnames and parent domains to DNS sinkhole/blocklists immediately. Because these rotate, also add regex-based detections for the templated pattern
t-mobile\.[a-z]{6,10}\.topand for newly seen.store/.shop/.site/.infodomains resolved by corporate resolvers within the last 7 days of first-seen registration. - WebSocket egress monitoring. Mirage2FA's use of WebSocket for exfiltration is unusual for legitimate M365-adjacent traffic. Alert on
ws:///wss://connections from browser processes to non-allowlisted domains. - Identity telemetry > endpoint telemetry. The definitive compromise indicator is in Entra ID sign-in logs: a successful authentication followed by session use from an anomalous ASN/geography with a token issued in a different location (impossible travel on the session, not just the sign-in).
- Full indicator lists (12 and 68 IOCs respectively) should be pulled from the OTX pulses directly and ingested into your TI platform via the OTX API connector for Sentinel/Defender.
Detection Engineering
---
title: Mirage2FA AiTM Phishing Infrastructure - Network Connection
id: 7c1a9e42-m2fa-2026-0001
status: experimental
description: Detects network connections to known Mirage2FA phishing-as-a-service landing domains and hostnames identified in OTX pulse analysis (Sep 2026). Targets AiTM M365 session-hijack infrastructure operated by LinX Coders.
author: Security Arsenal Threat Intelligence
references:
- https://any.run/cybersecurity-blog/mirage2fa-phishing-targets-us-companies/
date: 2026/09/19
logsource:
category: network_connection
product: windows
detection:
selection_domain:
DestinationHostname|contains:
- 'galatasaraydanhaberler.com'
- 'sopbtech.store'
- 'pcvgtech.store'
- 'verpox.shop'
- 'cementslabconstruction.com'
- 'pslcertlive.site'
- 'rsxbenefits.com'
- 'vslbertlive.info'
condition: selection_domain
falsepositives:
- Threat intelligence researchers intentionally visiting infrastructure
level: high
tags:
- attack.credential_access
- attack.t1557
- attack.t1566.002
---
title: WebSocket Connection From Browser Process To Suspicious TLD
id: 7c1a9e42-m2fa-2026-0002
status: experimental
description: Detects WebSocket upgrade requests initiated by browser processes to low-reputation TLDs associated with Mirage2FA session exfiltration. WebSocket-based C2 is a distinguishing artifact of this PhaaS toolkit.
author: Security Arsenal Threat Intelligence
references:
- https://any.run/cybersecurity-blog/mirage2fa-phishing-targets-us-companies/
date: 2026/09/19
logsource:
category: proxy
detection:
selection_upgrade:
cs-header|contains: 'Upgrade: websocket'
selection_tld:
c-uri|endswith:
- '.store'
- '.shop'
- '.site'
- '.info'
- '.top'
condition: selection_upgrade and selection_tld
falsepositives:
- Legitimate SaaS applications on budget TLDs (rare in enterprise environments)
level: medium
tags:
- attack.command_and_control
- attack.t1071.001
- attack.t1102
---
title: T-Mobile Smishing Domain Pattern - DNS Query
id: 7c1a9e42-tmob-2026-0003
status: experimental
description: Detects DNS queries matching the templated T-Mobile rewards smishing hostname pattern (t-mobile.<random>.top) observed in the active smishing campaign since May 2026.
author: Security Arsenal Threat Intelligence
date: 2026/09/19
logsource:
category: dns
detection:
selection:
query|re: 't-mobile\.[a-z0-9]{5,12}\.top$'
condition: selection
falsepositives:
- None expected; legitimate T-Mobile services do not operate on .top TLD
level: high
tags:
- attack.initial_access
- attack.t1566
- attack.t1598.003
// Mirage2FA AiTM + Smishing infrastructure hunt - Microsoft Sentinel
// Hunts endpoint network events against OTX pulse IOCs and WebSocket exfil behavior
let AiTM_IOCs = dynamic([
"galatasaraydanhaberler.com", "sopbtech.store", "office.pcvgtech.store",
"ver.verpox.shop", "cementslabconstruction.com", "adp.pslcertlive.site",
"ans.rsxbenefits.com", "ari.vslbertlive.info"
]);
let SmishingPattern = @"t-mobile\.[a-z0-9]{5,12}\.top";
union isfuzzy=true
(DeviceNetworkEvents
| where TimeGenerated > ago(14d)
| where RemoteUrl has_any (AiTM_IOCs) or RemoteUrl matches regex SmishingPattern
| extend Detection = iff(RemoteUrl matches regex SmishingPattern, "Smishing-Domain", "Mirage2FA-AiTM")
| project TimeGenerated, Detection, DeviceName, InitiatingProcessAccountName,
InitiatingProcessFileName, RemoteUrl, RemoteIP, ActionType),
(DeviceProcessEvents
| where TimeGenerated > ago(14d)
// HTML smuggling: browser spawning script interpreters or opening local HTML payloads
| where InitiatingProcessFileName in~ ("chrome.exe","msedge.exe","firefox.exe")
and FileName in~ ("rundll32.exe","mshta.exe","powershell.exe","wscript.exe")
| project TimeGenerated, Detection = "HTML-Smuggling-ChildProc", DeviceName,
AccountName, FileName, ProcessCommandLine, InitiatingProcessFileName)
| sort by TimeGenerated desc
# Mirage2FA / Smishing IOC Hunt Script - Security Arsenal
# Checks DNS cache, browser activity artifacts, and M365 inbox rule persistence
$ErrorActionPreference = 'SilentlyContinue'
$AiTMHosts = @(
'galatasaraydanhaberler.com','sopbtech.store','pcvgtech.store','verpox.shop',
'cementslabconstruction.com','pslcertlive.site','rsxbenefits.com','vslbertlive.info'
)
$SmishingRegex = 't-mobile\.[a-z0-9]{5,12}\.top'
$findings = @()
Write-Host "[*] Checking DNS client cache for AiTM/smishing infrastructure..." -ForegroundColor Cyan
Get-DnsClientCache | ForEach-Object {
foreach ($ioc in $AiTMHosts) {
if ($_.Entry -like "*$ioc*") { $findings += "[HIT] DNS cache: $($_.Entry) -> $($_.Data)" }
}
if ($_.Entry -match $SmishingRegex) { $findings += "[HIT] DNS cache (smishing pattern): $($_.Entry)" }
}
Write-Host "[*] Checking active/established connections to IOC-related IPs..." -ForegroundColor Cyan
$iocIPs = foreach ($ioc in $AiTMHosts) { (Resolve-DnsName $ioc -ErrorAction SilentlyContinue).IPAddress }
Get-NetTCPConnection -State Established | ForEach-Object {
if ($iocIPs -contains $_.RemoteAddress) {
$proc = (Get-Process -Id $_.OwningProcess).ProcessName
$findings += "[HIT] Active connection: $($_.RemoteAddress):$($_.RemotePort) by $proc (PID $($_.OwningProcess))"
}
}
Write-Host "[*] Checking browser history for phishing domain visits (Chrome/Edge)..." -ForegroundColor Cyan
$histPaths = @(
"$env:LOCALAPPDATA\Google\Chrome\User Data\Default\History",
"$env:LOCALAPPDATA\Microsoft\Edge\User Data\Default\History"
)
foreach ($hp in $histPaths) {
if (Test-Path $hp) {
$tmp = "$env:TEMP\hist_$(Get-Random).db"
Copy-Item $hp $tmp -Force
# String scan fallback if sqlite tooling is absent
$raw = [System.IO.File]::ReadAllBytes($tmp)
$txt = [System.Text.Encoding]::ASCII.GetString($raw)
foreach ($ioc in $AiTMHosts) { if ($txt -match [regex]::Escape($ioc)) { $findings += "[HIT] Browser history artifact contains: $ioc ($hp)" } }
if ($txt -match $SmishingRegex) { $findings += "[HIT] Browser history matches smishing domain pattern ($hp)" }
Remove-Item $tmp -Force
}
}
Write-Host "[*] Checking for suspicious recently created HTML files (HTML smuggling payloads)..." -ForegroundColor Cyan
Get-ChildItem "$env:USERPROFILE\Downloads" -Filter *.html -Recurse -ErrorAction SilentlyContinue |
Where-Object { $_.CreationTime -gt (Get-Date).AddDays(-14) } | ForEach-Object {
$content = Get-Content $_.FullName -Raw
if ($content -match 'atob\(|Blob\(|navigator\.msSaveBlob' -and $content.Length -gt 20000) {
$findings += "[HIT] Suspected HTML smuggling file: $($_.FullName) (created $($_.CreationTime))"
}
}
Write-Host "`n========== HUNT RESULTS ==========" -ForegroundColor Yellow
if ($findings.Count -eq 0) { Write-Host "No indicators found on this host." -ForegroundColor Green }
else { $findings | ForEach-Object { Write-Host $_ -ForegroundColor Red } }
Write-Host "==================================`n"
Write-Host "REMINDER: If any HIT occurs, immediately revoke the user's Entra ID sessions and refresh tokens,"
Write-Host "audit inbox rules + registered MFA methods, and enforce re-registration of phishing-resistant MFA."
Response Priorities
Immediate (0–4 hours)
- Block all IOC domains/hostnames at DNS, web proxy, and email gateway layers; deploy the regex detection for the
t-mobile.*.topsmishing pattern. - Run the KQL hunt across the last 14 days of
DeviceNetworkEvents; any hit on AiTM infrastructure = assume session compromise until proven otherwise. - Alert on WebSocket egress from browsers to
.store/.shop/.site/.info/.topdomains.
24 Hours
- For any user with an IOC hit or HTML smuggling artifact: revoke all Entra ID refresh tokens and active sessions (Revoke Sign-in Sessions +
Revoke-AzureADUserAllRefreshToken), force password reset, and audit for attacker-registered MFA methods and malicious inbox forwarding rules — the standard Mirage2FA persistence playbook. - Review Entra ID sign-in logs for session use from anomalous ASNs/geographies divergent from the authentication origin (impossible travel on the session token itself).
- Issue a targeted user advisory: T-Mobile rewards expiry texts are fraudulent; corporate devices should never process SMS links to
.topdomains.
1 Week
- Migrate high-risk users (Finance, HR, executives, IT admins — note that Mirage2FA lures specifically spoof ADP and benefits portals) to phishing-resistant MFA: FIDO2/passkeys or certificate-based authentication. TOTP and push MFA are defeated by AiTM proxying.
- Enable token protection / Conditional Access session binding in Entra ID so stolen session cookies cannot be replayed from foreign infrastructure.
- Deploy HTML attachment sandboxing/rewriting at the email gateway to neutralize HTML smuggling, and implement SMS phishing reporting on managed mobile devices.
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.