Tomcat安全配置

夸父追日 2015-09-10 10:22:00

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

0x00 测试环境


Win2003

Tomcat6.0.18 安装版

0x01 安全验证


一.登陆后台

首先在win2003上部署Tomcat,一切保持默认。

Tomcat的默认后台地址为:http://域名:端口/manager/html.进入之后弹出登陆对话框,Tomcat默认的用户名admin,密码为空。

Tomcat的一些弱口令:

tomcat tomcat 
admin 空 
admin admin 
admin 123456

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

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

二.获取Webshell

Tomcat的后台有个WAR file to deploy模块,通过其可以上传WAR文件。Tomcat可以解析WAR文件,能够将其解压并生成web文件。

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

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

三.获取服务器权限

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

然后创建用户:net user Boom shellcode /add

添加到管理员用户组:net localgroup administrators Boom /add

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

0x02 安全配置


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

修改\conf\tomacat-users.xml

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

二.禁止列目录

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

<init-param>
<param-name>listings</param-name>
<param-value>false</param-value>
</init-param>  

确认是false而不是true

三.服务降权

默认安装时Tomcat是以系统服务权限运行的,因此缺省情况下几乎所有的Web服务器的管理员都具有Administrator权限,存在极大的安全隐患,所以我们的安全设置首先从Tomcat服务降权开始。

首先创建一个普通用户,为其设置密码,将其密码策略设置为“密码永不过期”,比如我们创建的用户为tomcat。然后修改tomcat安装文件夹的访问权限,为tomcat赋予Tomcat文件夹的读、写、执行的访问权限,赋予TomcatWebApps文件夹的只读访问权限,如果某些Web应用程序需要写访问权限,单独为其授予对那个文件夹的写访问权限。

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

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

四.关闭war自动部署

关闭war自动部署unpackWARs="false" autoDeploy="false"。防止被植入木马等恶意程序

应用程序部署与tomcat启动,不能使用同一个用户。

评论

M

mtfly 2015-09-10 10:34:19

LYLSQ

B

BoomBoomBoom 2015-09-10 10:37:08

@mtfly 呀暴露了~

M

mtfly 2015-09-10 10:37:14

好的好的我知道了

B

BoomBoomBoom 2015-09-10 10:38:23

这是知识库里面为数不多的我可以一眼就看得懂的~

B

bingtangguan 2015-09-10 10:51:49

这是知识库里面为数不多的我可以一眼就看得懂的~

路人甲 2015-09-10 12:16:35

tomcat

海绵君 2015-09-10 14:10:01

好的好的我知道你脚受伤了

2015-09-10 15:45:51

然而我用的是tomcat7.0

B

botak 2015-09-10 16:11:59

这是知识库里面为数不多的我可以一眼就看得懂的~

夸父追日 2015-09-10 17:24:01

@海绵君 你是?

X

Xmyth_夏洛克 2015-09-10 18:18:10

好的好的我知道了

X

xk0n 2015-09-10 22:49:32

这是知识库里面为数不多的我可以一眼就看得懂的~

不能忍 2015-09-11 10:17:19

这是知识库里面为数不多的我可以一眼就看得懂的~

尊-折戟 2015-09-14 08:49:31

这是知识库里面为数不多的我可以一眼就看得懂的~

机器猫 2015-09-15 10:52:33

这是知识库里面为数不多的我可以一眼就看得懂的~

W

wsg00d 2016-04-09 21:30:45

关闭war自动部署 unpackWARs="false" autoDeploy="false"
我照做了,为啥还是能部署?

路人甲 2016-05-09 16:51:20

66666666666666666666666

路人甲 2016-05-10 14:09:33

这样真的挺好

夸父追日

人不彻底绝望一次,就不会懂得什么是自己最不能割舍的也不会明白真正的快乐是什么。

twitter weibo github wechat

随机分类

Android 文章:89 篇
Python安全 文章:13 篇
前端安全 文章:29 篇
神器分享 文章:71 篇
无线安全 文章:27 篇

扫码关注公众号

WeChat Offical Account QRCode

最新评论

Article_kelp

因为这里的静态目录访功能应该理解为绑定在static路径下的内置路由,你需要用s

N

Nas

师傅您好!_static_url_path那 flag在当前目录下 通过原型链污

Z

zhangy

你好,为什么我也是用windows2016和win10,但是流量是smb3,加密

K

k0uaz

foniw师傅提到的setfge当在类的字段名成是age时不会自动调用。因为获取

Yukong

🐮皮

目录