Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
osxcollector — Um kit de ferramentas forense para coleta e análise de evidências para OS X | Kitploit
Ferramentas/GitHubGitHub/yelparchive/osxcollector
Forensia de DiscoOSINT (Inteligência de Fontes Abertas)Forensia de MemóriaAnálise ForenseForensia DigitalResposta a IncidentesArchived
GitHubyelparchive/osxcollector

osxcollector

Um kit de ferramentas forense para coleta e análise de evidências para OS X

Ver Repositório
1.9k2398há 7 anosRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar
Site

osxcollector

Build Status PyPI

Manual do OSXCollector

O OSXCollector é um kit de ferramentas forenses de coleta e análise de evidências para OSX.

Coleta Forense

O script de coleta é executado em uma máquina potencialmente infectada e gera um arquivo JSON que descreve a máquina alvo. O OSXCollector coleta informações de plists, bancos de dados SQLite e do sistema de arquivos local.

Análise Forense

Munido da coleta forense, um analista pode responder perguntas como:

  • Esta máquina está infectada?
  • Como esse malware chegou lá?
  • Como posso prevenir e detectar novas infecções?

O Yelp automatiza a análise da maioria das execuções do OSXCollector, convertendo sua saída em um resumo legível e acionável de apenas os itens suspeitos. Confira o projeto Filtros de Saída do OSXCollector para aprender como aproveitar ao máximo a análise automatizada da saída do OSXCollector.

Realizando a Coleta

osxcollector.py é um único arquivo Python que é executado sem dependências em uma máquina OSX padrão. Isso torna muito fácil executar a coleta em qualquer máquina – sem complicações com brew, pip, arquivos de configuração ou variáveis de ambiente. Basta copiar o único arquivo para a máquina e executá-lo:

sudo osxcollector.py é tudo o que é preciso.

root@kitploit:~
$ sudo osxcollector.py
Wrote 35394 lines.
Output in osxcollect-2014_12_21-08_49_39.tar.gz

Se você acabou de clonar o repositório GitHub, osxcollector.py está dentro do diretório osxcollector/, então você precisa executá-lo como:

root@kitploit:~
$ sudo osxcollector/osxcollector.py

IMPORTANTE: certifique-se de que o comando python na sua máquina Mac OS X use o interpretador Python padrão fornecido com o sistema e não seja substituído, por exemplo, pela versão do Python instalada através do brew. O OSXCollector depende de algumas ligações nativas do Python para bibliotecas do OS X, que podem não estar disponíveis em outras versões do Python que não a originalmente instalada no seu sistema. Alternativamente, você pode executar osxcollector.py especificando explicitamente a versão do Python que você deseja usar:

root@kitploit:~
$ sudo /usr/bin/python2.7 osxcollector/osxcollector.py

A saída JSON do coletor, junto com alguns arquivos úteis como logs do sistema, foi compactada em um .tar.gz para entrega a um analista.

osxcollector.py também tem muitas opções úteis para alterar como a coleta funciona:

  • -i INCIDENT_PREFIX/--id=INCIDENT_PREFIX: Define um identificador que é usado como prefixo do arquivo de saída. O valor padrão é osxcollect.

    root@kitploit:~
    $ sudo osxcollector.py -i IncontinentSealord
    Wrote 35394 lines.
    Output in IncontinentSealord-2014_12_21-08_49_39.tar.gz
    

    Seja criativo com os nomes de incidente, isso torna mais fácil rir da dor.

  • -p ROOTPATH/--path=ROOTPATH: Define o caminho para a raiz do sistema de arquivos no qual executar a coleta. O valor padrão é /. Isso é ótimo para executar a coleta na imagem de um disco.

    root@kitploit:~
    $ sudo osxcollector.py -p '/mnt/powned'
    
  • -s SECTION/--section=SECTION: Executa apenas uma parte da coleta completa. Pode ser especificado mais de uma vez. A lista completa de seções e subseções é:

    • version

Detalhes da Coleta

O coletor gera um .tar.gz contendo todos os artefatos coletados. O arquivo contém um arquivo JSON com a maioria das informações. Além disso, um conjunto de logs úteis dos logs do sistema alvo é incluído.

Chaves Comuns

Todo Registro

Cada linha do arquivo JSON registra 1 informação. Existem algumas chaves comuns que aparecem em todos os registros JSON:

  • osxcollector_incident_id: Um ID único compartilhado por todos os registros.
  • osxcollector_section: A seção ou tipo de dado que este registro contém.
  • osxcollector_subsection: A subseção ou descritor mais detalhado do tipo de dado que este registro contém.
Registros de Arquivos

Para registros que representam arquivos, há várias chaves úteis:

  • atime: O tempo de acesso ao arquivo.
  • ctime: O tempo de criação do arquivo.
  • mtime: O tempo de modificação do arquivo.
  • file_path: O caminho absoluto para o arquivo.
  • md5: Hash MD5 do conteúdo do arquivo.
  • sha1: Hash SHA1 do conteúdo do arquivo.
  • sha2: Hash SHA2 do conteúdo do arquivo.

Para registros que representam arquivos baixados:

  • xattr-wherefrom: Uma lista contendo as URLs de origem e de referência para o arquivo baixado.
  • xattr-quarantines: Uma string descrevendo qual aplicativo baixou o arquivo.
Registros SQLite

Para registros que representam uma linha de um banco de dados SQLite:

  • osxcollector_table_name: O nome da tabela de onde a linha vem.
  • osxcollector_db_path: O caminho absoluto para o arquivo SQLite.

Para registros que representam dados associados a um usuário específico:

  • osxcollector_username: O nome do usuário

Carimbos de Data/Hora

O OSXCollector tenta converter carimbos de data/hora em strings de data/hora legíveis por humanos no formato YYYY-mm-dd hh:MM:ss. Ele usa heurísticas para identificar automaticamente vários carimbos:

  • segundos desde a época
  • milissegundos desde a época
  • segundos desde 2001-01-01
  • segundos desde 1601-01-01

Seções

Seção version

A versão atual do OSXCollector.

Seção system_info

Coleta informações básicas sobre o sistema:

  • nome do sistema
  • nome do nó
  • release
  • versão
  • máquina
Seção kext

Coleta as extensões do kernel de:

  • /System/Library/Extensions
  • /Library/Extensions
Seção startup

Coleta informações sobre os LaunchAgents, LaunchDaemons, ScriptingAdditions, StartupItems e outros itens de login de:

  • /System/Library/LaunchAgents
  • /System/Library/LaunchDaemons
  • /Library/LaunchAgents
  • ~/Library/LaunchAgents
  • /Library/LaunchDaemons
  • /System/Library/ScriptingAdditions
  • /Library/ScriptingAdditions
  • /System/Library/StartupItems
  • /Library/StartupItems
  • ~/Library/Preferences/com.apple.loginitems.plist

Mais informações sobre a inicialização do Mac OS X podem ser encontradas aqui: http://www.malicious-streams.com/article/Mac_OSX_Startup.pdf

Seção applications

Calcula hash de aplicativos instalados e coleta o histórico de instalação de:

  • /Applications
  • ~/Applications
  • /Library/Receipts/InstallHistory.plist
Seção quarantines

Quarentenas são basicamente as informações necessárias para mostrar o 'Tem certeza de que deseja executar isso?' quando um usuário tenta abrir um arquivo baixado da Internet. Para mais detalhes, consulte a explicação do Suporte Apple sobre Quarentenas: http://support.apple.com/kb/HT3662

Esta seção também coleta informações da verificação de malware baseada em hash XProtect para arquivos em quarentena. O plist está em: /System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/XProtect.plist

O XProtect também adiciona versões mínimas para Plugins de Internet. Esse plist está em: /System/Library/CoreServices/CoreTypes.bundle/Contents/Resources/XProtect.meta.plist

Seção downloads

Calcula hash de todos os arquivos baixados pelos usuários de:

  • ~/Downloads
  • ~/Library/Mail Downloads
  • ~/Library/Containers/com.apple.mail/Data/Library/Mail Downloads
Seção chrome

Coleta as seguintes informações do navegador Google Chrome:

  • Histórico
  • Histórico Arquivado
  • Cookies
  • Extensões
  • Dados de Login
  • Sites Principais
  • Dados Web

Estes dados são extraídos de ~/Library/Application Support/Google/Chrome/Default

Seção firefox

Coleta informações dos diferentes bancos de dados SQLite em um perfil do Firefox:

  • Cookies
  • Downloads
  • Histórico de Formulários
  • Histórico
  • Signons
  • Permissões
  • Complementos
  • Extensões
  • Preferências de Conteúdo
  • Relatório de Saúde
  • Loja de Webapps

Estas informações são extraídas de ~/Library/Application Support/Firefox/Profiles

Para mais detalhes sobre a pasta de perfil do Firefox, veja http://kb.mozillazine.org/Profile_folder_-_Firefox

Seção safari

Coleta informações dos diferentes plists e bancos de dados SQLite em um perfil do Safari:

  • Downloads
  • Histórico
  • Extensões
  • Bancos de Dados
  • Armazenamento Local
Seção accounts

Coleta informações sobre contas de usuários:

  • administradores do sistema: /private/var/db/dslocal/nodes/Default/groups/admin.plist
  • usuários do sistema: /private/var/db/dslocal/nodes/Default/users
  • contas sociais: ~/Library/Accounts/Accounts3.sqlite
  • itens recentes dos usuários: ~/Library/Preferences/com.apple.recentitems.plist
Seção mail

Calcula hash de arquivos nos diretórios do aplicativo de e-mail:

  • ~/Library/Mail
  • ~/Library/Mail Downloads
Seção full_hash

Calcula hash de todos os arquivos no disco. Todos eles. Isso não é executado por padrão. Deve ser acionado com:

root@kitploit:~
$ sudo osxcollector.py -s full_hash

Análise Manual Básica

A análise forense é um pouco de arte e um pouco de ciência. Cada analista verá uma história um pouco diferente ao ler a saída do OSXCollector. Isso é parte do que torna a análise divertida.

Geralmente, a coleta é realizada em uma máquina alvo porque algo está estranho: o antivírus encontrou um arquivo que não gosta, a inspeção profunda de pacotes observou uma chamada externa, o monitoramento de endpoint notou um novo item de inicialização. Os detalhes desse alerta inicial - um caminho de arquivo, um carimbo de data/hora, um hash, um domínio, um IP, etc. - são suficientes para começar.

Carimbos de Data/Hora

Simplesmente usar grep alguns minutos antes e depois de um carimbo de data/hora funciona muito bem:

root@kitploit:~
$ cat INCIDENT32.json | grep '2014-01-01 11:3[2-8]'

Histórico do Navegador

Está lá. Uma ferramenta como o jq pode ser muito útil para fazer uma saída mais elaborada:

root@kitploit:~
$ cat INCIDENT32.json | grep '2014-01-01 11:3[2-8]' | jq 'select(has("url"))|.url'

Um Único Usuário

root@kitploit:~
$ cat INCIDENT32.json | jq 'select(.osxcollector_username=="ivanlei")|.'

Análise Automatizada

O projeto Filtros de Saída do OSXCollector contém filtros que processam e transformam a saída do OSXCollector. O objetivo dos filtros é facilitar a análise da saída do OSXCollector.

Dicas de Desenvolvimento

A funcionalidade do OSXCollector está armazenada em um único arquivo: osxcollector.py. O coletor deve ser executado em uma instalação limpa do OS X sem pacotes ou dependências adicionais.

Certifique-se de que todos os testes do OSXCollector passem antes de editar o código fonte. Você pode executar os testes usando: make test

Após fazer alterações no código fonte, execute make test novamente para verificar se suas alterações não quebraram nenhum dos testes.

Licença

Este trabalho é licenciado sob a GNU General Public License e é uma derivação de https://github.com/jipegit/OSXAuditor

Postagem no Blog

  • OSXCollector: Forensic Collection and Automated Analysis for OS X por Ivan Leichtling

Apresentações

  • OSXCollector: Automated forensic evidence collection & analysis for OS X por Kuba Sendor @ BruCON 0x07
  • Squashing Rotten Apples: Automated forensics & analysis for Mac OS X with OSXCollector por Kuba Sendor @ BSides Manchester 2015
  • OSXCollector por Ivan Leichtling @ Macbrained's August Meet-Up
  • OSXCollector - Automated Forensic Evidence Collection & Analysis for OS X por Ivan Leichtling @ OpenNSM
  • OSXCollector - Automated Forensic Evidence Collection & Analysis for OS X por Ivan Leichtling @ Duo Tech Talk (blog post)

Apresentações Externas

  • OSX Archaeology: Becoming Indiana Jones with OSXCollector and Strata por Chris Henderson & Justin Larson @ SAINTCon 2015

Recursos

Quer aprender mais sobre forense em OS X?

  • mac4n6.com da Sarah Edwards - As melhores apresentações sobre forense em Mac.

Mais algumas ferramentas interessantes:

  • KnockKnock - KnockKnock é um script Python de linha de comando que exibe binários persistentes do OS X configurados para serem executados automaticamente a cada inicialização.
  • Grr - Google Rapid Response: forense remota ao vivo para resposta a incidentes
  • osquery - Instrumentação, monitoramento e análise do sistema operacional orientados por SQL
Baixar ferramenta
  • system_info
  • kext
  • startup
    • launch_agents
    • scripting_additions
    • startup_items
    • login_items
  • applications
    • applications
    • install_history
  • quarantines
  • downloads
    • downloads
    • email_downloads
    • old_email_downloads
  • chrome
    • history
    • archived_history
    • cookies
    • login_data
    • top_sites
    • web_data
    • databases
    • local_storage
    • preferences
  • firefox
    • cookies
    • downloads
    • formhistory
    • history
    • signons
    • permissions
    • addons
    • extension
    • content_prefs
    • health_report
    • webapps_store
    • json_files
  • safari
    • downloads
    • history
    • extensions
    • databases
    • localstorage
    • extension_files
  • accounts
    • system_admins
    • system_users
    • social_accounts
    • recent_items
  • mail
  • full_hash
  • root@kitploit:~
    $ sudo osxcollector.py -s 'startup' -s 'downloads'
    
  • -c/--collect-cookies: Coleta o valor dos cookies. Por padrão, o OSXCollector não despeja o valor de um cookie, pois pode conter informações sensíveis (ex.: id de sessão).

  • -l/--collect-local-storage: Coleta os valores armazenados no armazenamento local dos navegadores web. Por padrão, o OSXCollector não despeja os valores, pois podem conter informações sensíveis.

  • -d/--debug: Ativa a saída detalhada e pontos de parada do Python. Se algo estiver errado com o OSXCollector, tente isso.

    root@kitploit:~
    $ sudo osxcollector.py -d