Mariscada virtual en el servidor de CCOO

Hacía tiempo que no intentaba rootear un servidor, y cuando he visto la apariencia descuidada del portal de afiliación de CCOO, no he podido resistir la tentación de hacer algunas pruebas.

Este ha sido el resultado.

A primera vista, la página afiliate.ccoo.es consta de un formulario de datos personales para tramitar la afiliación al sindicato.

La URL incluye nombres de archivo como parámetros, así que intentando cambiar de ruta he dado con una vulnerabilidad Path Traversal. He intentado abusar sin éxito de /proc/ para inyectar código. Tampoco he podido envenenar los logs por falta de permisos. Sin embargo me ha servido para enumerar datos sobre el servidor.

Me ha llamado la atención hubiera una letra E delante de las rutas en la URL, y pensando que podía tratarse de un volumen montado, he intentado acceder a distintos archivos cambiando la letra. Ha resultado no ser un volumen, pero usando la letra D he sido capaz de leer el código fuente de los archivos PHP sin que sean procesados. Esto me ha permitido entender un poco mejor sobre cómo funciona coco.php.

E para ejecución y D o R para lectura y envío. En función de esto, se incluirán los archivos procesados o en plano.

Investigando el código del formulario de afiliación he visto que en algún lugar hay un cargador de archivos que almacena las subidas en /usr/paginas/v5.file/cms/ con el DNI del usuario como nombre del archivo.

He introducido el código de la shell en el archivo que voy a subir para ejecutarlo desde coco.php.

He subido el archivo y completado el formulario.

Accediendo a la ruta del archivo subido he confirmado que puedo ejecutar comandos en el sistema como usuario www-data.

Me he dado cuenta de que la mayoría de subdominios de CCOO, incluyendo el principal, operan bajo la misma raíz, lo cual me facilitará el defacement masivo al final.

Encuentro datos de autenticación para bases de datos en varios archivos de configuración.

He podido acceder a las bases de datos usando los credenciales. Ejecuto una shell inversa y exporto todas las bases de datos.

Tras descargar el dump he encontrado una tabla que contiene una contraseña en texto plano asociada a una cuenta llamada root.

Inocentemente he intentado identificarme usando la clave, y sorprendentemente ha funcionado. De todos modos podría haber elevado privilegios explotando CVE-2017-7533 ya que el sistema lleva tiempo sin actualizarse.

Después de un rato guardando archivos y bases de datos, finalmente he modificado el inicio. Alrededor de 50 subdominios de ccoo.es muestran mi índice mientras escribo esto.

Por querer guardar un recuerdo de estas risas me he llevado una página y media en Zone-H.

Eso es todo por hoy.

Doy las gracias al sysadmin de CCOO por no verlo venir.

Contra los sindicatos del gobierno.
Por una organización de clase que defienda los intereses de los trabajadores.

Salud.