
Application Hijack Scanner per macOS

boko.py è uno scanner di applicazioni per macOS che cerca e identifica potenziali vulnerabilità di dylib hijacking e dylib deboli per eseguibili di applicazioni, nonché script che un'applicazione potrebbe utilizzare e che hanno il potenziale per essere backdoorati. Lo strumento segnala anche file interessanti e li elenca invece di dover navigare manualmente nel filesystem per l'analisi. Con la funzione di scoperta attiva, non c'è più bisogno di ipotizzare se un eseguibile è vulnerabile al dylib hijacking!
La ragione alla base della creazione di questo strumento è che volevo un maggiore controllo sui dati scoperti da Dylib Hijack Scanner. La maggior parte degli scanner disponibili pubblicamente si fermano non appena scoprono il primo caso di una dylib vulnerabile senza espandere il resto degli rpath. Dato che a volte il primo risultato viene espanso in un file inesistente all'interno di un'area protetta da SIP, volevo ottenere il resto di quei percorsi espansi. Per questo motivo, ci sono falsi positivi, quindi lo strumento assegna un campo di certezza per ogni elemento.
| Certezza | Descrizione |
|---|---|
| Certo | La vulnerabilità è sfruttabile al 100% |
| Alto | Se la vulnerabilità è relativa a un eseguibile principale e l'rpath è al 2° posto nell'ordine di caricamento, c'è una buona probabilità che la vulnerabilità sia sfruttabile |
| Potenziale | Questo è assegnato a dylib e script backdoorabili, vale la pena indagare ma potrebbe non essere sfruttabile |
| Basso | Bassa probabilità che sia sfruttabile a causa dell'ordine di caricamento tardivo, ma conoscenza è potere |
La spina dorsale di questo strumento è basata su scan.py di DylibHijack di Patrick Wardle (@synack).
boko.py [-h] (-r | -i | -p /path/to/app) (-A | -P | -b) [-oS outputfile | -oC outputfile | -oA outputfile] [-s] [-v]
Si consiglia solo di utilizzare la modalità attiva (-A) con il flag -p selezionando un programma specifico. Inoltre, è una buona idea usare -v con -oS o -oA, a meno che non si cerchino solo vulnerabilità di certezza Certo.
Nota di avvertenza:
È fortemente sconsigliato eseguire questo strumento con i flag -i e (-A o -b) insieme. Questa combinazione aprirà ogni eseguibile sul sistema per 3 secondi alla volta. Non mi assumo alcuna responsabilità per il crash o il rallentamento del sistema a causa di questa esecuzione. Inoltre, se sul sistema è presente malware dormiente, questo verrà eseguito. Raccomando inoltre di non scansionare l'intera directory /Applications se Xcode è installato perché richiede molto tempo.
python -m pip install psutil| Argomento | Descrizione |
|---|
| -h, --help | Mostra questo messaggio di aiuto ed esci |
| -r, --running | Controlla i processi attualmente in esecuzione |
| -i, --installed | Controlla tutte le applicazioni installate |
| -p /file.app | Controlla un'applicazione specifica, ad es. /Application/Safari.app |
| -A, --active | Esegue i binari eseguibili scoperti per identificare attivamente le dylib dirottabili |
| -P, --passive | Esegue controlli solo visualizzando le intestazioni dei file (Predefinito) |
| -b, --both | Esegue entrambi i metodi di test delle vulnerabilità |
| -oS outputfile | Invia l'output standard a un file .log |
| -oC outputfile | Invia i risultati a un file .csv |
| -oA outputfile | Invia i risultati a un file .csv e a un log standard |
| -s, --sipdisabled | Da usare se SIP è disabilitato sul sistema per cercare percorsi tipicamente di sola lettura |
| -v, --verbose | Mostra tutti i risultati in modalità verbose durante l'esecuzione dello script; senza questo, vengono visualizzati solo i difetti di certezza Certo |