eCapture 是一款基于 eBPF 技术的开源工具,其核心能力在于无需在系统中安装或信任任何 CA 根证书,即可直接捕获运行在 Linux 及 Android 系统上的 SSL/TLS 加密流量明文。这一特性使其在网络安全分析、应用性能测试以及安全审计等场景中具有独特价值。
核心功能特性
SSL/TLS 明文流量捕获
eCapture 利用 eBPF 技术在内核层面挂钩(Hook)关键函数,实时拦截并解析 SSL/TLS 握手过程中的数据,从而还原出加密流量中的明文内容。这种方式完全绕开了传统的证书中间人攻击(MITM)方案,避免了因安装自签名证书带来的潜在安全风险。工具支持多种主流加密库,包括 OpenSSL、GnuTLS、NSPR、BoringSSL 以及 Go 语言的 crypto/tls 库,确保了广泛的适用性。
多样化的捕获与输出模式
- Text 模式:直接输出可读的明文请求与响应内容,适用于快速调试 API 接口、实时查看通信内容。
- Keylog 模式:生成符合 Wireshark 标准的 SSL 密钥日志文件(SSLKEYLOGFILE),结合 Wireshark 可对捕获的整个加密会话流量进行完全解码和深度分析。
- Pcap 模式:生成标准的
pcap 或 pcapng 格式文件,便于使用 Wireshark、tcpdump 等专业网络分析工具进行离线流量分析、网络取证或流量重放。
跨平台与低侵入性
- 支持 Linux 与 Android 系统,兼容 x86_64 和 aarch64 架构。
- 最低内核要求为 Linux 4.18+ 或 Android 5.5+(内核版本)。
- 基于 eBPF 的实现保证了高性能与低开销,捕获性能可达 1000+ 包/秒,对系统性能影响通常低于 5%。无需修改目标应用或系统配置,维护了环境的纯净性。
技术架构与优势
eCapture 采用 eBPF 驱动的内核态监控架构。它通过预编译的 eBPF 程序在内核中直接拦截目标进程的 SSL/TLS 相关函数调用(如 SSL_write、SSL_read),从而精准获取明文数据。工具支持 CO-RE(Compile Once - Run Everywhere)技术,增强了在不同内核版本间的移植能力。
其设计采用模块化思想,核心由多个独立模块构成,分别负责对不同加密库(OpenSSL, BoringSSL等)以及 Bash 命令、MySQL/PostgreSQL 查询等场景进行捕获审计。
典型应用场景
- 安全分析与漏洞检测:在生产或测试环境中,直接捕获真实的加密业务流量,用于分析潜在的安全威胁、检测数据泄露或验证WAF等安全设备的策略有效性,为网络安全分析提供关键数据。
- 应用性能测试与调优:在压力测试过程中,捕获并分析加密通道下的应用层协议交互,获取精确的性能数据,帮助定位性能瓶颈。
- 开发调试与问题排查:开发者在调试 HTTPS 服务、微服务间加密通信或第三方 API 调用时,可以实时查看明文通信内容,快速定位问题。
- 合规性审计与取证:对系统间的加密通信进行长期、非侵入式的监控与记录,满足特定行业的合规性审计要求,并为安全事件提供取证数据。
快速开始(Docker方式)
以下是通过 Docker 快速体验 eCapture 的步骤:
- 安装 Docker (以 Ubuntu 为例)
sudo apt update
sudo apt install -y docker.io docker-compose
- 拉取 eCapture 镜像
sudo docker pull gojue/ecapture:latest
- 运行容器并执行抓包
需要以特权模式运行,并挂载主机网络。${HOST_PATH} 和 ${CONTAINER_PATH} 需替换为实际路径,用于存放捕获到的日志或 pcap 文件。
sudo docker run --rm --privileged=true --net=host -v ${HOST_PATH}:${CONTAINER_PATH} gojue/ecapture [ARGS]
容器启动后,即可根据官方文档使用具体的命令行参数开始抓包。例如,捕获 PID 为 1234 的进程的 HTTPS 明文:
sudo docker run --rm --privileged=true --net=host gojue/ecapture tls -p 1234

资源链接
|