GitHub 7K星:eCapture新版支持Android 13、14

eCapture是一个无需CA证书,即可捕获HTTPS/TLS明文的抓包工具,常用语网络分析、故障定位等。最初定位是Linux上的抓包工具,在2022年9月支持了Android系统,在Android 12起,只要是Linux内核是5.5以上的ARM架构,都可以正常运行。支持TLS 1.2、TLS1.3版本的协议,只需要root,无需应用重启、更改等,很受大家欢迎。

今天,eCapture v0.6.5 版本发布,支持了两个功能:支持所有端口的网络包、支持Android 13和Android 14。

新版本

近两年,Android也陆续发布了13、14版本,eCapture做了一些 兼容更新,支持了Android 13、Android 14版本的BoringSSL类库的明文捕获。

除此之外,去掉了捕获端口的限制,如果--port参数为0时,可以捕获所有端口的网络数据,并保存到pcapng中。否则则只捕获--port对应的端口数据,默认是443 端口。

下载使用

eCapture v0.6.5 下载地址见GitHub仓库:https://github.com/gojue/ecapture/releases/tag/v0.6.5

使用方法,可参见以往教程eCapture旁观者:Android HTTPS明文抓包

功能回顾

BoringSSL介绍

自支持Android至今,已经有一年多,其程序使用的默认SSL动态链接库是BoringSSL,fork自OpenSSL。这个类库广泛使用在Google的的各种产品里,包括Chrome、Android等。但他们不是同一个版本,完全是独立维护的两个Git仓库。情况如下:

  1. Android上的BoringSSL: BoringSSL Android仓库
  2. 非Android的BoringSSL:BoringSSL Github仓库

更让人无法理解的是,即使在Android不同发行版里,不管BoringSSL代码如何更新,都不更类库的新版本信息,都是OpenSSL 1.1.1 (compatible; BoringSSL)OPENSSL_VERSION_NUMBER269488255。对使用者来说没影响,可对 eCapture来说就很头疼。SSL结构体的元素offset发生变化,很难根据版本号选择不同的offset值了。相对来说,OpenSSL就做得很好,只需要从动态链接库的ELF文件中读取openssl的版本号,再选择对应offset配置即可。

在Android 14里,BoringSSL的很多结构体改动较大,必需要用单独的eBPF 字节码文件,笔者花了整个周六的时间,想出一个机智地、取巧地思路,给兼容了。

捕获端口限制

早期,eCapture的pcapng模式是限制了网络捕获包的端口,--port参数只能是80443 。技术上都已经实现,没有难点。默认没有捕获所有网络包,是因为有很多场景,主机的网络流量很大,eBPF的map写入太快,用户空间消费过慢,导致丢包的问题。

虽然用户空间在创建eBPF map时,已经申请了BufferSizeOfEbpfMap大的内存,但仍然还存在网络包过多导致数据丢失的可能。 而且,在Android上有内存大小限制,BufferSizeOfEbpfMap的值仅为1024,即PageSize*1024,一般情况下是4M。

    rd, err := perf.NewReader(em, os.Getpagesize()*BufferSizeOfEbpfMap)

也就是说,如果你启用所有端口的网络捕获,则可能会发生网络包未成功捕获的情况。 除此之外,你可以用eCapture来替换tcpdump使用,而且还多了HTTPS的明文捕获呢。

相关文章

如果你刚刚知道eCapture,对他的功能还不了解,你可以阅读本公众号的更多文章来了解。

eCapture旁观者支持Golang tls/https加密明文捕获

eCapture支持borgingssl TLS 1.3明文捕获

eCapture:无需CA证书抓https网络明文通讯

招聘信息

美团信息安全部长期招人,网络安全领域的研发方向,研发产品包括不限于HIDS/HIPS、RASP、EDR、WAF、零信任产品、NIDS等等,方向包括客户端软件、服务端后台,技术语言包括不限于C/C++、Golang、Java、Object-C、Swift等。 欢迎公众包内发私信联系,其他方向的岗位笔者也可协助内推到对应岗位部门。

知识共享许可协议CFC4N的博客CFC4N 创作,采用 署名—非商业性使用—相同方式共享 4.0 进行许可。基于https://www.cnxct.com上的作品创作。转载请注明转自:GitHub 7K星:eCapture新版支持Android 13、14

One thought on “GitHub 7K星:eCapture新版支持Android 13、14

Comments are closed.