
Una vulnerabilidad de extracción de datos no autenticada en impresoras Kyocera, que permite la recuperación de contraseñas en texto claro de la libreta de direcciones y de las cuentas unidas al dominio.
Una vulnerabilidad de extracción de datos no autenticada en impresoras Kyocera, que permite recuperar la libreta de direcciones en texto claro y las contraseñas de dominio.
A finales de 2021, durante una prueba de penetración, estaba experimentando con la aplicación cliente pesada de Kyocera utilizada para administrar impresoras de forma remota. Mientras analizaba el tráfico de la aplicación a través de un proxy, descubrí que la API SOAP de Kyocera en el puerto 9091/TCP no gestionaba correctamente la autenticación al realizar acciones sensibles. Las MFP de Kyocera pueden configurarse con credenciales de enlace para dominios corporativos, credenciales FTP, credenciales de recursos compartidos, etc. Sin autenticación, es posible recuperar todas las credenciales almacenadas por la MFP en texto claro.
Mi informe completo se puede encontrar en el blog de Rapid7: https://www.rapid7.com/blog/post/2022/03/29/cve-2022-1026-kyocera-net-view-address-book-exposure/
No creo que esto esté corregido actualmente en todos los modelos y sigue siendo un 0-day, a pesar de los informes enviados al fabricante. Solo pude probarlo en un par de modelos identificados a lo largo de los años, pero cada vez que encuentro una impresora Kyocera, esto sigue funcionando.
El script de Python se conecta a la MFP en el puerto TCP 9091 y envía una solicitud SOAP para crear una nueva exportación de la libreta de direcciones. La impresora responde con el número de objeto de la libreta de direcciones, y luego el script espera unos segundos mientras se termina de crear la libreta. Finalmente, la libreta se recupera mediante otra solicitud SOAP. Dentro de la libreta encontrarás todas las credenciales configuradas en texto claro.
No dudes en enviar un PR con un mejor análisis, ya que nunca volví a mejorar la presentación del resultado ni el proceso del exploit.
python3 getKyoceraCreds.py <printerip>