SOC Prime Bias: Medium

27 Mar 2026 16:33

SmartApeSG campaign pushes Remcos RAT, NetSupport RAT, StealC, and Sectop RAT (ArechClient2)

Author Photo
Ruslan Mikhalov Chief of Threat Research at SOC Prime linkedin icon Follow
SmartApeSG campaign pushes Remcos RAT, NetSupport RAT, StealC, and Sectop RAT (ArechClient2)
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Summary

The SmartApeSG campaign relies on a fake CAPTCHA page combined with a ClickFix script to distribute several remote access threats, including Remcos RAT, NetSupport RAT, StealC, and Sectop RAT. The initial compromise sets off a staged infection chain in which each payload reaches out to its own command-and-control server. Delivery occurs through archive files that abuse DLL side-loading to launch the malware. The report also includes supporting indicators such as domains, IP addresses, file paths, and file hashes.

Investigation

The analyst first recorded traffic from the ClickFix script at 17:11 UTC, with Remcos RAT communications beginning one minute later at 17:12 UTC. NetSupport RAT traffic appeared four minutes after that, StealC was observed roughly an hour later, and Sectop RAT emerged about one hour and eighteen minutes after StealC. Investigators recovered file artifacts from both user and system directories and mapped them back to the specific malicious archives used in the chain.

Mitigation

Defenders should block the known malicious domains and IP addresses, while watching for execution of HTA files and suspicious archive extraction in user profile paths. Browser and email protections should be strengthened to reduce exposure to click-jacking and fake CAPTCHA delivery. Endpoint detection rules should also be tuned to identify DLL side-loading behavior and unexpected RAT processes.

Response

If any of the listed indicators are found, isolate the impacted host, stop malicious processes, and collect memory and disk images for forensic analysis. Conduct a broad IOC sweep across the environment, update firewall controls to block the identified C2 endpoints, and reset any potentially compromised credentials.

"graph TB %% Class Definitions classDef action fill:#99ccff classDef technique fill:#ffcc99 classDef malware fill:#ff9999 classDef process fill:#cccccc %% Nodes victim_visits["<b>Action</b> – Victim visits compromised website where a fake CAPTCHA injects malicious script"] class victim_visits action tech_user_exec_link["<b>Technique</b> – T1204.001 User Execution: Malicious Link<br/><b>Description</b>: Victim interacts with a malicious link that leads to code execution"] class tech_user_exec_link technique tech_user_exec_copy["<b>Technique</b> – T1204.004 User Execution: Malicious Copy and Paste<br/><b>Description</b>: Malicious code is copied to the clipboard and pasted to run"] class tech_user_exec_copy technique clickfix_script["<b>Tool</b> – Name: ClickFix script (malicious)"] class clickfix_script malware hta_creation["<b>Action</b> – Malicious HTA file written to %AppData%\post.hta"] class hta_creation action tech_mshta["<b>Technique</b> – T1218.005 System Binary Proxy Execution: Mshta<br/><b>Description</b>: Mshta is used to execute HTA files"] class tech_mshta technique tech_user_exec_file["<b>Technique</b> – T1204.002 User Execution: Malicious File<br/><b>Description</b>: Victim runs a malicious file"] class tech_user_exec_file technique hta_execution["<b>Process</b> – mshta.exe executes post.hta"] class hta_execution process download_payload["<b>Action</b> – HTA downloads compressed payloads (ZIP or RAR) from remote server"] class download_payload action tech_web_protocol["<b>Technique</b> – T1071.001 Application Layer Protocol: Web Protocols<br/><b>Description</b>: Use of HTTP/HTTPS for data transfer"] class tech_web_protocol technique malware_remcos["<b>Malware</b> – Remcos RAT"] class malware_remcos malware malware_netsupport["<b>Malware</b> – NetSupport RAT"] class malware_netsupport malware malware_stealc["<b>Malware</b> – StealC"] class malware_stealc malware malware_sectop["<b>Malware</b> – Sectop RAT"] class malware_sectop malware tech_dll_sideloading["<b>Technique</b> – T1574.001 Hijack Execution Flow: DLL Side-Loading<br/><b>Description</b>: Malicious DLLs are loaded into legitimate executables"] class tech_dll_sideloading technique c2_bidirectional["<b>Technique</b> – T1102.002 Web Service: Bidirectional Communication<br/><b>Description</b>: RAT communicates with C2 using two-way web services"] class c2_bidirectional technique c2_oneway["<b>Technique</b> – T1102.003 Web Service: One-Way Communication<br/><b>Description</b>: RAT sends data to C2 via one-way web services"] class c2_oneway technique cleanup_files["<b>Action</b> – Delete HTA and temporary files after execution"] class cleanup_files action tech_file_deletion["<b>Technique</b> – T1070.004 Indicator Removal: File Deletion<br/><b>Description</b>: Files are removed to erase evidence"] class tech_file_deletion technique cleanup_persistence["<b>Action</b> – Clear persistence artifacts such as registry or scheduled tasks"] class cleanup_persistence action tech_clear_persistence["<b>Technique</b> – T1070.009 Indicator Removal: Clear Persistence<br/><b>Description</b>: Persistence mechanisms are removed"] class tech_clear_persistence technique %% Connections victim_visits –>|triggers| tech_user_exec_link victim_visits –>|triggers| tech_user_exec_copy tech_user_exec_link –>|delivers| clickfix_script tech_user_exec_copy –>|delivers| clickfix_script clickfix_script –>|writes| hta_creation hta_creation –>|uses| tech_mshta hta_creation –>|uses| tech_user_exec_file tech_mshta –>|executes| hta_execution tech_user_exec_file –>|executes| hta_execution hta_execution –>|downloads| download_payload download_payload –>|uses| tech_web_protocol download_payload –>|delivers| malware_remcos download_payload –>|delivers| malware_netsupport download_payload –>|delivers| malware_stealc download_payload –>|delivers| malware_sectop malware_remcos –>|employs| tech_dll_sideloading malware_netsupport –>|employs| tech_dll_sideloading malware_stealc –>|employs| tech_dll_sideloading malware_sectop –>|employs| tech_dll_sideloading malware_remcos –>|communicates via| c2_bidirectional malware_netsupport –>|communicates via| c2_oneway malware_stealc –>|communicates via| c2_oneway malware_sectop –>|communicates via| c2_bidirectional hta_execution –>|triggers| cleanup_files cleanup_files –>|uses| tech_file_deletion cleanup_files –>|also triggers| cleanup_persistence cleanup_persistence –>|uses| tech_clear_persistence "

Attack Flow

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

The adversary, having gained a foothold on the victim workstation, launches the Remcos RAT component of the SmartApeSG campaign. The RAT is configured to use 95.142.45.231:443 as its primary C2 endpoint. It first resolves the embedded domain fresicrto.top (fallback) and then opens a persistent HTTPS tunnel to the IP address. The traffic is generated by remcos.exe via the Windows WinHTTP API, which produces a Sysmon NetworkConnect event and a Windows Firewall log entry.

Steps:

  1. Drop the RAT binary (remcos.exe) to %TEMP%.
  2. Execute the binary with the C2 argument -c 95.142.45.231:443.
  3. Verify the outbound connection (via netstat).

These actions map to T1102 (Web Service) for C2 communication and T1584.001 (Domain acquisition) as the domain is part of the payload.

Regression Test Script

# --------------------------------------------------------------
# SmartApeSG C2 Simulation – triggers detection rule
# --------------------------------------------------------------

# 1. Write a minimal Remcos‑like stub (for demo, use PowerShell to open TCP)
$c2Ip   = "95.142.45.231"
$c2Port = 443
$payloadFile = "$env:TEMPremcos_stub.exe"

# Create a simple .NET executable that opens a TCP connection (simulates RAT)
Add-Type -TypeDefinition @"
using System;
using System.Net.Sockets;
public class Stub {
    public static void Main(string[] args) {
        try {
            var client = new TcpClient();
            client.Connect("$c2Ip", $c2Port);
            System.Threading.Thread.Sleep(5000); // keep connection alive
            client.Close();
        } catch (Exception ex) {
            Console.Error.WriteLine(ex.Message);
        }
    }
}
"@ -OutputAssembly $payloadFile -CompilerOptions "/target:exe"

# 2. Execute the stub (this generates the network connection)
Start-Process -FilePath $payloadFile -WindowStyle Hidden

# 3. Optional: Resolve the fallback domain to prove DNS activity
Resolve-DnsName -Name "fresicrto.top" -Type A | Out-Null

# 4. Pause for observation
Start-Sleep -Seconds 10

# 5. Cleanup – kill the stub if still running
Get-Process -Name "remcos_stub" -ErrorAction SilentlyContinue | Stop-Process -Force
Remove-Item -Path $payloadFile -Force

Cleanup Commands

# Terminate any lingering connections from the stub
Get-NetTCPConnection -RemotePort 443 -RemoteAddress 95.142.45.231 -State Established |
    ForEach-Object { Stop-Process -Id $_.OwningProcess -Force }

# Remove temporary files (already done in script, but ensure clean state)
Remove-Item -Path "$env:TEMPremcos_stub.exe" -ErrorAction SilentlyContinue