OpenWire-CVE-2023-46604-Enquête
OpenWire Lab
Lors de mon quart de travail en tant qu'analyste SOC de niveau 2 (Security Operations Center), j'ai reçu une escalade d'un analyste de niveau 1 concernant un serveur accessible publiquement qui avait été observé en communication avec plusieurs adresses IP externes suspectes.
En réponse, j'ai initié la procédure standard de réponse aux incidents (IR), qui comprenait l'isolement du serveur affecté du réseau pour empêcher les mouvements latéraux et l'exfiltration potentielle de données. Un fichier de capture de paquets (PCAP) a ensuite été obtenu depuis la plateforme NSM pour une enquête plus approfondie.
Mon objectif était d'analyser le trafic réseau et d'identifier tout indicateur d'activité malveillante.
- Identification de la première adresse IP externe suspecte
Après avoir analysé le trafic réseau et examiné les connexions établies avec le serveur, j'ai identifié des paquets liés au protocole OpenWire. Une inspection plus approfondie de ces communications a révélé une adresse IP externe suspecte impliquée dans l'attaque :
146.190.21.92
- Identification du port utilisé lors de l'attaque
En examinant le trafic OpenWire, j'ai découvert que le service ciblé était Apache ActiveMQ, un courtier de messages open source qui permet la communication entre des applications distribuées.
Une analyse plus approfondie a révélé que l'attaquant communiquait via le port suivant :
61616
- Identification du second serveur de commande et contrôle
En analysant le trafic HTTP et en examinant les fichiers via :
Export Objects → HTTP Object List
J'ai identifié une seconde adresse IP externe associée à l'infrastructure de l'attaquant :
128.199.52.72
- Identification du service compromis
L'analyse des communications OpenWire a confirmé que le service compromis était :
Apache ActiveMQ
Ce service était la cible principale de l'attaque et a ensuite été déterminé comme étant vulnérable à l'exécution de code à distance.
- Identification de la charge utile du shell inverse
Les attaquants laissent souvent des traces de leur activité sur les systèmes compromis. En analysant à la fois le trafic HTTP et les commandes exécutées lors de l'intrusion, j'ai identifié le fichier de shell inverse déployé sur le serveur :
docker
- Analyse de la chaîne d'exploitation
Lors de l'enquête, j'ai observé un trafic sortant suspect provenant du serveur compromis, utilisant le User-Agent suivant :
java/11.0.21
Le serveur a initié une connexion vers l'adresse IP suspecte 146.190.21.92 afin de récupérer un fichier de configuration XML distant nommé :
/invoice.xml
En utilisant Wireshark et en filtrant le trafic avec :
Plain text
ip.addr == 146.190.21.92
J'ai identifié le flux de communication pertinent et extrait le fichier de charge utile malveillante :
./invoice
Une inspection plus approfondie de la charge utile a révélé que l'attaquant exploitait une vulnérabilité d'exécution de code à distance (RCE) dans Apache ActiveMQ.
Le fichier XML contenait des instructions malveillantes qui forçaient l'environnement d'exécution Java à instancier une classe Java spécifique capable d'exécuter des commandes du système d'exploitation.
La classe Java identifiée était :
java.lang.ProcessBuilder
- Identification du CVE associé
Sur la base du comportement d'attaque observé, incluant l'exploitation d'Apache ActiveMQ via les communications OpenWire, la récupération distante de XML, l'instanciation d'objets et l'utilisation de java.lang.ProcessBuilder pour l'exécution de commandes, l'activité a été attribuée à la vulnérabilité suivante :
CVE-2023-46604
Cette vulnérabilité permet aux attaquants de parvenir à une exécution de code à distance (RCE) en exploitant des mécanismes d'instanciation d'objets non sécurisés dans Apache ActiveMQ.
Indicateurs de compromission (IOC)
Adresses IP
146.190.21.92
128.199.52.72
Port réseau
61616
Fichiers
docker
invoice.xml
Charge utile
invoice
Vulnérabilité
CVE-2023-46604