tomcat漏洞利用与安全加固实例分析


Tomcat 漏洞利用与安全加固实例分析 Tomcat 是 Apache 软件基金会的一个免费的、开放源码的 WEB 应用服务器,可以运行在 Linux 和 Windows 等多个平台上,由于其性能 稳定、扩展性好、免费等特点深受广大用户的喜爱。目前,互联网上绝大多数 JAVA WEB 应用都运行在 Tomcat 服务器上。 Tomcat 作为 Web 应用的载体,一旦出现安全问题,那么运行在其上的 Web 应用的安全也无法得到保障,所以研究 Tomcat 的漏洞与安 全性就非常有必要。本文通过实例详细的讲述了关于 Tomcat 攻防两个方面。笔者首先在攻击者的角度,以一个在渗透测试过程中经 常利用的 Tomcat 漏洞作为实例,来详细描述攻击者是如何利用 Tomcat 服务器漏洞来入侵网站,并最终完全控制服务器的,然后又以 网络安全管理人员的角度,针对 Tomcat 的特点,详细地介绍了如何对 Tomcat 进行安全加固。 利用 Tomcat 管理后台配置弱点渗透网站实例 Tomcat 默认存在一个管理后台,默认的管理地址是 http://IP 或域名:端口号/manager/html。通过此后台,可以在不重启 Tomcat 服 务的情况下方便地部署、启动、停止或卸载 WEB 应用。但是,如果配置不当的话就存在很大的安全隐患。攻击者利用这个弱点可以非 常快速、轻松地入侵一台服务器,下面我们来看一个实例。 目标 IP:192.168.30.128 目的:完全控制服务器,获取到管理员权限 渗透过程: 现在我们来访问 http://192.168.30.128:8080/manager/html,服务器会提示输入账号和密码,如图 1 所示。 图 1 那么我们如何获取到这个用户名和密码呢?目前共有三种方法可以选择: 一、如果采用的是运行在 Windows 平台上的 Tomcat 安装版,并且版本在 Tomcat 5.5.0 to 5.5.28 或 Tomcat 6.0.0 to 6.0.20 之 间,我们可以利用 CVE-2009-3548 这个漏洞来登录后台。受该漏洞影响的 Tomcat 版本如果在安装时不更改,那么 Tomcat 默认会建立 一个名为“admin”,密码为空的具有管理权限的账号。下图 2 是 tomcat 安装版 5.5.27 的默认 tomcat-users.xml 配置文件: 图 2 注:Linux 平台及 Windows 平台免安装版本不受该漏洞影响。 二、如果采用类似“tomcat”、“654321”等这种很容易让人猜到的字符作为密码的话,我们可以直接猜测出该后台的账号和密码。 三、如果前两种方法都没有效果的话,我们可以采用暴力破解的方法来破解账号和密码,成功率取决于字典是否强大。在 Windows 和 Metasploit 下都有这样的工具,下面我们来演示如何利用 Metasploit 下的工具暴力破解 Tomcat 后台账号、密码。 首先打开 Metasploit 控制台,输入“use auxiliary/scanner/http/tomcat_mgr_login”,然后设置相应的配置信息,可设置的信息 如下图 3 所示。 图 3 设置好后,输入“run”命令开始执行脚本。因为密码比较简单,所以很快就破解成功了,如图 4 所示。 图 4 现在我们获取到了 Tomcat 管理后台的账号和密码,可以直接登录后台,上传一个 war 格式的木马,这样我们就得到了一个 webshell,如图 5 所示。 图 5 图 6 从图 6 我们可以看到,Tomcat 是以 system 权限运行的,这是系统最高权限。因此,我们不需要提权就可以直接添加后门账号。 图 7 从上图 7 我们看到成功添加了一个名为 jspshell 的管理员组账号,并且目标服务器开启了 3389 端口,我们可以通过远程桌面来登 录,如图 8 所示。 图 8 到此为此,这台服务器已经在我们的完全控制之下了。从上面的过程中我们可以看到这类漏洞的导致的后果非常严重,而且攻击难度 较低。实际上,中国电信某业务系统就曾经出现过这样的漏洞,如图 9 所示。 图 9 安全加固 Tomcat 的安全加固我们主要从以下两点考虑:一是 Tomcat Web Server 本身是否安全,比如是否存在安全漏洞;二是 Tomcat Web Server 是否提供了可使用的安全功能,这部分主要是检查 Tomcat 的配置是否得当,在安全性、可用性、稳定性之间取得平衡。 Tomcat 版本的选择与安装注意事项 检查目前使用的 Tomcat 版本是否存在安全漏洞,如果存在安全漏洞,则需要升级到新的安全版本。在选择 Tomcat 的版本时,我们一 般选择最新的稳定版本。这样可以在安全性和稳定性之间取得一个很好的平衡。如果要从低版本升级到高版本,建议先在测试环境中 测试通过后再进行升级,以避免由于兼容性带来的问题。关于 Tomcat 的安全漏洞可以关注官方发布的安全公告 (http://tomcat.apache.org/security.html),也可以关注一些漏洞发布平台的最新 Tomcat 漏洞信息。 在安装时使用自定义的安装路径,并自定义 WEB 根目录。可以在 Tomcat 安装目录的 conf 目录下的 server.xml 中修改默认 WEB 根目 录。打开 server.xml,找到如下图 10 所示的内容: 图 10 在之前加入类似以下内容: 上面语句的作用是设置 Tomcat 虚拟路径,path 代表虚拟目录,可自定义,也可以为空,docBase 代表物理路径。如果按上面的设 置,当访问 http://192.168.30.128:8080 时实际访问的是 D:\javaweb 目录下的文件。如果 path 的值不为空,如设置为 path=”java”时,那么访问时应该这样:http://192.168.30.128:8080/java。在修改完成后,需要重启 tomcat 服务生效。 Tomcat 安全配置 a. Tomcat 降权 在 Windows 环境下,Tomcat 默认以 System 权限运行(如图 11),这样的后果是一旦成功入侵 WEB 应用,将直接得到一个高权限的 Webshell,并且不需要提权操作就可以完全控制服务器。 图 11 现在我们来对 Tomcat 进行降权操作。首先新建一个用户,设置复杂的密码,并且让它不属于任何用户组,如图 12 所示。 图 12 接着打开“本地安全策略”--->“本地策略”--->“用户权限分配”,找到“作为服务登录”项,把刚刚新建的用户添加进去,如图 13。 图 13 然后打开“服务”组件,找到 Tomcat 的服务,右键“属性”--->“登录”,用刚新建的 tomcat 账号运行 Tomcat 服务,如图 14。 图 14 再找到 Tomcat 安装目录,只为“Administrators 组”和“tomcat”账户分配完全控制权限,并将其他账户权限全部删除。如果不为 tomcat 账户分配权限,Tomcat 服务将无法启动。然后需要以最小权限原则为 Tomcat 日志目录和 WEB 目录单独分配权限,日志目录只 需要分配“读取”和“写入”权限即可。 注:WEB 目录权限分配可依据以下原则:有写入权限,一定不要分配执行权限;有执行权限,一定不要分配写入权限。 网站上传目录和数据库目录一般需要分配“写入”权限,但一定不要分配执行权限,其他目录一般只分配“读取”权限即可。配置好 后,需要重启 Tomcat 服务才能生效。 图 15 b. Tomcat 日志安全配置 不论在那种服务器上,日志都是一个非常重要的部分,我们需要对它严加保护,在 Tomcat 上也是如此,它的日志默认保存在 Tomcat 安装目录的 logs 目录下。要注意的是 Tomcat 默认并没有开启访问日志,所以我们需要手工开启它。打开 server.xml,找到如下代 码,去掉它们的注释,具体如下图 16 所示. 图 16 然后修改日志的默认保存路径,并设置只允许系统管理员有日志保存目录的完全控制权限,tomcat 账户有“读取”和“写入”权限 即可,如图 17 所示。 图 17 c. 删除默认文档和示例程序 如果没有自定义 WEB 目录,还需要将默认 WEB 根目录下的 servlets-examples 和 tomcat-docs 目录及其及下的所有文件都删除。以避 免造成不必要的信息泄露或其他漏洞。servlets-examples 和 tomcat-docs 目录下的一些样例都曾出现过安全漏洞,如 CVE-2007- 2449 和 CVE-2007-1355。 d. Tomcat 默认管理后台安全配置 Tomcat 默认存在一个管理后台,如果配置不当的话会引起非常严重的安全漏洞。在最开始的实例中我们就是利用该漏洞成功入侵目 标服务器的。因此,我们非常有必要对它进行安全加固。一般情况下我们不需要该功能,所以建议删除该管理页面。方法是 将%tocmat_home%/conf/Catalina/localhost 目录下的 manager.xml 删除掉。 如果一定要使用的话,建议将该 manager.xml 的文件名修改为一个难猜测出来的文件名,并且找到 Tomcat 安装目录的 conf 目录下的 tomcat-user.xml,设置一个复杂的管理员账号和密码。
还剩19页未读

继续阅读

下载pdf到电脑,查找使用更方便

pdf的实际排版效果,会与网站的显示效果略有不同!!

需要 10 金币 [ 分享pdf获得金币 ] 0 人已下载

下载pdf

pdf贡献者

se7en2182

贡献于2017-05-08

下载需要 10 金币 [金币充值 ]
亲,您也可以通过 分享原创pdf 来获得金币奖励!
下载pdf