tomcat 是一个开源 Web 服务器,基于 Tomcat 的 Web 运行效率高,可以在一般的硬件平台上流畅运行,因此,颇受 Web 站长的青睐。不过,在默认配置下其存在一定的安全隐患,可被恶意攻击。
Win2003
Tomcat6.0.18 安装版
首先在 win2003 上部署 Tomcat ,一切保持默认。
Tomcat 的默认后台地址为: http://域名:端口/manager/html .进入之后弹出登陆对话框, Tomcat 默认的用户名 admin ,密码为空。
Tomcat 的一些弱口令:
tomcat tomcat admin 空 admin admin admin 123456
然后来看一下 Tomcat 安装版默认的 tomacat-users.xml 配置文件
注: Linux 平台及 Windows 平台免安装版本不受该漏洞影响。
在 Tomcat 的后台有个 WAR file to deploy 模块,通过其可以上传 WAR 文件。 Tomcat 可以解析 WAR 文件,能够将其解压并生成 web 文件。
我们将一个 jsp 格式的 webshell 用 WinRar 打包然后将其后缀改名为 WAR (本例为 no.war ),这样;一个 WAR 包就生成了。最后将其上传到服务器,可以看到在 Tomcat 的后台中多了一个名为 /no 的目录。
点击该目录打开该目录 jsp 木马就运行了,这样就获得了一个 Webshell 。
Tomcat 服务默认是以 system 权限运行的,因此该 jsp 木马就继承了其权限,几乎可以对 Web 服务器进行所有的操作。
然后创建用户: net user Boom shellcode /add
添加到管理员用户组: net localgroup administrators Boom /add
然后可以干什么事我就不说了
修改 /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 文件夹的读、写、执行的访问权限,赋予 Tomcat 对 WebApps 文件夹的只读访问权限,如果某些 Web 应用程序需要写访问权限,单独为其授予对那个文件夹的写访问权限。
“开始→运行”,输入 services.msc 打开服务管理器,找到 Apache Tomcat 服务,双击打开该服务的属性,在其实属性窗口中点击“登录”选项卡,在登录身份下选中“以此帐户”,然后在文本框中输入 tomcat 和密码,最后“确定”并重启服务器。这样 tomcat 就以 tomcat 这个普通用户的权限运行。
然后重启服务,就生效了。这样普通用户 tomcat 运行的 Tomcat 其权限就大大地降低了,就算是攻击者获得了 Webshell 也不能进一步深入,从而威胁web服务器的安全。
关闭 war 自动部署 unpackWARs="false" autoDeploy="false" 。防止被植入木马等恶意程序
应用程序部署与 tomcat 启动,不能使用同一个用户。