SwiftBelt Herramienta de Enumeración en macOS
SwiftBelt Herramienta de Enumeración en macOS

SwiftBelt: Herramienta de Enumeración en macOS

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 utiliza el código Swift (aprovechando el Cocoa Framework, las librerías Foundation, las librerías OSAKit, etc.) para realizar la enumeración del sistema. Esto puede ser aprovechado en el lado ofensivo para realizar la enumeración una vez que se obtiene acceso a un host macOS. Intencionalmente no he incluido ninguna función que cause pop-ups (ej: enumeración keychain).

Captura de SwiftBelt
Captura de SwiftBelt
Tabla de Contenido

Pasos

Puedes ejecutar el binario mach-o incluido de SwiftBelt en el directorio raíz de este repo o puedes editar el código de Swift y reconstruir un nuevo binario.

Para usar el mach-o incluido:

  1. Nota: No firmée el mach-o incluido. Por lo tanto, tendrás que seguir estos pasos para eliminar el atributo de quarantine para poder ejecutarlo: Una vez descargado, copia al host deseado y borra el atributo quarantine ($ xattr -c SwiftBelt) y colócalo como ejecutable ($ chmod +x SwiftBelt)
  2. Para ver el menú de ayuda: ./SwiftBelt -h

Menú de ayuda:

Opciones de SwiftBelt:

-SecurityTools –> Comprueba la presencia de herramientas de seguridad comunes de MacOS (al menos las que conozco)

-SystemInfo –> Información del sistema (información del SSID wifi, información de los nodos del directorio abierto, IPs internas, ssh/aws/gcloud/azure-cli cred info, información básica del sistema). Si está presente en el host, esta herramienta mostrará el contenido de las claves ssh, el archivo de hosts conocidos, los archivos aws cred, y la información del token gcloud

-Clipboard –> Volcar el contenido del portapapeles

-RunningApps –>Lista de todas las aplicaciones en funcionamiento

-ListUsers –> Lista de cuentas de usuarios locales

-LaunchAgents –>Lista de agentes de lanzamiento, demonios de lanzamiento y archivos de perfil de configuración

-BrowserHistory –> Intenta sacar el historial de Safari, Firefox, Chrome y Quarantine (nota para tu información: si Chrome o Firefox están funcionando activamente, la herramienta no podrá leer la base de datos bloqueada para extraer la información)

-SlackExtract –> Comprueba si Slack está presente y si es así, lee la información de las cookies, descargas y espacios de trabajo (aprovecha la investigación realizada por Cody Thomas)

-ShellHistory –> Lee el contenido del historial Shell (Bash o Zsh)

-Bookmarks –> Lee los marcadores guardados de Chrome

Uso

Para ejecutar todas las opciones:

./SwiftBelt

Para especificar ciertas opciones:

./SwiftBelt [opción1] [opción2] [opción3]…

Ejemplo:

./SwiftBelt -SystemInfo -Clipboard -SecurityTools …

Para editar el código Swift y reconstruir tu propio mach-o:

  1. Abre el archivo xcodeproj para SwiftBelt en Xcode
  2. Edita el código en main.swift como sea necesario en Xcode
  3. Desde un cd de terminal al directorio de SwiftBelt y ejecuta: “swift build” para generar el binario. El binario será creado en la carpeta .build/debug dentro de la carpeta SwiftBelt y se llamará SwiftBelt
  4. Copiar al host deseado y borrar el atributo quarantine ($ xattr -c SwiftBelt) y colocarlo como ejecutable ($ chmod +x SwiftBelt)
  5. Ejecutar

Detección

Aunque esta herramienta no utiliza ninguna utilidad de línea de comando (que son fáciles de detectar), esta herramienta lee de varios archivos en el sistema que pueden ser detectados por cualquier herramienta que aproveche el Endpoint Security Framework (estas lecturas de archivos en particular son capturadas por los eventos ES_EVENT_TYPE_NOTIFY_OPEN dentro de ESF).

Error: API rate limit exceeded for 216.246.112.50. (But here's the good news: Authenticated requests get a higher rate limit. Check out the documentation for more details.)

Mi Carro Close (×)

Tu carrito está vacío
Ver tienda