1. Descripción técnica
Un Backdoored Apache Module RCE aparece cuando el servidor carga un módulo malicioso que introduce una ruta oculta para ejecutar órdenes. Apache admite módulos para ampliar el tratamiento de solicitudes; la vulnerabilidad no pertenece a esa arquitectura por sí misma, sino al código no autorizado que se ejecuta dentro del proceso web.
El límite de confianza se rompe cuando un dato de la solicitud, como una cabecera, deja de ser información HTTP y el módulo lo entrega a un intérprete de órdenes. La ejecución hereda la identidad y el acceso del worker de Apache.
1.1. Mecanismo
// renderizando diagrama…
2. Impacto
Permite ejecutar órdenes remotas con los permisos de Apache, leer datos accesibles al servicio, modificar contenido web y buscar movimiento lateral o escalada local. No implica automáticamente UID 0.
3. Condiciones necesarias
- El módulo malicioso está instalado y cargado por Apache.
- Una solicitud remota alcanza el hook implementado por el módulo.
- El atacante conoce o descubre la cabecera, ruta o condición que activa la backdoor.
- El proceso puede iniciar las órdenes elegidas.
4. Validación y detección
Se compara la lista de módulos cargados con el inventario autorizado y se revisan directivas LoadModule, paquetes, hashes e integridad de los objetos compartidos. Una referencia en phpinfo es una pista; la validación decisiva identifica el módulo y demuestra de forma inocua que una entrada HTTP específica altera la ejecución.
5. Explotación documentada en los writeups
5.1. 052-blackhat
phpinfo.php muestra mod_backdoor. El módulo consume la cabecera Backdoor y ejecuta su valor como www-data.
6. Mitigación
- Retirar el módulo y reconstruir el servidor desde una fuente confiable.
- Rotar credenciales y revisar contenido que pudo alcanzar el proceso.
- Restringir cambios sobre la configuración y los directorios de módulos.
- Monitorizar directivas LoadModule y objetos compartidos.
- Ejecutar Apache con privilegios mínimos.
7. Clasificación
- CWE: CWE-506, Embedded Malicious Code
- Vector: solicitud HTTP procesada por un módulo malicioso
- Impacto principal: Remote Code Execution con la identidad del servicio