实验目的&&原理
【实验目的】
使用CVE-2017-12149漏洞getshell
【知识点】
该漏洞位于JBoss的HttpInvoker组件中的 ReadOnlyAccessFilter 过滤器中,其doFilter方法在没有进行任何安全检查和限制的情况下尝试将来自客户端的序列化数据流进行反序列化,导致攻击者可以通过精心设计的序列化数据来执行任意代码。
【实验原理】
漏voker.war\WEB-INF\classes\org\jboss\invocation\http\servlet,在这个路径下的ReadOnlyAccessFilter.class中。洞出现的原因是因为/invoker/readonly的过滤器没有写好,文件路径是:server\all\deploy\httpha-invoker.sar\in
【实验设备】
操作机:Ubuntu
【实验思路】
1、使用vulhub拉取漏洞环境
2、使用公开的漏洞poc对靶机进行攻击
CVE-2017-12149-实验手册
【实验步骤】
1、docker拉取镜像
首次拉取镜像流程
第一步关闭防火墙
关闭
systemctl stop firewalld.service
开启
systemctl start firewalld.service
查看状态
systemctl status firewalld
启动apache服务
启动apache
sudo systemctl start httpd.service
关闭apache
sudo systemctl stop httpd.service
重启apache
sudo systemctl restart httpd.service
开启docker靶场服务
service docker restart
拉取镜像
进入靶场
cd /var/www/html/vulhub/jboss/CVE-2017-12149
对靶场进行编译
docker-compose build
运行靶场
docker-compose up -d
查看启动环境--查看链接端口
docker-compose ps -a
通过浏览器访问
可能会出现的问题:端口被占用
修改端口
vim docker-compose.yml
关闭容器
内部:docker stop
外部:docker stop ce48bc585b21
docker start 容器ID或容器名
重启容器
systemctl restart docker
重启靶场
docker-compose build
删除容器
docker rm [容器ID]
docker rm $(docker ps -aq) //全部清理
最终运行靶场,如下说明靶场可以访问
2、访问http://ip/invoker/readonly页面返回500,所以一般情况下是存在漏洞的
2、 使用工具监测
https://github.com/yunxu1/jboss-_CVE-2017-12149
【漏洞防范】
- 升级中间件版本
- 不需要的http-invoker.sar组件,删除此组件