
Una herramienta de enumeración para macOS inspirada en la herramienta de enumeración Seatbelt basada en Windows de harmjoy. Autor: Cedric Owens
SwiftBelt es un enumerador de macOS inspirado en la herramienta de enumeración Seatbelt basada en Windows de @harmjoy. SwiftBelt no utiliza ninguna utilidad de línea de comandos y en su lugar usa código Swift (aprovechando el framework Cocoa, las bibliotecas Foundation, las bibliotecas OSAKit, etc.) para realizar enumeración del sistema. Esto puede ser aprovechado desde el lado ofensivo para realizar enumeración una vez que se obtiene acceso a un host macOS. Intencionalmente no incluí ninguna función que cause ventanas emergentes (ej: enumeración del llavero).
Gracias a Ramos04 por contribuir código para buscar varias herramientas de Objective See y a mattreduce por contribuir código para el historial de zshell así como credenciales de Azure.

Asegúrate de que swift esté instalado en tu host macOS
Desde una terminal, haz cd al directorio SwiftBelt y ejecuta: "swift build" para generar el binario. El binario se colocará en la carpeta .build/debug dentro de la carpeta SwiftBelt y se llamará SwiftBelt
Copia al host deseado y elimina el atributo de cuarentena ($ xattr -c SwiftBelt) y establece como ejecutable ($ chmod +x SwiftBelt)
Ejecuta
Opciones de SwiftBelt:
-CheckFDA --> Verifica el Acceso Completo al Disco (sin generar una solicitud TCC al usuario incluso si Terminal no ha recibido ningún permiso TCC). Lo hace buscando TCC.db usando consultas de la API de Spotlight db. Devolverá si ya se ha concedido FDA a tu contexto de aplicación o no.
-SecurityTools --> Verifica la presencia de herramientas de seguridad comunes de macOS (al menos las que conozco)
-SystemInfo --> Verifica el contexto de ejecución actual, acceso de accesibilidad TCC, información básica del sistema, hora del último inicio, tiempo de inactividad, información sobre si la pantalla está bloqueada o no, e información de variables de entorno
-LockCheck --> Verifica si la pantalla está actualmente bloqueada o no (Añadí esto como una verificación separada y también lo incluí dentro de SystemInfo)
-SearchCreds --> Busca credenciales de ssh/aws/azure/gcloud
-Clipboard --> Vuelca el contenido del portapapeles
-RunningApps --> Lista todas las aplicaciones en ejecución
-ListUsers --> Lista las cuentas de usuario locales
-LaunchAgents --> Lista agentes de lanzamiento, daemons de lanzamiento y archivos de perfil de configuración
-BrowserHistory --> Intenta extraer el historial de Safari, Firefox, Chrome y Cuarentena (nota: para tu información, si Chrome o Firefox están en ejecución activa, la herramienta no podrá leer la base de datos bloqueada para extraer información). Sin embargo, la base de datos bloqueada se puede copiar a otro lugar y leer desde allí.
-SlackExtract --> Verifica si Slack está presente y si es así, lee la información de cookies, descargas y espacios de trabajo (aprovecha la investigación realizada por Cody Thomas)
-ShellHistory --> Lee el contenido del historial del shell (Bash o Zsh)
-Bookmarks --> Lee los marcadores guardados de Chrome
-ChromeUsernames --> Lee de ~/Library/Application Support/Google/Chrome/Default/Login Data que almacena urls junto con nombres de usuario para cada una
-UniversalAccessAuth --> Lee de /Library/Preferences/com.apple.universalaccessAuthWarning.plist para mostrar una lista de aplicaciones para las que el usuario ha recibido solicitudes de autorización junto con 1 (para aceptar) o 2 (para denegar)
-StickieNotes --> Lee el contenido de cualquier archivo abierto de Stickie Notes en el sistema
-TextEditCheck --> Verifica si hay documentos de TextEdit no guardados e intenta leer el contenido del archivo
-JupyterCheck --> Verifica la presencia de la base de datos de historial de ipython (que usa Jupyter notebook) y si se encuentra, lee el contenido (que incluye comandos de python ejecutados)
Para ejecutar todas las opciones:
./SwiftBelt
Para especificar ciertas opciones:
./SwiftBelt [option1] [option2] [option3]...
Ejemplo:
./SwiftBelt -SystemInfo -Clipboard -SecurityTools ...
Aunque esta herramienta no utiliza ninguna utilidad de línea de comandos (que son fáciles de detectar), esta herramienta lee varios archivos del sistema que pueden ser detectados por cualquier herramienta que aproveche el Endpoint Security Framework (estas lecturas de archivos en particular son capturadas por eventos ES_EVENT_TYPE_NOTIFY_OPEN dentro de ESF).