
Un outil d'énumération pour macOS inspiré de l'outil d'énumération Seatbelt basé sur Windows de harmjoy. Auteur : Cedric Owens
SwiftBelt est un outil d'énumération macOS inspiré de l'outil d'énumération Seatbelt basé sur Windows de @harmjoy. SwiftBelt n'utilise aucun utilitaire de ligne de commande et utilise plutôt du code Swift (en tirant parti du framework Cocoa, des bibliothèques Foundation, des bibliothèques OSAKit, etc.) pour effectuer l'énumération du système. Cela peut être utilisé du côté offensif pour effectuer une énumération une fois que vous avez accès à un hôte macOS. Je n'ai volontairement inclus aucune fonction provoquant des pop-ups (ex : énumération du trousseau).
Merci à Ramos04 pour avoir contribué au code de recherche de divers outils Objective See et à mattreduce pour avoir contribué au code pour l'historique zshell ainsi que pour les identifiants Azure.

Assurez-vous que Swift est installé sur votre hôte macOS
Depuis un terminal, placez-vous dans le répertoire SwiftBelt et exécutez : "swift build" pour générer le binaire. Le binaire sera placé dans le dossier .build/debug à l'intérieur du dossier SwiftBelt et sera nommé SwiftBelt
Copiez-le sur l'hôte souhaité et supprimez l'attribut de quarantaine ($ xattr -c SwiftBelt) et définissez-le comme exécutable ($ chmod +x SwiftBelt)
Exécutez
Options de SwiftBelt :
-CheckFDA --> Vérifier l'accès au disque complet (sans générer une invite TCC à l'utilisateur même si Terminal n'a reçu aucune autorisation TCC). Effectue cette recherche en interrogeant la base de données TCC à l'aide des requêtes de l'API Spotlight. Renvoie si FDA a déjà été accordé au contexte de votre application ou non.
-SecurityTools --> Vérifier la présence d'outils de sécurité macOS courants (du moins ceux que je connais)
-SystemInfo --> Vérifier le contexte d'exécution actuel, l'accès TCC Accessibility, les informations système de base, l'heure du dernier démarrage, le temps d'inactivité, des informations sur le verrouillage de l'écran et les informations des variables d'environnement
-LockCheck --> Vérifier si l'écran est verrouillé ou non (j'ai ajouté cette vérification séparément ainsi que regroupée dans SystemInfo)
-SearchCreds --> Rechercher des identifiants ssh/aws/azure/gcloud
-Clipboard --> Vider le contenu du presse-papiers
-RunningApps --> Lister toutes les applications en cours d'exécution
-ListUsers --> Lister les comptes d'utilisateurs locaux
-LaunchAgents --> Lister les agents de lancement, les démons de lancement et les fichiers de profil de configuration
-BrowserHistory --> Tenter d'extraire l'historique de Safari, Firefox, Chrome et Quarantine (note : si Chrome ou Firefox est actif, l'outil ne pourra pas lire la base de données verrouillée pour extraire les informations). Cependant, la base de données verrouillée peut être copiée ailleurs et lue.
-SlackExtract --> Vérifier si Slack est présent et si oui, lire les informations des cookies, des téléchargements et des espaces de travail (utilise les recherches de Cody Thomas)
-ShellHistory --> Lire le contenu de l'historique du shell (Bash ou Zsh)
-Bookmarks --> Lire les signets enregistrés de Chrome
-ChromeUsernames --> Lire depuis ~/Library/Application Support/Google/Chrome/Default/Login Data qui stocke les URL avec les noms d'utilisateur pour chacune
-UniversalAccessAuth --> Lit depuis /Library/Preferences/com.apple.universalaccessAuthWarning.plist pour afficher une liste d'applications pour lesquelles l'utilisateur a reçu des invites d'autorisation avec 1 (pour accepter) ou 2 (pour refuser)
-StickieNotes --> Lit le contenu de tout fichier Stickie Notes ouvert sur le système
-TextEditCheck --> Vérifie la présence de documents TextEdit non enregistrés et tente de lire le contenu des fichiers
-JupyterCheck --> Vérifie la présence de la base de données d'historique ipython (utilisée par Jupyter notebook) et si trouvée, lit son contenu (qui inclut les commandes Python exécutées)
Pour exécuter toutes les options :
./SwiftBelt
Pour spécifier certaines options :
./SwiftBelt [option1] [option2] [option3]...
Exemple :
./SwiftBelt -SystemInfo -Clipboard -SecurityTools ...
Bien que cet outil n'utilise aucun utilitaire de ligne de commande (faciles à détecter), il lit plusieurs fichiers sur le système qui peuvent être détectés par tout outil utilisant le framework Endpoint Security (ces lectures de fichiers en particulier sont capturées par les événements ES_EVENT_TYPE_NOTIFY_OPEN dans ESF).