
Scanner de détournement d'applications pour macOS

boko.py est un scanner d’applications pour macOS qui recherche et identifie les vulnérabilités potentielles de détournement de dylib (dylib hijacking) et de dylib faible (weak dylib) pour les exécutables d’applications, ainsi que les scripts qu’une application peut utiliser et qui pourraient être backdoorés. L’outil signale également les fichiers intéressants et les liste au lieu de parcourir manuellement le système de fichiers pour l’analyse. Avec la fonction de découverte active, il n’y a plus de doute quant à la vulnérabilité d’un exécutable au détournement de dylib !
La raison de la création de cet outil était que je voulais plus de contrôle sur les données découvertes par Dylib Hijack Scanner. La plupart des scanners publics s’arrêtent dès qu’ils découvrent le premier cas de dylib vulnérable sans explorer le reste des rpaths. Étant donné que parfois le premier résultat est résolu dans un fichier inexistant situé dans une zone protégée par SIP, je voulais obtenir le reste de ces chemins résolus. De ce fait, il y a des faux positifs, donc l’outil attribue un champ de certitude pour chaque élément.
| Certitude | Description |
|---|---|
| Définitif | La vulnérabilité est 100 % exploitable |
| Élevé | Si la vulnérabilité concerne un exécutable principal et que le rpath est le second dans l’ordre de chargement, il y a de bonnes chances qu’elle soit exploitable |
| Potentiel | Cela est attribué aux dylibs et aux scripts backdoorables, à examiner mais peut-être pas exploitable |
| Faible | Faible chance que ce soit exploitable en raison de l’ordre de chargement tardif, mais le savoir est un pouvoir |
L’épine dorsale de cet outil est basée sur scan.py de DylibHijack par Patrick Wardle (@synack).
boko.py [-h] (-r | -i | -p /path/to/app) (-A | -P | -b) [-oS outputfile | -oC outputfile | -oA outputfile] [-s] [-v]
Il est recommandé uniquement d’utiliser le mode actif (-A) avec le drapeau -p et de sélectionner un programme spécifique. De plus, il est conseillé d’utiliser -v avec -oS ou -oA, sauf si vous ne cherchez que les vulnérabilités à certitude définitive.
Note d’avertissement :
Il est fortement déconseillé d’exécuter cet outil avec les drapeaux -i et (-A ou -b) ensemble. Cette combinaison ouvrira chaque exécutable de votre système pendant 3 secondes à la fois. Je décline toute responsabilité en cas de plantage ou de ralentissement de votre système suite à cette exécution. De plus, si vous avez des logiciels malveillants dormants sur votre système, cela les exécutera. Je recommande également de ne pas analyser l’intégralité du répertoire /Applications si Xcode est installé, car cela prend beaucoup de temps.
python -m pip install psutil| Argument | Description |
|---|
| -h, --help | Affiche ce message d’aide et quitte |
| -r, --running | Vérifie les processus en cours d’exécution |
| -i, --installed | Vérifie toutes les applications installées |
| -p /fichier.app | Vérifie une application spécifique, ex. /Application/Safari.app |
| -A, --active | Exécute les binaires exécutables découverts pour identifier activement les dylibs détournables |
| -P, --passive | Effectue les vérifications uniquement en consultant les en-têtes de fichiers (par défaut) |
| -b, --both | Effectue les deux méthodes de test de vulnérabilité |
| -oS fichier_sortie | Redirige la sortie standard vers un fichier .log |
| -oC fichier_sortie | Exporte les résultats vers un fichier .csv |
| -oA fichier_sortie | Exporte les résultats vers un fichier .csv et un log standard |
| -s, --sipdisabled | À utiliser si SIP est désactivé sur le système pour analyser les chemins généralement en lecture seule |
| -v, --verbose | Affiche tous les résultats en mode verbeux pendant l’exécution ; sans cela, seules les vulnérabilités à certitude Définitif sont affichées dans la console |