Pular para o conteúdo

Captura em nível de sistema

Alguns alvos nem sequer permitem ler o texto claro por dentro. Os aplicativos nativos do macOS, junto com aplicativos especialmente teimosos e profundamente ocultos, bloqueiam qualquer tipo de interferência externa antes mesmo de ela começar. A captura em nível de sistema não roda dentro do programa; ela observa a partir das camadas mais baixas do sistema. Mesmo esses alvos, dos quais as ferramentas comuns não conseguem chegar nem perto, têm seu texto claro exposto por completo. Esta é a última carta que os métodos de captura locais têm na manga.

Este artigo trata do macOS. No Windows, os programas de sistema que passam pela pilha de rede do sistema (.NET / PowerShell, etc.) têm uma capacidade equivalente; veja Captura na camada de aplicação nesta máquina.


1. Ela enxerga o que “outras ferramentas não alcançam”

Seção intitulada “1. Ela enxerga o que “outras ferramentas não alcançam””

Quer ver o que os aplicativos nativos do macOS, os serviços do sistema ou aqueles aplicativos teimosos e profundamente ocultos estão dizendo aos seus servidores? Normalmente você esbarra em um muro a cada passo: a captura por proxy é rejeitada (eles recusam o certificado e simplesmente lançam um erro), a leitura do texto claro por dentro do programa é bloqueada pelas proteções do sistema, e o que você captura na NIC é apenas texto cifrado. A captura em nível de sistema é uma das poucas formas de ler o texto claro dessas trocas.

Os métodos de captura locais vão cada um mais longe que o anterior, e este está bem no final:

Alvo NIC / por processo Captura na camada de aplicação Captura em nível de sistema nesta máquina
Programas comuns ✅ (exagero)
Fixação de certificado / criptografia personalizada 🔒 texto cifrado ✅ texto claro ✅ texto claro
Aplicativos teimosos / altamente ocultos 🔒 / ❌ ❌ recusa interferência texto claro
Aplicativos nativos / serviços do sistema 🔒 / ❌ ❌ recusa interferência texto claro

Quando nenhum dos métodos anteriores der conta do alvo, entregue-o a este.


2. O que permite que ela alcance os aplicativos de sistema

Seção intitulada “2. O que permite que ela alcance os aplicativos de sistema”
  • Não roda dentro do programa: os aplicativos nativos e os aplicativos teimosos bloqueiam qualquer tipo de interferência que rode dentro do programa, por isso a captura na camada de aplicação não funciona com eles. A captura em nível de sistema aborda por um ângulo diferente: sem injeção, sem alterações no programa, sem certificados. Ela lê de forma independente nas camadas mais baixas do sistema, então essa proteção não consegue detê-la.
  • Não mexe com certificados: ela não atua como intermediária e não mexe com certificados, então a fixação de certificado simplesmente não se aplica. Por mais rigorosas que sejam as verificações de certificado desses aplicativos, elas não conseguem afetá-la.
  • Alcança a camada que outros não alcançam: os aplicativos nativos do macOS, a App Store e diversos serviços do sistema passam pelos canais de rede de nível mais baixo do sistema, que por acaso são o ponto cego compartilhado por todos os métodos de captura anteriores. A captura em nível de sistema cobre exatamente essa camada, trazendo todo o texto claro deles à plena vista.

  • Aplicativos nativos e serviços do sistema: as trocas de rede dos próprios programas do macOS, como a App Store, os componentes do sistema e os serviços em segundo plano.
  • Aplicativos teimosos e profundamente ocultos: programas de terceiros que enterram seu tráfego bem fundo e recusam qualquer tipo de interferência externa.
  • Programas comuns: ela também consegue tratar destes, é claro, mas isso é exagero; para programas comuns, os métodos anteriores são mais simples.

  1. Escolha o alvo: selecione um programa em execução no menu suspenso, ou preencha o caminho / nome de um programa.
  2. Opcionalmente, capture “o momento da inicialização”: deixe a ferramenta fechar o programa primeiro e depois reabri-lo, para que o tráfego do início da execução também seja capturado (muita autenticação / muitos handshakes acontecem nesse instante).
  3. Inicie a captura e veja o texto claro que o programa envia e recebe.

Nova sessão · Captura em nível de sistema nesta máquina: escolha um programa em execução (ou preencha um caminho / nome) e observe suas trocas em texto claro de forma independente, a partir das camadas mais baixas do sistema; você pode marcar “reiniciar o alvo” para cobrir o início da execução

Resultado ao vivo: observando o programa alvo de forma independente, a partir das camadas mais baixas do sistema, suas trocas HTTPS são totalmente restauradas para texto claro, a visualização de detalhes mostra “descriptografado”, e requisições e respostas ficam alinhadas uma a uma


O texto claro lido das camadas mais baixas passa pelo mesmo processamento que todos os outros métodos de captura:

  • Vários modos de visualização: estruturado, texto embelezado, hexadecimal e detecção automática, alternáveis de forma independente para os lados de envio e de recebimento. Veja Visualização e decodificação de dados.
  • Descompressão e detecção automáticas: descomprime automaticamente gzip / brotli / deflate / zstd (inclusive várias camadas empilhadas) e detecta e embeleza automaticamente JSON, XML, protobuf / gRPC e mais.

6. Como escolher entre os quatro métodos de captura locais

Seção intitulada “6. Como escolher entre os quatro métodos de captura locais”
Sua situação Qual usar
Aplicativos nativos do macOS, aplicativos teimosos (inalcançáveis por outros métodos) Captura em nível de sistema nesta máquina (este artigo)
Programa já em execução / fixação de certificado / não aceita proxies / criptografia personalizada Captura na camada de aplicação nesta máquina
Programas comuns que você consegue iniciar por comando (navegadores / scripts / CLI) Captura por processo nesta máquina
Quer ver todo o tráfego da máquina, ou tráfego que não seja HTTP Captura na NIC nesta máquina

Relacionados: Captura por proxy · Captura na camada de aplicação nesta máquina · Visualização e decodificação de dados