mirror of
https://github.com/carlospolop/hacktricks
synced 2024-11-22 20:53:37 +00:00
5.2 KiB
5.2 KiB
从零到英雄学习AWS黑客攻击 htARTE (HackTricks AWS Red Team Expert)!
支持HackTricks的其他方式:
- 如果您想在HackTricks中看到您的公司广告或下载HackTricks的PDF版本,请查看订阅计划!
- 获取官方PEASS & HackTricks商品
- 发现PEASS家族,我们独家的NFTs系列
- 加入 💬 Discord群组或telegram群组或在Twitter上关注我 🐦 @carlospolopm。
- 通过向 HackTricks 和 HackTricks Cloud github仓库提交PR来分享您的黑客技巧。
如何反混淆
反混淆策略取决于混淆方法。本节介绍适用于静态分析或逆向的静态反混淆技术:
- 对于DEX字节码(Java),常见的方法是识别并复制应用程序的反混淆方法到一个Java文件中,然后对混淆元素执行该文件。
- 对于Java和Native Code,另一种技术涉及将反混淆算法翻译成熟悉的脚本语言,如Python,强调理解算法不如能够执行它重要。
混淆的指标
识别混淆涉及识别某些指标,以下提供了一些例子:
- 在Java和Android中,字符串缺失或出现乱码字符串,暗示字符串混淆。
- 资产目录中存在二进制文件或DexClassLoader调用的存在,表明可能进行代码解包和加载。
- 使用Native库而没有可识别的JNI函数,表明可能进行了本地方法混淆。
字符串反混淆练习
提供了一个练习,以在静态分析环境中练习字符串反混淆。任务涉及一个具有特定SHA256摘要的样本文件,要求分析师在不动态运行应用程序的情况下揭示一个混淆的Javascript字符串。
解决方案涉及一个Python脚本,该脚本解密编码字符串,揭示了一个来自coinhive.com的嵌入式脚本,并启动了一个矿工。
额外资源
可以在BlackHat USA 2018和REcon 2019的讲座中进一步了解反混淆Android应用程序,特别是关注高级混淆技术,每个讲座都涵盖了Android应用程序混淆的独特方面。
练习来自https://maddiestone.github.io/AndroidAppRE/obfuscation.html:
enc_str = "773032205849207A3831326F1351202E3B306B7D1E5A3B33252B382454173735266C3D3B53163735222D393B475C7A37222D7F38421B6A66643032205849206477303220584920643D2223725C503A3F39636C725F5C237A082C383C7950223F65023F3D5F4039353E3079755F5F666E1134141F5C4C64377A1B671F565A1B2C7F7B101F42700D1F39331717161574213F2B2337505D27606B712C7B0A543D342E317F214558262E636A6A6E1E4A37282233256C"
length = len(enc_str)
count = 0
dec_str = [0] * (length/2)
while (count < length):
dec_str[count/2] = (int(enc_str[count], 16) << 4) + int(enc_str[count + 1], 16) & 0xFF
count += 2
print dec_str
key = [75, 67, 81, 82, 49, 57, 84, 90]
enc_str = dec_str
count = 0
length = len(enc_str)
while (count < length):
dec_str[count] = chr(enc_str[count] ^ key[count % len(key)])
count += 1
print ''.join(dec_str)
参考文献和进一步阅读
- https://maddiestone.github.io/AndroidAppRE/obfuscation.html
- BlackHat USA 2018: “解包装的包装器:逆向工程一个Android反分析库” [视频]
- 这个演讲主要讲述了逆向工程一个Android应用程序所使用的最复杂的反分析本地库之一。它主要涵盖了本地代码中的混淆技术。
- REcon 2019: “通往有效载荷的路径:Android版本” [视频]
- 这个演讲讨论了一系列混淆技术,仅在Java代码中,一个Android僵尸网络使用这些技术来隐藏其行为。
从零开始学习AWS黑客技术,成为 htARTE (HackTricks AWS红队专家)!
支持HackTricks的其他方式:
- 如果您希望在HackTricks中看到您的公司广告或以PDF格式下载HackTricks,请查看订阅计划!
- 获取官方PEASS & HackTricks商品
- 发现PEASS家族,我们独家的NFTs系列
- 加入 💬 Discord群组 或 telegram群组 或在Twitter 🐦 上关注我 @carlospolopm。
- 通过向 HackTricks 和 HackTricks Cloud github仓库提交PR来分享您的黑客技巧。