Android不安装证书不设置代理如何抓包?

大家好,上一篇文章发出去后有小伙伴留言说,Android 上要是有不用代理不用证书的方法就好了,现在,它来了!

本篇文章来分享一下在 Android/Linux 上不安装证书不设置代理进行抓包的方法。

eBPF

要想不安装证书不设置代理进行抓包,先要了解一下什么是 eBPF。以下内容借鉴于 eBPF.io,它是一个 eBPF 的开放社区,详细介绍了 eBPF 的原理,用法和使用 eBPF 技术实现的一些功能,感兴趣的小伙伴可以看看。

eBPF 是一项革命性的技术,起源于 Linux 内核,它可以在特权上下文中(如操作系统内核)运行沙盒程序。它用于安全有效地扩展内核的功能,而无需通过更改内核源代码或加载内核模块的方式来实现。

可以将 eBPF 简单理解为一个运行在内核中的 JVM,也可以叫沙盒。它可以即时的编译并运行外部的代码,可以通过此方式在运行时向操作系统添加新的功能或者拦截/修改/记录一些信息。

如上图,借用了官方的图片,eBPF 程序运行在用户空间,但是通过内核接口将代码放到内核运行,由于有了 JIT 的加持,运行速度不输本地编译的代码。

eBPF应用

那 eBPF 可以做什么呢?由于它运行在内核中,拥有很高的权限,并且可以拦截多种系统调用,所以它的作用很广,抓包只是它的一个小小的应用。

如今,eBPF 被广泛用于驱动各种用例:在现代数据中心和云原生环境中提供高性能网络和负载均衡,以低开销提取细粒度的安全可观测性数据,帮助应用程序开发人员跟踪应用程序,为性能故障排查、预防性的安全策略执行(包括应用层和容器运行时)提供洞察,等等。可能性是无限的,eBPF 开启的创新才刚刚开始。

eCapture

eCapture 是一个基于 eBPF 技术实现的抓包工具,它可以在无需 CA 证书的情况下抓取 TLS/SSL 数据包。

支持Linux系统内核x86_64 4.18及以上版本,aarch64 5.5及以上版本; 需要ROOT权限; 不支持Windows、macOS系统;

它支持 openssl 的所有版本和 Boringssl(Chrome 使用此 openssl 的分支作为自己的加密通讯库)的所有版本。由于 Android 也是基于 Linux 的,所以它也支持 Android。

它的使用方法很简单,只需要下载可执行文件,然后运行即可。由于我手上只有一个 Linux4.4 内核的 Android 手机,这里我使用 Ubuntu 来演示一下, 因为在 Android 上最少要 5.5 的内核才可以支持。最近的手机应该都是可以的,可能对一些型号比较老的手机不太友好。

实战

首先根据操作系统和架构来下载对应的可执行文件,我使用的是 Ubuntu 的 x86 架构,所以我要下载 ecapture-v0.9.4-linux-amd64.tar.gz,大家可以根据自己的系统和架构来选择适合自己的版本。

下载可执行文件后,直接运行下面的命令即可,别忘了给 root 权限。

bash 复制代码
sudo ./ecapture tls

运行以后它会自动查找当前使用的 openssl 的版本,我的系统比较新,可能不好识别,但是最终还是正常找到了我正在使用的版本。

运行以后,使用 curl 命令尝试一下能否抓到 https 请求数据。随意访问一个网站,我这里使用百度作为演示:

bash 复制代码
curl https://www.baidu.com

正常收到百度的响应,来查看一下 eCapture 的输出:

发现请求和响应都正常的打印出来了,到这里我并没有安装过任何抓包软件,也没有安装过系统证书,直接使用 root 权限把 eCapture 启动起来就可以了。

理论上来说,在 Android 上原理和操作流程是一样的,只要是使用了系统的 openssl 进行加解密,都是可以正常抓到数据的。如果没有使用系统自带的 openssl 库而使用自己编译的 openssl,eCapture 也支持指定 openssl 库的路径,具体用法可以查看官方文档

eCapture 也支持将抓到的数据包保存为 pcapng 文件,可以直接使用 Wireshark 打开进行分析。

eCapture 支持 8 个模块,具体看上面官网图,详细使用方式可以查看官方文档,我就不一一演示了。

总结

eCapture 可以在一台仅有 root 权限的手机上抓取 https 加密的数据包,无需任何代理和证书,可以极大的降低被软件检测的风险。

可以这么说,由于 eCapture 运行在内核中,几乎不可能有哪一款软件可以检测到它,只要能找到对应的 openssl 库,可以抓取几乎所有的 https 数据包,感兴趣的小伙伴可以自己试一下。

本文章首发于个人博客 LLLibra146's blog

本文作者:LLLibra146

更多文章请关注公众号 (LLLibra146)

版权声明 :本博客所有文章除特别声明外,均采用 © BY-NC-ND 许可协议。非商用转载请注明出处!严禁商业转载!

本文链接blog.d77.xyz/archives/b8...

相关推荐
*星星之火*1 小时前
【GPT入门】第5课 思维链的提出与案例
android·gpt
EasyCVR2 小时前
EasyRTC嵌入式视频通话SDK的跨平台适配,构建web浏览器、Linux、ARM、安卓等终端的低延迟音视频通信
android·arm开发·网络协议·tcp/ip·音视频·webrtc
韩家老大2 小时前
RK Android14 在计算器内输入特定字符跳转到其他应用
android
张拭心5 小时前
2024 总结,我的停滞与觉醒
android·前端
夜晚中的人海5 小时前
【C语言】------ 实现扫雷游戏
android·c语言·游戏
ljx14000525506 小时前
Android AudioFlinger(一)——初识AndroidAudio Flinger
android
ljx14000525506 小时前
Android AudioFlinger(四)—— 揭开PlaybackThread面纱
android
Codingwiz_Joy6 小时前
Day04 模拟原生开发app过程 Androidstudio+逍遥模拟器
android·安全·web安全·安全性测试
叶羽西6 小时前
Android15 Camera框架中的StatusTracker
android·camera框架
梦中千秋6 小时前
安卓设备root检测与隐藏手段
android