Android安全

Lazy loaded imageeBPF实践之修改bpf_probe_write_user以对抗某加固Frida检测

本文需要密码,无偿阅读请微信LLeavesG联系作者获取。BPF 的 bpf_probe_write_user 功能十分强大,它可以修改用户空间的内存,可以用于进程隐藏或者绕过环境检测等操作,本文为bpf_probe_write_user 添加修改只读内存的功能,以对抗360加固企业版Frida检测。

Lazy loaded imageByteDance-AppShark静态分析工具

在前期对App进行漏洞挖掘的过程中发现,以纯人工的方式去逆向某些App并且发现其中的漏洞已经不太现实,主要有以下几点原因: • Android系统体系十分庞大,App代码量巨大,存在超大型App(抖音目前已经有150万个函数),人工分析极度不现实 • 对Android静态分析精力耗费巨大,自动化静态分析完全可以简化大量重复的工作。 Appshark 是一个针对安卓的静态分析工具,它的设计目标是针对超大型App的分析(抖音目前已经有150万个函数). Appshark支持众多特性: • 基于json的自定义扫描规则,发现自己关心的安全漏洞以及隐私合规问题 • 灵活配置,可以在准确率以及扫描时间空间之间寻求平衡 • 支持自定义扩展规则,根据自己的业务需要,进行定制分析

Lazy loaded imageAndroid-DirtyStream 漏洞详细说明

Android 操作系统通过为每个应用程序分配自己的专用数据和内存空间来强制隔离。为了促进数据和文件共享,Android 提供了一个称为Content Provider的组件,它充当一个接口,用于以安全的方式管理数据并将数据公开给其他已安装的应用程序。如果使用得当,内容提供商可以提供可靠的解决方案。但是,实施不当可能会引入漏洞,从而绕过应用程序主目录中的读/写限制。

🗒️Android环境下Seccomp对系统调用的监控

一切都因WMCTF2023一道Android 游戏题BabyAnti-2而起,预期解为拦截**mincore**调用(**int mincore(void *start, size_t length, unsigned char *vec);**监测指定大小的页面是否处于物理内存中。一般用于内存扫描的检查,一旦扫描行为发生,有些并不在物理内存的页面被调入。vec 是一个字节数组,用于存储结果。每个字节对应 addr 和 length 指定的内存区域中的一个页面。如果相应的页面驻留在内存中,那么相应的字节的最低位会被设置为 1,否则会被设置为 0。),当时非预期了题目,即直接CheatEngine附加游戏题,扫描内存时游戏虽然会监测到并弹窗,但是游戏正常运行,直接能修改分数并且拿到flag。 由于题目中mincore 不止存在直接libc调用,而且存在svc指令的调用,这种svc指令相当于是直接的系统调用,不能被一般的钩子挂住,从而无法监视和修改调用参数返回值。而且题目设计使用申请的内存空间修改为可执行后放置svc指令,一直循环监测。除此之外,题目还是flutter写的,逆向逻辑难上加难。经过大量逆向和调试工作后,利用frida的内存搜索功能匹配svc指令,最终能够拦截并且不被检测到,但是鉴于太复杂,想着有没有什么通用办法,不需要逆程序逻辑就直接拦截svc调用的方法。 于是有了这篇文章,文章总结了各位大佬提出的三种方案(ptrace-seccomp,frida-seccomp以及sigaction-seccomp)并进行了测试。

🗒️2023AVSS-SELinux题目

2023-Geekcon决赛 AVSS赛道其中的一道题目,现场时因为之前没接触过这种漏洞,当时虽然有想法但是没做出来,留到赛后复现,题目考点在于如何通过System的任意写造成任意代码执行,对于高版本的解题环境可能需要绕过SELinux,这里暂时仅复现了Android 4.4环境的解题和另外两个环境的部分思路(暂时没有设备进行调试),后面如果有任何进展将会同步在blog。

🗒️动态链接库与内存Dump结果修复

腾讯游戏安全技术竞赛2023 安卓客户端初赛安卓题目是由Unity写的游戏,其中又有il2cpp ,一般情况下都是直接使用global-metadata.dat 和libil2cpp.so 拿到il2cpp相关数据以此来辅助逆向工程,但是在这个题目中libil2cpp.so 被加密,在游戏运行初始化时由其他代码进行解密后加载入内存。所以直接使用Il2CppDumper 会出现问题无法正常获取数据。 实际上如果设备已经获取ROOT权限并且安装有面具,则可以使用https://github.com/Perfare/Zygisk-Il2CppDumper,与上面提到的Il2CppDumper 为同一作者,该项目直接安装模块,在游戏运行过程中Dump出逆向所需要的信息,经测试是可以无视保护措施进行dump。但是无论如何要想进一步进行逆向分析少不了拿到解密后的动态链接库文件,然后进行修复以更好地进行静态分析。由此引出这篇文章,主要学习参考了下面提到的几篇文章,在此记录学习。
LLeaves
LLeaves
Happy Hacking
最新发布
基于eBPF实现一个简单的隐蔽脱壳工具-eBPFDexDumper
2025-1-9
LakeCTF At your Service 题解
2024-12-13
PendingIntent-security
2024-12-1
Android grantUriPermission与StartAnyWhere
2024-11-30
eBPF实践之修改bpf_probe_write_user以对抗某加固Frida检测
2024-11-10
CVE-2024-31317 Zygote命令注入提权system分析
2024-11-10
公告