
Une vulnérabilité d'extraction de données non authentifiée dans les imprimantes Kyocera, qui permet de récupérer les mots de passe en clair du carnet d'adresses et du domaine joint.
Une vulnérabilité d'extraction de données non authentifiée dans les imprimantes Kyocera, qui permet la récupération en clair du carnet d'adresses et des mots de passe de domaine.
En 2021, lors d'un test d'intrusion, je bidouillais l'application client lourd de Kyocera utilisée pour administrer les imprimantes à distance. En proxyant le trafic de l'application, j'ai découvert que l'API SOAP de Kyocera sur le port 9091/TCP ne gérait pas correctement l'authentification lors de l'exécution d'actions sensibles. Les MFP Kyocera peuvent être configurés avec des identifiants de liaison pour les domaines d'entreprise, des identifiants FTP, des identifiants de partage de fichiers, etc. Sans authentification, il est possible de récupérer tous les identifiants stockés par le MFP, en clair.
Mon article complet se trouve sur le blog de Rapid7 : https://www.rapid7.com/blog/post/2022/03/29/cve-2022-1026-kyocera-net-view-address-book-exposure/
Je ne crois pas que cela soit actuellement corrigé sur tous les modèles et cela reste un 0-day, malgré les rapports au fournisseur. Je n'ai pu tester que sur quelques modèles identifiés au fil des ans, mais chaque fois que je trouve une imprimante Kyocera, cela fonctionne toujours.
Le script Python se connecte au MFP sur le port TCP 9091 et envoie une requête SOAP pour créer un nouvel export du carnet d'adresses. L'imprimante répond avec le numéro d'objet du carnet d'adresses, puis le script attend quelques secondes le temps que le carnet soit terminé. Enfin, le carnet est récupéré via une autre requête SOAP. Dans le carnet, vous trouverez tous les identifiants configurés en clair.
N'hésitez pas à soumettre une PR avec un parsing amélioré, car je ne suis jamais revenu pour embellir la sortie ou le processus d'exploitation.
python3 getKyoceraCreds.py <printerip>