Voltar às atualizações
UpdatedOct 4, 2026

ecapture — Updated!

Captura de texto simples SSL/TLS sem um certificado CA usando eBPF. Suportado em kernels Linux/Android para amd64/arm64.

Compartilhar
eCapture Logo

汉字 | English

GitHub stars GitHub forks CI GitHub Version

eCapture (旁观者): Capture plaintext SSL/TLS traffic without a CA certificate using eBPF.

[!IMPORTANT] Suporta Linux e Android em x86_64 (kernel 4.18+) e aarch64 (kernel 5.5+). O requisito de kernel aplica-se por arquitetura de CPU tanto para Linux quanto para Android. Requer privilégios de root ou capacidades Linux específicas. Não suporta Windows ou macOS.


Introdução

  • Captura tráfego TLS/SSL em texto claro das bibliotecas OpenSSL, LibreSSL, BoringSSL, GnuTLS e NSS/NSPR.
  • Suporta captura em texto claro para programas Go TLS, incluindo tráfego HTTPS/TLS em aplicações Go.
  • Audita o histórico de comandos do bash e zsh para monitoramento de segurança do host.
  • Audita consultas MySQL e suporta MySQL 5.6/5.7/8.0 e MariaDB.

Primeiros passos

Download

Arquivo binário ELF

[!TIP] Suporta Linux/Android em x86_64 e aarch64.

Baixe o pacote binário ELF na página de releases, extraia-o e execute:

sudo ecapture --help

Imagem Docker

[!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=true concede 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.

Capturar dados em texto claro do OpenSSL

sudo ecapture tls

O eCapture detecta automaticamente a biblioteca OpenSSL do sistema e começa a capturar tráfego em texto claro. 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.

Módulos

A ferramenta eCapture inclui 8 módulos que podem capturar dados em texto claro de bibliotecas TLS/SSL como OpenSSL, GnuTLS, NSS/NSPR, BoringSSL e GoTLS. Também suporta auditoria de comandos e consultas de aplicações Bash, MySQL e PostgreSQL.

  • bash: captura comandos bash
  • zsh: captura comandos zsh
  • gnutls: captura texto claro de bibliotecas GnuTLS sem precisar de certificado CA
  • gotls: captura comunicação em texto claro de programas Go usando TLS/HTTPS
  • mysqld: captura consultas SQL do MySQL 5.6/5.7/8.0 e MariaDB
  • nss: captura texto claro de bibliotecas NSS/NSPR sem precisar de certificado CA
  • postgres: captura consultas SQL do PostgreSQL 10+
  • tls: captura tráfego TLS/SSL em texto claro sem certificado CA (suporta OpenSSL 1.0.x/1.1.x/3.0.x e mais recentes)

Você pode usar ecapture -h para ver a lista completa de subcomandos.

Módulo OpenSSL

O eCapture pesquisa os caminhos padrão de bibliotecas em /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 for vinculado estaticamente, você pode definir o caminho do programa diretamente como valor da flag --libssl.

O módulo OpenSSL suporta três modos de captura:

  • O modo pcap/pcapng armazena os dados em texto claro capturados no formato pcap-NG.
  • O modo keylog/key salva as chaves de handshake TLS em um arquivo.
  • O modo text captura dados em texto claro diretamente, gravando-os em um arquivo ou imprimindo-os no console.

Modo Pcap

Suporta 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 de --pcapfile é ecapture_openssl.pcapng.

sudo ecapture tls -m pcap -i eth0 --pcapfile=ecapture.pcapng tcp port 443

Este comando salva os pacotes em texto claro capturados como um arquivo pcapng, que pode ser aberto com o Wireshark.

📄 Para a saída completa do modo pcapng, consulte docs/example-outputs.md.

Modo Keylog

Você pode especificar -m keylog ou -m key junto com a opção --keylogfile. O arquivo de saída padrão é ecapture_masterkey.log.

O master secret TLS do OpenSSL capturado é salvo em --keylogfile. Você também pode habilitar a captura com tcpdump e depois abrir o arquivo no Wireshark, definindo o caminho do master secret para visualizar os pacotes em texto claro.

sudo ecapture tls -m keylog -keylogfile=openssl_keylog.log

Você também pode usar o tshark para descriptografia e exibição em tempo real:

tshark -o tls.keylog_file:ecapture_masterkey.log -Y http -T fields -e http.file_data -f "port 443" -i eth0

Modo Text

sudo ecapture tls -m text

Isso exibe todos os pacotes de dados em texto claro.

Módulo GoTLS

Semelhante ao módulo OpenSSL.

Comando gotls

Captura dados TLS em texto claro.

Passo 1:

sudo ecapture gotls --elfpath=/home/cfc4n/go_https_client --hex

Passo 2:

/home/cfc4n/go_https_client

Mais ajuda

sudo ecapture gotls -h

Outros módulos

Módulos como bash, mysqld e postgres também podem ser usados. Você pode ver a lista completa com ecapture -h.

Vídeos

Aplicação GUI eCaptureQ

Categorias