SOC Prime Bias: Moyen

27 Mar 2026 16:33

La campagne SmartApeSG diffuse Remcos RAT, NetSupport RAT, StealC et Sectop RAT (ArechClient2)

Author Photo
Ruslan Mikhalov Chef de la Recherche sur les Menaces chez SOC Prime linkedin icon Suivre
La campagne SmartApeSG diffuse Remcos RAT, NetSupport RAT, StealC et Sectop RAT (ArechClient2)
shield icon

Detection stack

  • AIDR
  • Alert
  • ETL
  • Query

Résumé

La campagne SmartApeSG repose sur une fausse page CAPTCHA combinée à un script ClickFix pour distribuer plusieurs menaces d’accès à distance, y compris Remcos RAT, NetSupport RAT, StealC et Sectop RAT. La compromission initiale déclenche une chaîne d’infection en plusieurs étapes dans laquelle chaque charge utile communique avec son propre serveur de commande et de contrôle. La livraison s’effectue via des fichiers d’archive qui exploitent le chargement latéral de DLL pour lancer le logiciel malveillant. Le rapport inclut également des indicateurs de support tels que des domaines, des adresses IP, des chemins de fichiers et des hachages de fichiers.

Enquête

L’analyste a d’abord enregistré du trafic provenant du script ClickFix à 17:11 UTC, les communications Remcos RAT débutant une minute plus tard à 17:12 UTC. Le trafic NetSupport RAT est apparu quatre minutes plus tard, StealC a été observé environ une heure après et Sectop RAT est apparu environ une heure et dix-huit minutes après StealC. Les enquêteurs ont récupéré des artefacts de fichiers à la fois dans les répertoires utilisateur et système et les ont mappés aux archives malveillantes spécifiques utilisées dans la chaîne.

Atténuation

Les défenseurs devraient bloquer les domaines et adresses IP malveillants connus tout en surveillant l’exécution de fichiers HTA et l’extraction d’archives suspectes dans les chemins de profils utilisateurs. Les protections de navigateur et d’email devraient être renforcées pour réduire l’exposition aux click-jacking et à la livraison de faux CAPTCHA. Les règles de détection des points de terminaison devraient également être ajustées pour identifier le comportement du chargement latéral de DLL et les processus RAT inattendus.

Réponse

Si l’un des indicateurs listés est trouvé, isolez l’hôte affecté, arrêtez les processus malveillants et collectez des images mémoire et disque pour l’analyse forensic. Effectuez un balayage général des IOCs dans l’environnement, mettez à jour les contrôles de pare-feu pour bloquer les points de terminaison C2 identifiés et réinitialisez tout identifiant potentiellement compromis.

"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> – La victime visite un site web compromis où un faux CAPTCHA injecte un script malveillant"] class victim_visits action tech_user_exec_link["<b>Technique</b> – T1204.001 Exécution par l’utilisateur : Lien malveillant<br/><b>Description</b>: La victime interagit avec un lien malveillant conduisant à l’exécution de code"] class tech_user_exec_link technique tech_user_exec_copy["<b>Technique</b> – T1204.004 Exécution par l’utilisateur : Copier-coller malveillant<br/><b>Description</b>: Le code malveillant est copié dans le presse-papiers et collé pour s’exécuter"] class tech_user_exec_copy technique clickfix_script["<b>Outil</b> – Nom : ClickFix script (malveillant)"] class clickfix_script malware hta_creation["<b>Action</b> – Fichier HTA malveillant écrit dans %AppData%post.hta"] class hta_creation action tech_mshta["<b>Technique</b> – T1218.005 Exécution de proxy binaire système : Mshta<br/><b>Description</b>: Mshta est utilisé pour exécuter des fichiers HTA"] class tech_mshta technique tech_user_exec_file["<b>Technique</b> – T1204.002 Exécution par l’utilisateur : Fichier malveillant<br/><b>Description</b>: La victime exécute un fichier malveillant"] class tech_user_exec_file technique hta_execution["<b>Processus</b> – mshta.exe exécute post.hta"] class hta_execution process download_payload["<b>Action</b> – HTA télécharge des charges utiles compressées (ZIP ou RAR) depuis un serveur distant"] class download_payload action tech_web_protocol["<b>Technique</b> – T1071.001 Protocole de couche application : Protocoles web<br/><b>Description</b>: Utilisation de HTTP/HTTPS pour le transfert de données"] 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 Détournement de flux d’exécution : Chargement latéral de DLL<br/><b>Description</b>: Les DLL malveillantes sont chargées dans des exécutables légitimes"] class tech_dll_sideloading technique c2_bidirectional["<b>Technique</b> – T1102.002 Service Web : Communication bidirectionnelle<br/><b>Description</b>: RAT communique avec le C2 en utilisant des services web bidirectionnels"] class c2_bidirectional technique c2_oneway["<b>Technique</b> – T1102.003 Service Web : Communication à sens unique<br/><b>Description</b>: RAT envoie des données au C2 via des services web à sens unique"] class c2_oneway technique cleanup_files["<b>Action</b> – Supprimer les fichiers HTA et temporaires après exécution"] class cleanup_files action tech_file_deletion["<b>Technique</b> – T1070.004 Suppression d’indicateurs : Suppression de fichiers<br/><b>Description</b>: Les fichiers sont supprimés pour effacer les preuves"] class tech_file_deletion technique cleanup_persistence["<b>Action</b> – Effacer les artefacts de persistance tels que le registre ou les tâches planifiées"] class cleanup_persistence action tech_clear_persistence["<b>Technique</b> – T1070.009 Suppression d’indicateurs : Effacement de la persistance<br/><b>Description</b>: Les mécanismes de persistance sont supprimés"] class tech_clear_persistence technique %% Connections victim_visits –>|déclenche| tech_user_exec_link victim_visits –>|déclenche| tech_user_exec_copy tech_user_exec_link –>|livre| clickfix_script tech_user_exec_copy –>|livre| clickfix_script clickfix_script –>|écrit| hta_creation hta_creation –>|utilise| tech_mshta hta_creation –>|utilise| tech_user_exec_file tech_mshta –>|exécute| hta_execution tech_user_exec_file –>|exécute| hta_execution hta_execution –>|télécharge| download_payload download_payload –>|utilise| tech_web_protocol download_payload –>|livre| malware_remcos download_payload –>|livre| malware_netsupport download_payload –>|livre| malware_stealc download_payload –>|livre| malware_sectop malware_remcos –>|emploie| tech_dll_sideloading malware_netsupport –>|emploie| tech_dll_sideloading malware_stealc –>|emploie| tech_dll_sideloading malware_sectop –>|emploie| tech_dll_sideloading malware_remcos –>|communique via| c2_bidirectional malware_netsupport –>|communique via| c2_oneway malware_stealc –>|communique via| c2_oneway malware_sectop –>|communique via| c2_bidirectional hta_execution –>|déclenche| cleanup_files cleanup_files –>|utilise| tech_file_deletion cleanup_files –>|déclenche également| cleanup_persistence cleanup_persistence –>|utilise| tech_clear_persistence "

Flux d’Attaque

Exécution de Simulation

Prérequis : Le Check Pré-vol de Télémétrie & Baseline doit avoir réussi.

Justification : Cette section détaille l’exécution précise de la technique de l’adversaire (TTP) conçue pour déclencher la règle de détection. Les commandes et le récit DOIVENT refléter directement les TTPs identifiés et viser à générer la télémétrie exacte attendue par la logique de détection.

Récit de l’Attaque & Commandes

L’adversaire, ayant pris pied sur la station de l’utilisateur, lance le composant Remcos RAT de la campagne SmartApeSG. Le RAT est configuré pour utiliser 95.142.45.231:443 comme son point de terminaison C2 principal. Il résout d’abord le domaine intégré fresicrto.top (repli) puis ouvre un tunnel HTTPS persistant vers l’adresse IP. Le trafic est généré par remcos.exe via l’API WinHTTP de Windows, qui produit un événement Sysmon NetworkConnect et une entrée de journal du pare-feu Windows.

Étapes :

  1. Déposez le binaire RAT (remcos.exe) vers %TEMP%.
  2. Exécutez le binaire avec l’argument C2 -c 95.142.45.231:443.
  3. Vérifiez la connexion sortante (via netstat).

Ces actions se mapent à T1102 (Service Web) pour la communication C2 et T1584.001 (Acquisition de domaine) car le domaine fait partie de la charge utile.

Script de Test de Régression

# --------------------------------------------------------------
# Simulation C2 SmartApeSG – déclenche la règle de détection
# --------------------------------------------------------------

# 1. Écrivez une cheville de type Remcos minimal (pour la démo, utilisez PowerShell pour ouvrir un TCP)
$c2Ip   = "95.142.45.231"
$c2Port = 443
$payloadFile = "$env:TEMPremcos_stub.exe"

# Créez un exécutable .NET simple qui ouvre une connexion TCP (simule un 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); // maintient la connexion ouverte
            client.Close();
        } catch (Exception ex) {
            Console.Error.WriteLine(ex.Message);
        }
    }
}
"@ -OutputAssembly $payloadFile -CompilerOptions "/target:exe"

# 2. Exécutez la cheville (cela génère la connexion réseau)
Start-Process -FilePath $payloadFile -WindowStyle Hidden

# 3. Optionnel : Résolvez le domaine de repli pour prouver l'activité DNS
Resolve-DnsName -Name "fresicrto.top" -Type A | Out-Null

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

# 5. Nettoyage – tuez la cheville si elle fonctionne toujours
Get-Process -Name "remcos_stub" -ErrorAction SilentlyContinue | Stop-Process -Force
Remove-Item -Path $payloadFile -Force

Commandes de Nettoyage

# Terminez toutes les connexions persistantes de la cheville
Get-NetTCPConnection -RemotePort 443 -RemoteAddress 95.142.45.231 -State Established |
    ForEach-Object { Stop-Process -Id $_.OwningProcess -Force }

# Supprimez les fichiers temporaires (déjà fait dans le script, mais assurez un état propre)
Remove-Item -Path "$env:TEMPremcos_stub.exe" -ErrorAction SilentlyContinue