
Uma ferramenta de enumeração para macOS inspirada na ferramenta de enumeração Seatbelt do Windows, de harmjoy. Autor: Cedric Owens
SwiftBelt é um enumerador para macOS inspirado na ferramenta de enumeração Seatbelt baseada em Windows de @harmjoy. SwiftBelt não utiliza nenhum utilitário de linha de comando e, em vez disso, usa código Swift (aproveitando o Cocoa Framework, as bibliotecas Foundation, as bibliotecas OSAKit, etc.) para realizar a enumeração do sistema. Isso pode ser usado no lado ofensivo para realizar enumeração após obter acesso a um host macOS. Intencionalmente não inclui nenhuma função que cause pop-ups (ex: enumeração de chaveiros).
Agradecimentos a Ramos04 por contribuir com código para procurar várias ferramentas da Objective See e a mattreduce por contribuir com código para o histórico do zshell, bem como credenciais do azure.

Certifique-se de que o swift está instalado no seu host macOS
A partir de um terminal, acesse o diretório SwiftBelt e execute: "swift build" para gerar o binário. O binário será colocado na pasta .build/debug dentro da pasta SwiftBelt e será nomeado SwiftBelt
Copie para o host desejado e limpe o atributo de quarentena ($ xattr -c SwiftBelt) e defina como executável ($ chmod +x SwiftBelt)
Execute
Opções do SwiftBelt:
-CheckFDA --> Verificar o Acesso Total ao Disco (sem gerar um prompt TCC para o usuário, mesmo que o Terminal não tenha recebido nenhuma permissão TCC). Faz isso pesquisando pelo TCC.db usando consultas da API Spotlight db. Retornará se o FDA já foi concedido ao seu contexto de aplicativo ou não.
-SecurityTools --> Verificar a presença de ferramentas de segurança comuns do macOS (pelo menos as que conheço)
-SystemInfo --> Verificar o contexto de execução atual, acesso de Acessibilidade TCC, informações básicas do sistema, horário da última inicialização, tempo ocioso, informações se a tela está bloqueada ou não e informações de variáveis de ambiente
-LockCheck --> Verificar se a tela está atualmente bloqueada ou não (adicionei isso como uma verificação separada, bem como agrupei no SystemInfo)
-SearchCreds --> Procurar por credenciais ssh/aws/azure/gcloud
-Clipboard --> Despejar o conteúdo da área de transferência
-RunningApps --> Listar todos os aplicativos em execução
-ListUsers --> Listar contas de usuário locais
-LaunchAgents --> Listar agentes de inicialização, daemons de inicialização e arquivos de perfil de configuração
-BrowserHistory --> Tentar obter o histórico do Safari, Firefox, Chrome e Quarantine (nota: se o Chrome ou Firefox estiver ativamente em execução, a ferramenta não conseguirá ler o banco de dados bloqueado para extrair informações). No entanto, o banco de dados bloqueado pode ser copiado para outro local e lido.
-SlackExtract --> Verificar se o Slack está presente e, em caso afirmativo, ler informações de cookies, downloads e workspaces (aproveita pesquisa feita por Cody Thomas)
-ShellHistory --> Ler o conteúdo do histórico do shell (Bash ou Zsh)
-Bookmarks --> Ler favoritos salvos do Chrome
-ChromeUsernames --> Ler de ~/Library/Application Support/Google/Chrome/Default/Login Data, que armazena URLs junto com nomes de usuário para cada um
-UniversalAccessAuth --> Lê de /Library/Preferences/com.apple.universalaccessauthWarning.plist para mostrar uma lista de aplicativos para os quais o usuário recebeu prompts de autorização, juntamente com 1 (para aceitar) ou 2 (para negar)
-StickieNotes --> Ler o conteúdo de quaisquer arquivos abertos de Notas Autoadesivas no sistema
-TextEditCheck --> Verificar documentos não salvos do TextEdit e tentar ler o conteúdo do arquivo
-JupyterCheck --> Verificar a presença do banco de dados ipython history (que o Jupyter notebook usa) e, se encontrado, ler o conteúdo (que inclui comandos python executados)
Para executar todas as opções:
./SwiftBelt
Para especificar certas opções:
./SwiftBelt [opção1] [opção2] [opção3]...
Exemplo:
./SwiftBelt -SystemInfo -Clipboard -SecurityTools ...
Embora esta ferramenta não utilize utilitários de linha de comando (que são fáceis de detectar), ela lê vários arquivos do sistema que podem ser detectados por qualquer ferramenta que utilize o Endpoint Security Framework (essas leituras de arquivo em particular são capturadas por eventos ES_EVENT_TYPE_NOTIFY_OPEN dentro do ESF).