
Anwendungs-Hijack-Scanner für macOS

boko.py ist ein Anwendungsscanner für macOS, der nach potenziellen Dylib-Hijacking- und Weak-Dylib-Schwachstellen in ausführbaren Anwendungen sowie nach Skripten sucht, die eine Anwendung verwenden könnte und die möglicherweise backdoorbar sind. Das Tool hebt außerdem interessante Dateien hervor und listet sie auf, anstatt manuell das Dateisystem zur Analyse zu durchsuchen. Mit der aktiven Erkennungsfunktion gibt es kein Rätselraten mehr, ob eine ausführbare Datei anfällig für Dylib-Hijacking ist!
Der Grund für die Erstellung dieses Tools war, dass ich mehr Kontrolle über die Daten haben wollte, die der Dylib Hijack Scanner entdeckt. Die meisten öffentlich verfügbaren Scanner stoppen, sobald sie den ersten Fall einer anfälligen Dylib finden, ohne die restlichen Rpaths zu untersuchen. Da das erste Ergebnis manchmal in eine nicht existierende Datei innerhalb eines SIP-geschützten Bereichs expandiert, wollte ich die restlichen dieser expandierten Pfade erhalten. Deshalb gibt es False Positives, und das Tool weist jedem Element ein Sicherheitsfeld zu.
| Sicherheit | Beschreibung |
|---|---|
| Sicher | Die Schwachstelle ist zu 100 % ausnutzbar |
| Hoch | Wenn die Schwachstelle mit einem Hauptprogramm zusammenhängt und der Rpath an zweiter Stelle in der Ladereihenfolge steht, ist die Wahrscheinlichkeit einer Ausnutzbarkeit hoch |
| Potentiell | Dies wird Dylibs und backdoorbaren Skripten zugewiesen; einen Blick wert, aber möglicherweise nicht ausnutzbar |
| Niedrig | Geringe Wahrscheinlichkeit der Ausnutzbarkeit aufgrund später Ladereihenfolge, aber Wissen ist Macht |
Das Rückgrat dieses Tools basiert auf scan.py von DylibHijack von Patrick Wardle (@synack).
boko.py [-h] (-r | -i | -p /path/to/app) (-A | -P | -b) [-oS outputfile | -oC outputfile | -oA outputfile] [-s] [-v]
Es wird empfohlen, den aktiven Modus (-A) nur mit der -p-Flagge und der Auswahl eines bestimmten Programms zu verwenden. Außerdem ist es sinnvoll, -v zusammen mit -oS oder -oA zu verwenden, es sei denn, Sie suchen nur nach Schwachstellen mit der Sicherheitsstufe „Sicher“.
Warnhinweis:
Es wird dringend davon abgeraten, dieses Tool mit den Flags -i und (-A oder -b) gleichzeitig auszuführen. Diese Kombination öffnet jede ausführbare Datei auf Ihrem System für jeweils 3 Sekunden. Ich übernehme keine Verantwortung für einen Systemabsturz oder eine Verlangsamung, wenn Sie dies ausführen. Falls auf Ihrem System inaktive Malware vorhanden ist, wird diese dadurch ausgeführt. Ich empfehle außerdem, das gesamte /Applications-Verzeichnis nicht zu scannen, wenn Xcode installiert ist, da dies sehr lange dauert.
python -m pip install psutil| Argument | Beschreibung |
|---|
| -h, --help | Zeige diese Hilfemeldung und beende |
| -r, --running | Überprüfe aktuell laufende Prozesse |
| -i, --installed | Überprüfe alle installierten Anwendungen |
| -p /file.app | Überprüfe eine bestimmte Anwendung, z. B. /Applications/Safari.app |
| -A, --active | Führt entdeckte ausführbare Binärdateien aus, um aktiv entführbare Dylibs zu identifizieren |
| -P, --passive | Führt Prüfungen nur durch Ansicht der Dateiköpfe durch (Standard) |
| -b, --both | Führt beide Methoden der Schwachstellentests durch |
| -oS outputfile | Gibt die Standardausgabe in eine .log-Datei aus |
| -oC outputfile | Gibt Ergebnisse in eine .csv-Datei aus |
| -oA outputfile | Gibt Ergebnisse in eine .csv-Datei und ein Standardprotokoll aus |
| -s, --sipdisabled | Verwenden, wenn SIP auf dem System deaktiviert ist, um normalerweise schreibgeschützte Pfade zu durchsuchen |
| -v, --verbose | Gibt alle Ergebnisse im ausführlichen Modus während der Skriptausführung aus; ohne dies werden nur Schwachstellen mit der Sicherheitsstufe „Sicher“ auf der Konsole angezeigt |