在编译Metasploit的安卓payload时,报出以下错误
[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,设置路径如下:
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