跳到正文
发现
eCapture:eBPF 无证书 TLS 抓包工具
命令行工具开发者工具

eCapture:eBPF 无证书 TLS 抓包工具

基于 eBPF 的 TLS/SSL 明文抓包工具,无需 MITM 代理或安装 CA 证书,支持 Linux 与 Android。

admin
发布于 2026-10-28 · 更新于 2026-11-01
浏览
4
访问
0
下载
0
版本
v2.9.1
平台
Linux
该作品还没有经过官方审核。访问演示、下载或复制命令前,请自行确认来源可信。

详细介绍

项目简介

eCapture(旁观者)是一款基于 eBPF 的 TLS/SSL 明文抓包工具。它通过挂接 OpenSSL、GnuTLS、NSS/NSPR、BoringSSL 等加密库的函数,直接拿到应用层的明文数据,不需要搭建 MITM 代理,也不用在设备上安装自定义 CA 证书。项目使用 C 与 Go 编写,采用 Apache-2.0 许可证,官网为 https://ecapture.cc。

主要功能

  • 支持 OpenSSL(1.0.x/1.1.x/3.0.x 及更新版本)、LibreSSL、BoringSSL、GnuTLS、NSS/NSPR 的 TLS/SSL 明文捕获。
  • GoTLS 模块:捕获 Go 程序中的 HTTPS/TLS 明文通信。
  • 安全审计:记录 bash、zsh 的命令历史;审计 MySQL 5.6/5.7/8.0 与 MariaDB 的 SQL 查询;审计 PostgreSQL 10+ 的查询。
  • 共 8 个模块:bash、zsh、gnutls、gotls、mysqld、nss、postgres、tls,可用 ecapture -h 查看完整子命令。
  • 三种输出模式:
    • pcap/pcapng:把加密网络包与 TLS secret 以 pcap-NG 格式保存,可直接用 Wireshark 打开。
    • keylog/key:把 TLS 握手密钥写入文件。
    • text:默认通过函数挂钩输出明文;加 --text-source=pcapng 可从实时 pcapng 与 DSB 数据重建完整的 HTTP/1.1、HTTP/2 消息。
  • --eventaddr 统一指定事件输出去向,支持 stdout、普通路径或 file:// URI、tcp://host:port、ws:///wss://。
  • 配套图形客户端 eCaptureQ(Rust + Tauri + React),提供集成模式与远程模式。

安装与使用

从 releases 页面 下载 ELF 二进制包,解压后运行:

sudo ecapture --help

也可使用 Docker 镜像(仅限 Linux):

docker pull gojue/ecapture:latest

捕获 OpenSSL 明文,eCapture 会自动探测系统 OpenSSL 库位置:

sudo ecapture tls

保存为 pcapng 文件,之后用 Wireshark 分析:

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

keylog 模式输出 TLS 主密钥:

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

捕获 Go 程序 TLS 明文:

sudo ecapture gotls --elfpath=/path/to/go_https_client --hex

默认库路径从 /etc/ld.so.conf 中的路径查找,也可以显式用 --libssl 指定库路径;若目标程序是静态链接,可直接把程序路径作为 --libssl 的值。

注意事项

  • 平台要求:Linux x86_64(内核 4.18+)、aarch64(内核 5.5+)、LoongArch64 loong64(内核 6.6+);Android 支持 x86_64 与 aarch64,内核最低版本同上。
  • 需要 root 权限或特定的 Linux capabilities,详见官方最小权限文档。
  • 不支持 Windows 与 macOS。
  • Docker 运行时若使用 --privileged=true,会赋予容器完整主机访问权限,生产环境建议改用更精细的 capabilities 配置。
  • --text-source=pcapng 支持带 HTTP/1.1 或 HTTP/2 负载的 TCP TLS,不输出通用 TLS 记录,也不支持 QUIC/HTTP/3。

本作品整理自 GitHub 开源项目 gojue/ecapture,原作者 @gojue,许可证 Apache-2.0。中文介绍由 AI 根据项目 README 整理,以原仓库为准。

更新记录

  1. v2.9.1当前版本

    v2.9.1 以构建改进为主:移除 eBPF 目标中无用的 dwarf 信息、修复 static-pie 二进制构建、修复使用 Linux 7 头文件时的非 CO-RE 编译问题。

  2. v2.9.0

    新增 pcapng 文本数据源:openssl(tls)、gotls、gnutls 模块可用 --text-source pcapng 从抓包流重建完整 HTTP/1.1 与 HTTP/2 请求响应;hook 仍为默认文本源,仅在指定 --pcapfile 时保存原始 pcapng。

评论