Importante
Suporta versões de kernel Linux/Android x86_64 4.18 e superior, aarch64 5.5 e superior. Precisa de permissão ROOT. Não suporta sistema Windows e macOS.
Introdução
Começando
Módulo OpenSSL
Módulo GoTLS
Outros Módulos
Arquivo binário ELF
Imagem do Docker
Download
Capture conteúdo de texto openssl.
Módulos
Vídeos
Contribuindo
Compilação
Captura de texto simples SSL/TLS, suporte a bibliotecas openssllibresslboringsslgnutlsnspr(nss).
Suporte a texto simples GoTLS biblioteca go tls, que se refere à comunicação criptografada em programas https/tls escritos na linguagem golang.
auditoria bash, capture o comando bash para auditoria de segurança do host.
auditoria SQL de consulta mysql, suporte mysqld 5.65.78.0 e mariadDB.
Dica
suporte Linux/Android x86_64/aarch64.
Baixe o arquivo zip ELF release, descompacte e use pelo comando sudo ecapture --help
.
Dica
Somente Linux.
# pull docker imagedocker pull gojue/ecapture:latest# rundocker run --rm --privileged=true --net=host -v ${HOST_PATH}:${CONTAINER_PATH} gojue/ecapture ARGS
consulte Docker Hub para obter mais informações.
sudo ecapture tls 2024-09-15T11:51:31Z INF AppName="eCapture(旁观者)"2024-09-15T11:51:31Z INF HomePage=https://ecapture.cc 2024-09-15T11:51:31Z Repositório INF=https://github.com/gojue/ecapture 2024-09-15T11:51:31Z INF Author="CFC4N <[email protected]>"2024-09-15T11:51:31Z INF Description="Capturando texto simples SSL/TLS sem um certificado CA usando eBPF. Compatível com Linux /Kernels Android para amd64/arm64."2024-09-15T11:51:31Z Versão INF=linux_arm64:0.8.6-20240915-d87ae48:5.15.0-113-genérico 2024-09-15T11:51:31Z Escuta INF=localhost:28256 2024-09-15T11:51:31Z INF eCapture executando o registrador de logs= 2024-09-15T11:51:31Z INF o manipulador de arquivo que recebe o evento capturado eventCollector= 2024-09-15T11:51:31Z INF escuta=localhost:28256 2024-09-15T11:51:31Z Servidor INF https iniciando...Você pode atualizar o arquivo de configuração por meio da interface HTTP. 2024-09-15T11:51:31Z WRN ========== partida do módulo. ========== 2024-09-15T11:51:31Z Informações do Kernel INF=5.15.152 Pid=233698 2024-09-15T11:51:31Z Modo de bytecode INF BTF: CORE. btfMode = 0 2024-09-15T11:51:31Z O keylogger de chave mestra INF foi configurado. eBPFProgramType=Keylogger de texto= 2024-09-15T11:51:31Z Inicialização do módulo INF. isReload=falso moduleName=EBPFProbeOPENSSL 2024-09-15T11:51:31Z Módulo INF.Run() 2024-09-15T11:51:31Z WRN Versão OpenSSL/BoringSSL não encontrada no arquivo de biblioteca compartilhada, versão padrão usada OpenSSL Version=linux_default_3_0 2024-09-15T11:51:31Z INF Hook masterKey função ElfType=2 Funções=["SSL_get_wbio","SSL_in_before","SSL_do_handshake"] binrayPath=/usr/lib/aarch64-linux-gnu/libssl.so.3 2024-09-15T11:51:31Z INF visa todos os processos. 2024-09-15T11:51:31Z INF tem como alvo todos os usuários. 2024-09-15T11:51:31Z INF setupManagers eBPFProgramType=Texto 2024-09-15T11:51:31Z O arquivo de bytecode INF BPF é correspondido. bpfFileName=usuário/bytecode/openssl_3_0_0_kern_core.o 2024-09-15T11:51:32Z INF perfEventReader criado mapSize(MB)=4 2024-09-15T11:51:32Z INF perfEventReader criado mapSize(MB)=4 2024-09-15T11:51:32Z O módulo INF foi iniciado com sucesso. isReload=falso moduleName=EBPFProbeOPENSSL 2024-09-15T11:51:53Z ??? UUID:233851_233851_curl_5_1_172.16.71.1:51837, Nome:HTTP2Request, Tipo:2, Comprimento:304 Tipo de quadro => CONFIGURAÇÕES Tipo de quadro => WINDOW_UPDATE Tipo de quadro => CABEÇALHOS campo de cabeçalho ":method" = "GET"campo de cabeçalho ":path" = "/"campo de cabeçalho ":scheme" = "https"campo de cabeçalho ":authority" = "google.com"campo de cabeçalho "user-agent" = "curl/7.81.0"campo de cabeçalho "accept" = "*/*"Tipo de quadro => CONFIGURAÇÕES 2024-09-15T11:51:53Z ??? UUID:233851_233851_curl_5_0_172.16.71.1:51837, Nome:HTTP2Response, Tipo:4, Comprimento:1160 Tipo de quadro => CONFIGURAÇÕES Tipo de quadro => WINDOW_UPDATE Tipo de quadro => CONFIGURAÇÕES Tipo de quadro => CABEÇALHOS campo de cabeçalho ":status" = "301"campo de cabeçalho "location" = "https://www.google.com/"campo de cabeçalho "content-type" = "text/html; charset=UTF-8"campo de cabeçalho " content-security-policy-report-only" = "object-src 'none';base-uri 'self';script-src 'nonce-qvZZ0XreBfeqRnUEV1WoYw' 'strict-dynamic' 'report-sample' 'unsafe-eval' 'unsafe-inline' https: http:;report-uri https://csp.withgoogle.com/csp/gws/other-hp"campo de cabeçalho "data " = "Dom, 15 de setembro de 2024 11:51:52 GMT"campo de cabeçalho "expira" = "Ter, 15 de outubro de 2024 11:51:52 GMT "campo de cabeçalho "cache-control" = "public, max-age = 2592000" campo de cabeçalho "servidor" = "gws" campo de cabeçalho "comprimento do conteúdo" = "220" campo de cabeçalho "x-xss -protection" = "0"campo de cabeçalho "x-frame-options" = "SAMEORIGIN"campo de cabeçalho "alt-svc" = "h3=":443"; ma=2592000,h3-29=":443"; ma=2592000"Tipo de quadro => PING Tipo de quadro => DADOS<HTML><HEAD><meta http-equiv="content-type" content="text/html;charset=utf-8"><TITLE>301 movido</TITLE></HEAD>< BODY><H1>301 movido</H1>O documento foi movido<A HREF="https://www.google.com/">para aqui</A>.</BODY></HTML>
A ferramenta eCapture compreende 8 módulos que suportam respectivamente captura de texto simples para bibliotecas de criptografia TLS/SSL como OpenSSL, GnuTLS, NSPR, BoringSSL e GoTLS. Além disso, facilita auditorias de software para aplicativos Bash, MySQL e PostgreSQL.
comando bash capturar bash
gnutls captura conteúdo de texto gnutls sem certificado CA para bibliotecas gnutls.
gotls Captura de comunicação de texto simples de programas Golang criptografados com TLS/HTTPS.
mysqld captura consultas sql do mysqld 5.6/5.7/8.0 .
nss captura conteúdo de texto criptografado nss/nspr sem certificado CA para bibliotecas nss/nspr.
postgres captura consultas sql do postgres 10+.
tls usa para capturar conteúdo de texto tls/ssl sem certificado CA. (Suporte para openssl 1.0.x/1.1.x/3.0.x ou mais recente). Você pode usar ecapture -h
para visualizar a lista de subcomandos.
O eCapture pesquisa o arquivo /etc/ld.so.conf
padrão, para pesquisar os diretórios de carregamento do arquivo SO
e pesquisar a localização das bibliotecas de fragmentos openssl
. ou você pode usar o sinalizador --libssl
para definir o caminho da biblioteca de fragmentos.
Se o programa de destino for compilado estaticamente, você pode definir o caminho do programa como o valor do sinalizador --libssl
diretamente。
O módulo OpenSSL suporta três modos de captura:
O modo pcap
/ pcapng
armazena dados de texto simples capturados no formato pcap-NG
.
keylog
/ key
mode salva as chaves de handshake TLS em um arquivo.
o modo text
captura diretamente dados de texto simples, enviando para um arquivo especificado ou imprimindo na linha de comando.
TLS criptografado com suporte http 1.0/1.1/2.0
sobre TCP e protocolo http3 QUIC
sobre UDP. Você pode especificar -m pcap
ou -m pcapng
e usá-lo em conjunto com os parâmetros --pcapfile
e -i
. O valor padrão para --pcapfile
é ecapture_openssl.pcapng
.
sudo ecapture tls -m pcap -i eth0 --pcapfile=ecapture.pcapng porta tcp 443
Este comando salva pacotes de dados de texto simples capturados como um arquivo pcapng, que pode ser visualizado usando Wireshark
.
sudo ecapture tls -m pcap -w ecap.pcapng -i ens160 2024-09-15T06:54:12Z INF AppName="eCapture(旁观者)"2024-09-15T06:54:12Z INF HomePage=https://ecapture.cc 2024-09-15T06:54:12Z Repositório INF=https://github.com/gojue/ecapture 2024-09-15T06:54:12Z INF Author="CFC4N <[email protected]>"2024-09-15T06:54:12Z INF Description="Capturando texto simples SSL/TLS sem um certificado CA usando eBPF. Compatível com Linux /Kernels Android para amd64/arm64."2024-09-15T06:54:12Z Versão INF=linux_arm64:0.8.6-20240915-d87ae48:5.15.0-113-genérico 2024-09-15T06:54:12Z INF Ouvir=localhost:28256 2024-09-15T06:54:12Z INF eCapture executando o registrador de logs = 2024-09-15T06:54:12Z INF o manipulador de arquivo que recebe o evento capturado eventCollector= 2024-09-15T06:54:12Z WRN ========== partida do módulo. ========== 2024-09-15T06:54:12Z Informações do Kernel INF=5.15.152 Pid=230440 2024-09-15T06:54:12Z Modo de bytecode INF BTF: CORE. btfMode = 0 2024-09-15T06:54:12Z INF escuta=localhost:28256 2024-09-15T06:54:12Z Inicialização do módulo INF. isReload=falso moduleName=EBPFProbeOPENSSL 2024-09-15T06:54:12Z Módulo INF.Run() 2024-09-15T06:54:12Z Servidor INF https iniciando...Você pode atualizar o arquivo de configuração por meio da interface HTTP. 2024-09-15T06:54:12Z WRN Versão OpenSSL/BoringSSL não encontrada no arquivo de biblioteca compartilhada, versão padrão usada OpenSSL Version=linux_default_3_0 2024-09-15T06:54:12Z INF HOOK type:Openssl elf ElfType=2 IFindex=2 IFname=ens160 PcapFilter= binrayPath=/usr/lib/aarch64-linux-gnu/libssl.so.3 2024-09-15T06:54:12Z INF Hook masterKey function Functions=["SSL_get_wbio","SSL_in_before","SSL_do_handshake"]2024-09-15T06:54:12Z INF direciona todos os processos. 2024-09-15T06:54:12Z INF tem como alvo todos os usuários. 2024-09-15T06:54:12Z INF setupManagers eBPFProgramType=PcapNG 2024-09-15T06:54:12Z O arquivo de bytecode INF BPF é correspondido. bpfFileName=usuário/bytecode/openssl_3_0_0_kern_core.o 2024-09-15T06:54:12Z Pacotes INF salvos no arquivo pcapng. caminho pcapng=/home/ecapture/ecap.pcapng 2024-09-15T06:54:12Z INF perfEventReader criou mapSize(MB)=4 2024-09-15T06:54:12Z INF perfEventReader criou mapSize(MB)=4 2024-09-15T06:54:12Módulo Z INF iniciado com sucesso. isReload=falso moduleName=EBPFProbeOPENSSL 2024-09-15T06:54:14Z Pacotes INF salvos no arquivo pcapng. contagem=4 2024-09-15T06:54:16Z INF não-TLSv1.3 conjunto de cifras encontrado CLientRandom=f08e8d784962d1693c042f9fe266345507ccfaba58b823904a357f30dbfa1e71 CipherId=0 2024-09-15T06:54:16Z INF não-TLSv1.3 conjunto de cifras encontrado CLientRandom=f08e8d784962d1693c042f9fe266345507ccfaba58b823904a357f30dbfa1e71 CipherId=0 2024-09-15T06:54:16Z Pacotes INF salvos no arquivo pcapng. contagem=183 2024-09-15T06:54:16Z INF CLIENT_RANDOM salvamento com sucesso CLientRandom=f08e8d784962d1693c042f9fe266345507ccfaba58b823904a357f30dbfa1e71 TlsVersion=TLS1_2_VERSION bytes=176 2024-09-15T06:54:18Z Pacotes INF salvos no arquivo pcapng. contagem=65 ^C2024-09-15T06:54:18Z Módulo INF fechado. 2024-09-15T06:54:18Z Pacotes INF salvos no arquivo pcapng. contagem=3 2024-09-15T06:54:18Z Pacotes INF salvos no arquivo pcapng. contagem=255 2024-09-15T06:54:18Z Módulo INF fechado, mensagem recebida do Contexto 2024-09-15T06:54:18Z INF iModule módulo fechado 2024-09-15T06:54:18Z INF, tchau, tchau.
Usei Wireshark
para abrir o arquivo ecap.pcapng
para visualizar os pacotes de dados de texto simples.
Você pode especificar -m keylog
ou -m key
e usá-lo em conjunto com o parâmetro --keylogfile
, cujo padrão é ecapture_masterkey.log
.
As informações capturadas do OpenSSL TLS Master Secret
são salvas em --keylogfile
. Você também pode habilitar a captura de pacotes tcpdump
e então usar Wireshark
para abrir o arquivo e definir o caminho Master Secret
para visualizar pacotes de dados em texto simples.
sudo ecapture tls -m keylog -keylogfile=openssl_keylog.log
Você também pode usar diretamente o software tshark
para descriptografia e exibição em tempo real:
tshark -o tls.keylog_file:ecapture_masterkey.log -Y http -T campos -e http.file_data -f "porta 443" -i eth0
sudo ecapture tls -m text
produzirá todos os pacotes de dados de texto simples. (A partir da versão 0.7.0, ele não captura mais informações SSLKEYLOG.)
Semelhante ao módulo OpenSSL.
capturar contexto de texto tls.
Etapa 1:
sudo ecapture gotls --elfpath=/home/cfc4n/go_https_client --hex
Etapa 2:
/home/cfc4n/go_https_client
sudo ecapture gotls -h
como módulos bashmysqldpostgres
, você pode usar ecapture -h
para visualizar a lista de subcomandos.
Vídeo do Youtube: Como usar o eCapture v0.1.0
eCapture: suporta a captura de texto simples do tráfego Golang TLS/HTTPS
Consulte CONTRIBUINDO para obter detalhes sobre o envio de patches e o fluxo de trabalho de contribuição.
Consulte COMPILAÇÃO para obter detalhes sobre a compilação do código-fonte do eCapture.