Back to Intelligence

ICMacOS Stealer-to-RAT Evolution + DarkCore Session-Hijacking RAT: OTX Pulse Analysis — Enterprise Detection Pack

SA
Security Arsenal Team
October 27, 2026
9 min read

Two concurrent OTX pulses published 2026-10-27 paint a converging picture of the credential-theft economy: infostealer tooling is no longer a smash-and-grab operation. Both ICMacOS (a.k.a. Icarus macOS), marketed by the Russian-speaking actor GlowComa, and the DarkCore RAT demonstrate the industry's shift from one-shot credential harvesting to persistent access, session replay, and identity-level monetization — the raw material feeding business email compromise (BEC) and account-takeover pipelines on underground markets.

Threat Summary

Pulse 1 — ICMacOS / GlowComa. Active since September 2026, ICMacOS is a macOS Malware-as-a-Service (MaaS) sold on Russian-language underground forums. It targets macOS Sierra through current releases on both Intel and Apple Silicon. Critically, the operator has iterated the product from a pure infostealer into a persistent remote access trojan, placing it in direct competition with established macOS stealers like AMOS (Atomic macOS Stealer), MacSync, and Cthulhu — families explicitly tagged in the pulse, suggesting code overlap, shared buyers, or forum-adjacent marketing. The 68-indicator set includes C2 IPv4s (85.137.253.61, 45.13.186.247), live C2 domains (escapeai.live, mikoblico.xyz), and a large SHA256 corpus indicating frequent repacking to evade signature detection.

Pulse 2 — DarkCore. DarkCore is a Windows-oriented data-theft RAT distributed through cybercrime networks with a signature capability: a dedicated session-hijacking browser that imports stolen cookies to replay authenticated sessions against Gmail, WhatsApp, MediaFire, and other services. Because the replay is routed through the victim's own IP address (HVNC-style), it defeats IP-reputation and impossible-travel controls, masquerading as legitimate user activity. The pulse shows a lure-executable delivery model (ReportPDFReader.exe hosted at update.cdnlinks.org), a classic trojanized-software / malvertising pattern.

Collective read: Both families close the loop between credential theft and account takeover. Stolen session material is no longer just sold — it is weaponized in place by the malware itself. Objectives: browser credentials, cookies/session tokens, cryptocurrency wallets, keychain data, and downstream BEC access brokerage.

Threat Actor / Malware Profile

ICMacOS (GlowComa)

  • Distribution: Underground forum MaaS sales; typical macOS stealer delivery via cracked software, fake updates, and malicious DMG/pkg installers; likely ClickFix-style social engineering (osascript/Terminal paste lures) consistent with AMOS-family tradecraft.
  • Payload behavior: Harvests browser credentials/cookies (Chrome, Firefox, Edge derivatives), macOS Keychain, FileVault-adjacent artifacts, crypto wallets, Telegram/session data; post-upgrade builds support arbitrary command execution and file exfiltration — full RAT functionality.
  • C2: HTTP(S) beaconing to hardcoded infrastructure (85.137.253.61, 45.13.186.247) and rotating low-reputation domains (escapeai.live, mikoblico.xyz, .xyz/.live TLDs typical of bulletproof hosting).
  • Persistence: LaunchAgents/LaunchDaemons plist installation (~/Library/LaunchAgents/), login items, and — per the persistent-RAT pivot — daemonized beacons surviving reboot.
  • Anti-analysis: High hash churn (64+ SHA256 samples), Apple Silicon/Intel universal binaries, likely VM/sandbox checks and gatekeeper-bypass social engineering (unsigned or ad-hoc signed payloads).

DarkCore

  • Distribution: Trojanized utility lures — ReportPDFReader.exe from a fake CDN domain (update.cdnlinks.org) — consistent with SEO poisoning and malvertising.
  • Payload behavior: Credential/cookie database extraction (Chrome Login Data, Cookies, Local State for DPAPI key), then session replay through an embedded HVNC browser for Gmail/WhatsApp/MediaFire account abuse.
  • C2 / exfil: Traffic proxied through victim IPs; RAT control channel for tasking and data staging.
  • Persistence: Run keys, scheduled tasks masquerading as update services.
  • Anti-analysis: Session replay through victim egress IP defeats geo/IP anomaly detection; cookie-replay bypasses password and often MFA controls entirely.

IOC Analysis

The pulse set spans four indicator types with distinct operational handling:

  • IPv4 (C2): 85.137.253.61, 45.13.186.247 — block at egress firewall/proxy; retro-hunt NetFlow/proxy logs for 30–90 days. Feed to EDR network block lists.
  • Domains: escapeai.live, mikoblico.xyz, update.cdnlinks.org — add to DNS sinkhole/RPZ; alert on resolution events even without connection success (resolution alone indicates infection attempting beacon).
  • File hashes (MD5/SHA1/SHA256): Load into EDR blocklists and threat-intel platforms (MISP, OpenCTI). Given ICMacOS hash churn, treat hashes as retro-hunt material rather than forward detection.
  • URL: https://update.cdnlinks.org/ReportPDFReader.exe — proxy block + hunt for download events; filename pattern (Report*Reader.exe) is itself a hunting pivot.

Tooling: Decode/pivot with CyberChef (hash identification), VirusTotal/OTX lookups for enrichment, whois/PassiveDNS (SecurityTrails, Validin) for infrastructure expansion, and urlscan.io for the lure URL's delivery chain.

Detection Engineering

YAML
---
title: ICMacOS macOS Stealer LaunchAgent Persistence
id: 7a3f1c2e-9b4d-4e1a-8c5f-2d6b9a0e1f34
status: experimental
description: Detects creation of LaunchAgent/LaunchDaemon plist files consistent with ICMacOS (Icarus macOS) persistent RAT installation
author: Security Arsenal
references:
  - https://socradar.io/blog/icmacos-infostealer-rat
date: 2026/10/27
logsource:
  product: macos
  category: file_event
detection:
  selection_path:
    TargetFilename|contains:
      - '/Library/LaunchAgents/'
      - '/Library/LaunchDaemons/'
  selection_unsigned:
    TargetFilename|endswith: '.plist'
  filter_legit:
    TargetFilename|contains:
      - 'com.apple.'
      - 'com.google.'
      - 'com.microsoft.'
  condition: selection_path and selection_unsigned and not filter_legit
fields:
  - TargetFilename
  - Image
  - User
level: high
tags:
  - attack.persistence
  - attack.t1543.001
  - attack.t1543.004
---
title: Suspicious osascript / Shell Execution Stealer Behavior (ICMacOS / AMOS Family)
id: 2b8e4d1a-6c3f-4a9b-b7e2-5d0c8f1a3e56
status: experimental
description: Detects osascript or curl-piped-shell execution patterns used by macOS stealers for credential and keychain theft via ClickFix-style lures
author: Security Arsenal
references:
  - https://socradar.io/blog/icmacos-infostealer-rat
date: 2026/10/27
logsource:
  product: macos
  category: process_creation
detection:
  selection_img:
    Image|endswith:
      - '/osascript'
      - '/bash'
      - '/zsh'
      - '/curl'
  selection_cmd:
    CommandLine|contains:
      - 'keychain'
      - 'security find-generic-password'
      - 'curl -s'
      - '| bash'
      - '| zsh'
      - 'Login Data'
      - 'Cookies'
      - 'Cookies.binarycookies'
  condition: selection_img and selection_cmd
level: critical
tags:
  - attack.credential_access
  - attack.t1555
  - attack.t1555.001
  - attack.t1059
---
title: DarkCore Browser Credential and Cookie Database Access
id: 4c1f7a9d-8e2b-4d6c-a3f1-9b0e5d7c2a48
status: experimental
description: Detects non-browser processes accessing Chrome/Edge credential and cookie databases, consistent with DarkCore session-hijacking cookie theft
author: Security Arsenal
references:
  - https://www.blackfog.com/darkcore-a-data-theft-rat-with-a-session-hijacking-browser
date: 2026/10/27
logsource:
  category: file_event
  product: windows
detection:
  selection_files:
    TargetFilename|contains:
      - '\Google\Chrome\User Data\Default\Cookies'
      - '\Google\Chrome\User Data\Default\Login Data'
      - '\Google\Chrome\User Data\Local State'
      - '\Microsoft\Edge\User Data\Default\Cookies'
      - '\Microsoft\Edge\User Data\Local State'
  filter_browsers:
    Image|endswith:
      - '\chrome.exe'
      - '\msedge.exe'
      - '\firefox.exe'
  condition: selection_files and not filter_browsers
level: high
tags:
  - attack.credential_access
  - attack.t1552.001
  - attack.t1539
KQL — Microsoft Sentinel / Defender
// DarkCore + ICMacOS IOC & Behavior Hunt — Microsoft Sentinel
let C2IPs = dynamic(["85.137.253.61", "45.13.186.247"]);
let C2Domains = dynamic(["escapeai.live", "mikoblico.xyz", "update.cdnlinks.org"]);
let Hashes = dynamic(["5dfb0c01ac5c075e23ec37873b30ba16cf28e290e9439d04101f0a8191f929d8","8cc449e7e240894e77187f6faff415bc8b9f2f9da73f60eef1f7605debd9144a","62e435102e1e1de74537f174ede7c8ff198dc4df3fd2e1167f537096e0b4dd17","857236d1902f4604acdf27519c0310064d21f8a82af3b95b1e4f02fef581b1d0","2deedea02811bb8e288db1a96aac44bbfb533fd624b25f000823fa92baabd9a1","5102c02a158bd53649de66ecf627966f744e4fd46240523eb6cd11c348b2dfab","0530f78227fa92b7b2d716c6a8253405a83e4b9b4a0c84736f1a0863ff500925"]);
union isfuzzy=true
(DeviceNetworkEvents
| where TimeGenerated > ago(30d)
| where RemoteIP in (C2IPs) or RemoteUrl in (C2Domains)
| extend IOCType = "Network-C2"
| project TimeGenerated, DeviceName, RemoteIP, RemoteUrl, InitiatingProcessFileName, InitiatingProcessCommandLine, IOCType),
(DeviceFileEvents
| where TimeGenerated > ago(30d)
| where SHA256 in (Hashed) or FileName =~ "ReportPDFReader.exe"
| extend IOCType = "FileHash"
| project TimeGenerated, DeviceName, FolderPath, FileName, SHA256, InitiatingProcessFileName, IOCType),
(DeviceProcessEvents
| where TimeGenerated > ago(30d)
| where (FileName =~ "osascript" and ProcessCommandLine has_any ("keychain","find-generic-password"))
     or (ProcessCommandLine has_any ("| bash","| zsh") and ProcessCommandLine has "curl")
| extend IOCType = "macOS-Stealer-Behavior"
| project TimeGenerated, DeviceName, FileName, ProcessCommandLine, AccountName, IOCType)
| sort by TimeGenerated desc
PowerShell
# Security Arsenal — DarkCore RAT Windows Host Hunt
# Checks persistence artifacts, lure file presence, cookie-store tampering, and live C2 connections

$ErrorActionPreference = 'SilentlyContinue'
$findings = @()

# 1. Lure executable artifacts
$lurePaths = @("$env:TEMP\ReportPDFReader.exe","$env:USERPROFILE\Downloads\ReportPDFReader.exe","$env:APPDATA\ReportPDFReader.exe","$env:LOCALAPPDATA\ReportPDFReader.exe","$env:ProgramData\ReportPDFReader.exe")
foreach ($p in $lurePaths) {
    if (Test-Path $p) { $findings += "[FILE] Lure payload found: $p" }
}

# 2. Known DarkCore hashes — scan common staging dirs
$badHashes = @("1782cd071bb973b3e24aa0ec49bc5a77","441a67671330483c53ab5fb9845c5b3a","38431ea1cd034fba9771c6c187a57657")
Get-ChildItem "$env:TEMP","$env:APPDATA","$env:LOCALAPPDATA","$env:ProgramData" -Recurse -Include *.exe,*.dll -ErrorAction SilentlyContinue | ForEach-Object {
    $h = (Get-FileHash $_.FullName -Algorithm MD5).Hash.ToLower()
    if ($badHashes -contains $h) { $findings += "[HASH] Malicious file: $($_.FullName) ($h)" }
}

# 3. Persistence: Run keys and suspicious scheduled tasks
$runKeys = @("HKCU:\Software\Microsoft\Windows\CurrentVersion\Run","HKLM:\Software\Microsoft\Windows\CurrentVersion\Run")
foreach ($k in $runKeys) {
    Get-ItemProperty $k | ForEach-Object {
        $_.PSObject.Properties | Where-Object { $_.Value -match 'ReportPDFReader|cdnlinks|AppData.*\.exe' } | ForEach-Object {
            $findings += "[RUNKEY] $($k): $($_.Name) = $($_.Value)"
        }
    }
}
Get-ScheduledTask | Where-Object { $_.TaskName -match 'update|cdn|report' -and $_.Actions.Execute -match 'AppData|Temp' } | ForEach-Object {
    $findings += "[TASK] Suspicious scheduled task: $($_.TaskName) -> $($_.Actions.Execute)"
}

# 4. Live connections to ICMacOS C2 infrastructure
$c2 = @("85.137.253.61","45.13.186.247")
Get-NetTCPConnection -State Established | Where-Object { $c2 -contains $_.RemoteAddress } | ForEach-Object {
    $proc = (Get-Process -Id $_.OwningProcess).ProcessName
    $findings += "[NET] Active C2 connection: $($_.RemoteAddress):$($_.RemotePort) via $proc (PID $($_.OwningProcess))"
}

# 5. Recent cookie/Login Data access timestamp anomaly (proxy for theft)
$cookiePaths = @("$env:LOCALAPPDATA\Google\Chrome\User Data\Default\Network\Cookies","$env:LOCALAPPDATA\Google\Chrome\User Data\Default\Login Data","$env:LOCALAPPDATA\Google\Chrome\User Data\Local State")
foreach ($c in $cookiePaths) {
    $f = Get-Item $c
    if ($f -and $f.LastAccessTime -gt (Get-Date).AddHours(-2) -and $f.LastAccessTime -gt $f.LastWriteTime) {
        $findings += "[CRED] Recent anomalous access to credential store: $c at $($f.LastAccessTime)"
    }
}

if ($findings.Count -eq 0) { Write-Output "CLEAN: No DarkCore/ICMacOS artifacts on $env:COMPUTERNAME" }
else { $findings | ForEach-Object { Write-Output $_ } }

Response Priorities

Immediate (0–4h)

  • Block C2 IPs (85.137.253.61, 45.13.186.247) and domains (escapeai.live, mikoblico.xyz, update.cdnlinks.org) at proxy, DNS (RPZ/sinkhole), and EDR network controls.
  • Push all MD5/SHA1/SHA256 hashes to EDR prevention lists; run retro-hunts for hash and filename (ReportPDFReader.exe) matches across the estate.
  • Execute the KQL and PowerShell hunts; isolate any host with C2 connections or cookie-store access anomalies.

24 Hours

  • Because both families steal session cookies, password resets alone are insufficient. For any suspected infection: revoke all active sessions/tokens (IdP sign-out-all, OAuth token revocation), then force credential reset and MFA re-enrollment.
  • Audit Gmail, WhatsApp-linked sessions, and cloud storage (MediaFire, etc.) for sessions originating from the victim's own IP but with anomalous device fingerprints — DarkCore's signature.
  • Reset macOS Keychain-adjacent secrets and rotate any credentials stored in browsers on affected Macs.

1 Week

  • Enforce macOS hardening: block unsigned/ad-hoc-signed execution where feasible (Gatekeeper + MDM restrictions), alert on LaunchAgent writes, and restrict osascript to managed parent processes via EDR policy.
  • Deploy application binding / token protection (e.g., Microsoft token binding, Chrome app-bound encryption on managed devices) to render stolen cookies non-replayable off-device.
  • Restrict egress to curated destinations; alert on .live/.xyz TLD resolution from endpoints. Roll the Sigma rules into production detection with tuned allowlists.
  • Brief users on trojanized-utility and ClickFix lures — paste-into-Terminal "fixes" are now a primary macOS stealer vector.

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.