Back to Intelligence

VulcanRAT207.A + Kimsuky 'GitPower': OTX Pulse Analysis — WhatsApp-Delivered RAT Chains & Nation-State Espionage Detection Pack

SA
Security Arsenal Team
October 13, 2026
9 min read

Threat Summary

Three OTX pulses published 2026-10-12 through 2026-10-13 collectively map two distinct but equally dangerous intrusion models, plus a hard operational lesson for SOC triage.

Campaign 1 — TA4922 / VulcanRAT207.A: A financially-themed intrusion chain attributed to threat actor TA4922 delivers a lure document (Statement.exe) via WhatsApp. The loader is packed with NRV2E compression, performs extensive host screening (anti-sandbox/anti-VM checks), and escalates privileges via COM-based techniques. Execution is transferred into the Windows Task Scheduler process using PoolParty Variant 7 — a legitimate-thread-pool injection technique — ultimately landing a WebSocket-based RAT with SYSTEM privileges. Persistence is reinforced through a malicious kernel driver (GoFly64.sys) and DLL side-loading, masquerading under the name of the legitimate Vulkan graphics API.

Campaign 2 — Kimsuky / Operation GitPower: The North Korea-nexus Kimsuky group is running state-sponsored espionage against Ukrainian experts in diplomacy, security, and international policy. Lures impersonate international conference invitations and collaboration requests. The operation abuses GitHub as legitimate infrastructure for malware distribution and data exfiltration, with malicious LNK files, CHM payloads, and PowerShell as primary execution vectors. 135 indicators accompany the pulse, including disposable dynamic-DNS C2 hostnames (e.g., pokijhgcfsdfghnj.mywebcommunity.org) and a hardcoded IPv4 endpoint (111.92.246.145).

Operational Note — The .conf26 Lesson: The third pulse documents how 15 devices flagged for beaconing to 13.226.251.40 (hosting moonlighthathel[.]org and ukankingwithea[.]com) traced back to shared Amazon CDN infrastructure. Precision blocking beats sledgehammer blocking: indiscriminate IP-level deny rules against CDN edges cause collateral damage and alert fatigue. Reputation must be evaluated at the domain/SNI layer before enforcement.

Threat Actor / Malware Profile

TA4922 — VulcanRAT207.A Intrusion Chain

AttributeDetail
DistributionWhatsApp-delivered financial lure (Statement.exe)
PackingNRV2E compression to conceal true payload
EvasionExtensive host screening; anti-analysis gating before staging
Privilege EscalationCOM-based elevation techniques
Process InjectionPoolParty Variant 7 into Task Scheduler process
PersistenceDLL side-loading (Vulkan-themed), GoFly64.sys kernel driver
C2WebSocket-based RAT channel
ObjectiveFull SYSTEM compromise; financially motivated intrusion

Kimsuky (APT43 / Thallium) — Operation GitPower

AttributeDetail
AttributionDPRK state-sponsored; espionage mission
TargetingUkrainian diplomacy, security, and international policy experts; Government sector
DeliverySpear phishing — fake conference invitations, collaboration requests
ExecutionMalicious LNK files, CHM payloads, PowerShell staging
Infrastructure AbuseGitHub for payload hosting and exfiltration; dynamic-DNS C2
C2 Samplespokijhgcfsdfghnj.mywebcommunity.org, minecrafter.mygamesonline.org, bwer5t6kl.getenjoyment.net, cmieqf7yjs.sportsontheweb.net, 111.92.246.145
ObjectiveIntelligence collection on Ukrainian diplomatic/security apparatus

IOC Analysis

The indicator set spans four operational types:

  • FileHash-SHA256 / SHA1 / MD5 (VulcanRAT207.A): Twelve hashes across the loader and staged components, led by SHA256 facf78d474b66ed821288db41fa6ad8a7b6f30650eb12127cb3e9a3cc6146116. Hashes are point-in-time artifacts — re-packed samples will evade them, so pair hash blocking with behavioral detections (PoolParty injection, scheduler-process anomalies).
  • Hostnames (Kimsuky): Dynamic-DNS providers (mywebcommunity.org, mygamesonline.org, getenjoyment.net, sportsontheweb.net, medianewsonline.com) are classic Kimsuky tradecraft. Block at DNS sinkhole level and alert on any resolution, not just successful connections. The randomized subdomain p1o2i3u4y5t6r7e8w9q0.medianewsonline.com suggests DGA-like generation patterns worth feeding into ML-based DNS classifiers.
  • IPv4: 111.92.246.145 (Kimsuky C2) — block at egress firewall and proxy. For the .conf26 CDN IP (13.226.251.40), apply the scalpel doctrine: block the malicious domains moonlighthathel[.]org and ukankingwithea[.]com via DNS filtering/SNI inspection rather than the shared Amazon edge IP.
  • URLs / CVE: The .conf26 pulse references CVE-2021-44228 (Log4Shell) as historical context for the exploit link detected by Cisco Secure Firewall — validate that perimeter appliances still carry Log4j signatures in egress inspection policy.

Tooling: Operationalize hashes via EDR blocklists (Defender custom indicators, CrowdStrike IOC management). Decode and pivot on infrastructure with VirusTotal Enterprise, urlscan.io, and OTX DirectConnect API. Feed the full 135-indicator Kimsuky set into your SIEM threat-intelligence module with a 90-day TTL.

Detection Engineering

YAML
---
title: VulcanRAT207.A PoolParty Injection into Task Scheduler Process
id: 8f3a1c2e-7b44-4d9a-a1c5-vulc207inj001
status: experimental
description: Detects suspicious thread injection or anomalous module loads targeting svchost/Task Scheduler consistent with PoolParty Variant 7 injection used by VulcanRAT207.A
author: Security Arsenal Threat Intel
date: 2026/10/13
references:
    - https://www.morphisec.com/blog/vulcanrat207-a_intrusion-chain_explained
logsource:
    category: process_creation
    product: windows
detection:
    selection_scheduler:
        Image|endswith: '\svchost.exe'
        CommandLine|contains: 'Schedule'
    selection_suspicious_child:
        ParentImage|endswith: '\svchost.exe'
        Image|endswith:
            - '\cmd.exe'
            - '\powershell.exe'
            - '\rundll32.exe'
            - '\regsvr32.exe'
            - '\mshta.exe'
    condition: selection_scheduler and selection_suspicious_child
falsepositives:
    - Legitimate scheduled tasks invoking scripts (tune with CommandLine allowlist)
level: high
tags:
    - attack.defense_evasion
    - attack.privilege_escalation
    - attack.t1055
---
title: VulcanRAT207.A GoFly64 Kernel Driver Load
id: 8f3a1c2e-7b44-4d9a-a1c5-vulc207drv002
status: experimental
description: Detects load of the GoFly64.sys malicious driver associated with VulcanRAT207.A persistence
author: Security Arsenal Threat Intel
date: 2026/10/13
logsource:
    category: driver_load
    product: windows
detection:
    selection:
        ImageLoaded|endswith: 'GoFly64.sys'
    condition: selection
falsepositives:
    - None expected
level: critical
tags:
    - attack.persistence
    - attack.t1068
    - attack.t1547.006
---
title: Kimsuky GitPower - LNK or CHM Spawning PowerShell
id: 8f3a1c2e-7b44-4d9a-a1c5-kimsukygp003
status: experimental
description: Detects PowerShell spawned from LNK or CHM execution, consistent with Kimsuky Operation GitPower spear-phishing delivery targeting Ukrainian government experts
author: Security Arsenal Threat Intel
date: 2026/10/13
references:
    - https://www.genians.co.kr/en/blog/threat_intelligence/operation-gitpower
logsource:
    category: process_creation
    product: windows
detection:
    selection_child:
        Image|endswith:
            - '\powershell.exe'
            - '\pwsh.exe'
    selection_parent:
        ParentImage|endswith:
            - '\explorer.exe'
            - '\hh.exe'
        ParentCommandLine|contains:
            - '.lnk'
            - '.chm'
    selection_encoded:
        CommandLine|contains:
            - ' -enc'
            - ' -ec'
            - 'FromBase64String'
            - 'DownloadString'
    condition: selection_child and selection_parent and selection_encoded
falsepositives:
    - Rare; legitimate CHM help files do not spawn encoded PowerShell
level: high
tags:
    - attack.execution
    - attack.t1059.001
    - attack.t1204.002
KQL — Microsoft Sentinel / Defender
// Kimsuky GitPower + VulcanRAT207.A unified hunt — Microsoft Sentinel
let kimsuky_hosts = dynamic(["pokijhgcfsdfghnj.mywebcommunity.org","minecrafter.mygamesonline.org","bwer5t6kl.getenjoyment.net","cmieqf7yjs.sportsontheweb.net","p1o2i3u4y5t6r7e8w9q0.medianewsonline.com"]);
let kimsuky_ip = "111.92.246.145";
let vulcan_hashes = dynamic(["facf78d474b66ed821288db41fa6ad8a7b6f30650eb12127cb3e9a3cc6146116","2fdfdd13a0c548bb68c9d5aa8599a9265d4659da3e237fe7a42ac6ac06b9a06a","0c418989bbc836208a087dee8fd64210f58909dddf736bc94769c269f65c26eb","be740b05caead2fa4521f42da0653a10f53029df5455ebafe4701ab3d41afdf9"]);
union isfuzzy=true
    (DeviceNetworkEvents
    | where Timestamp > ago(14d)
    | where RemoteUrl in~ (kimsuky_hosts) or RemoteIP == kimsuky_ip
    | project Timestamp, DeviceName, InitiatingProcessFileName, RemoteUrl, RemoteIP, RemotePort, Hunt="Kimsuky-C2"),
    (DeviceProcessEvents
    | where Timestamp > ago(14d)
    | where SHA256 in~ (vulcan_hashes)
    | project Timestamp, DeviceName, FileName, FolderPath, SHA256, InitiatingProcessCommandLine, Hunt="VulcanRAT-Hash"),
    (DeviceProcessEvents
    | where Timestamp > ago(14d)
    | where FileName =~ "svchost.exe" and ProcessCommandLine has "Schedule"
    | join kind=inner (DeviceProcessEvents
        | where Timestamp > ago(14d)
        | where FileName in~ ("cmd.exe","powershell.exe","rundll32.exe","mshta.exe","regsvr32.exe"))
        on DeviceName
    | project Timestamp, DeviceName, FileName1, ProcessCommandLine1, Hunt="PoolParty-Scheduler-Injection")
| sort by Timestamp desc
PowerShell
# VulcanRAT207.A + Kimsuky GitPower — Host IOC Hunt Script
# Run elevated on suspect endpoints. Outputs findings to console + CSV.

$findings = @()

# --- 1. VulcanRAT207.A: Hunt for GoFly64.sys driver ---
$driverPaths = @("$env:SystemRoot\System32\drivers\GoFly64.sys", "$env:SystemRoot\SysWOW64\drivers\GoFly64.sys")
foreach ($p in $driverPaths) {
    if (Test-Path $p) {
        $findings += [PSCustomObject]@{Type="Driver"; Artifact=$p; Verdict="MALICIOUS - VulcanRAT207.A persistence driver"}
    }
}
Get-CimInstance Win32_SystemDriver | Where-Object { $_.Name -like "*gofly*" -or $_.PathName -like "*gofly64*" } | ForEach-Object {
    $findings += [PSCustomObject]@{Type="LoadedDriver"; Artifact=$_.PathName; Verdict="SUSPICIOUS - loaded GoFly driver service"}
}

# --- 2. VulcanRAT207.A: Statement.exe lure artifacts ---
$lurePaths = @("$env:TEMP\Statement.exe", "$env:USERPROFILE\Downloads\Statement.exe", "$env:USERPROFILE\Desktop\Statement.exe")
foreach ($p in $lurePaths) {
    if (Test-Path $p) {
        $h = (Get-FileHash $p -Algorithm SHA256).Hash
        $findings += [PSCustomObject]@{Type="File"; Artifact="$p (SHA256: $h)"; Verdict="SUSPICIOUS - WhatsApp lure filename"}
    }
}

# --- 3. Known malicious hashes sweep in common staging dirs ---
$badHashes = @("facf78d474b66ed821288db41fa6ad8a7b6f30650eb12127cb3e9a3cc6146116","2fdfdd13a0c548bb68c9d5aa8599a9265d4659da3e237fe7a42ac6ac06b9a06a","0c418989bbc836208a087dee8fd64210f58909dddf736bc94769c269f65c26eb","be740b05caead2fa4521f42da0653a10f53029df5455ebafe4701ab3d41afdf9","297292d46d4f11fc801f5d6d01251735698a8419aa3196db7b3aa7bb8ea85cad","d398f11c236a59e44a9dff6f99af3aacefcb4a4bdf77bb7cf790cd0b13b0439a")
foreach ($dir in @($env:TEMP, "$env:USERPROFILE\Downloads", "$env:APPDATA", "$env:LOCALAPPDATA\Temp")) {
    Get-ChildItem $dir -Recurse -File -ErrorAction SilentlyContinue | ForEach-Object {
        $h = (Get-FileHash $_.FullName -Algorithm SHA256 -ErrorAction SilentlyContinue).Hash
        if ($badHashes -contains $h) {
            $findings += [PSCustomObject]@{Type="FileHash"; Artifact=$_.FullName; Verdict="MALICIOUS - OTX pulse hash match"}
        }
    }
}

# --- 4. Kimsuky GitPower: Network connections to C2 ---
Get-NetTCPConnection -State Established -ErrorAction SilentlyContinue | Where-Object { $_.RemoteAddress -eq "111.92.246.145" } | ForEach-Object {
    $proc = (Get-Process -Id $_.OwningProcess -ErrorAction SilentlyContinue).ProcessName
    $findings += [PSCustomObject]@{Type="Network"; Artifact="$($_.RemoteAddress):$($_.RemotePort) via $proc"; Verdict="MALICIOUS - Kimsuky C2 connection"}
}

# --- 5. Kimsuky GitPower: DNS cache check for dynamic-DNS C2 ---
$kimsukyHosts = @("mywebcommunity.org","mygamesonline.org","getenjoyment.net","sportsontheweb.net","medianewsonline.com")
Get-DnsClientCache -ErrorAction SilentlyContinue | Where-Object { $n=$_.Entry; ($kimsukyHosts | Where-Object { $n -like "*$_*" }) } | ForEach-Object {
    $findings += [PSCustomObject]@{Type="DNS"; Artifact=$_.Entry; Verdict="SUSPICIOUS - Kimsuky dynamic-DNS resolution"}
}

# --- 6. Persistence: anomalous scheduled tasks (PoolParty target process) ---
Get-ScheduledTask | Where-Object { $_.Actions.Execute -match "powershell|cmd|rundll32|mshta" } | ForEach-Object {
    $findings += [PSCustomObject]@{Type="ScheduledTask"; Artifact=$_.TaskName; Verdict="REVIEW - script-interpreter task (potential persistence)"}
}

if ($findings.Count -gt 0) {
    $findings | Format-Table -AutoSize
    $findings | Export-Csv ".\OTX_Hunt_$(Get-Date -Format yyyyMMdd_HHmm).csv" -NoTypeInformation
    Write-Host "[!] $($findings.Count) finding(s). Isolate host and escalate to IR." -ForegroundColor Red
} else {
    Write-Host "[+] No OTX pulse indicators found on this host." -ForegroundColor Green
}

Response Priorities

Immediate (0-4 hours):

  • Block Kimsuky C2 IPv4 111.92.246.145 at egress firewall and sinkhole all five dynamic-DNS C2 hostnames at the DNS layer.
  • Push the 12 VulcanRAT207.A and Kimsuky file hashes into EDR blocklists; block the malicious domains moonlighthathel[.]org and ukankingwithea[.]com via DNS filtering — do NOT block CDN edge IP 13.226.251.40.
  • Run the KQL hunt and PowerShell script across any endpoint with WhatsApp Web/Desktop usage or Ukrainian-government-adjacent personnel.
  • Audit scheduled tasks invoking script interpreters on exposed systems.

24 Hours:

  • Although no credential stealer is named, Kimsuky GitPower's espionage objective implies credential/session harvesting — force password resets and revoke active sessions/OAuth tokens for any targeted diplomacy, security, or policy staff.
  • Review GitHub access logs for anomalous repository clones or gists downloaded by endpoints; hunt for LNK/CHM files in email gateway quarantine over the past 30 days.
  • Enable mailbox rules auditing for targeted users (Kimsuky frequently establishes forwarding rules post-compromise).

1 Week:

  • Restrict WhatsApp (and consumer messaging apps generally) from delivering executables to corporate endpoints via proxy file-type policies; enforce SmartScreen/attachment detonation for Statement.exe-style lures.
  • Deploy application control (WDAC/AppLocker) blocking unsigned drivers — the GoFly64.sys persistence mechanism requires kernel-level load.
  • Implement DNS-layer detection rules for dynamic-DNS providers; enable COM-based privilege escalation telemetry (Sysmon Event 7/10 with thread-pool injection rules).
  • Deliver targeted phishing awareness to government/diplomatic staff covering fake conference-invitation lures, and adopt the .conf26 scalpel doctrine: codify domain-vs-IP blocking decision trees in SOC runbooks.

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.