Back to Intelligence

MadApe Device Code Phishing Kit + njRAT QuickBooks Scam + Star Blizzard APT: OTX Credential-Theft Intelligence Bulletin — Enterprise Detection Pack

SA
Security Arsenal Team
October 29, 2026
10 min read

Intelligence Category: Infostealer & Credential Theft Campaigns Pulse Count: 5 | Synthesis Window: 2026-10-28 → 2026-10-30


Threat Summary

Five live OTX pulses converge on a single theme: identity and credential theft is the dominant monetization vector across both criminal and state-aligned operations this week.

  • MadApe (Group-IB research): A previously undocumented phishing kit abuses Microsoft's legitimate Device Code authentication flow. Attackers never collect passwords on a phishing page — they trick victims into entering a device code on the real Microsoft login portal, granting OAuth tokens directly. Multi-stage chains use business-themed PDF lures, configurable redirects, and fake document-sharing pages across 565+ infrastructure domains. Primary targeting: Israel, Microsoft 365 tenants.
  • UltraViewer → UltraMailer / QuickBooks Scam (Infoblox research): A tech-support scam operation links remote-access tooling (UltraViewer) with bulk-mailer software, running a long-running QuickBooks phishing campaign across 350+ lookalike domains (e.g., qbcares.com) with email-tracking infrastructure at chanret[.]com. Associated malware families include njRAT (S0385), Njw0rm, LV, Bladabindi, and DarkKometa — commodity .NET RATs used for credential theft and remote access post-callback.
  • Star Blizzard / Callisto (CYFIRMA research): FSB Centre 18-attributed espionage group continues credential-harvesting and hack-and-leak operations against NATO governments, defense, NGOs, and academia. Arsenal includes EvilGinx (AiTM proxy phishing), SPICA, LOSTKEYS, NOROBOT, and exploitation of CVE-2022-30190 (Follina), CVE-2023-36884, CVE-2023-38831 (WinRAR), CVE-2024-4947.
  • Aurora Ransomware: Linux ESXi encryptor (ChaCha20 + RSA-4096 key wrapping) with a novel twist — abuse of Cursor Agent / Claude for AI-assisted exploitation. Operating a Tor data-leak site since April 2026; victims across US, Argentina, Austria, Germany, Israel, Spain.
  • PHP2Shell / kkkkevin777: Japanese real-estate extortion campaign pivoting across ~20 sites via shared-hosting credential reuse, exfiltrating 16,061 customer records, then weaponizing PHP2Shell (CVE-2026-109618, CVE-2026-109619) from staging host 96.126.130.81.

Collective assessment: Credential theft (phishing kits, RATs, AiTM proxies) is being chained into downstream impact — account takeover, data theft, extortion, and ransomware staging. Defenders must treat identity-layer telemetry as the primary detection surface.


Threat Actor / Malware Profiles

MadApe Phishing Kit

  • Distribution: Business-themed PDF lures → configurable redirect chains → fake document-sharing pages.
  • Payload behavior: Initiates Microsoft OAuth 2.0 Device Authorization Grant (/devicecode endpoint). Victim is handed a real device code and directed to microsoft.com/devicelogin; the kit polls the token endpoint and harvests access/refresh tokens. No password is ever phished — MFA-fatigue-resistant and passwordless-compatible.
  • C2 / exfil: Tokens relayed to attacker infrastructure (565+ domains: sucdens.com, cepoffices.com, zakosta.info, nsboards.com, nysndigital.com, etc.).
  • Persistence: Stolen refresh tokens grant durable access independent of password resets; conditional on token revocation.
  • Anti-analysis: Multi-stage redirects, benign-appearing document portals, abuse of first-party Microsoft endpoints to evade URL filtering.

njRAT / Njw0rm / Bladabindi / DarkKometa (QuickBooks scam cluster)

  • Distribution: Callback-based tech-support scam; victims directed to call scammers who push UltraViewer remote access, followed by RAT deployment. Bulk email sent via UltraMailer with tracking pixel URLs on track.chanret[.]com.
  • Payload behavior: njRAT (Bladabindi) is a .NET RAT — keylogging, credential theft (browsers, FTP, mail), screen capture, registry Run-key persistence, optional worm propagation (Njw0rm).
  • C2: Dynamic DNS / direct TCP to operator infrastructure; config embedded in the .NET executable.
  • Anti-analysis: Packed/obfuscated .NET assemblies, process hollowing options, configurable mutex.

Star Blizzard (Callisto / FSB Centre 18)

  • Distribution: Sophisticated spear-phishing with relationship building, impersonation of colleagues and conference organizers; EvilGinx AiTM proxy phishing for session-cookie theft defeating MFA.
  • Payload behavior: Malware suite — SPICA (Rust backdoor), LOSTKEYS, NOROBOT/YESROBOT/MAYBEROBOT chains, SIMPLEFIX, GHOSTBLADE, BAITSWITCH, COLDCOPY, RedFlick, CosmicPulse.
  • Exploitation: CVE-2022-30190 (Follina/ms-msdt), CVE-2023-36884 (Office/HTML), CVE-2023-38831 (WinRAR), CVE-2024-4947 (Chrome V8).
  • Persistence: Scheduled tasks, Run keys, DLL side-loading; EvilGinx sessions persist via stolen cookies.

Aurora Ransomware (ESXi variant)

  • Behavior: Linux ELF encryptor targeting VMware ESXi datastores; ChaCha20 per-file encryption with RSA-4096-wrapped keys; Tor leak site (ijexszhs…onion).
  • Distinctive TTP: Abuse of Cursor Agent with Claude for AI-assisted exploitation and lateral-movement scripting — an emerging pattern of LLM-augmented intrusion.
  • Infrastructure: 146.19.125.36, 81.177.215.15, 89.106.83.49, 157.173.29.133.

PHP2Shell / kkkkevin777

  • Behavior: Web shell deployment on shared-hosting environments, lateral pivot via credential reuse across ~20 related real-estate sites; customer-data theft (16,061 records) feeding extortion.
  • IOCs: Staging server 96.126.130.81; CVE-2026-109618, CVE-2026-109619 (PHP2Shell weaponization).

IOC Analysis

Indicator typology across these pulses:

TypeExamplesOperationalization
Domains (phishing/kit infra)sucdens.com, cepoffices.com, qbcares.com, captchanom.top, preentootmist.orgDNS sinkhole / proxy block; hunt DNS query logs for the full 565-domain MadApe set — match on newly-registered-domain (NRD) age + business-document lure themes.
Hostnames (tracking)smtracking.qbcares.com, smtracking.healthclub951.swp23.com, track.chanret.comEmail gateway + proxy alert: tracking-pixel fetches indicate a live recipient — prioritize those users for callback-scam education and RAT triage.
IPv4 (C2/staging/leak infra)96.126.130.81, 146.19.125.36, 81.177.215.15, 89.106.83.49, 157.173.29.133, 103.245.231.248Egress block at firewall; retro-hunt NetFlow/proxy for 90 days.
File hashes (SHA256/MD5)28f046d9…8727, a4af136d…dcfe, 87138f63…aa48Push to EDR blocklist; sweep for execution history (not just presence — njRAT is frequently deleted post-run).
CVEsCVE-2022-30190, CVE-2023-36884, CVE-2023-38831, CVE-2024-4947, CVE-2026-109618/9Patch validation on Office, WinRAR, Chrome, PHP stacks; virtual-patch WAF rules for PHP2Shell.
URLs / .oniontrack.chanret.com/…, Aurora leak .onionURL decode and detonate in sandbox (ANY.RUN, Joe Sandbox); monitor Tor egress for leak-site contact pre-encryption.

Tooling pointers: OTX DirectConnect/API pulls into MISP or your TIP; base64 decode the tracking-URL path segments (the sample decodes to an email address — victim tracking); dotnet decompilers (dnSpyEx, ILSpy) for njRAT config extraction (C2, mutex, Run-key name).


Detection Engineering

YAML
---
title: Microsoft Device Code Phishing - MadApe Kit Token Request
description: Detects device authorization grant initiation and token polling patterns consistent with the MadApe phishing kit abusing the Microsoft Device Code flow.
status: experimental
date: 2026/10/30
author: Security Arsenal Threat Intelligence
logsource:
    product: azure
    service: signinlogs
detection:
    selection_flow:
        AuthenticationProtocol: 'deviceCode'
    selection_risk:
        - 'new country'
        - 'anonymous IP'
        - 'unfamiliar sign-in properties'
    condition: selection_flow and 1 of selection_risk
falsepositives:
    - Legitimate device code flows on TVs, IoT, CLI tooling from expected geographies
level: high
tags:
    - attack.credential_access
    - attack.t1528
    - attack.t1550.001
---
title: njRAT / Bladabindi Registry Run Key Persistence
description: Detects .NET RAT persistence via registry Run keys with suspicious value names or paths consistent with njRAT, Njw0rm, and DarkKometa deployments observed in the QuickBooks scam cluster.
status: experimental
date: 2026/10/30
author: Security Arsenal Threat Intelligence
logsource:
    category: registry_set
    product: windows
detection:
    selection_key:
        TargetObject|contains:
            - '\Software\Microsoft\Windows\CurrentVersion\Run'
            - '\Software\Microsoft\Windows\CurrentVersion\RunOnce'
    selection_suspicious:
        TargetObject|contains:
            - '\Temp\'
            - '\AppData\Roaming\'
            - '\Public\'
        Details|endswith:
            - '.exe'
            - '.vbs'
            - '.ps1'
    filter_known:
        Image|startswith:
            - 'C:\Program Files'
            - 'C:\Windows'
    condition: selection_key and selection_suspicious and not filter_known
falsepositives:
    - Software updaters writing to Run keys from user-writable paths (rare, investigate)
level: high
tags:
    - attack.persistence
    - attack.t1547.001
    - attack.execution
    - attack.t1059
---
title: ESXi Ransomware Execution - Aurora ChaCha20 Encryptor Behavior
description: Detects mass VM termination and datastore encryption patterns on ESXi hosts consistent with Aurora ransomware Linux variant.
status: experimental
date: 2026/10/30
author: Security Arsenal Threat Intelligence
logsource:
    product: linux
    service: auditd
detection:
    selection_vmkill:
        a0:
            - 'esxcli'
            - 'vim-cmd'
        a2|contains:
            - 'vm process kill'
            - 'vmsvc/power.off'
    selection_rename:
        a0:
            - 'mv'
            - 'openssl'
            - 'chacha'
    timeframe: 5m
    condition: selection_vmkill or selection_rename
falsepositives:
    - Legitimate VM power operations by virtualization administrators
level: critical
tags:
    - attack.impact
    - attack.t1486
    - attack.t1489
KQL — Microsoft Sentinel / Defender
// Security Arsenal - MadApe / njRAT / Star Blizzard / PHP2Shell IOC + Behavior Hunt
// Run across Microsoft Sentinel workspace

let PhishDomains = dynamic(["sucdens.com","cepoffices.com","zakosta.info","nsboards.com","adastraerrans.com","travestiilan.com","nysndigital.com","powerlivings.com","qbcares.com","chanret.com","captchanom.top","preentootmist.org","swp23.com"]);
let BadIPs = dynamic(["96.126.130.81","146.19.125.36","81.177.215.15","89.106.83.49","157.173.29.133","103.245.231.248"]);
let BadHashes = dynamic(["28f046d9f985e58cbc8b245b54d4179feacecc12f41e2f6594306867ce3e8727","9e1a679ca45a149d2bd681cbb8ec3b1cc3d271fad51b092a3db5e5642eb6676b","a4af136d159a8eb96b54924fa80355ca52874913301300f55af7d67ae97edcfe","87138f63974a8ccbbf5840c31165f1a4bf92a954bacccfbf1e7e5525d750aa48"]);
union isfuzzy=true
(DeviceNetworkEvents
 | where TimeGenerated > ago(14d)
 | where RemoteUrl has_any (PhishDomains) or RemoteIP in (BadIPs)
 | project TimeGenerated, DeviceName, InitiatingProcessFileName, RemoteUrl, RemoteIP, RemotePort, ActionType),
(DeviceProcessEvents
 | where TimeGenerated > ago(14d)
 | where SHA256 in (BadHashes)
 | project TimeGenerated, DeviceName, FileName, FolderPath, SHA256, InitiatingProcessCommandLine),
(DeviceRegistryEvents
 | where TimeGenerated > ago(14d)
 | where RegistryKey has_any (@"CurrentVersion\Run", @"CurrentVersion\RunOnce")
 | where RegistryValueData has_any (@"\Temp\", @"\AppData\Roaming\", @"\Public\")
 | where RegistryValueData endswith ".exe" or RegistryValueData endswith ".ps1" or RegistryValueData endswith ".vbs"
 | project TimeGenerated, DeviceName, RegistryKey, RegistryValueName, RegistryValueData, InitiatingProcessFileName),
(AADSignInEventsBeta
 | where TimeGenerated > ago(14d)
 | where AuthenticationProtocol == "deviceCode"
 | where RiskLevelDuringSignIn in ("high","medium") or Country !in ("US","IL")  // tune to tenant baseline
 | project TimeGenerated, UserPrincipalName, IPAddress, Country, ApplicationDisplayName, RiskLevelDuringSignIn)
PowerShell
# Security Arsenal - Credential-Theft IOC Hunt (njRAT / MadApe / PHP2Shell pivots)
# Run as Administrator on endpoints or via RMM/EDR remote shell. Output: CSV per host.

$BadHashes = @(
    "28f046d9f985e58cbc8b245b54d4179feacecc12f41e2f6594306867ce3e8727",
    "9e1a679ca45a149d2bd681cbb8ec3b1cc3d271fad51b092a3db5e5642eb6676b",
    "a4af136d159a8eb96b54924fa80355ca52874913301300f55af7d67ae97edcfe",
    "87138f63974a8ccbbf5840c31165f1a4bf92a954bacccfbf1e7e5525d750aa48",
    "a607384ce68144f2061a8b30cc65a6b8"
)
$BadIPs = @("96.126.130.81","146.19.125.36","81.177.215.15","89.106.83.49","157.173.29.133","103.245.231.248")
$BadDomains = @("sucdens.com","cepoffices.com","qbcares.com","chanret.com","captchanom.top","preentootmist.org","swp23.com")

$results = @()

# 1) njRAT-style Run-key persistence in user-writable paths
$runKeys = @(
    "HKCU:\Software\Microsoft\Windows\CurrentVersion\Run",
    "HKCU:\Software\Microsoft\Windows\CurrentVersion\RunOnce",
    "HKLM:\Software\Microsoft\Windows\CurrentVersion\Run",
    "HKLM:\Software\Microsoft\Windows\CurrentVersion\RunOnce"
)
foreach ($k in $runKeys) {
    if (Test-Path $k) {
        (Get-Item $k).Property | ForEach-Object {
            $v = (Get-ItemProperty -Path $k -Name $_).$_
            if ($v -match 'Temp|AppData|Public' -and $v -match '\.(exe|ps1|vbs)$') {
                $results += [pscustomobject]@{Type="RunKeyPersistence"; Detail="$k :: $_ = $v"}
            }
        }
    }
}

# 2) Hash sweep on common njRAT drop locations
$dropDirs = @("$env:TEMP","$env:APPDATA","$env:PUBLIC","$env:USERPROFILE\Downloads")
foreach ($d in $dropDirs) {
    Get-ChildItem -Path $d -Recurse -Include *.exe,*.dll -ErrorAction SilentlyContinue | ForEach-Object {
        $h = (Get-FileHash $_.FullName -Algorithm SHA256 -ErrorAction SilentlyContinue).Hash
        if ($BadHashes -contains $h) {
            $results += [pscustomobject]@{Type="MaliciousFileHash"; Detail="$($_.FullName) SHA256=$h"}
        }
    }
}

# 3) Active/recent network connections to C2 and staging IPs
Get-NetTCPConnection -State Established -ErrorAction SilentlyContinue |
    Where-Object { $BadIPs -contains $_.RemoteAddress } |
    ForEach-Object {
        $p = Get-Process -Id $_.OwningProcess -ErrorAction SilentlyContinue
        $results += [pscustomobject]@{Type="C2Connection"; Detail="$($_.RemoteAddress):$($_.RemotePort) via $($p.ProcessName) (PID $($_.OwningProcess))"}
    }

# 4) DNS cache hits for phishing kit / tracking domains
$dns = Get-DnsClientCache -ErrorAction SilentlyContinue
foreach ($dom in $BadDomains) {
    $dns | Where-Object { $_.Entry -like "*$dom*" } | ForEach-Object {
        $results += [pscustomobject]@{Type="PhishingDomainDNS"; Detail="$($_.Entry) -> $($_.Data)"}
    }
}

# 5) Scheduled tasks referencing user-writable paths (Star Blizzard / njRAT pattern)
Get-ScheduledTask | ForEach-Object {
    $t = $_
    $t.Actions | Where-Object { $_.Execute -match 'Temp|AppData|Public' } | ForEach-Object {
        $results += [pscustomobject]@{Type="SuspiciousScheduledTask"; Detail="$($t.TaskName) -> $($_.Execute) $($_.Arguments)"}
    }
}

$results | Export-Csv -Path "$env:TEMP\SA_IOC_Hunt_$(hostname)_$(Get-Date -Format yyyyMMdd_HHmm).csv" -NoTypeInformation
if ($results.Count -gt 0) { $results | Format-Table -AutoSize; Write-Host "[!] $($results.Count) findings - escalate to IR." -ForegroundColor Red }
else { Write-Host "[+] No hits on this host." -ForegroundColor Green }

Response Priorities

Immediate (0–4 hours)

  • Block all listed IPs, domains, and hostnames at DNS resolver, web proxy, and egress firewall; push file hashes to EDR blocklists.
  • Run the KQL hunt and PowerShell sweep environment-wide; isolate any host with C2 connections to 146.19.125.36, 81.177.215.15, 89.106.83.49, 157.173.29.133, 103.245.231.248, or 96.126.130.81.
  • Alert on any user who fetched tracking pixels from track.chanret[.]com — these are confirmed live recipients of the QuickBooks scam and prime njRAT targets.
  • Query Entra ID sign-in logs for device-code grant authentications in the last 14 days (MadApe exposure check).

24 Hours (identity-focused)

  • Assume credential compromise for any device-code sign-in anomaly: revoke refresh tokens (Revoke-MgUserSignInSession / Graph revokeSignInSessions), force password reset, and require re-enrollment of MFA for affected users.
  • Audit OAuth app consent grants for newly-added permissions (mail.read, offline_access) — MadApe tokens may persist via consent.
  • Review mailbox rules and Teams/SharePoint external access for Star Blizzard-style session persistence following any EvilGinx-class AiTM event.
  • Brief finance/QuickBooks users on the callback scam; njRAT-infected hosts require full reimage, not just AV cleanup.

1 Week (architecture hardening)

  • Enforce phishing-resistant MFA (FIDO2/passkeys) and disable or restrict device-code flow via Conditional Access where not operationally required.
  • Deploy Token Protection / Continuous Access Evaluation to bind tokens to devices, blunting AiTM and kit-based token theft.
  • Patch and validate: CVE-2022-30190, CVE-2023-36884, CVE-2023-38831, CVE-2024-4947; virtual-patch PHP stacks against CVE-2026-109618/109619 and audit shared-hosting credential reuse (PHP2Shell pivot vector).
  • ESXi hardening: isolate management interfaces, disable shell/SSH when unused, enforce lockdown mode, and snapshot/backup datastores offline (Aurora-specific).
  • NRD (newly registered domain) blocking at the proxy — kills the majority of MadApe and QuickBooks-lookalike infrastructure at birth.

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.