Back to Intelligence

Mirage2FA AiTM PhaaS + CopyCop/Storm-1516 Influence Infrastructure: OTX Pulse Detection Pack

SA
Security Arsenal Team
August 19, 2026
8 min read

Threat Summary

Two concurrent but distinct threat streams dominate this OTX window. First, Mirage2FA, attributed to LinX Coders, is an active phishing-as-a-service operation using adversary-in-the-middle (AiTM) pages to steal Microsoft 365 credentials and, more importantly, authenticated session cookies. Victimology is heavily US-weighted (reported 63.7%) across Technology, Manufacturing, Education, Finance, Healthcare and Telecommunications, with additional exposure in Canada, India, Saudi Arabia, Singapore, South Africa and the UK. Tags and reference reporting indicate HTML smuggling, websocket-based relay, credential theft, 2FA bypass and session hijacking: the phish page proxies the real Microsoft login, captures the token/session after MFA, and lets the operator replay the session.

Second, CopyCop, linked to Storm-1516, is running coordinated influence operations against the US-Armenian Firebird AI data center in Hrazdan. The campaign fabricated narratives around earthquake risk, grid instability and Iranian military threats, using lookalike domains that impersonate technology and geopolitical media properties. There is no malware family listed for this pulse; the risk is infrastructure-backed narrative manipulation and potential targeting of employees, investors and public-sector stakeholders through trusted-media spoofing.

Collectively, the pulses show enterprise risk converging on identity and trust: session-token theft against cloud productivity tenants, and domain impersonation that can be reused for spearphishing, brand abuse, SEO poisoning, or future credential lures aimed at energy, government and technology stakeholders.

Threat Actor / Malware Profile

Mirage2FA / LinX Coders

  • Distribution method: PhaaS phishing emails and lures pointing to Microsoft 365-themed AiTM pages; likely malspam, compromised sender accounts, QR/HTML attachment variants and lookalike login portals.
  • Payload behavior: No traditional endpoint payload is required. The kit acts as a reverse proxy between victim and Microsoft identity endpoints, capturing credentials and post-MFA session artifacts. HTML smuggling may deliver the lure locally to bypass URL detonation and attachment scanning.
  • C2 communication: Observed infrastructure includes IPv4 hosts and domains/hostnames such as 192.52.166.55, 209.205.197.130, 181.214.165.173, 83.147.53.130, galatasaraydanhaberler.com, sopbtech.store, office.pcvgtech.store and ver.verpox.shop. Websocket tags imply interactive relay of authentication state and victim form input.
  • Persistence mechanism: Persistence is identity-layer, not host-layer: stolen refresh/session cookies, added MFA methods, malicious OAuth consent, inbox rules and token replay from attacker IPs.
  • Anti-analysis techniques: HTML smuggling to evade secure email gateways, short-lived storefront domains, websocket relay to hide static content, localized per-victim URLs, and legitimate Microsoft UI proxied to reduce user suspicion.

CopyCop / Storm-1516

  • Distribution method: Lookalike media domains and impersonated outlets seeding coordinated disinformation; likely amplified via social networks, messaging apps, cutout sites and search manipulation.
  • Payload behavior: Narrative payload rather than binary payload. However, the same domains can later host credential phishing, tracking pixels, watering-hole scripts or malicious ads.
  • C2 communication: Infrastructure of note: gizmodo.cc, haaretz24.com, politico-24.com, tech-crunch.org. Treat as hostile impersonation infrastructure even if current content is only propaganda.
  • Persistence mechanism: Persistent brand spoofing, recycled personas, domain rotation and cross-posted narratives that can be reactivated during geopolitical events.
  • Anti-analysis techniques: Media impersonation, typosquatted/ homoglyph-adjacent naming, fast content takedown/republication, and separation between registrant, hosting and amplification layers.

IOC Analysis

The indicator set is dominated by network infrastructure, not file hashes. Mirage2FA contributes IPv4 C2/relay addresses and phishing domains/hostnames; CopyCop contributes four impersonation domains. SOC teams should operationalize these as:

  • Block and alert: Add IPs to egress firewall, secure web gateway, DNS sinkhole/RPZ, EDR network blocklists and email URL rewrite policies. Add domains to DNS denial, proxy category overrides and brand-abuse watchlists.
  • Historical sweep: Search 90-180 days of DNS, proxy, firewall, TLS SNI, NetFlow and M365 sign-in logs for the listed indicators and subdomains. Prioritize *.store, *.shop and office/auth-themed hostnames.
  • Decode/enrich: Use PassiveTotal/SecurityTrails/DomainTools for pivots, urlscan.io and Any.Run for page behavior, VirusTotal for URL/domain relations, AbuseIPDB for IP reputation, and Microsoft Defender Threat Intelligence for infrastructure clustering. For M365, correlate IOC hits with Entra ID sign-ins, risky sign-ins, audit logs and inbox-rule changes.
  • Handling caution: Do not assume every DNS hit equals compromise; AiTM risk is confirmed when network contact is followed by anomalous Entra ID authentication, new session token use, MFA change, OAuth grant or mailbox rule creation.

Detection Engineering

Sigma detection pack:

YAML
---
title: OTX Mirage2FA and CopyCop Infrastructure Contact
id: 8f2b1c10-2026-08-20-001
status: experimental
description: Detects DNS, proxy or network contact to OTX-listed Mirage2FA AiTM phishing infrastructure and CopyCop/Storm-1516 impersonation domains.
author: Security Arsenal
logsource:
  category: dns
  product: windows
 detection:
  selection_query:
    query|contains:
      - 'galatasaraydanhaberler.com'
      - 'sopbtech.store'
      - 'pcvgtech.store'
      - 'verpox.shop'
      - 'gizmodo.cc'
      - 'haaretz24.com'
      - 'politico-24.com'
      - 'tech-crunch.org'
  condition: selection_query
falsepositives:
  - Threat intel validation, brand-protection scanning, sandbox detonation
level: high
tags:
  - attack.t1566
  - attack.t1557
  - attack.t1071.001
  - attack.t1583.001
---
title: Mirage2FA HTML Smuggling Followed By Script or LOLBin Execution
id: 8f2b1c10-2026-08-20-002
status: experimental
description: Detects browser-created HTML files in user-writable locations followed by mshta, powershell, rundll32 or wscript execution consistent with HTML smuggling lures used to route users into AiTM credential/session theft.
author: Security Arsenal
date: 2026/08/20
logsource:
  category: process_creation
  product: windows
detection:
  selection_img:
    Image|endswith:
      - '\mshta.exe'
      - '\powershell.exe'
      - '\pwsh.exe'
      - '\wscript.exe'
      - '\cscript.exe'
      - '\rundll32.exe'
  selection_parent:
    ParentImage|endswith:
      - '\chrome.exe'
      - '\msedge.exe'
      - '\firefox.exe'
      - '\brave.exe'
  selection_cli:
    CommandLine|contains:
      - 'Downloads'
      - 'AppData\Local\Temp'
      - '.html'
      - '.htm'
      - 'javascript:'
      - 'blob:'
  condition: selection_img and selection_parent and selection_cli
falsepositives:
  - Developer debugging, internal portals, browser test automation
level: medium
tags:
  - attack.t1059.001
  - attack.t1059.007
  - attack.t1027
  - attack.t1204.002
---
title: Possible Microsoft 365 AiTM Session Replay After Phishing Infrastructure Contact
id: 8f2b1c10-2026-08-20-003
status: experimental
description: Generic analytic logic for M365/Entra logs where a sign-in from a new ASN, VPN, VPS or unusual user agent occurs with satisfied MFA claim shortly after mail/web contact to phishing infrastructure; tune fields to your Entra ID schema.
author: Security Arsenal
date: 2026/08/20
logsource:
  product: azure
  service: signinlogs
detection:
  selection_success:
    ResultType: 0
  selection_auth:
    AuthenticationRequirement: 'multiFactorAuthentication'
  selection_context|contains:
    IPAddress:
      - '192.52.166.55'
      - '209.205.197.130'
      - '181.214.165.173'
      - '83.147.53.130'
  selection_risk|contains:
    RiskDetail:
      - 'anonymizedIPAddress'
      - 'unfamiliarFeatures'
      - 'unlikelyTravel'
      - 'maliciousIPAddress'
  condition: selection_success and selection_auth and (selection_context or selection_risk)
falsepositives:
  - Legitimate VPN users, travelers, new device rollouts
level: critical
tags:
  - attack.t1557
  - attack.t1539
  - attack.t1078
  - attack.t1550.004
KQL — Microsoft Sentinel / Defender
let MirageIps = dynamic(['192.52.166.55','209.205.197.130','181.214.165.173','83.147.53.130']);
let BadDomains = dynamic(['galatasaraydanhaberler.com','sopbtech.store','pcvgtech.store','verpox.shop','gizmodo.cc','haaretz24.com','politico-24.com','tech-crunch.org']);
let Lookback = 14d;
let NetHits = union isfuzzy=true
    (DeviceNetworkEvents
     | where Timestamp > ago(Lookback)
     | where RemoteIP in (MirageIps) or RemoteUrl has_any (BadDomains)
     | project Source='DeviceNetworkEvents', Timestamp, DeviceName, InitiatingProcessFileName, InitiatingProcessCommandLine, RemoteIP, RemoteUrl, RemotePort, ActionType),
    (DeviceEvents
     | where Timestamp > ago(Lookback)
     | where AdditionalFields has_any (BadDomains) or AdditionalFields has_any (MirageIps)
     | project Source='DeviceEvents', Timestamp, DeviceName, InitiatingProcessFileName=coalesce(InitiatingProcessFileName,''), InitiatingProcessCommandLine=coalesce(InitiatingProcessCommandLine,''), RemoteIP=column_ifexists('RemoteIP',''), RemoteUrl=column_ifexists('RemoteUrl',''), ActionType);
NetHits
| join kind=leftouter (
    SigninLogs
    | where TimeGenerated > ago(Lookback)
    | where ResultType == 0
    | where IPAddress in (MirageIps) or RiskDetail has_any ('anonymizedIPAddress','unfamiliarFeatures','unlikelyTravel','maliciousIPAddress') or IsRisky == true
    | project SigninTime=TimeGenerated, UserPrincipalName, IPAddress, AppDisplayName, ClientAppUsed, AuthenticationRequirement, RiskDetail, Status, CorrelationId
) on $left.RemoteIP == $right.IPAddress
| project Timestamp, Source, DeviceName, InitiatingProcessFileName, InitiatingProcessCommandLine, RemoteIP, RemoteUrl, SigninTime, UserPrincipalName, AppDisplayName, ClientAppUsed, AuthenticationRequirement, RiskDetail, CorrelationId
| order by Timestamp desc;
PowerShell
$ErrorActionPreference = 'SilentlyContinue'
$ips = @('192.52.166.55','209.205.197.130','181.214.165.173','83.147.53.130')
$domains = @('galatasaraydanhaberler.com','sopbtech.store','pcvgtech.store','verpox.shop','gizmodo.cc','haaretz24.com','politico-24.com','tech-crunch.org')
$findings = New-Object System.Collections.Generic.List[object]

Get-NetTCPConnection -State Established | Where-Object {$ips -contains $_.RemoteAddress} | ForEach-Object {
  $p = Get-Process -Id $_.OwningProcess
  $findings.Add([pscustomobject]@{Type='LiveConnection'; Host=$env:COMPUTERNAME; User=$env:USERNAME; Process=$p.ProcessName; Path=$p.Path; Remote=$_.RemoteAddress; LocalPort=$_.LocalPort; RemotePort=$_.RemotePort; Time=Get-Date})
}

$cache = Get-DnsClientCache | Where-Object {$d = $_.Entry; $domains | ForEach-Object { $d -like ('*' + $_ + '*') }}
$cache | ForEach-Object { $findings.Add([pscustomobject]@{Type='DnsCache'; Host=$env:COMPUTERNAME; Entry=$_.Entry; Data=$_.Data; Time=Get-Date}) }

$userDirs = Get-ChildItem 'C:/Users' -Directory
foreach ($u in $userDirs) {
  $roots = @($u.FullName + '/Downloads', $u.FullName + '/AppData/Local/Temp', $u.FullName + '/AppData/Roaming/Microsoft/Windows/Recent')
  foreach ($r in $roots) {
    Get-ChildItem $r -Recurse -Include *.html,*.htm,*.url,*.iso,*.zip -ErrorAction SilentlyContinue | Where-Object {$_.LastWriteTime -gt (Get-Date).AddDays(-14)} | ForEach-Object {
      $hit = Select-String -Path $_.FullName -Pattern $domains -SimpleMatch -ErrorAction SilentlyContinue
      if ($hit) { $findings.Add([pscustomobject]@{Type='SuspiciousFileIOC'; Host=$env:COMPUTERNAME; Owner=$u.Name; Path=$_.FullName; Match=($hit.Pattern -join ','); LastWrite=$_.LastWriteTime}) }
    }
  }
}

$runKeys = @('HKCU:/Software/Microsoft/Windows/CurrentVersion/Run','HKLM:/Software/Microsoft/Windows/CurrentVersion/Run','HKCU:/Software/Microsoft/Windows/CurrentVersion/RunOnce','HKLM:/Software/Microsoft/Windows/CurrentVersion/RunOnce')
foreach ($k in $runKeys) {
  Get-ItemProperty $k | ForEach-Object {
    $_.PSObject.Properties | Where-Object {$_.Name -notmatch '^PS'} | Where-Object {$_.Value -match 'mshta|powershell|wscript|rundll32|AppData|Temp|http'} | ForEach-Object {
      $findings.Add([pscustomobject]@{Type='PersistenceRunKey'; Host=$env:COMPUTERNAME; Key=$k; Name=$_.Name; Value=$_.Value; Time=Get-Date})
    }
  }
}

Get-ScheduledTask | Where-Object {$_.Actions.Execute -match 'mshta|powershell|wscript|rundll32' -and $_.Actions.Arguments -match 'http|AppData|Temp|html'} | ForEach-Object {
  $findings.Add([pscustomobject]@{Type='SuspiciousScheduledTask'; Host=$env:COMPUTERNAME; Task=$_.TaskName; Action=($_.Actions.Execute + ' ' + $_.Actions.Arguments); Time=Get-Date})
}

$findings | Sort-Object Time -Descending | Format-List
if ($findings.Count -gt 0) { $findings | Export-Csv -NoTypeInformation ('./otx_hunt_' + $env:COMPUTERNAME + '.csv') }

Response Priorities

  • Immediate: Block the listed IPs/domains at DNS, proxy, firewall, EDR and email URL rewrite; sinkhole wildcard subdomains for the listed storefronts; hunt for HTML/HTM/URL artifacts in Downloads and Temp; review Entra ID sign-ins, audit logs and mailbox rules for any user with matching network contact; force password reset and revoke refresh tokens for exposed users.
  • 24h: For Mirage2FA exposure, assume MFA was bypassed if sign-in succeeded: revoke sessions in Entra ID/Microsoft 365, remove newly added authentication methods, review OAuth app consents, disable legacy auth, inspect inbox forwarding/delegate rules, and require re-registration of MFA from a trusted device. For CopyCop, alert comms/legal/executive protection, report impersonation domains to registrars and platforms, and pre-bunk likely spearphish using those brands.
  • 1 week: Enforce phishing-resistant MFA (FIDO2/passkeys) for admins and high-risk groups, conditional access with token protection/continuous access evaluation, restrict OAuth consent to admin-approved apps, block HTML smuggling attachment types and script interpreters from browser-spawned processes, deploy RPZ/DoH control, add brand-impersonation monitoring for lookalike media domains, and run an AiTM tabletop for identity incident response.

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.