# Tomcat安全配置

Author: 乌云历史资料库 (@wooyun_archive)
Published: 2015-09-10T02:22:00Z
Canonical: https://wepostx.com/topics/1027

> 乌云历史资料归档
>
> **原始作者：** 夸父追日
> **原始编号：** superkieran-wooyundrops:753
> **原始发布时间：** 2015-09-10 10:22
> **声明：内容仅用于技术研究和个人使用，版权归 wooyun.org。**

---

tomcat是一个开源Web服务器，基于Tomcat的Web运行效率高，可以在一般的硬件平台上流畅运行，因此，颇受Web站长的青睐。不过，在默认配置下其存在一定的安全隐患，可被恶意攻击。

# 0x00 测试环境

Win2003
Tomcat6.0.18 安装版

# 0x01 安全验证

### 一.登陆后台
首先在win2003上部署Tomcat,一切保持默认。
Tomcat的默认后台地址为:http://域名:端口/manager/html.进入之后弹出登陆对话框,Tomcat默认的用户名admin,密码为空。
Tomcat的一些弱口令:

```text
tomcat tomcat admin 空 admin admin admin 123456
```

![原文图片](/media/2016/06/c1a4e55919ff8acf70699d9807ec9ade)

然后来看一下Tomcat安装版默认的tomacat-users.xml配置文件

![原文图片](/media/2016/06/e4875dab4515fa7bd7e3d1a6fdff566e)

注：Linux平台及Windows平台免安装版本不受该漏洞影响。

### 二.获取Webshell
在Tomcat的后台有个WAR file to deploy模块，通过其可以上传WAR文件。Tomcat可以解析WAR文件，能够将其解压并生成web文件。

![原文图片](/media/2016/06/d0d74b31a71588f207592d29e3c0991f)

我们将一个jsp格式的webshell用WinRar打包然后将其后缀改名为WAR(本例为no.war)，这样;一个WAR包就生成了。最后将其上传到服务器，可以看到在Tomcat的后台中多了一个名为/no的目录。

![原文图片](/media/2016/06/f14869c7d6b43de9cedb74d388570ef3)

点击该目录打开该目录jsp木马就运行了，这样就获得了一个Webshell。

![原文图片](/media/2016/06/2259621bb3977c5aee848ea1a5e57831)

### 三.获取服务器权限
Tomcat服务默认是以system权限运行的，因此该jsp木马就继承了其权限，几乎可以对Web服务器进行所有的操作。

![原文图片](/media/2016/06/40e226e0521d8acd8d579fab8c88cb52)

然后创建用户: net user Boom shellcode /add
添加到管理员用户组: net localgroup administrators Boom /add

![原文图片](/media/2016/06/621000bc229ad3813bf3900117d5ecdb)

然后可以干什么事我就不说了

# 0x02 安全配置

### 一.修改tomacat-users.xml或删除Tomcat后台
修改\conf\tomacat-users.xml

![原文图片](/media/2016/06/383ec5cbb1e38a82a89028625aadb40b)

删除Tomcat后台 \webapps全部删除就好。

### 二.禁止列目录
在IIS中如果设置不当，就会列出Web当前目录中的所有文件，然而在Tomcat也不例外。如果浏览者可以在客户端浏览Web目录，那将会存在较大的安全隐患，因此我们要确认Tomcat的设置中禁止列目录。\conf\web.xml下

```text
<init-param> <param-name>listings</param-name> <param-value>false</param-value> </init-param>
```
确认是false而不是true。

![原文图片](/media/2016/06/a6025ce2ad851ead7a201349bc1483e4)

### 三.服务降权
默认安装时Tomcat是以系统服务权限运行的，因此缺省情况下几乎所有的Web服务器的管理员都具有Administrator权限，存在极大的安全隐患，所以我们的安全设置首先从Tomcat服务降权开始。
首先创建一个普通用户，为其设置密码，将其密码策略设置为“密码永不过期”，比如我们创建的用户为tomcat。然后修改tomcat安装文件夹的访问权限，为tomcat赋予Tomcat文件夹的读、写、执行的访问权限，赋予Tomcat对WebApps文件夹的只读访问权限，如果某些Web应用程序需要写访问权限，单独为其授予对那个文件夹的写访问权限。

![原文图片](/media/2016/06/5e19debedaa23da818deb99ffa194d40)

“开始→运行”，输入services.msc打开服务管理器，找到Apache Tomcat服务，双击打开该服务的属性，在其实属性窗口中点击“登录”选项卡，在登录身份下选中“以此帐户”，然后在文本框中输入tomcat和密码，最后“确定”并重启服务器。这样tomcat就以tomcat这个普通用户的权限运行。

![原文图片](/media/2016/06/84156f0a05012d533d32eaead874b510)

然后重启服务,就生效了。这样普通用户tomcat运行的Tomcat其权限就大大地降低了，就算是攻击者获得了Webshell也不能进一步深入，从而威胁web服务器的安全。

### 四.关闭war自动部署
关闭war自动部署 unpackWARs="false" autoDeploy="false"。防止被植入木马等恶意程序
应用程序部署与tomcat启动,不能使用同一个用户。

![原文图片](/media/2016/06/5372f6f68b3a1bab34900482724aca1a)

## Replies
