ARTICLE DETAIL

资讯详情

深耕郑州网站建设与运营推广的一线实战洞察。

OWASP MASTG UnCrackable 移动逆向挑战实战指南:Android 与 iOS 全关卡解析

OWASP MASTG UnCrackable 移动逆向挑战实战指南:Android 与 iOS 全关卡解析 文档教程网络安全【免费下载链接】mastgThe OWASP Mobile Application Security Testing Guide (MASTG) is a comprehensive manual for mobile app security testing and reverse engineering. It describes technical processes for verifying the OWASP Mobile Security Weakness Enumeration (MASWE) weaknesses, which are in alignment with the OWASP MASVS.项目地址https://gitcode.com/gh_mirrors/ow/mastg点击查看免费下载UnCrackable Mobile Apps 是 OWASP MASTGMobile Application Security Testing Guide移动应用安全测试指南仓库内置的一套跨平台逆向工程闯关挑战Crackmes包含 Android 与 iOS 共六个正式关卡外加一个授权验证关卡覆盖静态分析、动态调试、反篡改绕过、白盒密码学等移动安全核心技能。读完本文你将掌握每个挑战的目标与难点、在仓库中的对应文件与配套测试文档、以及从安装部署到使用 jadx / apktool / Frida 等工具完成解包、分析、调试与绕过的完整实战路径。UnCrackable Mobile Apps 官方 Logo什么是 UnCrackable Mobile AppsUnCrackable Mobile Apps 是 Crackmes/README.md 中正式介绍的挑战集合一系列专为 Android 与 iOS 设计的移动逆向工程题目由 MASTG 作者主要贡献者为 Bernhard Mueller制作。它们的定位有两重教学素材在整个 OWASP MASTG 文档体系中被反复作为示例应用引用用于演示反调试检测、反篡改、根检测、TLS 绕过等测试技术练习靶场任何人也可以把它们当作纯逆向练习题按难度逐级攻克Of course, you can also solve them for fun。MASTG 在 Document/0x04c-Tampering-and-Reverse-Engineering.md 中明确建议初学者从简单的逆向任务和 crackme入手先搭好基础工具环境学习汇编/字节码语言、操作系统与遇到的混淆手段再由易到难逐步进阶——UnCrackable 系列正是这一学习路径的官方载体。仓库根目录 README.md 也将 Crackmes 列为项目的重要入口之一。挑战全景仓库文件清单与关卡目标所有挑战文件集中在仓库的Crackmes/目录下Android 为 APKiOS 为 IPA同时每个挑战在 apps 目录中有独立的 ID 卡片MASTG-APP-xxxx记录目标描述与作者信息。Android 关卡关卡文件位置MASTG 条目挑战目标Level 1Crackmes/Android/Level_01/UnCrackable-Level1.apkMASTG-APP-0003某个 secret string 被藏在 App 中想办法提取它Level 2Crackmes/Android/Level_02/UnCrackable-Level2.apkMASTG-APP-0004App 内藏有 secret可能包含 native 代码痕迹并内置反篡改机制Level 3Crackmes/Android/Level_03/UnCrackable-Level3.apkMASTG-APP-0005The crackme from hell!——以多层加固著称的高难度关卡同样是提取隐藏 secret stringLevel 4Crackmes/Android/Level_04/r2pay-v0.9.apk、r2pay-v1.0.apkMASTG-APP-0015r2Pay 挑战找出 4 位 master PIN 与 saltflag 格式r2con{PIN_NUMERIC:SALT_LOWERCASE}并破解多层混淆保护的 r2pay master key 白盒flag 格式r2con{ascii(key)}License 1Crackmes/Android/License_01/validate—仓库以二进制可执行文件形式收录未附带独立说明文档iOS 关卡关卡文件位置MASTG 条目挑战目标Level 1Crackmes/iOS/Level_01/UnCrackable-Level1.ipaMASTG-APP-0025提取隐藏在 App 中的 secret string与 Android L1 同源Level 2Crackmes/iOS/Level_02/UnCrackable-Level2.ipaMASTG-APP-0026App 内藏 secretthis time it wont be tampered with!——同样内置反篡改防护从 App 元数据看iOS 第一关的包名为sg.vp.UnCrackable1显示名为UnCrackable Level 1版本1.0最低系统要求 iOS 8.0见 MASTG-TOOL-0135 中 PlistBuddy 打印出的 Info.plist 内容调试场景下实际 bundle id 为sg.vp.UnCrackable1.QH868V5764见 MASTG-TECH-0055。环境准备把挑战装进设备Android安装 APKAndroid 挑战以标准 APK 分发最直接的安装方式是adb installadb install UnCrackable-Repackaged.apk以上命令来自 MASTG-TECH-0039 的重签名安装流程——注意一旦你后续对 APK 做过解包修改原签名即失效必须重新签名后才能安装因此推荐保留一份原始 APK 用于首次直接安装对比。iOSSideload 安装 IPAiOS 挑战以未签名/侧载 IPA 形式分发无法直接走 App Store。安装方式在 MASTG-TECH-0056 中有完整清单主要包括SideloadlymacOS连接设备、输入 Apple ID将 IPA 拖入工具即可自动签名安装ideviceinstallerLinux/macOSUSB 连接ideviceinstaller -i Uncrackable.ipaios-deploymacOS需要先解压 IPA再以 app bundle 形式安装unzip UnCrackable.ipa ios-deploy --bundle Payload/UnCrackable Level 1.app -W -vxcrun devicectlmacOS Xcode安装已签名的 IPAxcrun devicectl device install app --device DEVICE_UDID ~/signed.ipa需要说明的前提无论哪种方式IPA 都必须先通过有效证书签名普通 Apple 账号会改写 bundle id开发者账号可保留原 id在越狱设备上则可通过钩子系统守护进程关闭签名校验从而直接安装详见 MASTG-TECH-0092 的重签名流程与 MASTG-TECH-0056 的越狱说明。静态分析解包与反编译三板斧jadx / jadx-guiJava 层还原Android 应用的classes.dex本质是 Dalvik 字节码可以无损转换为 Java 层源码。MASTG 官方推荐的首选反编译器是 jadxMASTG-TECH-0017它直接支持 APKjadx-gui UnCrackable-Level1.apk # 图形界面打开 jadx -d decompiled UnCrackable-Level1.apk # 反编译全部源码到目录 jadx --single-class sg.vantagepoint.uncrackable1.MainActivity UnCrackable-Level1.apk # 只反编译单个类 jadx -d decompiled -e UnCrackable-Level1.apk # 导出全部资源以 UnCrackable L1 为例打开后即可在sg.vantagepoint.uncrackable1包下看到MainActivity、CodeCheck等关键类secret 校验逻辑尽收眼底——这也是绝大多数新手的第一课。jadx-gui 打开 UnCrackable APK 的反编译界面如果 jadx 对某段代码反编译失败可改用 MASTG-TECH-0017 中提到的 CFR、Procyon、Fernflower 等多反编译器合一的工具兜底。apktool资源解码与 Smali 层操作需要查看 AndroidManifest、资源文件或直接修改 smali 时使用 apktoolMASTG-TECH-0007apktool d UnCrackable-Level3.apk # 解码 APK得到 smali/ 与 apktool.yml解码产物中apktool.yml记录了 manifest、targetSdkVersion 等关键配置——MASTG 的测试用例正是这样读取的MASTG-TEST-0021 执行grep targetSdkVersion UnCrackable-Level3/apktool.yml。smali/目录则是人类可读的 Dalvik 字节码汇编配合apktool b可重打包见下文重签名流程。APKiD识别编译器、混淆器与加壳器面对 L3、L4 这类高难度关卡第一件事是摸清对方的装备。APKiDMASTG-TECH-0165通过扫描 DEX 与 native 库中的特征签名来识别保护手段apkid ./r2pay-v1.0.apk对 r2pay-v1.0 的扫描输出揭示了它的多层防线完整输出见 MASTG-TECH-0165classes.dexcompiler: r8且obfuscator: unreadable field/method namesR8 混淆lib/*/libnative-lib.soObfuscator-LLVM字符串加密lib/*/libtool-checker.soanti_root: RootBeerRoot 检测classes.dex中还有anti_vm: Build.TAGS check, possible ro.secure check模拟器/环境检测。这些结论直接指明了后续分析的主攻方向Java 层已被 R8 混淆、native 层有 OLLVM 字符串加密、还叠加了 Root/模拟器检测——必须先绕过环境检测再进入字节码与 native 代码的逆向。动态分析Frida 与调试绕过进程级函数追踪对 iOS UnCrackable L1MASTG 用 Frida CLI 演示了动态函数追踪MASTG-TECH-0087frida-trace -U -i open sg.vp.UnCrackable1这会跟踪 App 对open等函数的调用验证 App 是否在启动时读取了文件——是观察行为、验证静态分析结论的快速手段。向 IPA 注入 Frida Gadget若目标 App 不支持 Frida 默认注入如未签名/非越狱场景可手动把 Frida Gadget 注入 IPAMASTG-TECH-0091。完整流程以 UnCrackable-Level1.ipa 为例unzip UnCrackable-Level1.ipa # IPA 本质是 ZIP 包 mkdir -p Payload/UnCrackable\ Level\ 1.app/Frameworks cp FridaGadget.dylib Payload/UnCrackable\ Level\ 1.app/Frameworks/ optool install -c load -p executable_path/Frameworks/FridaGadget.dylib \ -t Payload/UnCrackable\ Level\ 1.app/UnCrackable\ Level\ 1 # 插入 LC_LOAD_DYLIB zip -r patched.ipa Payload # 重新打包注入后用 MASTG-TECH-0056 中的任一方式安装patched.ipa即可对 App 执行 Frida 动态插桩若来自 App Store还需按 MASTG-TECH-0092 用含get-task-allowentitlement 的开发描述文件重签名。实战案例Android L2 的反调试与 native 校验绕过Android L2 是 MASTG 演示绕过反调试检测的标准样本MASTG-TEST-0046。表面上代码与 L1 类似sg.vantagepoint.uncrackable2包下有一个CodeCheck类负责校验用户输入的 code但真正的校验逻辑发生在声明为 native 的bar方法中且类初始化时加载了名为foo的 native 库package sg.vantagepoint.uncrackable2; public class CodeCheck { public boolean a(String arg2) { return this.bar(arg2.getBytes()); } private native boolean bar(byte[] arg1) {} } static { System.loadLibrary(foo); }也就是说秘密与校验逻辑被刻意藏进了 native 库——这正是 MASTG-TEST-0046 强调的常见混淆手法。对应绕过思路同一测试文档给出包括Patch 反调试功能直接以 NOP 覆盖检测逻辑Frida / Xposed 钩子在 Java 与 native 层 hookisDebuggable、isDebuggerConnected等函数的返回值隐藏调试器改造环境Android 是开放系统可修改系统层来瓦解开发者对环境的假设。深度案例r2PayAndroid L4r2Pay 是 UnCrackable 系列中规格最高的一关由 Eduardo Novella 与 Gautam Arvind 为 Radare2 社区设计MASTG-APP-0015。剧情设定r2 社区梦想拥有去中心化免费货币 r2coin开发了 r2Pay 应用的调试版你要验证它在密码学上是否真的不可破解。挑战目标两个 flag找出生成绿色 r2coin有效 token的4 位 master PIN及其使用的salt。若生成的是红色 r2coin则 token 不会被社区验证。Flag 格式r2con{PIN_NUMERIC:SALT_LOWERCASE}找出埋在多层混淆与保护下的r2pay master key破解其白盒实现。Flag 格式r2con{ascii(key)}。提示先在未篡改的设备上运行 APK玩玩 App 观察 token 生成行为再转入逆向。两个版本难度递进v0.9面向 OWASP MAS 发布的版本提供源码编译过程做了大量软化降低门槛适合新手v1.0为 R2con CTF 2020 发布无源码叠加了大量额外保护如前述 APKiD 揭示的 R8 混淆、OLLVM 字符串加密、RootBeer 反 Root、反 VM 检测。分析 v1.0 时可以沿用 MASTG-TECH-0165 的 APKiD 结论作为侦察起点再配合 jadx 处理 R8 混淆后的 Java 层、用 IDA/Radare2 处理 OLLVM 加密后的 native 层MASTG-TOOL-0146 等工具目录 tools/android 中有完整工具清单。重打包与重签名修改后的 APK 如何装回去无论你要 patch 反调试逻辑、改 debuggable 标志还是注入 Frida Gadget 到 APK修改后都必须走完整的重打包-重签名流程MASTG-TECH-0039apktool d --no-src UnCrackable-Level1.apk # 解码配合 MASTG-TECH-0038 可改 debuggable 标志 # ... 修改 smali / AndroidManifest.xml ... cd UnCrackable-Level1 apktool b zipalign -v 4 dist/UnCrackable-Level1.apk ../UnCrackable-Repackaged.apk签名环节Android Studio 默认会在~/.android/debug.keystore生成调试证书可用它直接签名apksigner sign --ks ~/.android/debug.keystore --ks-key-alias signkey UnCrackable-Repackaged.apk若遇到 JRE 兼容性问题可退回jarsigner但此时zipalign必须放在签名之后执行jarsigner -verbose -keystore ~/.android/debug.keystore ../UnCrackable-Repackaged.apk signkey zipalign -v 4 dist/UnCrackable-Level1.apk ../UnCrackable-Repackaged.apk最后adb install即可。zipalign与apksigner位于 Android SDK 的build-tools/version/目录需提前加入 PATH。在 MASTG 学习路径中的定位UnCrackable 系列贯穿 MASTG 的技术文档、测试用例与工具示例是理解抽象测试项的最佳落地样本。除本文引用的外还可继续深入以下仓库资料Document/0x04c-Tampering-and-Reverse-Engineering.md逆向入门方法论与 crackme 练习建议tests/android/MASVS-RESILIENCE/ 与 tests/ios/以 UnCrackable 为样本的各类安全测试用例techniques/android/ 与 techniques/ios/jailbreak/root 检测、TLS 绕过、调试器对抗等技术的完整操作手册Document/Images/Techniques/各技术的实操截图。小结UnCrackable Mobile Apps 是 OWASP MASTG 体系中最具实战价值的逆向训练靶场从 L1 的纯 Java 提取 secret入门到 L2 的 native 校验与反调试对抗、L3 的多层加固再到 L4 r2Pay 的白盒密码学与 CTF 级混淆难度曲线完整覆盖移动安全测试的核心技能树。结合本文给出的安装、静态分析jadx / apktool / APKiD与动态分析Frida流程以及仓库中每个关卡对应的 apps 卡片、techniques 手册与 tests 用例你可以把它当作一条可自测、可复盘的完整学习路线。更权威的信息可查阅 OWASP 官方 Crackmes 门户mas.owasp.org/crackmes持续获取更新与社区解法。赞分享文档教程网络安全【免费下载链接】mastgThe OWASP Mobile Application Security Testing Guide (MASTG) is a comprehensive manual for mobile app security testing and reverse engineering. It describes technical processes for verifying the OWASP Mobile Security Weakness Enumeration (MASWE) weaknesses, which are in alignment with the OWASP MASVS.项目地址https://gitcode.com/gh_mirrors/ow/mastg点击查看免费下载相关推荐OWASP MASTG Android UnCrackable L4r2Pay破解实战PIN 码提取与白盒密码逆向指南OWASP MASTG Android UnCrackable L4r2Pay破解实战PIN 码提取与白盒密码逆向指南 本文以 apps/android/文档教程网络安全OWASP MASTG Android UnCrackable L3 实战指南从 APK 逆向到网络层证书验证绕过OWASP MASTG Android UnCrackable L3 实战指南从 APK 逆向到网络层证书验证绕过 本文基于 OWASP MASTG 仓库中的文档教程网络安全10 分钟跑完智能SQL注入测试CyberStrikeAI 完整实战指南10 分钟跑完智能SQL注入测试CyberStrikeAI 完整实战指南 上线前要做安全测试眼前是几十个待测参数、几十种 payload 变体还有一道 W文档教程网络安全创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表