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表达式来过滤网络包。
在tls
或gotls
模块中,当运行模式参数-m
为pcap
时,支持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
- libpcap 编译 pcap filter 表达式的过滤内容为cbpf字节码
- cbpf字节码转为ebpf字节码
- ebpf字节码插入到eCapture的TC HOOK字节码中
- 由内核加载全部eBPF字节码,实现表达式过滤
依赖
elibpcap
cbpfc
ebpfmanager v0.4.5 (eBPF bytecode InstructionPatchers)
下载
CFC4N的博客 由 CFC4N 创作,采用 署名—非商业性使用—相同方式共享 4.0 进行许可。基于https://www.cnxct.com上的作品创作。转载请注明转自:ecapture v0.7.4发布,支持Pcap FIlter包过滤语法