Distinctement de l'abus des fonctionnalités de commande prévues par Zabbix, le serveur et le frontend Zabbix ont porté de véritables vulnérabilités atteignant l'exécution de code à distance. Les catégories couvrent le frontend PHP (failles d'injection et de type désérialisation, ainsi que les chaînes SQLi vers RCE), le protocole trapper du serveur sur le port 10051 (qui analyse les données des agents, proxies et expéditeurs), et la gestion de l'authentification/session qui s'enchaîne vers l'exécution. Certaines sont pré-authentification. Pour un attaquant, ce sont la voie lorsque les fonctionnalités de scripting ne sont pas accessibles (pas d'admin, rôle restreint) ou lorsqu'un exploit direct non authentifié est plus simple. La méthode consiste à identifier précisément le build Zabbix et à le faire correspondre à l'avis de sécurité applicable, puisque le composant vulnérable et la requête diffèrent selon la version.
# fingerprint (unauthenticated), then match to the advisory
curl -sk https://<target>/zabbix/api_jsonrpc.php -H 'Content-Type: application/json-rpc' \
-d '{"jsonrpc":"2.0","method":"apiinfo.version","params":{},"id":1}'
nmap -p10051 -sV <target> # trapper (server protocol) reachable?
# the exploit is version-specific: frontend RCE, SQLi-to-RCE chain, or trapper-side bug.
Notes d'exploitation#
- La version est décisive :
apiinfo.versionest non authentifié et se mappe à la RCE frontend ou trapper applicable ; il n'existe pas d'exploit universel, donc identifiez la version et faites la correspondance. - Le port trapper (10051) est une surface distincte, souvent négligée : il analyse les données des agents/proxies/expéditeurs et a connu des vulnérabilités d'analyse ; vérifiez s'il est accessible.
- Les exploits pré-authentification sont les plus propres lorsqu'ils sont disponibles ; ceux post-authentification s'associent aux voies d'authentification.
- Là où aucun bug serveur ne s'applique, les voies fondées sur les fonctionnalités, scripts, items et agent, restent la RCE fiable pour un attaquant authentifié.