编译Metasploit安卓Payload时报错解决笔记

在编译Metasploit的安卓payload时,报出以下错误

1
> [ERROR] COMPILATION ERROR : [INFO] ------------------------------------------------------------- [ERROR] No compiler is provided in this environment. Perhaps you are running on a JRE rather than a JDK? [INFO] 1 error

报错后,所有编译处在SKIPPED状态,如下图:

解决方法: ubuntu:

apt-get install openjdk-7-jdk openjdk-7-doc openjdk-7-jre-lib

注意,假如你是jdk8的请将7替换成8。 centos:

yum -y install openjdk-8-jdk openjdk-8-doc openjdk-8-jre-lib

在centos7的terminal中输入java -verison是没问题的,但是javac的话就会提示没有此命令

> 在centos中,直接yum install java-devel即可

编译[INFO] AndroidPayload for Metasploit时报错,截图如下:

出现该问题是变量$ANDROID_SDK_ROOT和$ANDROID_NDK_HOME设置错误。 解决方法: 使用Android Studio安装的sdk及ndk,设置路径如下:

1
export M2_HOME=/root/apache-maven-3.3.9 export ANDROID_SDK_ROOT=/root/Android/Sdk export ANDROID_NDK_HOME=/root/Android/Sdk/ndk-bundle export PATH=$JAVA_HOME/bin:$JAVA_HOME/jre/bin:$M2_HOME/bin:$PATH 

执行source /etc/profile后,编译成功:

编译成功后,将编译好的target/data/android 目录复制到Metasploit-framework根目录下的data文件夹,我这里的metasploit路径如下(使用yum安装的Metasploit-framework): /opt/metasploit-framework/embedded/framework