Apache Tomcat弱口令

1、Apache Tomcat简介


Tomcat是由Apache软件基金会下属的Jakarta项目开发的一个Servlet容器,按照Sun Microsystems提供的技术规范,实现了对Servlet和JavaServer Page(JSP)的支持,并提供了作为Web服务器的一些特有功能,如Tomcat管理和控制平台、安全域管理和Tomcat阀等。由于Tomcat本身也内含了一个HTTP服务器,它也可以被视作一个单独的Web服务器。

2、漏洞成因


配置Tomcat的时候使用了常用的用户名和弱口令,导致Tomcat可被攻击者登陆,并利用manager中的war部署功能上传恶意脚本最终导致服务器沦陷。

3、漏洞检测及利用


Tomcat的默认端口是8080端口,可使用nmap扫描服务器的8080端口寻找开放了tomcat的服务器:

nmap -n --open -p 8080 X.X.X.X/24

找到了Tomcat服务器后就可以访问manager目录并尝试使用弱口令或者Tomcat默认的用户名和密码进行登陆。默认用户名为admin,默认密码为admin。 manager/html目录中可以上传部署war文件,将恶意的war上传并部署后访问war文件名所在的目录,如:http://xxx:8080/shell (假设上传的是shell.war)即可。

特殊情况下,若Tomcat服务器关闭了8080端口,也可使用8009端口。参见:Tomcat的8009端口AJP的利用

4、漏洞修复


修改用户名和密码

修改tomcat-user.xml中的用户名和密码。将类似于如下的行进行修改。修改时要关闭Tomcat。

<user username="admin" password="admin" roles="manager"/>

使用http.conf限制访问

使用http.conf限制对manager目录的访问:

<Location "/manager">
AllowOverride None
deny from all
allow from 127.0.0.1
</Location>

使用iptables限制访问

使用iptables限制访问IP,只允许IP为X.X.X.X的主机访问8080端口:

iptables -F
iptables -P INPUT DROP
iptables -A INPUT -p tcp -s X.X.X.X --dport 8080 -j ACCEPT
iptables -A INPUT -p udp -s X.X.X.X --dport 8080 -j ACCEPT

8080端口关闭后,8009端口同样可能导致服务器被入侵,参见:Tomcat的8009端口AJP的利用。 若发现Tomcat8009端口开放了也需要将其关闭。

5、实际案例

6、参考资料