
Intercepción de credenciales del plugin TeamCity para IntelliJ IDEA
Informe de Prueba de Concepto | Análisis del Flujo de Trabajo | Script del servidor
Esta es una reproducción de CVE-2020-35667 mediante la creación de un endpoint XML-RPC falso de TeamCity.
CVE-2020-35667 es una vulnerabilidad SSRF en el Plugin TeamCity de JetBrains para el IDE IntelliJ.
El antiguo plugin TeamCity para IntelliJ solicita una clave pública al servidor, cifra la contraseña con ella y la envía de vuelta.
Dado que el servidor está controlado por el atacante, este descifra y registra las credenciales en texto plano.
La vulnerabilidad fue reportada por Jonathan Leitschuh (https://blog.jetbrains.com/blog/2021/02/03/jetbrains-security-bulletin-q4-2020/).
El impacto de explotar esta vulnerabilidad es la intercepción de credenciales de usuario en texto plano durante el proceso de inicio de sesión del plugin, mediante un endpoint XML-RPC controlado por el atacante.
Esta es mi configuración para reproducir el problema:
IntelliJ IDEA Community Edition 2018.1.8
TeamCity 2020.2.1 (build 85633)
Plugin TeamCity vulnerable para IntelliJ
TeamCity-IDEAplugin.zip;98aaaea4276f718c6c9cf3cb5383da1be6af9daa29e5b17fda8fa70d6bc1342fSO: Windows 10
Versión de Python: 3.12.7
Los requisitos de Python se encuentran en cve2020-35667/requirements.txt
pip install -r requirements.txt
python poc_server.py
# Server listens on http://127.0.0.1:8888
http://127.0.0.1:8888.Resultado esperado (vulnerable): Las credenciales del usuario se registran en la consola del servidor.
Comportamiento esperado si es seguro: El cliente valida la identidad del servidor y la autenticidad de la clave, las credenciales no quedan expuestas a un endpoint suplantado.