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
machscope — Explorador de IPC do macOS, launchd, Mach-O e relações de confiança — ferramenta forense nativa de terminal sem dependências | Kitploit
Ferramentas/GitHubGitHub/m10ust/machscope
ReconhecimentoAnálise de VulnerabilidadesEngenharia ReversaAnálise ForenseColeta de InformaçõesAnálise de MalwareForensia DigitalAnálise de BináriosInteligência de AmeaçasResposta a Incidentes
GitHubm10ust/machscope
140há 20 diasAinda não revisado

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 →

machscope

Explorador de IPC do macOS, launchd, Mach-O e relações de confiança — ferramenta forense nativa de terminal sem dependências

Ver Repositório
Compartilhar

machscope

machscope é um explorador macOS nativo do terminal que transforma processos, jobs do launchd, serviços Mach, bundles, assinaturas, entitlements e ligações Mach-O em um único gráfico interrogável.

Ele existe para responder a uma pergunta simples de forma brutalmente eficaz:

A que este processo, serviço, binário ou bundle está realmente conectado?

Ele correlaciona processos, executáveis, jobs do launchd, serviços Mach, bundles, serviços XPC embutidos, assinaturas de código, entitlements, ligações Mach-O e achados de confiança/anomalias em uma única visão.

Se Activity Monitor, ps, lsof, launchctl, codesign e otool tivessem um filho paranóico e amigável para operadores, seria este.

Por que isso existe

Os internals do macOS são elegantes, mas a verdade está espalhada.

Para entender um processo suspeito, você frequentemente acaba alternando entre:

  • ps
  • lsof
  • launchctl
  • codesign
  • otool
  • bundle Info.plist
  • plists do launchd
  • suas próprias anotações e suposições

O machscope condensa esse fluxo de trabalho em uma única ferramenta de terminal.

Ele é feito para:

  • triagem de segurança
  • caça a malware
  • investigação de persistência
  • exploração de serviços do launchd e Mach
  • depurar comportamentos estranhos do macOS
  • entender como um app é realmente estruturado

O que ele faz

Dado um PID, caminho, label do launchd ou nome de serviço Mach, o machscope pode correlacionar:

  • metadados de processo via ps
  • caminho do executável e contexto de arquivos abertos via lsof
  • estado do launchd e dicas de label via launchctl
  • metadados de plists do launchd e MachServices declarados
  • identidade do bundle e serviços .xpc embutidos
  • identificador da assinatura de código, team ID, cadeia de autoridade e dicas de runtime
  • dados de entitlements via codesign
  • cabeçalhos Mach-O, dylibs vinculadas, load commands e rpaths via otool
  • nós/arestas do grafo para exportação downstream
  • achados de confiança com evidências

Ele não pretende observar todas as relações XPC ao vivo. Algumas relações são declaradas, não observadas. Essa honestidade é intencional.

Por que o machscope em vez das ferramentas brutas do macOS?

  • o ps mostra o processo, não a cadeia de propriedade
  • o launchctl mostra o job, não o contexto completo de binário/bundle/confiança
  • o codesign mostra a identidade, não relações de runtime
  • o otool mostra as ligações, não a exposição de serviços do launchd ou Mach
  • o machscope correlaciona tudo isso em uma única passada

Recursos

  • Python sem dependências
    • usa apenas a biblioteca padrão do Python
  • Nativo do terminal
    • saída legível para humanos em primeiro lugar, JSON quando você quiser
  • Resolução flexível de alvos
    • inspecione um PID, executável, app bundle, label do launchd ou serviço Mach
  • Pivôs de resolução do --follow
    • alvos de bundle são resolvidos para o seu executável
    • serviços Mach são resolvidos para o job do launchd declarante e o executável
    • labels do launchd pivotam para o PID ativo quando presente
  • Pontuação de confiança/anomalias
    • expõe estranhezas sem fingir que toda coisa estranha é malware
  • Modelo de grafo simples
    • graph.nodes e graph.edges são projetados para futuros fluxos de trabalho de TUI, renderer ou diff

Comandos

root@kitploit:~
./machscope.py inspect <pid|path|launchd-label|mach-service>
./machscope.py inspect <target> --follow
./machscope.py inspect <target> --json
./machscope.py scan --limit 40 --min-score 1
./machscope.py services [filter]

Exemplos

Inspecionar um processo ativo

root@kitploit:~
./machscope.py inspect 1
./machscope.py inspect 57382

Inspecionar um app ou binário

root@kitploit:~
./machscope.py inspect /System/Applications/Calculator.app --follow
./machscope.py inspect /usr/libexec/remoted

Inspecionar um job do launchd

root@kitploit:~
./machscope.py inspect com.apple.WindowServer --follow
./machscope.py inspect ai.openclaw.gateway --follow

Inspecionar um serviço Mach

root@kitploit:~
./machscope.py inspect com.apple.dnssd.service --follow

Escanear por anomalias

root@kitploit:~
./machscope.py scan --limit 40 --min-score 1
./machscope.py scan --limit 10 --min-score 6

Navegar pelos serviços declarados

root@kitploit:~
./machscope.py services
./machscope.py services mDNS
./machscope.py services com.apple

Exemplo de saída

root@kitploit:~
Target: com.apple.dnssd.service [mach-service follow]
Resolved via: mach-service-launchd
Executable: /usr/sbin/mDNSResponder
Launchd: com.apple.mDNSResponder.reloaded
Plist: /System/Library/LaunchDaemons/com.apple.mDNSResponder.plist
Signature: apple-platform team=not set id=com.apple.mDNSResponder
Mach services: com.apple.dnssd.service, com.apple.mDNSResponder.control, com.apple.mDNSResponder.log_utility
Entitlements: 0
Linked dylibs: 25  RPATHs: 0
Trust: score=1 verdict=ordinary
Findings:
- [LOW] T012 Odd launchd label suffix

Saída JSON

O inspect --json retorna um objeto estruturado projetado para scripts e futuros trabalhos de UI.

Estrutura de nível superior:

  • target
  • target_resolution
  • process
  • binary
  • bundle
  • launchd
  • trust
  • graph.nodes
  • graph.edges

O grafo é intencionalmente simples para poder alimentar:

  • uma futura TUI
  • um renderer
  • um modo diff
  • outras ferramentas

Como o --follow funciona

O --follow é onde o machscope começa a parecer menos um despejador de metadados e mais um explorador.

Ele adiciona pivôs de resolução como:

  • alvo de bundle → executável
  • serviço Mach → job do launchd declarante → executável
  • label do launchd → estado do launchctl print → PID ativo quando disponível

Isso importa porque os artefatos mais interessantes do macOS geralmente não são a coisa literal que você digitou, mas o que está por trás dela.

Achados de confiança

O machscope inclui uma camada simples de confiança/anomalias.

Exemplos de coisas que ele pode expor:

  • binários ausentes por trás de entradas de persistência
  • alvos de execução graváveis pelo usuário
  • entitlements sensíveis em código que não é da Apple
  • incompatibilidades entre label do launchd e identidade do bundle
  • sufixos estranhos do launchd como .reloaded
  • caminhos com aparência de sistema que não validam como esperado

Isto não é um mecanismo de veredicto de malware. É uma forma de expor pistas, reduzir pontos cegos e tornar cadeias suspeitas mais fáceis de interrogar.

Decisões de design

Livre de dependências por design

A primeira versão usa intencionalmente:

  • biblioteca padrão do Python
  • apenas ferramentas nativas do macOS

As ferramentas encapsuladas incluem:

  • ps
  • lsof
  • launchctl
  • codesign
  • otool
  • file

Isso mantém a ferramenta fácil de clonar, inspecionar e executar em um sistema mais ou menos padrão.

Honesto sobre visibilidade

Algumas relações são declaradas, não observadas.

Por exemplo:

  • plists do launchd podem declarar serviços Mach
  • bundles podem revelar serviços XPC embutidos
  • mas as ferramentas públicas nem sempre expõem relações XPC cliente/servidor ao vivo de forma limpa

O machscope prefere ser explícito a fingir certeza.

Requisitos

  • macOS
  • Python 3
  • acesso a ferramentas nativas como ps, lsof, launchctl, codesign, otool e file

Privilégios

Execute-o como um usuário normal primeiro.

Isso geralmente é suficiente para respostas úteis.

Alguns detalhes podem ser parciais sem privilégios elevados, especialmente em relação a:

  • lsof
  • launchctl
  • detalhes de assinatura de código em alguns alvos

Se você elevar privilégios, faça-o deliberadamente.

Bons casos de uso

  • “O que exatamente é dono deste serviço Mach?”
  • “Este job do launchd é normal, obsoleto ou quebrado?”
  • “Por que este processo tem o launchd como pai, mas não onde eu esperava?”
  • “Quais entitlements este helper realmente tem?”
  • “Este app bundle está escondendo serviços XPC embutidos?”
  • “Por que este processo parece suspeito?”

Não-objetivos

O machscope não está tentando ser:

  • um EDR completo
  • um sistema de telemetria de kernel ao vivo
  • um observador XPC perfeito
  • um app GUI
  • um framework gigante

É uma ferramenta local afiada para tornar os internals do macOS legíveis.

Status

Inicial, mas já útil.

A saída atual e o modelo de grafo são deliberadamente moldados para que versões futuras possam adicionar:

  • exploração por TUI
  • modo diff
  • integrações de exportação/renderização
  • regras de confiança mais ricas
  • melhor navegação de grafo entre alvos
Baixar ferramenta