ecapture v0.7.4发布,支持Pcap FIlter包过滤语法

eCapture是什么

eCapture旁观者一个无需CA证书,无侵入的HTTPS/TLS明文抓包工具。可以在Linux 4.18以上版本使用,同时也支持Android arm64 5.5以上版本。项目在2022年4月发布,目前7900颗星。

超强特性 :Pcap Filter 包过滤

eCapture v0.7.4版本发布支持Pcap Filter Syntax,你可以像tcpdump一样使用pcap filter表达式来过滤网络包。

tlsgotls模块中,当运行模式参数-mpcap时,支持pcap filter表达式。在命令行最后的参数中设定,例如:

sudo bin/ecapture tls -m pcap -i ens160 -w a.pcapng host 1.1.1.1 or src port 443
[sudo] password for cfc4n:
tls_2024/02/25 07:23:27 ECAPTURE :: ecapture Version : linux_aarch64:0.7.3-20240222-f50b9de:[CORE]
tls_2024/02/25 07:23:27 ECAPTURE :: Pid Info : 884394
tls_2024/02/25 07:23:27 ECAPTURE :: Kernel Info : 5.15.131
tls_2024/02/25 07:23:27 EBPFProbeOPENSSL    module initialization
tls_2024/02/25 07:23:27 ECAPTURE :: Module.Run()
tls_2024/02/25 07:23:27 EBPFProbeOPENSSL:   Pcapng MODEL
tls_2024/02/25 07:23:27 EBPFProbeOPENSSL    OpenSSL/BoringSSL version not found from shared library file, used default version:linux_default_3_0
tls_2024/02/25 07:23:27 EBPFProbeOPENSSL    HOOK type: 2, binrayPath: /usr/lib/aarch64-linux-gnu/libssl.so.3
tls_2024/02/25 07:23:27 EBPFProbeOPENSSL    PcapFilter: host 1.1.1.1 or src port 443
tls_2024/02/25 07:23:27 EBPFProbeOPENSSL    Ifname: ens160, Ifindex: 2
tls_2024/02/25 07:23:27 EBPFProbeOPENSSL    Hook masterKey function: [SSL_get_wbio SSL_in_before SSL_do_handshake]
tls_2024/02/25 07:23:27 EBPFProbeOPENSSL    target all process.
tls_2024/02/25 07:23:27 EBPFProbeOPENSSL    target all users.
tls_2024/02/25 07:23:27 EBPFProbeOPENSSL:   BPF bytecode filename:user/bytecode/openssl_3_0_0_kern.o
tls_2024/02/25 07:23:27 EBPFProbeOPENSSL    saving pcapng file: /home/cfc4n/project/ecapture/a.pcapng
tls_2024/02/25 07:23:27 EBPFProbeOPENSSL:   perfEventReader created. mapSize:4 MB
tls_2024/02/25 07:23:27 EBPFProbeOPENSSL:   perfEventReader created. mapSize:4 MB
tls_2024/02/25 07:23:27 EBPFProbeOPENSSL    module started successfully.
tls_2024/02/25 07:23:27 ECAPTURE ::     start 1 modules

eCapture 指令图解

很多同学对ecapture的使用方式不了解,eCapture的module模块mode模式两个功能点经常混淆,运行出错后,文档不看,help命令也不看。遇到问题后,直接到公众号问我,弄得我很头大。
这次也按照思维导图的方式,简单画个图解,以便更直观地熟悉eCapture。

在个别Android的发行版上,pcap filter过滤语法可能没有效果,未来会修复。

技术原理

本功能由Leon Hwang大神贡献,感谢他春节期间的付出。 详情见:feat: Support pcap-filter expression for pcap mode #478

  1. libpcap 编译 pcap filter 表达式的过滤内容为cbpf字节码
  2. cbpf字节码转为ebpf字节码
  3. ebpf字节码插入到eCapture的TC HOOK字节码中
  4. 由内核加载全部eBPF字节码,实现表达式过滤

依赖

elibpcap
cbpfc
ebpfmanager v0.4.5 (eBPF bytecode InstructionPatchers)

下载

eCapture v0.7.4 下载地址

知识共享许可协议CFC4N的博客CFC4N 创作,采用 署名—非商业性使用—相同方式共享 4.0 进行许可。基于https://www.cnxct.com上的作品创作。转载请注明转自:ecapture v0.7.4发布,支持Pcap FIlter包过滤语法

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

此站点使用Akismet来减少垃圾评论。了解我们如何处理您的评论数据