CVE-2020–25213 ->Vulnerabilidad en WordPress afecta versiones menores a 6.9
Acerca de la vulnerabilidad:
CVE-2020–25213: El complemento Administrador de archivos (wp-file-manager) anterior a la 6.9 para WordPress permite a los atacantes remotos cargar y ejecutar código PHP arbitrario porque cambia el nombre de un archivo de conector elFinder de ejemplo inseguro para que tenga la extensión .php. Esto, por ejemplo, permite a los atacantes ejecutar el comando elFinder upload (mkfile y put) para escribir código PHP en el directorio wp-content/plugins/wp-file-manager/lib/files/. Esto fue explotado en agosto y septiembre de 2020.
¿Qué pasó ?
En la última semana de agosto esta vulnerabilidad comenzó a explotar como un zero day. El 1 de septiembre, los desarrolladores del complemento parchearon la vulnerabilidad y lanzaron la versión 6.9. Después de que se lanzó el parche, varias organizaciones como wordfence, seravo y algunas otras publicaron los blogs que describen los detalles del zero day de wp-file-manager y cómo se ha explotado en la naturaleza.
La buena noticia es que elFinder tiene protección incorporada contra el cruce de directorios, por lo que un atacante no podría usar ninguno de estos comandos en ningún archivo fuera del directorio plugins/wp-file-manager/lib/files/.
Los ataques que estamos viendo en la naturaleza están usando el comando upload para cargar archivos PHP que contienen webshells ocultos en una imagen al directorio wp-content/plugins/wp-file-manager/lib/files/.
Afortunadamente, tanto Wordfence Premium como los usuarios gratuitos se han protegido contra la campaña dirigida a esta vulnerabilidad.
Sin embargo, para una protección óptima, creamos una regla de firewall adicional.
¿Por qué creamos una regla de firewall adicional?
Si bien la protección integrada de nuestro firewall impidió la carga directa de archivos, determinamos que era posible enviar una solicitud especialmente diseñada que crearía un archivo PHP vacío mediante el comando mkfile en el parámetro cmd.
Un atacante podría enviar una solicitud separada para guardar el código malicioso en ese archivo enviando una solicitud con el parámetro cmd configurado para poner. Además, pueden ser posibles otras omisiones, por lo que creamos una regla de firewall para bloquear completamente cualquier acceso al archivo connector.minimal.php.
El complemento File Manager solucionó el problema eliminando el archivo lib/php/connector.minimal.php del complemento, y la eliminación manual de este archivo también debería evitar que los atacantes exploten esta vulnerabilidad sin afectar la funcionalidad normal. Este desvío no ha sido un objetivo en la naturaleza.
EXPLOIT / INSTALACIÓN
sudo git clone https://github.com/mansoorr123/wp-file-manager-CVE-2020-25213.git
chmod +x wp-file-manager-CVE-2020-25213/wp-file-manager-exploit.sh
Uso
./wp-file-manager-exploit.sh --wp_url https://www.example.com/wordpress --check
./wp-file-manager-exploit.sh --wp_url https://wordpress.example.com/ -f /tmp/php_hello.php --verbose
Impacto
Aprovechando esta vulnerabilidad, un atacante puede cargar archivos php y ejecutar los archivos en el objetivo sin ninguna autenticación que lleve a un compromiso total de la máquina. (CVSS: 9,8).
wp-file-manager tiene más de 600,000 instalaciones activas, de las cuales solo el 53.3% de los usuarios se han actualizado a la última versión del complemento 6.9 en el momento de escribir este artículo.