Les attaquants exploitent le logiciel de gestion de caméras pour un accès initial
Detection stack
- AIDR
- Alert
- ETL
- Query
Résumé
Les attaquants compromettent des logiciels de gestion de caméras pour obtenir un accès initial aux environnements d’entreprise. Après avoir établi l’accès, ils déploient un shell inversé et utilisent le chargement de DLL par des binaires Windows légitimes pour maintenir la persistance et établir un balisage de commandement et de contrôle. Cette approche permet au code malveillant de s’exécuter aux côtés de processus système de confiance et aide les attaquants à échapper à la détection.
Enquête
Les analystes de Huntress ont identifié une campagne dans laquelle CMS.exe servait de point d’entrée initial. L’enquête a révélé le déploiement de rs.win32.exe dans des répertoires inscriptibles par les utilisateurs, suivi de l’abus de WpcMon.exe pour charger en mémoire des DLL zlib modifiées. L’analyse réseau a également confirmé une activité de balisage communiquant avec une adresse IP externe spécifique.
Atténuation
Les organisations devraient inventorier les plateformes de gestion de caméras, en restreindre l’accès, et considérer ces systèmes comme faisant partie de la surface d’attaque critique. Mettre en place un contrôle des applications pour empêcher le lancement d’exécutables et de DLL à partir d’emplacements inscriptibles par les utilisateurs tels que AppData est fortement recommandé. Les défenseurs devraient également surveiller les chaînes de processus inhabituelles impliquant des binaires Windows légitimes.
Réponse
Lorsque cette activité est détectée, les équipes de sécurité doivent isoler les points d’extrémité touchés pour empêcher tout mouvement latéral ou toute communication C2. Examinez les arbres de processus pour les instances de CMS.exe or rs.win32.exe lancement WpcMon.exe à partir de répertoires non standards. Menez une chasse à l’échelle de l’environnement pour identifier les DLL malveillantes et l’adresse IP C2 associée.
Flux d’attaque
Détections
Points de persistance possibles [ASEPs – Nid NTUSER/Logiciel] (via événement_registre)
Possible chargement latéral de la bibliothèque Iphlpapi (via chargement_image)
IOCs (HashSha256) à détecter : Qui surveille les surveillants ?
IOCs (SourceIP) à détecter : Qui surveille les surveillants ?
IOCs (DestinationIP) à détecter : Qui surveille les surveillants ?
Balise serveur de commandement et de contrôle externe (C2) [Connexion réseau Windows]
Accès initial et chargement de DLL d’un logiciel de gestion de caméras compromis [Création de processus Windows]
Exécution de simulation
-
Narratif & Commandes de l’attaque : L’adversaire a réussi à obtenir un accès initial via une pièce jointe de phishing. Pour établir la persistance et le commandement et contrôle, ils ont l’intention d’utiliser une technique « Living off the Land » (LotL). Ils utiliseront
rundll32.exepour exécuter une requête réseau au serveur C2 connu144.172.116.37. Cela est fait pour se fondre parmi les processus systèmes légitimes de Windows, rendant plus difficile aux détections basées sur les noms de processus d’identifier l’activité malveillante. Le but est de déclencher la règle du pare-feu en générant une connexion à l’IP en liste noire. -
Script de test de régression :
# Script de simulation pour déclencher la règle de détection IP C2 # Nous utilisons rundll32 pour initier une connexion à l'IP cible # Remarque : Cela peut produire une erreur dans la console car l'IP n'est pas un point d'entrée DLL valide, # mais la tentative de connexion réseau sera consignée par le système d'exploitation/pare-feu. $C2_IP = "144.172.116.37" Write-Host "Simulation de connexion C2 à $C2_IP via rundll32.exe..." Start-Process "rundll32.exe" -ArgumentList "javascript:alert('C2_SIM');$C2_IP" -WindowStyle Hidden # Méthode alternative utilisant PowerShell pour assurer la tentative de connexion Write-Host "Tentative de connexion TCP à $C2_IP sur le port 443..." $tcpClient = New-Object System.Net.Sockets.TcpClient try { $tcpClient.Connect($C2_IP, 443) } catch { Write-Host "La connexion a échoué comme prévu (l'IP est probablement injoignable), mais la télémétrie devrait être générée." } finally { $tcpClient.Close() } -
Commandes de nettoyage :
# Aucun artefact persistant n'est créé par cette simulation spécifique Write-Host "Nettoyage de simulation terminé. Aucun fichier ou clé de registre modifié."