
Utilitaire de validation des mesures d'atténuation pour la chaîne d'attaque Ivanti Connect Around. Exécute plusieurs vérifications. CVE-2023-46805, CVE-2024-21887.
La chaîne d'attaque Connect Around, impliquant CVE-2023-46805 et CVE-2024-21887, constitue une menace importante pour les appliances Ivanti Connect Secure et Policy Secure. Cette chaîne d'attaque permet un accès non autorisé et l'exécution de commandes sur les systèmes vulnérables. CVE-2023-46805 permet aux attaquants de contourner les contrôles d'authentification, tandis que CVE-2024-21887, une vulnérabilité d'injection de commandes, peut être exploitée sans nécessiter d'authentification lorsqu'elle est combinée à la première. Ce duo de vulnérabilités nécessite une attention urgente de la part des organisations utilisant les produits Ivanti, les incitant à appliquer les mesures d'atténuation disponibles comme détaillé dans le forum communautaire Ivanti.
En réponse au besoin des organisations de valider l'état des mesures d'atténuation, l'Ivanti Connect Around Vulnerability Checker a été développé. Ce script est conçu pour évaluer les appliances Ivanti Connect Secure et Policy Secure pour les vulnérabilités associées à la chaîne d'attaque Connect Around. Il effectue des vérifications pour confirmer la présence de ces vulnérabilités et affiche les résultats au format CSV. Plusieurs méthodologies de validation des mesures d'atténuation sont employées pour fournir une évaluation complète et fiable.
Remarque : Ce script ne valide pas CVE-2024-21888 ou CVE-2024-21893.
Le script effectue diverses vérifications pour évaluer l'état de sécurité des systèmes Ivanti Connect Secure. Chaque vérification est basée sur des méthodologies spécifiques adaptées de recherches au sein de la communauté de la sécurité de l'information.
/api/v1/configuration/users/user-roles/user-role/rest-userrole1/web/web-bookmarks/bookmark sans authentification./api/v1/system/system-information./admin/options/.Chaque vérification fournit des informations sur les vulnérabilités potentielles. « Vulnerable » indique une vulnérabilité confirmée, tandis que « Mitigated » ou « Not Vulnerable » signifie que le système semble sécurisé contre la vulnérabilité spécifique testée.
Le script catégorise chaque vérification avec des types de statut spécifiques, fournissant un aperçu de la posture de sécurité de l'hôte analysé. Voici les descriptions de chaque type de statut :
Mitigated : Indique que le système dispose de mesures d'atténuation contre les vulnérabilités vérifiées. Ce statut est renvoyé lorsque des réponses typiques d'un système sécurisé et corrigé sont détectées.
Vulnerable : Ce statut suggère que le système est vulnérable aux vérifications spécifiques effectuées par le script. Il est renvoyé lorsque le système présente des modèles ou des réponses connus indiquant une vulnérabilité.
HTTP Error : Renvoyé lorsque le script rencontre des réponses d'erreur HTTP standard (autres que 403 Forbidden) de la part du système cible. Cela indique généralement un problème avec le serveur web ou la requête.
Network Issue : Ce statut est utilisé lorsque le script rencontre des problèmes liés au réseau, tels qu'une impossibilité d'atteindre l'hôte. Il combine d'anciens statuts comme « Host Unreachable » et « Network Error ».
Timeout Error : Indique que la requête vers la cible a expiré, suggérant des problèmes potentiels de réseau ou de configuration qui ont empêché le script de terminer sa vérification.
Connection Error : Similaire à « Timeout Error », ce statut est utilisé lorsqu'il y a des problèmes pour établir une connexion avec l'hôte, ce qui peut être dû à des problèmes réseau, des noms d'hôte incorrects, etc.
Ivanti Presence Inconclusive : Anciennement connu sous le nom d'« Attestation Needed », ce statut est renvoyé lorsque les vérifications du script ne fournissent pas de preuves définitives de vulnérabilité ou de mesure d'atténuation. Il suggère qu'une investigation manuelle plus approfondie est nécessaire pour déterminer l'état de sécurité du système.
Vulnerable (Bypass Detected) : Spécifique à la vérification de vulnérabilité de contournement, ce statut indique que le système est vulnérable à la technique de contournement d'authentification décrite dans la méthodologie du script.
Chaque statut fournit un aperçu de la posture de sécurité du système concernant les vulnérabilités vérifiées. Les utilisateurs doivent considérer ces statuts comme des indicateurs initiaux et, si nécessaire, mener des investigations manuelles supplémentaires pour confirmer l'état de sécurité réel du système.
requestsurllib3colorama pour la sortie à code couleurPour exécuter le script, utilisez la commande suivante :
python ivanti_scan.py -i [input_file]
Optionnellement, exécutez avec des arguments supplémentaires :
python ivanti_scan.py -i [input_file] -o [output_file] -t [number_of_threads] -p [port1 port2 ...] --color
Utilisez l'une de ces options pour spécifier la ou les cibles à tester.
-i ou --input : Chemin vers le fichier d'entrée contenant la liste des cibles.-u ou --url : Chaîne d'URL unique à tester.-o ou --output : Optionnel. Nom du fichier CSV de sortie. Par défaut : [current_date_time]_results.csv.-t ou --threads : Optionnel. Nombre de threads à utiliser pour l'exécution concurrente. Par défaut : 20.-p ou --ports : Optionnel. Spécifiez les ports à vérifier (par exemple, 80 443). Par défaut, les ports 80 et 443 sont vérifiés.-a ou --user-agent : Optionnel. Spécifiez la chaîne du user agent. Par défaut : 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 : Optionnel. Active la sortie à code couleur si colorama est installé.Les contributions sont les bienvenues ! Si vous souhaitez contribuer, voici quelques façons d'aider :
main.Merci d'envisager de contribuer à ce projet.
Cet outil est conçu pour les individus et les organisations souhaitant valider l'atténuation des vulnérabilités dans leurs propres environnements. Il est spécifiquement destiné à être utilisé sur des appliances Ivanti Connect Secure pour lesquelles une autorisation explicite de test de sécurité a été accordée.
En utilisant cet outil, vous reconnaissez et acceptez ces conditions.
Ce projet est licencié sous la licence MIT avec une clause d'utilisation éthique - voir le fichier LICENSE pour plus de détails.
Ce projet s'appuie sur des recherches et des méthodologies développées par plusieurs groupes et individus estimés dans le domaine de la cybersécurité. Nous exprimons notre gratitude à :
WatchTowr Labs : Pour leurs recherches perspicaces sur les vulnérabilités d'Ivanti Connect Secure. Leur travail a été essentiel pour développer la méthodologie de vérification ACCÈS WEB.
Stephen Fewer de Rapid7 : Son travail sur le module Metasploit a fourni des informations précieuses.
Rapid7 sur AttackerKB : Leurs recherches sur les techniques de contournement d'authentification ont grandement informé ce script.
Assetnote : La reconnaissance de /admin/options/ comme méthode de test fiable aide à déterminer l'application des mesures d'atténuation.
Un merci spécial à ces groupes et individus pour leurs contributions au domaine de la cybersécurité, qui ont grandement facilité le développement de cet outil.
Chris Farrell est un chercheur en vulnérabilités engagé à renforcer la cybersécurité grâce à une analyse approfondie et des solutions complètes.
L'expérience comprend la gestion des vulnérabilités, vCISO, testeur d'intrusion senior, responsable de la réponse aux incidents, ISSO.