记录黑客技术中优秀的内容, 传播黑客文化,分享黑客技术精华

修改ANDROID程序第二课

2015-07-10 06:55

分享到:

http://pic1.hackdig.com/pp/c3eab2e98ed566d0e41940afa978dad63fc028baa6ae5a59d9152f10f349ac83ffd786f36ca932eec27c4b0b78308950.jpg

简介:

 

在这篇文章的最后部分,我们看了看IsItDown应用程序,以及它是如何设计不要在Android模拟器上运行,并包含一个十分令人反感的横幅广告。我们展示了如何在Apktool工具上可以用来编译一个Android APK文件,以及我们如何评估和修改产生的Smali代码对操作应用程序的功能。

在这最后一部分中,我们将重新构建的应用程序IsItDown与我们Smali文件的变化,那么我们将生成必要的密钥和签署申请,以便它可以用于修改后的表单上的虚拟或物理Android设备。我们也看到,这可应用于对这种黑客技术进行辩护,提供咨询,你可以传递给Android开发者。

Rebuild the App

随着完成更改把Smali文件保存下来,我们可以重新构建应用程序。我们回到IsItDown Apktool,我们反编译的应用程序,并重建创造了IsItDown目录:

http://pic1.hackdig.com/pp/caef4276da6ef4784d52dd7d3c29517cb646d3c087ec84d966a20e47b5f7564dba312009c913501e4422d015dab00d9a.jpg

 

只要你修改的Smali代码没有语法错误,Apktool将在dist目录中建立一个新的Android APK文件:

http://pic1.hackdig.com/pp/7c360a5426b1886df0a9cfdd6f6282837b0d50597b13a79983e72d99ab9824c28e135700d8224c17bd10de226a874230.jpg

 

Sign the App

我们无法安装和运行这个新的版本,但是尽管如此,由于Android平台需要签名的应用程序包。不要害怕,虽然,签名是不是被选中(by anyone, ever)任何东西,并且可以自签名。首先,使用JDK工具来运行keytool实用程序,并创建自己的签名密钥,如下所示:

http://pic1.hackdig.com/pp/2922be572a83b8a8c47e1e825dc54607544c9a825e69ad58da2821b18c66adf61b8abfe673745d28f80b291f9b02a626.jpg

 

但是需要注意的是keytool.exe工具的路径可能会因为你的JDK版本不同而不同。

你可以随意输入任何值在这里找到令人愉快的事,别名“IsItDown,如图所示。接下来,是使用jarsigner.exe工具来利用的关键,并且生成一个签名的应用程序包:

http://pic1.hackdig.com/pp/c3eab2e98ed566d0e41940afa978dad6610de00bfee5a02342eff6434a234a2d449b23c1d72e51f9152d483576d27dbf.jpg

 

 

实用的jarsigner工具,指定密钥存储文件的位置,APK文件名和密钥库别名“IsItDown”。输入您在生成密钥库提供的密码,并忽略警告。Viola ! 签名Android包!

 

Run the App

最后,我们收获到我们工作的好处是。卸载旧版本IsItDown,并安装修改后的版本。

http://pic1.hackdig.com/pp/d2bd8ab8780efecdb70a25b22e968cee42650a6fef1677cfd1bab31a47b14ce687c006e85f4a2eaff2cfd6144311ef6c.jpg

 

下一步,运行这个应用程序,并在运行过程中看到的变化。真棒!

 

http://pic1.hackdig.com/pp/d2bd8ab8780efecdb70a25b22e968cee86f6e1858b1cf73ba7a7290d1cb4c565c3308e51d8d9d28f20b144c6462f2574.jpg

 

 

 

Defend the App

现在,我们已经看到的步骤来操作的应用程序,我们应该看看什么开发人员可以做到这一点。作为一支笔测试仪,它总是把你的客户超过“这是打破”,重要的是:我们需要解决观众的问题,给他们建议做什么你已经确定的问题。

这里......这很难。底线是,任何人都可以修改和(未使用终端到终端的可信执行政策上的任何设备)操纵一个Android应用程序或任何软件。开发人员可以做的事情,使它更难攻击对于攻击者来说,但最终没有合理的办法从操纵应用程序阻止攻击者。

一个简单的方法对于Android开发人员来说,是检查应用程序签名的完整性。当我们生成一个新的APK文件与Apktool,我们也必须生成一个自签名密钥,并签署了APK文件,才可以安装。因为我们没有原始开发商的签名密钥,所以我们永远无法重现原始签名信息。

开发人员可以定期检查应用程序运行时的证书信息。我第一次看到这种技术在Android Keith Makan安全Cookbook ,由Keith Makan and Scott Alexander-Bown, Scott (2013年年底Packt出版,第179)但他们的代码不能在较新的AndroidAPI层面应用,但我已经在用提供一个完整的例子修改了它:https://github.com/joswr1ght/ValidateSigningCertificate.

从本质上讲,开发者生成签名证书,并计算证书的SHA1哈希值,应用程序源代码中嵌入了:

http://pic1.hackdig.com/pp/69703ce7a46d1e2ebe4a3bf5791266bfadb6e7bf32e9523355a217140688685641a12d36d5c549164d50817aaabbfdad.jpg

 

定期在应用程序执行期间,开发人员调用getPackageInfo PackageManager()

得到签名参数检索应用程序签名证书信息,比较嵌入式SHA1哈希散列的当前的证书:

http://pic1.hackdig.com/pp/d2bd8ab8780efecdb70a25b22e968cee2996418ab145c6aae77d7658336b35baa75088ad1eaba096bac83b5487da054c.jpg

 

这是... OK。谁可以修改代码Smali也可以修改开发者证书的SHA1嵌入的攻击,以配合自己的签名证书,或者只是完全禁用证书检查。唯一的“优越”的防御是将敏感或关键代码与Android原生开发套件(NDK)一个本地编译库。在这里,开发者将重新写在C / C ++Java代码,使其更难操纵应用程序的功能(困难,但仍然不是不可能的,因为许多攻击者可以操纵本地库)。

 

总结

在这篇文章中,我们研究了操纵Android应用程序的技术。我们的目标IsItDown应用程序是一个简单的目标,但你可以用在其他许多Android应用程序相同的技术,只需加一点耐心。

请记住,使用这些技术为了更好的保护应用程序,而不是破坏应用程序。这游戏你喜欢玩是人写的也需要赚钱,和关闭他们的横幅广告或操纵“硬币”价值x100是有趣的,但它使他们三思而后实施他们的下一个项目了。使用这些技术符合伦理道德的行为。

作为另一个标注:我的朋友写的iOS应用溅射如何iOS应用程序的本地编译,不能反向工程同样的方式。每当我做iOS的逆向工程,我来看看在相同的应用程序的Android版本。由于Android逆向工程是如此容易得多,我们可以花一点时间看Android的代码移动到iOS应用来感受如何应用程序功能之前。如果我攻击后端服务器,我没有进行反向工程iOS版本的应用程序; Android版本会做就好了。

 

 

http://pic1.hackdig.com/pp/7c360a5426b1886df0a9cfdd6f6282835708614e83895815dd61c69ce4ba43ef4b77ddc3f6d4dbd2c28917781f924e72.jpg

 

Josh

Joshua Wright是SANS Institute高级讲师和the SANS Institute SEC575: Mobile Device Security and Ethical Hacking course的作者。他会教学手机窃听,在波士顿8/3-8/8和拉斯维加斯9/14-9/19


本文由 360安全播报 翻译,转载请注明“转自360安全播报”,并附上链接。
原文链接: https://pen-testing.sans.org/blog/pen-testing/2015/07/07/modifying-android-apps-a-sec575-hands-on-exercise-part-2

知识来源: bobao.360.cn/learning/detail/511.html

阅读:121761 | 评论:0 | 标签:Android

想收藏或者和大家分享这篇好文章→复制链接地址

“修改ANDROID程序第二课”共有0条留言

发表评论

姓名:

邮箱:

网址:

验证码:

公告

九层之台,起于累土;黑客之术,始于阅读

推广

工具

标签云

本页关键词