
Évaluateur macOS CVE-2024-44133 des navigateurs populaires
Évalue la susceptibilité au CVE-2024-44133 des navigateurs macOS courants.
Contient également le HTML qui prend une capture d'écran et la télécharge avec l'extraction de la localisation.

Pour exécuter l'évaluateur, qui évalue CVE-2024-44133 sur tous les navigateurs macOS courants, lancez :
python3 -m pip install -r ./requirements.txt
./hm-surf-eval.py
Lors de l'exécution, l'outil évalue les capacités de contournement de TCC de tous les navigateurs macOS courants.
Le fichier hm-surf.html est un exemple de page HTML qui démontre CVE-2024-44133.
Tout ce qu'il fait est d'accéder à la caméra et à la localisation, en présentant la localisation (avec une faible précision, intentionnellement) et en téléchargeant la capture d'écran de la caméra (mais il pourrait tout aussi bien l'enregistrer sur un serveur).
Ce fichier n'est pas un exploit en soi, et nécessite que l'accès à la caméra, au microphone et à la localisation soit activé pour le navigateur, par exemple par un attaquant local remplaçant les préférences par navigateur.
Cette capacité peut être évaluée avec l'évaluateur.
Pour visualiser facilement la page HTML, vous pouvez utiliser n'importe quel outil, par exemple htmlpreview.
Programmer un évaluateur est assez simple - vous héritez de BrowserEvaluatorBase et implémentez deux méthodes :
get_browser_name - récupère un nom de navigateur lisible par l'humain.evaluate - reçoit le username et son home_dir et évalue la susceptibilité. Renvoyer None signifie que le navigateur n'est pas susceptible, tandis que renvoyer une instance de BrowserResults donne des résultats susceptibles.Notez qu'il existe également une classe de base ChromiumEvaluatorBase pour les navigateurs basés sur Chromium, ce qui signifie que vous devez implémenter le get_browser_name habituel ainsi qu'une méthode get_preference_filepath qui renvoie un chemin de fichier de préférences pour le répertoire personnel donné. Vous n'avez pas besoin d'implémenter evaluate pour les navigateurs basés sur Chromium, cela est implémenté par la classe de base.