
Explora a injeção SQL do Zabbix (CVE-2024-42327) para extrair a sessão de administrador e executar comandos via API, obtendo um reverse shell.
_______ ________ ___ ____ ___ __ __ __ __ ___ ________ _____
/ ____/ | / / ____/ |__ \ / __ \__ \/ // / / // /|__ \|__ /__ \/__ /
/ / | | / / __/________/ // / / /_/ / // /_______/ // /___/ / /_ <__/ / / /
/ /___ | |/ / /__/_____/ __// /_/ / __/__ __/_____/__ __/ __/___/ / __/ / /
\____/ |___/_____/ /____/\____/____/ /_/ /_/ /____/____/____/ /_/
O NSFOCUS CERT detectou que a Zabbix divulgou um comunicado de segurança e corrigiu a vulnerabilidade de injeção de SQL (CVE-2024-42327) do servidor Zabbix. Devido à vulnerabilidade de SQLi na classe CUser na função addRelatedObjects, atacantes com permissão de usuário padrão ou acesso à API podem chamar a função CUser.get. Isso pode levar a acesso não autorizado a informações sensíveis ou à execução de instruções SQL arbitrárias. A pontuação CVSS é 9.9.
Este PoC explora essa vulnerabilidade de injeção de SQL. Para a abordagem de injeção de SQL baseada em tempo, precisamos extrair a tabela de sessões do banco de dados para determinar se o usuário Admin está conectado. Este script fornece um script multithread para acelerar a extração da sessão do admin para exploração adicional. Com o token de API do usuário admin, procedemos à criação de um item e, em seguida, podemos acionar esse item. Obtemos então um reverse shell enviando um payload.
Em resumo, esta ferramenta extrai o ID da sessão do admin (admin_session) com injeção de SQL baseada em tempo usando a API do Zabbix e, em seguida, envia um comando de reverse shell para o sistema alvo usando esse ID. Primeiro, o script recebe as credenciais do usuário, envia uma solicitação de autenticação à API do Zabbix e recebe o auth_token. Em seguida, extrai o ID admin_session usando injeção de SQL. O ID admin_session extraído é usado para recuperar os IDs de host e interface com a solicitação host.get à API do Zabbix. Finalmente, uma solicitação item.create contendo o comando de reverse shell é enviada com os IDs de host e interface obtidos. Dessa forma, um reverse shell é aberto no servidor alvo e uma conexão é estabelecida.
