作者China-Linux
Tomcat是一个开源的Web服务器,基于tomcat的web运行效率高,因为,颇受web站长的青睐,
不过,在默认的配置下,其存在一定的安全隐患,.可被恶意攻击,.另外,其功能比较单纯,需要我们进一步的进行配置,本次将从安全和功能两方面谈谈基于Tomcat的Web服务器的部署.,
希望对大家有帮助.
OS: Windows Server 2003
IP : 125.42.207.94
Tomcat :apache-tomcat-6.0.18
1.安全测试
(1)登陆后台
(2)在Windows Server 2003 上部署Tomcat,一切保持默认。部署Tomcat的时候要记得安装JDK以及配置JDK环境。JDK的安装配置不在本节赘述。然后登陆Tomcat后台。其缺省的后台是:
http://125.42.207.94:8080/manager/html
在浏览器输入该地址,回车后弹出登录框,输入缺省的用户名admin 缺省密码为空,成功登陆后台 如图(1)
(2).获得Webshell
(3)在Tomcat的后台有个WAR file to deploy模块,
通过此模块我们可以上传war文件(不是rar),Tomcat可以解析WAR文件,能够将其解压成
Web文件,我们将一个jsp的shell用rar打包,该后缀为(本例为shell.war),将其上传到服务器,可以看到在Tomcat后台多了个shell的目录. 如图2
这样一个shell就成功获取了. 如图
(3).测试操作
(4)创建管理员
(5)Tomcat服务缺省是以System权限运行的,因为改jsp木马就继承了
该权限,几乎可以对Web服务器进行所有的操作。比如启动服务、删除/创建 /修改文件、创建用户。我们以创建管理员用户为例进行演示。运行jsp木马的“命令行”模块,
分别输入net user xiaomei 12345 /add net localgroup administrators xiaomei /add
这样就创建一个管理员权限的xiaomei用户,如图 4 如图5
远程登陆
我们还可以进一步的渗透,比如通过3389.
我们可以上传一个vbs的脚本,运行.然后帮对方打开3389.其霸占服务器.
如图 6
2.
安全防范
通过上面的测试我们可以看到,缺省情况下的Tomcat服务器安全性是非常差的.
如何来加固Tomcat服务器的安全性呢?我们从一下几个方面来加强.
(1)服务降权
缺省安装时Tomcat是以系统服务权限运行的,因此缺省情况下几乎所有的Web服务器的管理员都具有administrator权限.这和iis不同. 存在极大的安全隐患,所以我们的安全设置首先要从Tomcat服务降权开始.
首先创建一个普通用户,为其设置密码.将密码策略设置为"密码永不过期",比如我创建的是
Tomcat_xm. Ranhou xiugai Tomcat安装文件夹的访问权限,为Tomcat_xm赋予Tomcat文件夹的读。写。执行的访问权限,赋予Tomcat_xm对webapps文件夹的只读访问权限,如果某些web应用程序需要写访问权限,单独为其授予那个文件夹的写访问权限。
如图7
开始----运行,输入services.msc打开服务管理器,找到apache tomcat服务,
在其属性窗口点击“登陆”选项卡,在登陆身份下选中“以此帐户”,然后在文本框
输入tomcat_xm和密码,最后确定,并重启服务器。这样Tomcat就已Tomcat_xm这个普通用户的权限运行了。
如图8
(1) 更改端口
Tomcat默认端口是8080,攻击者可以运行扫描工具进行端口扫描,
从而获取部署了Tomcat的web服务器然后实施攻击。因为,为了安全期间我们可以修改此缺省端口。在Tomcat的安装路径的conf找到server.xml文件,用记事本打开,搜索8080的字段进行修改.
如图9
另外,需要说明的是connectionTimeout=”20000″是连接超 时,maxThreads=”150″是最大线程类似这样的参数也可以根据需要进行修改。
(2) 禁止列目录
我们知道在iis中如果设置不当,就会列出web当前目录的所有文件,在Tomcat也不例外,
如果浏览者可以在客户端浏览web目录,那将会有较大的安全隐患,因为我们要确认Tomcat的设置禁止列目录,设置文件是web.xml 搜索init-param在其附近找到类似的字段:
<init-param>
<param-name>listings</param-name>
<param-value>false</param-value>
</init-param>
确认是false而不是true.
如图10
(3) 用户管理
(4) Tomcat的后台为admin并且缺省为空密码,安全起见我们需要修改缺省的用户名,并为其设置强壮的密码.其配置文件为 tomcat-users.xml ,用记事本打开文件进行修改。其中role标签表示权限,manager说明是管理员权限。 User 标签表示后台管理用户,可以看到用户名为admin 我们可以修改一个陌生的用户,可以看到password后面为空密码,我们可以设置可以强大的密码。最后修改完成的配置文件为:
<?xml version='1.0' encoding='utf-8'?>
<tomcat-users>
<role rolename="manager"/>
<role rolename="admin"/>
<user username="hacker" password="hacker520" roles="admin,manager"/>
</tomcat-users>
如图11
(4)错误页面
(5)Tomcat不像iis提供了各种了各种类型的错误页,如果Tomcat发生错误就会显示千篇一律的错误页面。其实我们可以修改其配置文件,从而自定义设置其错误页面的显示。打开web.xml,在最后一行的之前添加如下的语句:
<error-page>
<error-code>401</error-code>
<location>/401.htm</location>
</error-page>
<error-page>
<error-code>404</error-code>
<location>/404.htm</location>
</error-page>
<error-page>
<error-code>500</error-code>
<location>/500.htm</location>
</error-page>
当然,仅仅设置这样的语句还不行,需要创建相应的401.htm、404.htm、500.htm这样的文件才行。另外,要把错误页面文件放到webapps manager目录中,否则需要在web.xml中指定其路径。
总结:
总结:Tomcat不同于IIS,其配置没有图形界面,而是通过修改配置文件来完成的。不过,正因为如此用户有更多的自主性,可以根据自己的需要进行扩展。而且其与Apache可以无缝结合,打造安全、强大的Web服务器。