
Este exploit fue creado para explotar una XXE (Entidad Externa XML). A través de él, leí el código backend del servicio web y encontré un endpoint donde podía usar gopher para hacer solicitudes internas en Zabbix vulnerable a RCE.
python exploit.py --ip <Zabbix_IP> --sid <LowPrivileged_SID> --hostid <HostID> --phpsessid <PHPSESSID> --false_time <FalseTime> --true_time <TrueTime>
Este exploit fue creado para explotar un XXE (External Entity XML). A través de él, leí el código backend del servicio web y encontré un endpoint donde podía usar gopher para realizar solicitudes internas en la versión 6.0.27 de Zabbix, vulnerable a Ejecución Remota de Código.
Durante la fase de reconocimiento, realicé un ataque de fuerza bruta en el servidor web externo para obtener el archivo docker-compose.yml, que proporcionó el nombre del contenedor de los servidores internos de Zabbix. Usando esta información, envié una solicitud POST a la raíz de la aplicación web mediante gopher y el servidor web devolvió el host-id y el session id de un usuario con privilegios bajos en un JSON codificado en base64 en la cookie.
Con estos detalles, pude adaptar el exploit original para explotar una vulnerabilidad de Inyección SQL en zabbix-server:10051 y obtener el ID de sesión del administrador, para luego crear y ejecutar un script que lograra la ejecución remota de código.
Si necesitas explotar esta vulnerabilidad de Zabbix usando gopher, puedes modificar la función InternalRequest para hacer la solicitud de la forma que necesites.
10.0.46.27:5555 en el script).Asegúrate de que tu máquina esté escuchando en el puerto especificado (5555 en el script) para capturar la reverse shell. Puedes usar netcat para esto:
nc -lvnp 5555
Reemplaza la IP 10.0.46.27 y el puerto 5555 en la función CreateScript con tu propia IP y puerto deseado para recibir la reverse shell.