
Capture texto simples SSL/TLS com eBPF — sem proxy MITM ou instalação de CA personalizada. Suporta Linux e Android em x86_64 e arm64.
eCapture (旁观者)
Capture texto simples de SSL/TLS com eBPF — sem proxy MITM ou instalação de CA personalizada.
English · 汉字
[!IMPORTANT] Suporta Linux em x86_64 (kernel 4.18+), aarch64 (kernel 5.5+) e LoongArch64
loong64(kernel 6.6+). O Android suporta x86_64 e aarch64 com os mínimos de kernel existentes. Requer privilégios de root ou capacidades específicas do Linux. Não suporta Windows ou macOS.
[!TIP] Suporta Linux em x86_64, aarch64 e LoongArch64; o Android suporta x86_64 e aarch64.
Baixe o pacote binário ELF na página de releases, extraia-o e execute:
sudo ecapture --help
[!TIP] Apenas Linux.
# Pull the Docker image
docker pull gojue/ecapture:latest
# Run it
docker run --rm --privileged=true --net=host -v ${HOST_PATH}:${CONTAINER_PATH} gojue/ecapture ARGS
⚠️ Nota de segurança:
--privileged=trueconcede acesso total ao host. Para uso em produção, prefira capacidades específicas. Consulte o Guia de Privilégios Mínimos.
Consulte o Docker Hub para mais informações.
sudo ecapture tls
O eCapture detecta automaticamente a biblioteca OpenSSL do sistema e começa a capturar o tráfego em texto simples. Quando você faz uma requisição HTTPS, como curl https://google.com, a requisição e a resposta capturadas são exibidas:
...
INF module started successfully. moduleName=EBPFProbeOPENSSL
??? UUID:233851_233851_curl_5_1_172.16.71.1:51837, Name:HTTP2Request, Type:2, Length:304
header field ":method" = "GET"
header field ":path" = "/"
header field ":authority" = "google.com"
...
📄 Para exemplos completos de saída, consulte docs/example-outputs.md.
A ferramenta eCapture inclui 8 módulos que podem capturar dados em texto simples de bibliotecas TLS/SSL como OpenSSL, GnuTLS, NSS/NSPR, BoringSSL e GoTLS. Também oferece suporte à auditoria de comandos e consultas de aplicações Bash, MySQL e PostgreSQL.
Você pode usar ecapture -h para ver a lista completa de subcomandos.
O eCapture pesquisa os caminhos padrão de bibliotecas a partir de /etc/ld.so.conf para localizar bibliotecas compartilhadas e detectar a localização da biblioteca OpenSSL. Você também pode definir o caminho da biblioteca explicitamente com a flag --libssl.
Se o programa alvo estiver vinculado estaticamente, você pode definir o caminho do programa diretamente como o valor da flag --libssl.
O módulo OpenSSL oferece suporte a três modos de captura:
pcap/pcapng armazena os dados em texto simples capturados no formato pcap-NG.keylog/key salva as chaves de handshake TLS em um arquivo.text captura dados em texto simples diretamente, gravando-os em um arquivo ou imprimindo-os no console.Para OpenSSL, GoTLS e GnuTLS, --eventaddr é o destino primário uniforme de eventos. Ele aceita stdout, um caminho simples ou URI file://, tcp://host:port e ws:///wss:// (quadros binários ordenados). O modo seleciona a representação text, NSS Key Log ou pcapng; o endereço seleciona apenas o transporte. --keylogfile e --pcapfile continuam sendo aliases compatíveis do arquivo primário em seus respectivos modos. Definir --eventaddr junto com o alias correspondente é um erro. No modo pcapng, --keylogfile é um artefato de keylog opcional separado.
--logaddr transporta apenas os logs de execução do eCapture. Os logs de execução do console usam stderr, enquanto o stdout capturado contém apenas bytes de eventos. O eCaptureQ é aditivo: habilitá-lo não substitui --eventaddr nem --logaddr.
Oferece suporte a HTTP 1.0/1.1/2.0 criptografado com TLS sobre TCP e HTTP/3 (QUIC) sobre UDP.
Você pode especificar -m pcap ou -m pcapng junto com --pcapfile e -i. O valor padrão compatível atual de --pcapfile é save.pcapng.