eCapture:eBPF 无证书 TLS 抓包工具
基于 eBPF 的 TLS/SSL 明文抓包工具,无需 MITM 代理或安装 CA 证书,支持 Linux 与 Android。
- 浏览
- 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 整理,以原仓库为准。
更新记录
- v2.9.1当前版本
v2.9.1 以构建改进为主:移除 eBPF 目标中无用的 dwarf 信息、修复 static-pie 二进制构建、修复使用 Linux 7 头文件时的非 CO-RE 编译问题。
- v2.9.0
新增 pcapng 文本数据源:openssl(tls)、gotls、gnutls 模块可用 --text-source pcapng 从抓包流重建完整 HTTP/1.1 与 HTTP/2 请求响应;hook 仍为默认文本源,仅在指定 --pcapfile 时保存原始 pcapng。
评论