Threat Summary
Live OTX pulse data confirms that UNC6671 — the financially motivated extortion actor Google Threat Intelligence attributes to a string of data-theft campaigns against financial services and enterprise cloud tenants — has not slowed despite the alleged May 2026 "retirement" of its BlackFile extortion brand. Instead, the group has fragmented its leak and negotiation operations across at least four successor fronts: Redact, Pink, Helix, and Falcon. This multi-brand dispersion is a deliberate resilience play: law-enforcement pressure or reputational burn on one brand does not collapse the operation.
The attack chain observed in this pulse is consistent and repeatable:
- Recon & Target Selection — Victim organizations spanning finance, technology, healthcare, telecommunications, and 11+ other sectors are profiled; employee personal mobile numbers are harvested (likely from data broker or prior-breach corpora).
- Vishing (Voice Phishing) — Operators impersonate internal IT helpdesk staff and call employees directly on personal devices, creating urgency around "SSO re-enrollment," "passkey migration," or "MFA reset."
- AiTM Credential Harvesting — Victims are directed to spoofed Okta/SSO/passkey portals (75 indicators in this pulse) that proxy the real identity provider, capturing session tokens and defeating phishing-resistant MFA enrollment flows.
- SaaS Exfiltration — With valid session cookies, the actor pivots into cloud SaaS estates (email, file storage, HR/finance platforms) and stages bulk data theft.
- Extortion — Stolen data is leveraged under one of the rotating brands (Redact / Pink / Helix / Falcon) for payment demands.
The collective signal: identity is the perimeter UNC6671 attacks, and voice is the delivery mechanism. Traditional email-borne phishing controls do not see this intrusion path.
Threat Actor / Malware Profile: UNC6671
UNC6671 is notable for what it does not deploy: commodity malware. This pulse lists no malware family because the intrusion set is overwhelmingly living-off-the-identity — the "payload" is a valid session token.
- Distribution Method: Outbound voice calls (vishing) to personal mobile numbers, spoofing internal IT/helpdesk caller identity. Follow-up SMS or direct verbal URL delivery routes victims to typosquatted enrollment portals.
- Payload Behavior: The phishing kit operates as an Adversary-in-the-Middle (AiTM) reverse proxy. It brokers the victim's genuine authentication against the real Okta/IdP backend in real time, harvesting credentials, MFA one-time codes, and — critically — session cookies, which are replayed from attacker infrastructure to inherit the authenticated session.
- C2 / Infrastructure Communication: The kit infrastructure front-loads lookalike domains themed around
okta,sso,passkey, andenroll. Session replay typically originates from commercial VPN egress, bulletproof hosting, or residential proxy networks — a key detection seam. - Persistence Mechanism: Stolen session tokens provide immediate access; durable persistence is achieved by registering attacker-controlled MFA factors or passkeys (the "passkey setup" theme of the domains is not accidental — it lures victims into enrolling the attacker's authenticator), creating inbox forwarding rules, and minting OAuth consents in SaaS tenants.
- Anti-Analysis Techniques: The brand-diversification strategy (BlackFile → Redact/Pink/Helix/Falcon) frustrates attribution and leak-site takedown. Phishing pages commonly employ device fingerprinting, bot/sandbox geofencing, and short-lived URLs delivered verbally to evade URL-scanning pipelines.
IOC Analysis
This pulse contains 75 domain indicators, of which the sample below is representative:
| Indicator | Type | Themed Lure |
|---|---|---|
| oktaenroll.com | domain | Okta enrollment |
| idokta.com | domain | Okta identity |
| myoktasso.com | domain | Okta SSO |
| mypasskeysso.com | domain | Passkey SSO |
| setupssopasskey.com | domain | Passkey setup |
| passkeyms.com | domain | Microsoft passkey |
| keyokta.com | domain | Okta key |
| portalpasskey.com | domain | Passkey portal |
Operationalization guidance for SOC teams:
- Block at DNS and web proxy layers immediately. These are not compromised legitimate sites — they are purpose-built criminal infrastructure; there is no false-positive cost to a null-route.
- Retro-hunt DNS/proxy logs for 30–90 days. The domains may have been live before publication of this pulse.
- Pivot on naming patterns. The lexical theme (
okta*,*sso*,*passkey*,*enroll*) is predictable. Feed regex-based detection (see Sigma rule 3) into DNS telemetry to catch future registrations not yet in any feed. - Tooling: Use AlienVault OTX DirectConnect or the OTX API to pull the full 75-indicator set into your SIEM/TIP; use urlscan.io and Passive DNS (RiskIQ/Validin) to expand infrastructure; use dnstwist-style permutation monitoring for newly registered lookalikes.
Detection Engineering
---
title: UNC6671 Okta-Themed AiTM Phishing Domain Resolution
id: 7f3a2c11-9e4b-4c2d-8a1f-unc6671dns01
status: experimental
description: Detects DNS queries to known UNC6671 vishing/AiTM credential-harvesting domains from the 2026-09 OTX pulse (Okta/passkey/SSO themed spoof portals)
author: Security Arsenal Threat Intel
date: 2026/09/06
references:
- https://cloud.google.com/blog/topics/threat-intelligence/unc6671-targets-financial-services-and-enterprise-cloud-environments
logsource:
category: dns
product: windows
definition: 'Requirements: DNS query logging via DNS server debug log, ETW, or network sensor'
detection:
selection_ioc:
query|contains:
- 'oktaenroll.com'
- 'idokta.com'
- 'myoktasso.com'
- 'mypasskeysso.com'
- 'setupssopasskey.com'
- 'passkeyms.com'
- 'keyokta.com'
- 'portalpasskey.com'
filter_internal:
query|contains:
- 'okta.com'
- 'okta-emea.com'
- 'oktacdn.com'
condition: selection_ioc and not filter_internal
falsepositives:
- Threat researcher sandbox detonation
level: high
tags:
- attack.t1566.004
- attack.t1557
- attack.t1078
---
title: Suspicious IdP-Themed Lookalike Domain Resolution (Okta/SSO/Passkey Pattern)
id: 7f3a2c12-9e4b-4c2d-8a1f-unc6671ptrn
status: experimental
description: Detects DNS resolution of newly observed domains impersonating Okta, SSO, or passkey enrollment portals — catches UNC6671 infrastructure not yet in IOC feeds
author: Security Arsenal Threat Intel
date: 2026/09/06
references:
- https://cloud.google.com/blog/topics/threat-intelligence/unc6671-targets-financial-services-and-enterprise-cloud-environments
logsource:
category: dns
product: windows
definition: 'Requirements: DNS query logging via DNS server debug log, ETW, or network sensor'
detection:
selection_pattern:
query|re: '(okta[a-z0-9-]*\.(?!okta\.com)|[a-z0-9-]*okta[a-z0-9-]*\.(?!okta\.com)|[a-z0-9-]*(sso|passkey)[a-z0-9-]*(enroll|setup|portal|ms)[a-z0-9-]*\.)[a-z]{2,}$'
filter_legit:
query|ends_with:
- '.okta.com'
- '.oktacdn.com'
- '.okta-emea.com'
- '.microsoftonline.com'
- '.microsoft.com'
condition: selection_pattern and not filter_legit
falsepositives:
- Legitimate regional IdP vanity domains (tune with allowlist)
level: medium
tags:
- attack.t1566.004
- attack.t1557
---
title: Impossible-Travel Session Replay After Suspicious IdP Authentication
id: 7f3a2c13-9e4b-4c2d-8a1f-unc6671sess
status: experimental
description: Detects successful sign-in events where the same identity authenticates from a known-corporate ASN and a foreign/VPN ASN within a short window — indicative of AiTM session-token theft and replay by UNC6671
author: Security Arsenal Threat Intel
date: 2026/09/06
references:
- https://cloud.google.com/blog/topics/threat-intelligence/unc6671-targets-financial-services-and-enterprise-cloud-environments
logsource:
product: azure
service: signinlogs
definition: 'Requirements: Azure AD/Entra sign-in logs streamed to SIEM with ASN enrichment'
detection:
selection:
status: success
auth_method|contains:
- 'password'
- 'otp'
condition: selection
timeframe: 30m
aggregation:
- field: userPrincipalName
groupby: userPrincipalName
condition: distinct_count(ip_asn) > 1
falsepositives:
- User roaming onto mobile hotspot (correlate with helpdesk vishing reports and MFA factor change events)
level: high
tags:
- attack.t1557
- attack.t1078
- attack.t1621
// UNC6671 Hunt: AiTM phishing domain access + post-compromise MFA factor manipulation
// Sentinel tables: DeviceNetworkEvents (DNS/proxy via Defender), AADSignInEventsBeta, AuditLogs
let LookalikeDomains = dynamic([
"oktaenroll.com","idokta.com","myoktasso.com","mypasskeysso.com",
"setupssopasskey.com","passkeyms.com","keyokta.com","portalpasskey.com"
]);
let IdPPattern = @"(okta|sso|passkey).*(enroll|setup|portal|key|ms)";
// Part 1: Endpoints reaching known or pattern-matched spoof domains
let DomainHits = DeviceNetworkEvents
| where TimeGenerated > ago(90d)
| where RemoteUrl has_any (LookalikeDomains)
or (RemoteUrl matches regex IdPPattern
and not(RemoteUrl has_any ("okta.com","oktacdn.com","microsoftonline.com")))
| project TimeGenerated, DeviceName, RemoteUrl, RemoteIP, InitiatingProcessAccountName;
// Part 2: MFA / auth-method changes on accounts that touched the domains
DomainHits
| summarize FirstSeen=min(TimeGenerated) by InitiatingProcessAccountName, RemoteUrl
| join kind=leftouter (
AuditLogs
| where TimeGenerated > ago(90d)
| where OperationName has_any ("Update user","StrongAuthentication","Add service principal credentials","Consent to application")
| mv-expand TargetResources
| project OpTime=TimeGenerated, OperationName, InitiatedBy, TargetUser=tostring(TargetResources.userPrincipalName)
) on $left.InitiatingProcessAccountName == $right.TargetUser
| extend PostContactAction = iff(OpTime > FirstSeen and OpTime < FirstSeen + 1h, "LIKELY_HIJACK", "review")
| project FirstSeen, InitiatingProcessAccountName, RemoteUrl, OperationName, InitiatedBy, OpTime, PostContactAction
| order by FirstSeen desc
# UNC6671 AiTM Vishing Hunt — run on endpoints or export to a central share
# Checks: DNS cache for spoof domains, proxy/VPN sessions, browser IdP-session artifacts
$SpoofDomains = @(
'oktaenroll.com','idokta.com','myoktasso.com','mypasskeysso.com',
'setupssopasskey.com','passkeyms.com','keyokta.com','portalpasskey.com'
)
$Pattern = '(okta|sso|passkey).*(enroll|setup|portal|key|ms)'
$Results = [System.Collections.Generic.List[object]]::new()
# 1) DNS client cache hits
Get-DnsClientCache -ErrorAction SilentlyContinue | ForEach-Object {
if (($SpoofDomains -contains $_.Entry) -or
($_.Entry -match $Pattern -and $_.Entry -notmatch 'okta\.com$|microsoftonline\.com$')) {
$Results.Add([pscustomobject]@{Check='DNSCache'; Artifact=$_.Entry; Detail=$_.Data})
}
}
# 2) Active connections to infrastructure resolving to spoof themes
Get-NetTCPConnection -State Established -ErrorAction SilentlyContinue | ForEach-Object {
try {
$ptr = (Resolve-DnsName -Name $_.RemoteAddress -Type PTR -ErrorAction Stop).NameHost
if ($ptr -match $Pattern) {
$Results.Add([pscustomobject]@{Check='NetConnection'; Artifact=$_.RemoteAddress; Detail=$ptr})
}
} catch {}
}
# 3) Browser history artifacts (Chrome/Edge) for spoof portal visits
$histPaths = @(
"$env:LOCALAPPDATA\Google\Chrome\User Data\Default\History",
"$env:LOCALAPPDATA\Microsoft\Edge\User Data\Default\History"
)
foreach ($h in $histPaths) {
if (Test-Path $h) {
$tmp = Copy-Item $h -Destination "$env:TEMP\hist_$([guid]::NewGuid().Guid)" -PassThru -Force
try {
Add-Type -AssemblyName System.Data
# lightweight string scrape instead of sqlite dependency
$raw = [System.IO.File]::ReadAllBytes($tmp.FullName)
$txt = [System.Text.Encoding]::UTF8.GetString($raw)
foreach ($d in $SpoofDomains) {
if ($txt -match [regex]::Escape($d)) {
$Results.Add([pscustomobject]@{Check='BrowserHistory'; Artifact=$d; Detail=$h})
}
}
} finally { Remove-Item $tmp.FullName -Force -ErrorAction SilentlyContinue }
}
}
# 4) Scheduled tasks / run keys referencing suspicious IdP-themed URLs (persistence check)
Get-ItemProperty 'HKCU:\Software\Microsoft\Windows\CurrentVersion\Run',
'HKLM:\Software\Microsoft\Windows\CurrentVersion\Run' -ErrorAction SilentlyContinue |
ForEach-Object { $_.PSObject.Properties } |
Where-Object { $_.Value -match $Pattern -and $_.Value -notmatch 'okta\.com' } |
ForEach-Object { $Results.Add([pscustomobject]@{Check='RunKey'; Artifact=$_.Name; Detail=$_.Value}) }
if ($Results.Count) {
$Results | Format-Table -AutoSize
$Results | Export-Csv "$env:TEMP\UNC6671_hunt_$env:COMPUTERNAME.csv" -NoTypeInformation
Write-Warning "UNC6671 artifacts found — isolate host and force IdP session revocation + MFA re-enrollment."
} else {
Write-Output "No UNC6671 indicators found on $env:COMPUTERNAME."
}
Response Priorities
Immediate (0–4h):
- Push all 75 pulse domains to DNS sinkhole, secure web gateway, and EDR network block lists.
- Retro-hunt DNS/proxy telemetry 90 days back for the listed domains and the Okta/passkey lexical pattern.
- Issue a company-wide advisory: IT/helpdesk will never call your personal phone to re-enroll MFA or set up a passkey. Establish a verbal callback verification code.
24 Hours:
- For any user whose device resolved a spoof domain: force revocation of all active sessions and refresh tokens in Entra ID/Okta, reset credentials, and audit registered MFA methods for attacker-added factors (the primary UNC6671 persistence move).
- Review OAuth application consents and mailbox forwarding rules for affected accounts.
- Audit SaaS audit logs (M365 Unified Audit Log, Google Workspace, Salesforce) for bulk-export or mass-download events from non-corporate ASNs.
1 Week:
- Deploy phishing-resistant authentication end-to-end (FIDO2/passkeys with attestation enforcement) and disable SMS/voice OTP, which AiTM kits trivially relay.
- Implement Conditional Access token-binding / device-compliance requirements so stolen session cookies cannot replay from attacker infrastructure.
- Stand up continuous dnstwist-style monitoring for
okta*,*sso*, and*passkey*permutations of your brand; pre-emptively takedown-report registrations. - Brief executives on the Redact/Pink/Helix/Falcon extortion brands so inbound ransom communications under any of those names route immediately to IR, not business leadership.
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.