
Utilitário de validação de mitigações para a cadeia de ataque do Ivanti Connect Around. Executa várias verificações. CVE-2023-46805, CVE-2024-21887.
A cadeia de ataque Connect Around, envolvendo as CVE-2023-46805 e CVE-2024-21887, representa uma ameaça significativa para os appliances Ivanti Connect Secure e Policy Secure. Essa cadeia de ataque permite acesso não autorizado e execução de comandos em sistemas vulneráveis. A CVE-2023-46805 permite que invasores contornem os controles de autenticação, enquanto a CVE-2024-21887, uma vulnerabilidade de injeção de comandos, pode ser explorada sem necessidade de autenticação quando combinada com a primeira. Esse par de vulnerabilidades exige atenção urgente das organizações que utilizam produtos Ivanti, instando-as a aplicar as mitigações disponíveis conforme detalhado no Fórum da Comunidade Ivanti.
Em resposta à necessidade das organizações de validar o status de mitigação, o Ivanti Connect Around Vulnerability Checker foi desenvolvido. Este script foi projetado para avaliar appliances Ivanti Connect Secure e Policy Secure quanto a vulnerabilidades associadas à cadeia de ataque Connect Around. Ele realiza verificações para confirmar a presença dessas vulnerabilidades e gera os resultados em formato CSV. Múltiplas metodologias de validação de mitigação são empregadas para fornecer uma avaliação abrangente e confiável.
Nota: Este script não valida as CVE-2024-21888 ou CVE-2024-21893.
O script realiza várias verificações para avaliar o status de segurança dos sistemas Ivanti Connect Secure. Cada verificação é baseada em metodologias específicas adaptadas de pesquisas da comunidade de segurança da informação.
/api/v1/configuration/users/user-roles/user-role/rest-userrole1/web/web-bookmarks/bookmark sem autenticação./api/v1/system/system-information./admin/options/.Cada verificação fornece insights sobre possíveis vulnerabilidades. "Vulnerável" indica uma vulnerabilidade confirmada, enquanto "Mitigado" ou "Não Vulnerável" significa que o sistema aparenta estar seguro contra a vulnerabilidade específica testada.
O script categoriza cada verificação com tipos de status específicos, fornecendo insight sobre a postura de segurança do host escaneado. Aqui estão as descrições de cada tipo de status:
Mitigado: Indica que o sistema possui mitigações implementadas contra as vulnerabilidades verificadas. Este status é retornado quando são detectadas respostas típicas de um sistema seguro e corrigido (patchado).
Vulnerável: Este status sugere que o sistema está vulnerável às verificações específicas realizadas pelo script. É retornado quando o sistema apresenta padrões ou respostas conhecidos que indicam uma vulnerabilidade.
Erro HTTP: Retornado quando o script encontra respostas de erro HTTP padrão (diferentes de 403 Forbidden) do sistema alvo. Normalmente indica um problema com o servidor web ou com a solicitação.
Problema de Rede: Este status é usado quando o script encontra problemas relacionados à rede, como a impossibilidade de alcançar o host. Ele combina status anteriores como "Host Inalcançável" e "Erro de Rede".
Erro de Timeout: Indica que a solicitação ao alvo expirou (timeout), sugerindo possíveis problemas de rede ou configuração que impediram o script de concluir sua verificação.
Erro de Conexão: Semelhante ao "Erro de Timeout", este status é usado quando há problemas para estabelecer uma conexão com o host, o que pode ser devido a problemas de rede, nomes de host incorretos, etc.
Presença Ivanti Inconclusiva: Anteriormente conhecido como "Atestação Necessária", este status é retornado quando as verificações do script não produzem evidências definitivas de vulnerabilidade ou mitigação. Isso sugere que uma investigação manual adicional é necessária para determinar o status de segurança do sistema.
Vulnerável (Bypass Detectado): Específico da verificação de vulnerabilidade de bypass, este status indica que o sistema está vulnerável à técnica de bypass de autenticação descrita na metodologia do script.
Cada status fornece um retrato da postura de segurança do sistema em relação às vulnerabilidades verificadas. Os usuários devem considerar esses status como indicadores iniciais e, quando necessário, realizar investigações manuais adicionais para confirmar o status de segurança real do sistema.
requestsurllib3colorama para saída codificada por coresPara executar o script, use o seguinte comando:
python ivanti_scan.py -i [input_file]
Opcionalmente, execute com argumentos adicionais:
python ivanti_scan.py -i [input_file] -o [output_file] -t [number_of_threads] -p [port1 port2 ...] --color
Utilize uma destas opções para especificar o(s) alvo(s) para teste.
-i ou --input: Caminho para o arquivo de entrada contendo a lista de alvos.-u ou --url: String de URL única para teste.-o ou --output: Opcional. Nome do arquivo CSV de saída. O padrão é [current_date_time]_results.csv.-t ou --threads: Opcional. Número de threads para execução concorrente. O padrão é 20.-p ou --ports: Opcional. Especifique as portas a verificar (ex.: 80 443). Por padrão, verifica as portas 80 e 443.-a ou --user-agent: Opcional. Especifique a string de user agent. O padrão é: Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/120.0.0.0 Safari/537.3-c ou --color: Opcional. Habilita a saída codificada por cores se o colorama estiver instalado.Contribuições são bem-vindas! Se você deseja contribuir, aqui estão algumas maneiras de ajudar:
main.Obrigado por considerar contribuir com este projeto.
Esta ferramenta foi projetada para indivíduos e organizações que desejam validar a mitigação de vulnerabilidades em seus próprios ambientes. Ela é especificamente destinada ao uso em appliances Ivanti Connect Secure onde foi concedida permissão explícita para testes de segurança.
Ao usar esta ferramenta, você reconhece e concorda com estes termos.
Este projeto é licenciado sob a Licença MIT com uma Cláusula de Uso Ético - consulte o arquivo LICENSE para obter detalhes.
Este projeto utiliza pesquisas e metodologias desenvolvidas por vários grupos e indivíduos respeitados no campo da cibersegurança. Estendemos nossa gratidão a:
WatchTowr Labs: Por sua pesquisa perspicaz sobre as vulnerabilidades do Ivanti Connect Secure. Seu trabalho foi fundamental para o desenvolvimento da metodologia de verificação WEB ACCESS.
Stephen Fewer da Rapid7: Seu trabalho no Módulo Metasploit forneceu insights valiosos.
Rapid7 no AttackerKB: Sua pesquisa sobre técnicas de bypass de autenticação contribuiu enormemente para este script.
Assetnote: Reconhecer /admin/options/ como um método de teste confiável auxilia na determinação da aplicação de mitigações.
Um agradecimento especial a esses grupos e indivíduos por suas contribuições para o campo da cibersegurança, que auxiliaram enormemente o desenvolvimento desta ferramenta.
Chris Farrell é um pesquisador de vulnerabilidades comprometido em aprimorar a cibersegurança por meio de análises minuciosas e soluções abrangentes.
Sua experiência inclui gerenciamento de vulnerabilidades, vCISO, testador de penetração sênior, líder de resposta a incidentes, ISSO.