IP扫描
Tomcat是一款小型的Web应用服务器,颇受小型企业站长的青睐。Tomcat服务器开放源代码,占用的系统资
源小,扩展性好,支持负载平衡与邮件服务等,特别是在Linux系统平台上它优势明显,有广泛的用户群。
最近,Tomcat爆出新漏洞。攻击者利用该漏洞轻松进入Web站点后台,然后上传jsp网页木马,通过进一步的提权渗透就可获得服务器的控制权。
在攻击者如火如荼地利用该漏洞实施攻击的时候,站长们如何修补该漏洞以报Tomcat服务器的安全呢?笔者曾经在论坛中看到了很多针对该漏洞的修补方法,经过笔者的测试这些方法根本不能有效防范该漏洞。另外还有一些伪技巧,这些所谓的技巧不但不能修补漏洞而且会造成服务器故障。
例如,有人说把Tomcat自启动删除可杜绝该漏洞,殊不知删除了Tomcat自启动会造成网站访问的异常。基于此,笔者搭建Tomcat环境经过测试找到了修补该漏洞的有效方法,写出来与大家共享。
环境说明
系统平台:Windows Server 2003
TOMCAT版本:6.0
站点路径:D:\java\tomcat4\
一、入侵重现
为了使我们的漏洞修补有针对性,下面笔者模拟再现攻击者入侵Tomcat服务器的过程。
1、IP扫描
Tomcat攻击者首先确定某个IP段,然后利用扫描工具探测该网段中开启8080端口的主机,因为Tomcat服务器的默认端口是8080。由于笔者是本地测试,就省略这个过程。直接运行Tomcat6,在本地启动Tomcat服务器。(图1)
图1
提示:攻击者在实际攻击中,利用专门的扫描工具不但可以扫描到Tomcat的服务器,同时还可以猜解出用户名和弱口令。
2、登录后台
Tomcat默认的后台地址是http://www.*.*:8080/manager/html。由于我们在本地测试,于是在
浏览器地址栏中输入http://127.0.0.1:8080/manager/html,弹出登陆对话框,输入默认的用户名admin和密码admin,成功进入后台。(图2)
图2
3、上传jsp木马
在Tomcat的后台有一个Upload a WAR file to install模块,通过它可以上传jsp网页木马。本例我们上传shell.jsp。上传后的jsp木马默认在shell目录下,和网站的URL地址结合,jsp网马的URL地址就是是http://127.0.0.1:8080/shell/shell.jsp。把网马的URL地址输入IE地址栏,即可运行该网马,如图3所示服务器的各个磁盘分区及其站点目录一目了然。(图3)
图3
我们的目的是修补Tomcat登录漏洞,就不必进行提权及其渗透模拟测试就此结束,下面我们进行Tomcat漏洞的修补。
二、修补漏洞
1、漏洞根源
笔者通过测试发现,Tomcat漏洞是由于tomcat-users.xml文件引起的
。该文件保存了Tomcat后台登录的用户名和密码,并且默认状态下成功的登录者获得的是manager权限即管理员权限。 下面是默认状态下的tomcat-users.xml文件内容,倒数第二行是最关键的。
<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
<role rolename="tomcat"/>
<role rolename="role1"/>
<role rolename="manager"/>
<role rolename="admin"/>
<user username="admin" password="admin" roles="admin,manager"/>
</tomcat-users>
2、漏洞修补
知道了原因,我们的漏洞修补就是对tomcat-users.xml文件进行修改。针对该漏洞我们有两种修改方法,一种是改用户名和密码,一种是修改权限。
1、修改用户名及密码
我们把tomcat-users.xml文件倒数第二行中的改为,即把登录用户改为lw,登录密码改为gslw。最后重新登录后台测试,用默认的用户名和密码admin登录失败见图4,而用新用户名和密码登录成功。(图4)
图4
2、修改权限
我们把tomcat-users.xml文件倒数第二行中的改为,去掉了admin后面的manager,即取消了管理员权限。然后重启tomcat(必须要重启,因为Tomcat重启时会加载配置文件,这样刚才的修改才会生效。)和图4一样登录失败。
总结:本文针对Tomcat服务器漏洞的演示及其修补方法在技术上没有什么难度,但是这些大家不经意的细节往往成为服务器杀手,服务器管理者要提高自己的安全素养。另外,作为服务器管理者要勤于动手,善用分析修补类似本文提及的这样的漏洞。