A single but high-density OTX pulse published by AlienVault exposes an active supply-chain-style social engineering campaign running from late July through mid-August 2026: a fully functional, tampered Exodus cryptocurrency wallet installer (v24.33.4) that silently deploys a modular remote access trojan alongside the legitimate application. Because the wallet actually works, victims have no visible reason to suspect compromise — making this a high-dwell-time credential theft and remote access operation with direct implications for any organization whose employees hold corporate or personal cryptocurrency assets on endpoint devices.
Threat Summary
The campaign, first documented by Huntress and operationalized through this AlienVault pulse, follows a multi-stage intrusion chain:
- Lure delivery — Victims receive fake PDF documents or fraudulent software update notifications that deliver a JavaScript dropper.
- Stage-one execution — The JavaScript file downloads a tampered Windows Installer (MSI) package masquerading as the Exodus wallet.
- Trojanized installation — The installer deploys genuine Exodus wallet version 24.33.4, but three files within the package have been modified to load the RAT.
- Modular payload deployment — Six distinct DLL modules are staged, each handling a discrete function: command execution (
Dll4_cmd), file management (Dll4_fileman), browser data theft (Dll4_browser), SOCKS proxy tunneling (Dll4_socks), VNC remote control (Dll4_vnc), and script execution (Dll4_script). - C2 over legitimate cloud infrastructure — Command and control rides on Azure Table Storage, blending malicious traffic into trusted Microsoft cloud egress.
The operational objective is clearly credential and financial asset theft: browser credential harvesting, remote desktop-style access via VNC, and SOCKS proxying that lets operators route attacker traffic through victim machines — a classic monetization pattern seen across infostealer ecosystems sold and traded in dark web marketplaces. The unknown actor behind this campaign demonstrates above-average operational maturity: modular architecture, living-off-trusted-cloud C2, and a trojanized legitimate application that defeats casual user suspicion.
Threat Actor / Malware Profile
Attribution: Unknown threat actor. The tradecraft — modular DLL architecture, cloud-storage C2, trojanized legitimate software — is consistent with financially motivated intrusion groups operating in the infostealer/RAT-as-a-service economy.
Malware Family Profile: The Dll4 Modular RAT Suite
| Module | Function |
|---|---|
Dll4_cmd | Remote command execution on the host |
Dll4_fileman | File system enumeration, exfiltration, payload staging |
Dll4_browser | Browser credential, cookie, and session theft |
Dll4_socks | SOCKS5 proxy — victim host becomes attacker egress node |
Dll4_vnc | Full remote desktop control / screen surveillance |
Dll4_script | Arbitrary script execution for follow-on tooling |
Distribution method: JavaScript droppers delivered via fake PDFs and bogus software update prompts, fetching a trojanized MSI.
Payload behavior: Installs genuine Exodus 24.33.4 with three modified files that sideload the RAT modules. The legitimate wallet masks the infection — the application launches and functions normally.
C2 communication: Azure Table Storage is abused as a dead-drop/command channel. Agents poll and post to attacker-controlled storage tables, making C2 traffic indistinguishable from legitimate Azure service usage at the domain level. The domain us05.org is associated with campaign infrastructure.
Persistence mechanism: Persistence is established through the modified installer components — the trojanized files load each time the legitimate Exodus application (or its update mechanism) executes, giving durable user-context persistence without noisy registry Run keys.
Anti-analysis techniques: Trojanized authentic software (defeats signature reputation checks), modular loading (individual DLLs are low-signal in isolation), and cloud-native C2 (defeats domain reputation blocking). The TLP:WHITE classification means defenders can freely share and operationalize all indicators.
IOC Analysis
The pulse contains 47 indicators across two primary types:
- Domain indicators (e.g.,
us05.org) — Block at DNS sinkhole, secure web gateway, and EDR network controls. Note that the Azure Table Storage C2 cannot be blocked at the domain layer without breaking legitimate Azure; detection must shift to process-level telemetry (unexpected processes communicating with*.table.core.windows.net). - FileHash-SHA256 indicators (7 sampled of 47 total, e.g.,
2f47cfbb13f7a8a2d30d287f4ddd974fabea6762ad9781d438eb53da41b4582d) — Load into EDR blocklists, threat intel platforms (MISP, Sentinel TI), and retro-hunt across 90 days of file creation telemetry. These hashes cover the JavaScript dropper, tampered MSI, and the six Dll4 modules.
Operationalization guidance:
- Pull the full pulse into your TIP via the OTX DirectConnect API or AlienVault USM Anywhere integration.
- Because hash indicators burn quickly, prioritize behavioral detection (below) over hash matching for durable coverage.
- Hunt for MSI installation events where the installed product is Exodus but the signing/hash does not match the official Exodus release.
Detection Engineering
---
title: Trojanized Exodus Wallet MSI Installation
id: 9a1f2c3d-4e5b-6a7c-8d9e-0f1a2b3c4d01
status: experimental
description: Detects MSI-based installation of Exodus wallet software, which in this campaign delivers a tampered installer containing the Dll4 modular RAT alongside legitimate Exodus v24.33.4
references:
- https://www.huntress.com/blog/exodus-crypto-wallet-installer-rat
author: Security Arsenal Threat Intel
date: 2026/09/03
tags:
- attack.initial_access
- attack.t1195
- attack.t1059.007
logsource:
category: process_creation
product: windows
service: sysmon
detection:
selection_msiexec:
Image|endswith: '\msiexec.exe'
CommandLine|contains:
- 'exodus'
selection_js_parent:
ParentImage|endswith:
- '\wscript.exe'
- '\cscript.exe'
condition: selection_msiexec and selection_js_parent
falsepositives:
- Enterprise software distribution of Exodus (rare outside crypto-native firms)
level: high
---
title: Dll4 Modular RAT C2 via Azure Table Storage
id: 9a1f2c3d-4e5b-6a7c-8d9e-0f1a2b3c4d02
status: experimental
description: Detects non-browser, non-Azure-application processes establishing connections to Azure Table Storage endpoints, matching the Dll4 RAT's living-off-trusted-cloud C2 channel
references:
- https://www.huntress.com/blog/exodus-crypto-wallet-installer-rat
author: Security Arsenal Threat Intel
date: 2026/09/03
tags:
- attack.command_and_control
- attack.t1102
- attack.t1071.001
logsource:
category: network_connection
product: windows
service: sysmon
detection:
selection_destination:
DestinationHostname|endswith: '.table.core.windows.net'
filter_legitimate:
Image|endswith:
- '\msedge.exe'
- '\chrome.exe'
- '\firefox.exe'
- '\AzureStorageExplorer.exe'
- '\azcopy.exe'
condition: selection_destination and not filter_legitimate
falsepositives:
- Custom enterprise applications using Azure Table Storage SDKs
- PowerShell scripts using Az.Storage module
level: medium
---
title: Dll4 Campaign Infrastructure Domain Resolution
id: 9a1f2c3d-4e5b-6a7c-8d9e-0f1a2b3c4d03
status: experimental
description: Detects DNS resolution of infrastructure associated with the tampered Exodus installer / Dll4 modular RAT campaign
references:
- https://www.huntress.com/blog/exodus-crypto-wallet-installer-rat
author: Security Arsenal Threat Intel
date: 2026/09/03
tags:
- attack.command_and_control
- attack.t1071.004
logsource:
category: dns
product: windows
detection:
selection:
QueryName|contains:
- 'us05.org'
condition: selection
falsepositives:
- None expected for this indicator
level: critical
// Hunt: Tampered Exodus installer + Dll4 modular RAT behaviors
// Covers: JS-dropper-launched MSI, Exodus installs with anomalous provenance,
// Azure Table Storage C2 from unexpected processes, and campaign domain hits.
let CampaignHashes = dynamic([
"2f47cfbb13f7a8a2d30d287f4ddd974fabea6762ad9781d438eb53da41b4582d",
"5274e93e35586a341d14b50cdf8413d59c51fd94f32bdc70bfdfb77198367603",
"5fe753945da0eaac2c2ef3845cba603dea6c3e8529fa581d7e0192f8af60391a",
"7e74f6e2eb7a17a8d25bb322a14c392c9d92c6ab29fc66b50221da134a1bdba8",
"84437d4239d2a3d90c4faad0a3c0630b2f61a40f7bbd12109bef74d7613b8756",
"8c3b41ea5a85778145a6e5772bfee2eb0f8b027d0af199fb71a76dfb8bb29e5a",
"c513a7346484ee69a2931c4a89956ee50aa63e4366ef989315e669d8f10d7485"
]);
let Lookback = 90d;
let JsMsi =
DeviceProcessEvents
| where TimeGenerated > ago(Lookback)
| where FileName =~ "msiexec.exe"
| where ProcessCommandLine has_any ("exodus")
or (InitiatingProcessFileName in~ ("wscript.exe","cscript.exe") and ProcessCommandLine has ".msi")
| project JsMsiTime=TimeGenerated, DeviceId, DeviceName, ProcessCommandLine, InitiatingProcessFileName, AccountName;
let HashHits =
DeviceFileEvents
| where TimeGenerated > ago(Lookback)
| where SHA256 in~ (CampaignHashes)
| project HashTime=TimeGenerated, DeviceId, DeviceName, FileName, FolderPath, SHA256;
let AzureTableC2 =
DeviceNetworkEvents
| where TimeGenerated > ago(Lookback)
| where RemoteUrl endswith ".table.core.windows.net"
| where InitiatingProcessFileName !in~ ("msedge.exe","chrome.exe","firefox.exe","azcopy.exe","AzureStorageExplorer.exe","powershell.exe")
| summarize Connections=count(), FirstSeen=min(TimeGenerated), LastSeen=max(TimeGenerated)
by DeviceName, InitiatingProcessFileName, InitiatingProcessFolderPath, RemoteUrl, RemoteIP;
let DomainHits =
DeviceNetworkEvents
| where TimeGenerated > ago(Lookback)
| where RemoteUrl has "us05.org"
| project DomainTime=TimeGenerated, DeviceId, DeviceName, InitiatingProcessFileName, RemoteUrl, RemoteIP;
JsMsi
| union HashHits, DomainHits
| union (AzureTableC2 | project DeviceName, InitiatingProcessFileName, InitiatingProcessFolderPath, RemoteUrl, RemoteIP, Connections, FirstSeen, LastSeen)
| sort by DeviceName asc
# Dll4 Modular RAT / Tampered Exodus Installer - Host Hunt Script
# Run via your RMM/EDR remote shell or as an Intune remediation detection script
# Requires: elevated privileges for full artifact coverage
$ErrorActionPreference = 'SilentlyContinue'
$findings = @()
Write-Host "[1/5] Checking for Exodus installation with tampered file provenance..."
$exodusPaths = @(
"$env:LOCALAPPDATA\exodus",
"$env:ProgramFiles\Exodus",
"${env:ProgramFiles(x86)}\Exodus"
)
foreach ($path in $exodusPaths) {
if (Test-Path $path) {
$findings += [pscustomobject]@{Check='ExodusInstallPath'; Artifact=$path; Detail='Exodus installation present - verify version and file signatures against official 24.33.4 release'}
Get-ChildItem $path -Recurse -Include *.dll,*.exe | ForEach-Object {
$sig = Get-AuthenticodeSignature $_.FullName
if ($sig.Status -ne 'Valid') {
$findings += [pscustomobject]@{Check='UnsignedOrTamperedBinary'; Artifact=$_.FullName; Detail="Signature status: $($sig.Status)"}
}
}
}
}
Write-Host "[2/5] Hunting for Dll4 module artifacts on disk..."
$dll4Names = @('dll4_cmd','dll4_fileman','dll4_browser','dll4_socks','dll4_vnc','dll4_script')
$searchRoots = @($env:TEMP, $env:APPDATA, $env:LOCALAPPDATA, $env:ProgramData)
foreach ($root in $searchRoots) {
foreach ($mod in $dll4Names) {
Get-ChildItem $root -Recurse -Filter "*$mod*" -ErrorAction SilentlyContinue | ForEach-Object {
$findings += [pscustomobject]@{Check='Dll4ModuleFile'; Artifact=$_.FullName; Detail="Size: $($_.Length) bytes; Created: $($_.CreationTime)"}
}
}
}
Write-Host "[3/5] Checking campaign file hashes..."
$maliciousHashes = @(
'2f47cfbb13f7a8a2d30d287f4ddd974fabea6762ad9781d438eb53da41b4582d',
'5274e93e35586a341d14b50cdf8413d59c51fd94f32bdc70bfdfb77198367603',
'5fe753945da0eaac2c2ef3845cba603dea6c3e8529fa581d7e0192f8af60391a',
'7e74f6e2eb7a17a8d25bb322a14c392c9d92c6ab29fc66b50221da134a1bdba8',
'84437d4239d2a3d90c4faad0a3c0630b2f61a40f7bbd12109bef74d7613b8756',
'8c3b41ea5a85778145a6e5772bfee2eb0f8b027d0af199fb71a76dfb8bb29e5a',
'c513a7346484ee69a2931c4a89956ee50aa63e4366ef989315e669d8f10d7485'
)
Get-ChildItem $env:TEMP, "$env:USERPROFILE\Downloads" -Recurse -Include *.msi,*.js,*.exe,*.dll -ErrorAction SilentlyContinue | ForEach-Object {
$h = (Get-FileHash $_.FullName -Algorithm SHA256).Hash.ToLower()
if ($maliciousHashes -contains $h) {
$findings += [pscustomobject]@{Check='MaliciousHashMatch'; Artifact=$_.FullName; Detail="SHA256: $h"}
}
}
Write-Host "[4/5] Checking active connections to campaign infra and Azure Table Storage..."
Get-NetTCPConnection -State Established | Where-Object {
$_.RemotePort -eq 443
} | ForEach-Object {
try {
$resolved = (Resolve-DnsName $_.RemoteAddress -ErrorAction Stop).NameHost
if ($resolved -match 'us05\.org' -or $resolved -match '\.table\.core\.windows\.net$') {
$proc = Get-Process -Id $_.OwningProcess
$findings += [pscustomobject]@{Check='SuspiciousNetworkConnection'; Artifact=$resolved; Detail="Process: $($proc.ProcessName) ($($proc.Path)) -> $($_.RemoteAddress):443"}
}
} catch {}
}
Write-Host "[5/5] Reviewing persistence via scheduled tasks and Run keys referencing Exodus/JS..."
Get-ScheduledTask | Where-Object { $_.Actions.Execute -match 'exodus|wscript|cscript' } | ForEach-Object {
$findings += [pscustomobject]@{Check='SuspiciousScheduledTask'; Artifact=$_.TaskName; Detail="Action: $($_.Actions.Execute) $($_.Actions.Arguments)"}
}
$runKeys = @('HKCU:\Software\Microsoft\Windows\CurrentVersion\Run','HKLM:\Software\Microsoft\Windows\CurrentVersion\Run')
foreach ($key in $runKeys) {
(Get-ItemProperty $key).PSObject.Properties | Where-Object { $_.Value -match 'exodus|\.js' } | ForEach-Object {
$findings += [pscustomobject]@{Check='SuspiciousRunKey'; Artifact="$key\$($_.Name)"; Detail=$_.Value}
}
}
Write-Host "`n===== HUNT RESULTS ====="
if ($findings.Count -gt 0) {
$findings | Format-Table -AutoSize
$findings | Export-Csv -Path "$env:TEMP\dll4_hunt_$(Get-Date -Format 'yyyyMMdd_HHmmss').csv" -NoTypeInformation
Write-Host "[!] $($findings.Count) finding(s) - results exported to TEMP. Escalate to IR immediately."
} else {
Write-Host "[+] No indicators of Dll4 modular RAT compromise found on this host."
}
Response Priorities
Immediate (0–4 hours):
- Block
us05.orgat DNS, proxy, and EDR network layers; import all 47 SHA256 hashes into EDR prevention and your TIP. - Deploy the Sigma and KQL detections above; run the PowerShell hunt script against any endpoint with an Exodus installation or a history of crypto-wallet usage.
- Inventory endpoints with Exodus wallet installed — any instance not deployed through official, verified channels is a suspected compromise until proven otherwise.
- Alert on any non-browser process communicating with
*.table.core.windows.net.
24 Hours (credential exposure response):
- For any host with confirmed or suspected Dll4 infection, treat all credentials stored in or used on that host as compromised — the
Dll4_browsermodule specifically targets browser credential stores, cookies, and session tokens. - Force enterprise-wide password resets for affected users; revoke and re-issue session tokens, API keys, and OAuth grants.
- Notify employees that any personal crypto wallets accessed from the affected device may be drained — the SOCKS proxy and VNC modules give operators hands-on-keyboard capability to authorize transactions.
- Review MFA logs for impossible-travel or token-replay anomalies; browser cookie theft enables MFA session hijacking.
1 Week (architectural hardening):
- Enforce application control (WDAC/AppLocker) to block user-context MSI installations and restrict
wscript.exe/cscript.exeexecution of scripts from user-writable directories — this kills the JavaScript-dropper-to-MSI chain. - Implement TLS inspection or process-aware egress filtering for Azure cloud storage endpoints; establish a baseline of which applications legitimately use Azure Table Storage.
- Policy: cryptocurrency wallets and financial software may only be installed from IT-vetted sources with hash verification; monitor for unauthorized financial application installs as a detection category.
- Conduct user awareness refresh specifically on fake software-update lures and PDF-delivered JavaScript — this campaign's initial access 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.