Des Appâts Fiscaux à l’Abus de NinjaOne RMM
Detection stack
- AIDR
- Alert
- ETL
- Query
Résumé
Une campagne de phishing active cible les organisations brésiliennes en imitant des processus commerciaux courants tels que la documentation fiscale et la gestion des plaintes. Plutôt que de déployer des logiciels malveillants conventionnels, les attaquants livrent un agent légitime de gestion et de surveillance à distance (RMM) NinjaOne configuré pour l’accès contrôlé par l’adversaire. En s’appuyant sur des logiciels d’entreprise de confiance, l’opération parvient à contourner de nombreuses défenses traditionnelles basées sur les logiciels malveillants.
Enquête
Les chercheurs de Cato CTRL ont découvert la campagne par l’analyse de pages de phishing en langue portugaise et d’une chaîne de redirection utilisant une infrastructure hébergée par Google. Leur enquête a révélé plusieurs mesures anti-analyse, notamment le géofencing orienté vers le Brésil, le fingerprinting du navigateur et la logique de détection de sandbox. Un pivot basé sur une image de fond avec un thème terrestre réutilisé a également aidé à lier l’activité à d’autres domaines contrôlés par les attaquants.
Atténuation
Les organisations doivent appliquer des contrôles stricts autour de l’installation d’outils de gestion et de surveillance à distance non autorisés. Les équipes de sécurité doivent améliorer la surveillance des déploiements logiciels inattendus et vérifier attentivement les demandes liées aux dossiers fiscaux ou à d’autres documents liés aux affaires. Bloquer les domaines malveillants connus et renforcer la sécurité des emails pour détecter les chaînes de redirection de phishing peut réduire encore l’exposition.
Réponse
Si cette activité est détectée, les équipes de sécurité doivent isoler immédiatement les points d’extrémité affectés pour stopper l’accès supplémentaire via l’agent RMM. Les enquêteurs doivent déterminer comment l’installation de NinjaOne a été initiée et examiner les journaux d’audit pour des actions administratives non autorisées. Une coordination avec les fournisseurs de gestion des points d’extrémité peut également être nécessaire pour identifier et désactiver les profils de gestion compromis.
graph TB %% Section des définitions de classes classDef action fill:#99ccff classDef evasion fill:#ff99cc classDef tool fill:#cccccc classDef execution fill:#ccffcc classDef operator fill:#ff9900 %% Définitions des nœuds %% Phase d’accès initial action_phishing[« <b>Action</b> – <b>T1566.002 Phishing : Lien de Spearphishing</b><br/>L’attaquant envoie des e-mails contenant des liens<br/>cachés derrière une chaîne de redirection<br/>via bc.googleusercontent.com. »] class action_phishing action %% Phase d’évasion et de contrôle d’exécution evasion_geofencing[« <b>Action</b> – <b>T1665 Masquer l’Infrastructure</b><br/>Utilisation du géorepérage pour limiter la diffusion<br/>de la charge utile à des plages d’adresses IP<br/>brésiliennes spécifiques. »] class evasion_geofencing evasion evasion_keying[« <b>Action</b> – <b>T1480.001 Garde-fous d’Exécution : Clé Environnementale</b><br/>L’infrastructure utilise une clé environnementale<br/>afin de garantir que l’exécution se produit<br/>uniquement sur les systèmes ciblés. »] class evasion_keying evasion evasion_browser[« <b>Action</b> – <b>T1217 Découverte des Informations du Navigateur</b><br/>Le portail de phishing collecte des informations<br/>sur le navigateur afin de faciliter l’évasion. »] class evasion_browser evasion evasion_sandbox[« <b>Action</b> – <b>T1497.002 Évasion de Virtualisation/Sandbox : Vérifications basées sur l’activité utilisateur</b><br/>Détecte les frameworks d’automatisation comme<br/>Selenium ou Puppeteer et valide la présence<br/>humaine via les mouvements de souris. »] class evasion_sandbox evasion op_check((« AND »)) class op_check operator %% Phase d’exécution op_validation((« AND »)) class op_validation operator action_user_exec[« <b>Action</b> – <b>T1204.002 Exécution par l’Utilisateur : Fichier Malveillant</b><br/>La victime est manipulée par ingénierie sociale<br/>pour télécharger un fichier présenté comme<br/>un document professionnel. »] class action_user_exec execution tool_rmm_installer[« <b>Outil</b> – <b>Nom</b> : Programme d’installation NinjaOne RMM<br/><b>Description</b> : Un programme d’installation légitime<br/>d’agent RMM (ex. NinjaOne-Agent-DocumentoFiscal)<br/>utilisé pour masquer une intention malveillante. »] class tool_rmm_installer tool %% Phase de persistance et de contrôle action_software_ext[« <b>Action</b> – <b>T1176 Extensions Logicielles</b><br/>Installation de l’agent RMM afin<br/>d’étendre les capacités du système. »] class action_software_ext execution tool_remote_access[« <b>Outil</b> – <b>T1219 Outils d’Accès à Distance</b><br/>Utilisation de l’agent RMM installé pour<br/>maintenir un contrôle à distance persistant,<br/>effectuer la reconnaissance et exécuter des commandes. »] class tool_remote_access tool %% Connexions %% Flux initial action_phishing –>|mène_à| evasion_geofencing evasion_geofencing –>|mène_à| evasion_keying evasion_keying –>|mène_à| op_check %% Branche logique d’évasion op_check –>|vérifie| evasion_browser op_check –>|vérifie| evasion_sandbox evasion_browser –>|mène_à| op_validation evasion_sandbox –>|mène_à| op_validation %% Flux d’exécution op_validation –>|si_valide| action_user_exec action_user_exec –>|télécharge| tool_rmm_installer tool_rmm_installer –>|facilite| action_software_ext action_software_ext –>|active| tool_remote_access
Flux d’Attaque
Exécution de Simulation
Prérequis : La vérification préalable de Télémétrie & de Référence doit avoir réussi.
Rationnel : 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 directement refléter les TTPs identifiés et viser à générer la télémétrie exacte attendue par la logique de détection. Des exemples abstraits ou non liés conduiront à une mauvaise interprétation.
-
Narratif d’Attaque & Commandes : Un adversaire mène une campagne de spearphishing ciblée contre des utilisateurs brésiliens. L’attaquant envoie un email avec le sujet « Documento Fiscal » contenant un lien vers un site malveillant hébergé sur
sefaz.services. Le lien redirige à travers ungoogleusercontent.comURL pour finalement livrer une charge utile de l’agent RMM NinjaOne. Cette simulation injectera une entrée de journal synthétique dans le flux de proxy qui imite cette séquence spécifique afin de valider la règle Sigma. -
Script de Test de Régression :
# Script Python pour simuler l'injection d'une entrée de journal proxy malveillante import datetime def generate_malicious_log(): timestamp = datetime.datetime.utcnow().isoformat() # Imitation de la logique 'selection_domains' et 'selection_url' log_entry = { "timestamp": timestamp, "src_ip": "192.168.1.50", "dest_ip": "104.21.45.12", "url": "https://storage.googleapis.com/googleusercontent.com/payloads/malware.exe", "domain": "sefaz.services", "subject": "Documento Fiscal - Urgente", "user_agent": "Mozilla/5.0 (Windows NT 10.0; Win64; x64)" } print(f"INJECTING SYNTHETIC PROXY LOG: {log_entry}") # Dans un scénario réel, cela serait envoyé à un point de terminaison syslog ou ingéré via API return log_entry if __name__ == "__main__": generate_malicious_log() -
Commandes de Nettoyage :
# Aucune modification persistante n'est apportée au système; # Si les journaux ont été envoyés à un SIEM en direct, supprimez l'entrée de test spécifique via l'API SIEM. echo "Simulation complète. Aucun nettoyage de l'hôte requis."