Threat Summary
Four concurrent OTX pulses paint a coherent picture: credential theft operations are diversifying delivery vectors faster than most enterprise control planes can adapt.
The highest-severity event is a supply-chain compromise of the Goddess of Victory: NIKKE PC launcher. Between September 27 and November 4, 2026, attackers tampered with four script files hosted on Level Infinite's official CDN. The modified scripts — associated with LuaJIT loader components — silently downloaded and executed a remote access agent internally designated K2F. K2F provides arbitrary command execution and targets browser credential stores, cryptocurrency wallets, and cloud service tokens. Because delivery occurred through a trusted, code-signed update path, traditional perimeter controls and even application allowlisting offered limited protection. This is a classic trusted-channel compromise: the victim's own game launcher became the malware dropper.
In parallel, three credential-harvesting ecosystems are active:
- GTA VI release phishing — 121+ newly registered domains exploiting the November 19, 2026 launch hype, impersonating the leaker "CyberLeek," offering fake early access, key generators, and trojanized APKs with cryptocurrency scams and content lockers.
- AWS key validation for Amazon Bedrock — platforms such as KMON_NOC systematically test stolen AWS keys via
GetCallerIdentity, then probe LLM access throughListFoundationModels— confirming that stolen cloud credentials are now being monetized for AI compute abuse ("token-jacking") in addition to classic data theft and cryptomining. - US bank phishing with anti-takedown cloaking — 248 live look-alike domains targeting 189 US financial institutions, serving fake "account suspended" pages to returning visitors (analysts, scanners, takedown services) while delivering live phishing content to first-time victims.
Collectively these pulses indicate mature, industrialized credential pipelines: steal via supply chain or lure, validate via automated tooling, monetize via financial fraud and cloud resource abuse.
Threat Actor / Malware Profile
K2F Remote Access Agent (NIKKE Launcher Compromise)
- Distribution: Tampered LuaJIT script files on the official game CDN; executed by the legitimate launcher update mechanism — no user interaction required beyond launching the game.
- Payload behavior: Arbitrary remote command execution; harvesting of browser-stored credentials (cookies, saved logins, autofill), cryptocurrency wallet files/keys, and cloud service credentials (AWS/Azure/GCP config and token files under user profile directories).
- C2 communication: Outbound HTTPS to attacker-controlled infrastructure including
analytics.insightjs.com,insightjs.org, and IPs89.126.250.172,89.127.233.127. The "insightjs" naming mimics legitimate analytics libraries to blend with web telemetry. - Persistence: Remote access agent capability implies survivor mechanisms — hunt for new Run keys, scheduled tasks, and services created on hosts that ran the NIKKE launcher during the compromise window.
- Anti-analysis: Delivery through trusted signed launcher evades reputation-based controls; CDN tampering means hash-based allowlists of the launcher itself are insufficient.
Credential Harvesting Ecosystems
- GTA VI lures: Newly registered domains (NRDs) on cheap TLDs (.click, .icu, .cfd, .world, .my); payloads include trojanized APKs, fake key generators, and content lockers. Distribution via SEO poisoning, social media, and Discord/Telegram gaming communities.
- KMON_NOC-style AWS validators: Automated tooling that validates harvested keys against
sts:GetCallerIdentityandbedrock:ListFoundationModels/bedrock:InvokeModel— look for these API calls from anomalous principals or IPs in CloudTrail. - Bank phishing cloaking: Fingerprint-based conditional content serving — returning visitor fingerprints receive a fake suspension page; new fingerprints receive credential harvesters. This defeats automated takedown scanning and URL reputation crawlers. Naming pattern combines urgency keywords with bank names (e.g.,
authorize-valley.com,protect-pinnaclefp.com).
IOC Analysis
Indicator types present across these pulses and operational guidance:
- IPv4 (C2):
89.126.250.172,89.127.233.127— block at egress firewall/proxy; retro-search NetFlow and proxy logs for connections since 2026-09-27. - Domains/Hostnames (C2 + phishing):
analytics.insightjs.com,insightjs.org(K2F C2); GTA VI lure domains (gta6cyberleek.com,cyberleek.click,mygta6.icu,gta6keycodes.com,contact-rockstargames.com, etc.); bank phishing domains (53primaryset.com,authorize-valley.com,commercial-atfirst.com,protect-pinnaclefp.com). Sinkhole via DNS RPZ or protective DNS; note the bank-phishing cloaking means passive DNS and proxy logs are more reliable than visiting the sites to confirm. - File hashes (SHA256/MD5): K2F sample hashes and the KMON_NOC validator binaries (
92364136...,c9335bb8...). Push to EDR blocklists; sweep with your EDR's hash search across the fleet. Hashes rotate fast — treat behavioral detections below as primary. - CVE reference:
CVE-2026-98432is listed in the NIKKE pulse — validate applicability in your vulnerability scanner and cross-check against any launcher/updater components in your environment.
Operationalization: Ingest the full pulse IOC sets into your TIP/SIEM with TLP:WHITE handling. For phishing domains, pair static blocking with NRD heuristics (domains <30 days old on high-risk TLDs matching brand keywords). For C2, prioritize egress blocking and retro-hunting over hash blocking.
Detection Engineering
---
title: K2F RAT C2 Communication - insightjs Infrastructure
id: 8f3a2c1e-9b4d-4e7a-a1c2-5d6e7f8a9b0c
status: experimental
description: Detects network connections to known K2F remote access agent C2 infrastructure identified in the NIKKE PC launcher CDN supply-chain compromise
references:
- https://piyolog.hatenadiary.jp/entry/2026/11/05/133509
author: Security Arsenal Threat Intelligence
date: 2026/11/06
tags:
- attack.command_and_control
- attack.t1071.001
logsource:
category: network_connection
product: windows
detection:
selection_domain:
DestinationHostname:
- 'analytics.insightjs.com'
- '*.insightjs.org'
selection_ip:
DestinationIp:
- '89.126.250.172'
- '89.127.233.127'
condition: selection_domain or selection_ip
falsepositives:
- None expected; infrastructure is attacker-controlled
level: critical
---
title: Game Launcher Spawning Suspicious Script or Shell Child Process
id: 1a2b3c4d-5e6f-7a8b-9c0d-1e2f3a4b5c6d
status: experimental
description: Detects game launcher processes (NIKKE and similar) spawning script interpreters, shells, or credential-access tooling - consistent with K2F delivery via tampered LuaJIT CDN scripts
references:
- https://piyolog.hatenadiary.jp/entry/2026/11/05/133509
author: Security Arsenal Threat Intelligence
date: 2026/11/06
tags:
- attack.execution
- attack.t1059
- attack.t1195.002
logsource:
category: process_creation
product: windows
detection:
selection_parent:
ParentImage|contains:
- '\nikke'
- '\launcher'
selection_child:
Image|endswith:
- '\powershell.exe'
- '\pwsh.exe'
- '\cmd.exe'
- '\wscript.exe'
- '\cscript.exe'
- '\mshta.exe'
- '\rundll32.exe'
- '\curl.exe'
condition: selection_parent and selection_child
falsepositives:
- Rare legitimate launcher self-update activity; baseline per title
level: high
---
title: Credential Store Access by Non-Browser Process
id: 9d8c7b6a-5f4e-3d2c-1b0a-9e8d7c6b5a4f
status: experimental
description: Detects processes other than the browser itself accessing browser credential stores, crypto wallet files, or cloud CLI credential files - behavior consistent with K2F infostealer collection
author: Security Arsenal Threat Intelligence
date: 2026/11/06
tags:
- attack.credential_access
- attack.t1555.003
- attack.t1552.001
logsource:
category: file_access
product: windows
detection:
selection_target:
TargetObject|contains:
- '\Google\Chrome\User Data\Default\Login Data'
- '\Microsoft\Edge\User Data\Default\Login Data'
- '\BraveSoftware\Brave-Browser\User Data\Default\Login Data'
- '\Exodus\exodus.wallet'
- '\Electrum\wallets'
- '\.aws\credentials'
- '\.azure\'
- '\.config\gcloud\'
filter_browser:
Image|endswith:
- '\chrome.exe'
- '\msedge.exe'
- '\brave.exe'
- '\firefox.exe'
condition: selection_target and not filter_browser
falsepositives:
- Backup agents and DLP tooling; allowlist known enterprise software
level: high
// K2F C2 + GTA VI / Bank Phishing Infrastructure Hunt - Microsoft Sentinel
let c2_ips = dynamic(["89.126.250.172", "89.127.233.127"]);
let c2_domains = dynamic(["analytics.insightjs.com", "insightjs.org"]);
let phish_domains = dynamic(["gta6cyberleek.com", "cyberleek.click", "mygta6.icu", "gta6keycodes.com", "cyberleek.my", "contact-rockstargames.com", "cyberleek.cfd", "cyberleek.world", "53primaryset.com", "authorize-valley.com", "commercial-atfirst.com", "protect-pinnaclefp.com"]);
union isfuzzy=true
(DeviceNetworkEvents
| where TimeGenerated > ago(45d)
| where RemoteIP in (c2_ips) or RemoteUrl has_any (c2_domains)
| project TimeGenerated, DeviceName, InitiatingProcessFileName, InitiatingProcessCommandLine, RemoteIP, RemoteUrl, IndicatorType="K2F_C2_Network"),
(DeviceNetworkEvents
| where TimeGenerated > ago(30d)
| where RemoteUrl has_any (phish_domains)
| project TimeGenerated, DeviceName, InitiatingProcessFileName, InitiatingProcessCommandLine, RemoteIP, RemoteUrl, IndicatorType="Phishing_Domain"),
(DeviceProcessEvents
| where TimeGenerated > ago(45d)
| where InitiatingProcessFileName has_any ("nikke", "launcher")
| where FileName in~ ("powershell.exe", "cmd.exe", "wscript.exe", "cscript.exe", "mshta.exe", "rundll32.exe", "curl.exe")
| project TimeGenerated, DeviceName, InitiatingProcessFileName, FileName, ProcessCommandLine, IndicatorType="Launcher_Child_Process"),
(CloudAppEvents
| where TimeGenerated > ago(30d)
| where Application == "Amazon Web Services"
| where ActionType in ("GetCallerIdentity", "ListFoundationModels", "InvokeModel")
| project TimeGenerated, AccountDisplayName, IPAddress, ActionType, IndicatorType="AWS_Key_Validation")
| sort by TimeGenerated desc
# K2F RAT + Credential Harvester IOC Hunt - Run elevated on suspect endpoints
$ErrorActionPreference = 'SilentlyContinue'
$report = @()
# 1. K2F file hashes
$k2fHashes = @(
'2f2aac505f486067af6831d6c75ea74df63acb1ed4e4002709c5962c68bd9203',
'3aaafbd612f04501a6fdb0bb8b2f8a87796223e5584ac18ea5eb180feeafb193',
'923641364ef0ce3a6f1d944890244082b8c7f29c9600c0433b2a0ca9822c0608',
'c9335bb8a21bd2c568d03b040fb86a0e72145691e54a33495ee0cfaac55835dc'
)
$searchPaths = @("$env:APPDATA", "$env:LOCALAPPDATA", "$env:TEMP", "$env:ProgramData", "$env:USERPROFILE\Downloads")
foreach ($p in $searchPaths) {
Get-ChildItem -Path $p -Recurse -File -Depth 3 | ForEach-Object {
$h = (Get-FileHash $_.FullName -Algorithm SHA256).Hash.ToLower()
if ($k2fHashes -contains $h) {
$report += [pscustomobject]@{Finding='K2F_HASH_MATCH'; Path=$_.FullName; Detail=$h}
}
}
}
# 2. Active connections to K2F C2
$c2 = @('89.126.250.172','89.127.233.127')
Get-NetTCPConnection | Where-Object { $c2 -contains $_.RemoteAddress } | ForEach-Object {
$proc = Get-Process -Id $_.OwningProcess
$report += [pscustomobject]@{Finding='C2_CONNECTION'; Path=$proc.Path; Detail="$($_.RemoteAddress):$($_.RemotePort) [$($proc.Name)]"}
}
# 3. DNS cache check for C2 / phishing domains
Get-DnsClientCache | Where-Object { $_.Entry -match 'insightjs|cyberleek|gta6|53primaryset|authorize-valley|commercial-atfirst|protect-pinnaclefp' } | ForEach-Object {
$report += [pscustomobject]@{Finding='DNS_CACHE_HIT'; Path='DNSCache'; Detail=$_.Entry}
}
# 4. Persistence artifacts created during compromise window (2026-09-27 to 2026-11-04)
$winStart = Get-Date '2026-09-27'; $winEnd = Get-Date '2026-11-05'
$runKeys = @('HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run',
'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\Run',
'HKLM:\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce',
'HKCU:\SOFTWARE\Microsoft\Windows\CurrentVersion\RunOnce')
foreach ($rk in $runKeys) {
Get-ItemProperty -Path $rk | ForEach-Object {
$_.PSObject.Properties | Where-Object { $_.Name -notmatch '^PS' } | ForEach-Object {
$report += [pscustomobject]@{Finding='RUN_KEY'; Path=$rk; Detail="$($_.Name) = $($_.Value)"}
}
}
}
Get-ScheduledTask | Where-Object { $_.Date -ge $winStart -and $_.Date -le $winEnd } | ForEach-Object {
$report += [pscustomobject]@{Finding='SCHED_TASK_WINDOW'; Path=$_.TaskPath; Detail="$($_.TaskName) created $($_.Date)"}
}
# 5. NIKKE launcher presence check
$launcher = Get-ChildItem -Path "$env:ProgramFiles","${env:ProgramFiles(x86)}","$env:LOCALAPPDATA\Programs" -Recurse -Filter '*.exe' -Depth 3 | Where-Object { $_.Name -match 'nikke|launcher' }
foreach ($l in $launcher) {
$report += [pscustomobject]@{Finding='LAUNCHER_PRESENT'; Path=$l.FullName; Detail=$l.LastWriteTime}
}
$report | Format-Table -AutoSize
$report | Export-Csv -Path ".\k2f_hunt_$(hostname)_$(Get-Date -Format yyyyMMdd).csv" -NoTypeInformation
Write-Host "[+] Hunt complete. $($report.Count) findings exported." -ForegroundColor Green
Response Priorities
Immediate (0-4 hours)
- Block K2F C2 IPs (
89.126.250.172,89.127.233.127) and domains (analytics.insightjs.com,insightjs.org) at egress firewall, proxy, and DNS. - Block all listed GTA VI and bank-phishing domains; add NRD + brand-keyword alerting for new registrations.
- Identify endpoints with the NIKKE PC launcher installed; treat any that launched between 2026-09-27 and 2026-11-04 as potentially compromised and isolate pending triage.
- Retro-hunt proxy, DNS, and NetFlow logs for C2 contact across the full compromise window.
24 Hours
- Because K2F steals browser credentials, crypto wallets, and cloud tokens: force password resets and session revocation for all users on affected endpoints — including personal accounts accessed via corporate browsers.
- Rotate any AWS keys, cloud CLI tokens, or service-account credentials stored on or accessible from impacted hosts; review CloudTrail for
GetCallerIdentity/ListFoundationModelsfrom anomalous source IPs (KMON_NOC-style validation). - Revoke active browser sessions (cookies are stolen, not just passwords) — invalidate tokens at the IdP, not just password reset.
- Sweep the fleet with the K2F hash set and the hunt script above.
1 Week
- Establish policy for gaming software on corporate assets; if permitted, isolate in a sandboxed/VDI context with no access to credential stores or cloud CLI profiles.
- Deploy the Sigma rules and KQL queries above into production detection; add detection for non-browser processes accessing browser credential stores as a durable infostealer control.
- Harden cloud posture: enforce short-lived credentials (SSO/Identity Center over long-lived IAM keys), alert on Bedrock API calls from new principals, and apply SCPs restricting model invocation where not required.
- Brief service-desk and finance staff on the bank-phishing cloaking technique — a "suspended" page on a banking URL is itself an indicator of a compromised look-alike domain.
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.