Back to Intelligence

ShinyHunters OAuth Abuse + DarkHotel North Korea Lures + Jewelbug Antino Backdoor: OTX Pulse Analysis — Enterprise Detection Pack

SA
Security Arsenal Team
August 13, 2026
9 min read

This briefing synthesizes three live AlienVault OTX pulses published 13 August 2026, covering a financially-motivated SaaS intrusion campaign, a long-running APT phishing operation, and a dual-purpose Chinese espionage/fraud platform. SOC teams should treat all three as active and immediately actionable.


Threat Summary

Three distinct adversaries are converging on the enterprise perimeter through trust relationships rather than perimeter exploits:

1. ShinyHunters — SaaS OAuth abuse (mid-2025 through mid-2026). Operators impersonate IT support in voice phishing (vishing) calls, walking employees through authorizing malicious OAuth applications against corporate Salesforce instances. A parallel intrusion path abuses compromised trusted integrations (Salesloft, Gainsight and similar middleware) to pivot into downstream customer tenants — a classic supply-chain amplification pattern. Objective: bulk exfiltration of CRM data for extortion and resale. Targeted verticals: retail, education, manufacturing.

2. APT-C-06 (DarkHotel) — North Korea-themed phishing, April 2026 wave. The group, active since at least 2007 against executives, defense, and electronics sectors, distributed a decoy document titled "North Korean Central Television Real-time Broadcasting Program Instructions." Victims are directed to download a trojanized MSI installer that deploys ChaCha20-encrypted shellcode via PowerShell, with persistence through scheduled tasks. Targeted verticals: defense and technology.

3. Jewelbug (REF7707) — espionage and crypto fraud from one panel. A China-based hackers-for-hire group running parallel operations: watering-hole espionage against government ministries, militaries, telecommunications, and aerospace (including Taiwan), alongside a cryptocurrency fraud revenue stream. Both missions run from a single browser-centric remote-access framework called XG-Web, with the Antino backdoor as the primary implant and ClientKing and a trojanized PDF Viewer as supporting tooling.

Collectively, these pulses show adversaries abandoning noisy exploit delivery in favor of identity abuse (OAuth consent), trusted-channel delivery (watering holes, supply-chain integrations), and encrypted in-memory payloads that defeat signature-based controls.


Threat Actor / Malware Profile

ShinyHunters (SaaS intrusion collective)

  • Distribution: Vishing calls impersonating internal IT/helpdesk; supply-chain compromise of SaaS-to-SaaS integrations.
  • Payload behavior: No traditional malware — the "payload" is a consent-granted OAuth application with broad API scopes (read/export of CRM objects).
  • C2 communication: Legitimate Salesforce API endpoints over TLS; traffic blends with normal SaaS telemetry.
  • Persistence: Persistent OAuth refresh tokens; rogue connected apps survive password resets unless tokens are explicitly revoked.
  • Anti-analysis: Living-off-the-platform — no endpoint artifacts, minimal log signatures outside SaaS audit trails.

DarkHotel (APT-C-06)

  • Distribution: Spear-phishing with DPRK-media-themed decoy documents.
  • Payload behavior: MSI installer → PowerShell loader → ChaCha20-decrypted shellcode executed in memory.
  • C2 communication: Staging/implant infrastructure including built.3jkg8d.com.
  • Persistence: Scheduled tasks created by the installer chain.
  • Anti-analysis: Custom ChaCha20 encryption of shellcode; in-memory execution minimizes disk footprint; MSI wrapper lends apparent legitimacy.

Jewelbug / REF7707 (Antino, ClientKing, PDF Viewer)

  • Distribution: Watering-hole compromise of sector-specific websites; trojanized PDF viewer as initial-stage dropper.
  • Payload behavior: Antino backdoor provides browser-centric remote access under the XG-Web control panel; ClientKing supports the parallel crypto-fraud operation (wallet/session theft).
  • C2 communication: IPv4 38.12.1.47; domains www.jkskhei.com and ns1.jkskhei.com (the latter suggesting DNS-channel or authoritative-DNS abuse).
  • Persistence: Implant-level persistence consistent with long-dwell espionage; browser hijacking components maintain session access.
  • Anti-analysis: In-browser C2 framework evades traditional process-chain detection; dual-use fraud tooling muddies attribution.

IOC Analysis

IndicatorTypeAssociated ThreatOperationalization
38.12.1.47IPv4Jewelbug / Antino C2Block at egress firewall and proxy; retro-hunt netflow and DNS resolver logs for 90 days
www.jkskhei.com, ns1.jkskhei.comHostnameJewelbug C2 / DNS infrastructureSinkhole at DNS layer; alert on resolution events; check for TXT/NULL record anomalies indicating DNS tunneling
built.3jkg8d.comHostnameDarkHotel stagingBlock; hunt proxy and DNS logs; pivot on subdomains of 3jkg8d.com
4× FileHash-MD5 (4a88efd0..., 60fd3dbf..., be6d6d01..., d033868f...)File hashDarkHotel MSI/shellcodePush to EDR blocklists; note MD5 hashes rotate trivially — pair with behavioral detections
5× FileHash-SHA256 (e6ff096a..., 01b5c6ac..., e809da86..., f1ef5fe4..., e2eb7703...)File hashAntino / ClientKing / PDF ViewerHigh-fidelity — import to EDR and mail gateway; SHA256 collision risk is negligible
0 indicatorsShinyHuntersDetection must be behavioral: OAuth consent grants, anomalous API export volume, vishing reports

Tooling guidance: Enrich hashes via OTX DirectConnect API, VirusTotal, and Hybrid-Analysis. Decode DarkHotel shellcode with CyberChef (ChaCha20 recipe) once the key is recovered from the loader. For ShinyHunters, Salesforce Event Monitoring / Shield audit logs are the primary telemetry source — no endpoint IOC exists.


Detection Engineering

YAML
---
title: DarkHotel MSI Installer Spawning PowerShell Shellcode Loader
id: 9f2a1c7e-3b41-4d5e-8a6f-darhotel0001
status: experimental
description: Detects msiexec spawning PowerShell, consistent with DarkHotel APT-C-06 trojanized MSI installers deploying ChaCha20-encrypted shellcode (OTX pulse 2026-08-13)
author: Security Arsenal Threat Intelligence
references:
  - https://mp.weixin.qq.com/s/KrQyZ2AZn9dcL3Fqyg_y3Q
date: 2026/08/13
tags:
  - attack.execution
  - attack.t1059.001
  - attack.t1218.007
logsource:
  category: process_creation
  product: windows
detection:
  selection_parent:
    ParentImage|endswith: '\msiexec.exe'
  selection_child:
    Image|endswith:
      - '\powershell.exe'
      - '\powershell_ise.exe'
      - '\pwsh.exe'
  selection_flags:
    CommandLine|contains:
      - '-enc'
      - '-encodedcommand'
      - 'FromBase64String'
      - 'Invoke-Expression'
      - 'IEX'
  condition: selection_parent and selection_child and selection_flags
falsepositives:
  - Legitimate software deployment tools wrapping PowerShell post-install scripts
level: high
---
title: Scheduled Task Persistence via MSI or Script Interpreter Child Process
id: 7c1e4b22-9a05-4f77-b312-darksched002
status: experimental
description: Detects scheduled task creation by script interpreters or installer processes, matching DarkHotel persistence tradecraft observed in the April 2026 North Korea lure campaign
author: Security Arsenal Threat Intelligence
references:
  - https://mp.weixin.qq.com/s/KrQyZ2AZn9dcL3Fqyg_y3Q
date: 2026/08/13
tags:
  - attack.persistence
  - attack.t1053.005
logsource:
  category: process_creation
  product: windows
detection:
  selection_img:
    Image|endswith:
      - '\schtasks.exe'
      - '\powershell.exe'
      - '\wscript.exe'
      - '\cscript.exe'
  selection_cmd:
    CommandLine|contains:
      - '/create'
      - 'Register-ScheduledTask'
      - 'New-ScheduledTask'
  filter_system:
    ParentImage|endswith: '\TiWorker.exe'
  condition: selection_img and selection_cmd and not filter_system
falsepositives:
  - Software installation routines; enterprise GPO task deployment
level: medium
---
title: Jewelbug Antino Backdoor C2 Communication
id: 4d8f0a13-2e6b-4c91-a550-jewelc20003
status: experimental
description: Detects network connections to known Jewelbug (REF7707) XG-Web / Antino backdoor command-and-control infrastructure
author: Security Arsenal Threat Intelligence
references:
  - https://www.security.com/blog-post/jewelbug-crypto-fraud-espionage
date: 2026/08/13
tags:
  - attack.command_and_control
  - attack.t1071
logsource:
  category: network_connection
  product: windows
detection:
  selection_ip:
    DestinationIp: '38.12.1.47'
  selection_dns:
    QueryName|contains:
      - 'jkskhei.com'
      - '3jkg8d.com'
  condition: 1 of selection_*
falsepositives:
  - Threat researcher sandbox detonation
level: critical
KQL — Microsoft Sentinel / Defender
// Jewelbug + DarkHotel C2 and DNS retro-hunt (Microsoft Sentinel)
// Covers Antino backdoor C2, DarkHotel staging, and related DNS resolution
let KnownC2IPs = dynamic(["38.12.1.47"]);
let KnownC2Domains = dynamic(["jkskhei.com", "3jkg8d.com", "built.3jkg8d.com"]);
let NetHits = DeviceNetworkEvents
| where TimeGenerated > ago(90d)
| where RemoteIP in (KnownC2IPs)
   or RemoteUrl has_any (KnownC2Domains)
| project TimeGenerated, DeviceName, InitiatingProcessFileName, InitiatingProcessCommandLine, RemoteIP, RemoteUrl, RemotePort;
let DnsHits = DeviceEvents
| where TimeGenerated > ago(90d)
| where ActionType == "DnsQueryResponse"
| extend QueryName = tostring(parse_json(AdditionalFields).DnsQueryString)
| where QueryName has_any (KnownC2Domains)
| project TimeGenerated, DeviceName, QueryName, InitiatingProcessFileName;
let ProcessHits = DeviceProcessEvents
| where TimeGenerated > ago(90d)
| where InitiatingProcessFileName =~ "msiexec.exe"
   and FileName has_any ("powershell.exe", "pwsh.exe")
   and ProcessCommandLine has_any ("-enc", "FromBase64String", "Invoke-Expression")
| project TimeGenerated, DeviceName, FileName, ProcessCommandLine, SHA256;
union NetHits, DnsHits, ProcessHits
| sort by TimeGenerated desc
PowerShell
# Security Arsenal IOC Hunt — DarkHotel + Jewelbug artifacts
# Checks scheduled tasks, network connections, DNS cache, and file hashes
# Run elevated on suspect endpoints or via your RMM/EDR remote shell

$Report = @()

# --- 1. DarkHotel persistence: anomalous scheduled tasks ---
$SuspectTasks = Get-ScheduledTask | Where-Object {
    $_.TaskPath -notlike '\Microsoft*' -and
    ($_.Actions.Execute -match 'powershell|wscript|cscript|msiexec|rundll32')
}
foreach ($t in $SuspectTasks) {
    $Report += [PSCustomObject]@{
        Check   = 'ScheduledTask'
        Finding = "$($t.TaskName) -> $($t.Actions.Execute) $($t.Actions.Arguments)"
        Risk    = 'Review'
    }
}

# --- 2. Jewelbug / DarkHotel C2: active and historical network indicators ---
$BadIPs = @('38.12.1.47')
$Conns = Get-NetTCPConnection -ErrorAction SilentlyContinue |
    Where-Object { $BadIPs -contains $_.RemoteAddress }
foreach ($c in $Conns) {
    $Report += [PSCustomObject]@{
        Check   = 'NetworkConnection'
        Finding = "PID $($c.OwningProcess) -> $($c.RemoteAddress):$($c.RemotePort) [$($c.State)]"
        Risk    = 'CRITICAL'
    }
}

# --- 3. DNS cache evidence of C2 resolution ---
$BadDomains = @('jkskhei.com', '3jkg8d.com')
$DnsHits = Get-DnsClientCache -ErrorAction SilentlyContinue |
    Where-Object { $d = $_.Name; $BadDomains | Where-Object { $d -like "*$_*" } }
foreach ($h in $DnsHits) {
    $Report += [PSCustomObject]@{
        Check   = 'DNSCache'
        Finding = "$($h.Name) -> $($h.Data)"
        Risk    = 'CRITICAL'
    }
}

# --- 4. File hash sweep (common staging locations) ---
$BadHashes = @(
    'e6ff096a0562c0042b09d250bd60272ffcd8d72bd95c563842acf765a8dc8bcf',
    '01b5c6acb20e41799a0e96d9d1d6e1c44791883706b6285e874fcb15cc93b31a',
    'e809da86bd81463347fa7f922d3e088755a94a331889d32acb55aa8f57778a34',
    'f1ef5fe4c0cdcff13cc750c867728b89719f81437bdc49041edd1ae1f3edb4e8',
    'e2eb7703047b37b28dc34e6990205d758a2454b39bc655b460606745fadcb530'
)
$ScanPaths = @("$env:TEMP", "$env:APPDATA", "$env:ProgramData", "C:\Users\Public")
foreach ($p in $ScanPaths) {
    Get-ChildItem -Path $p -Recurse -File -Include *.msi,*.exe,*.dll -ErrorAction SilentlyContinue |
        ForEach-Object {
            $h = (Get-FileHash $_.FullName -Algorithm SHA256 -ErrorAction SilentlyContinue).Hash
            if ($BadHashes -contains $h.ToLower()) {
                $Report += [PSCustomObject]@{
                    Check   = 'FileHash'
                    Finding = "$($_.FullName) [SHA256 match]"
                    Risk    = 'CRITICAL'
                }
            }
        }
}

$Report | Format-Table -AutoSize
if ($Report | Where-Object Risk -eq 'CRITICAL') {
    Write-Host '[!] CRITICAL findings — isolate host and escalate to IR immediately.' -ForegroundColor Red
} else {
    Write-Host '[+] No critical IOC matches found on this host.' -ForegroundColor Green
}

Response Priorities

Immediate (0–4 hours)

  • Block 38.12.1.47, www.jkskhei.com, ns1.jkskhei.com, and built.3jkg8d.com at egress firewall, DNS resolver, and web proxy layers.
  • Push all nine file hashes to EDR blocklists and email gateway detonation feeds.
  • Deploy the Sigma rules above and run the Sentinel retro-hunt over 90 days of telemetry.
  • In Salesforce (and other SaaS platforms), audit all connected apps / OAuth grants issued in the last 12 months; revoke any unrecognized or overly-scoped tokens immediately.

24 Hours

  • Identity verification: Because ShinyHunters' tradecraft yields valid OAuth tokens rather than stolen passwords, force revocation of refresh tokens for any user who interacted with a suspicious connected app — password resets alone are insufficient. Review Salesforce login history and API event logs for bulk export patterns (large query() result sets, off-hours API calls from unusual ASNs).
  • Brief helpdesk and executive staff on the vishing pretext (fake IT support requesting OAuth app authorization); institute callback verification for any IT-initiated consent request.
  • For any DarkHotel or Jewelbug hit, isolate the host, capture memory before reboot (in-memory shellcode is volatile), and identify lateral movement via the compromised account's Kerberos activity.

1 Week

  • SaaS architecture hardening: Enforce admin-approved consent workflows; block end-user OAuth consent entirely where possible. Inventory all third-party integrations (Salesloft, Gainsight-class middleware) and apply least-privilege scopes with IP allow-listing on API clients.
  • Constrain msiexec and script interpreters via WDAC/AppLocker policies; alert on any scheduled task created outside approved deployment tooling.
  • Add DNS-layer analytics for low-reputation newly-registered domains matching C2 naming patterns, and segment defense/aerospace/government-adjacent VLANs from general user browsing (watering-hole exposure reduction).
  • Tabletop a combined SaaS-extortion + APT-espionage scenario; these pulses show both arriving through identity and trust channels, not the malware perimeter.

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.