消除Apache Tomcat中的横幅广告

Apache Tomcat是世界上最受欢迎的开源Web服务器之一,可用于大规模生产环境以及较小的启动和实验性实施中。 不幸的是,Tomcat的流行也使它成为希望发现和利用安全漏洞的黑客的目标,特别是在旧版本的Web服务器中。

在本文中,我演示了一个三步过程,该过程用于保护Tomcat Web服务器免受横幅攻击,这是黑客用来发现有关应用程序或企业体系结构的有价值信息的技术,然后他们可以在网络攻击中使用这些信息。

我将从简短介绍横幅广告开始,然后向您展示如何保护Tomcat Web服务器免受其攻击。 请注意,这些说明适用于在Linux®或Windows®环境中运行的任何版本的Tomcat。

什么是横幅广告?

您可能熟悉以下图像,通过SSH终端访问的主机应用程序(在本例中为Tomcat Web服务器)视图和简单的Telnet命令:

图1.服务器主机请求
服务器主机请求的屏幕截图。

如果攻击者想在系统中查找漏洞,那么抓住横幅广告是一种简便的方法。 如图1所示,标语(即主机服务器显示的文本)显示了系统正在运行的软件,包括版本号。 然后,攻击者可以在该版本中寻找已知漏洞,以利用这些漏洞。 默认情况下,应用程序服务器根据请求显示此信息。

攻击者还可以在Web服务器错误页面上查看易受攻击的系统级信息。 图2显示了已重定向到服务器错误页面的Web浏览器视图,其中显示了服务器的版本号。

图2. Tomcat错误页面
Tomcat错误页面的屏幕截图。

横幅广告抓取非常容易,这就是为什么它通常是黑客寻求发现和利用应用程序漏洞的第一步。

如何消除横幅广告

注意:在更改有关Tomcat服务器实现的任何内容之前,请确保备份文件。

在本部分中,我将演示一个分为三部分的过程,该过程可消除Tomcat Web服务器实现中的横幅广告争夺。 本质上,您将阻止Tomcat服务器对Telnet或其他命令的响应。 该过程非常简单。

步骤1.编辑您的server.xml文件

server.xml文件通常位于Tomcat安装的根路径中。 对于二进制安装,它将位于/ etc / tomcat“ X ”中,其中X表示服务器版本。 因此,在带有Tomcat二进制软件包安装的Debian Linux安装中,server.xml文件位置为/etc/tomcat6/server.xml。 如果您从Apache主页下载了TAR文件并在/ opt中提取了server.xml文件,则该位置为/ opt / apache-tomcat-“ X ” /conf/server.xml。 在某些情况下,该路径将被命名为$ CATALINA_HOME,因此文件位置将为$ CATALINA_HOME / server.xml。

您可以运行以下命令来轻松查找server.xml文件的路径:

#> find / -name server.xml

接下来,在server.xml文件中找到连接器端口行。 图3中显示的行告诉Tomcat服务侦听的端口。

图3.连接器端口
控制台中连接器端口线的屏幕截图。

在此行中添加server参数,以指定当用户要求系统版本时,希望Tomcat响应的方式。 这是一个例子:

<Connector port="8080" .....
		server="APPSRV"

server参数中输入您想要的任何内容:Apache,APPSRV,服务器,MyTeam等。 唯一的规则是该值不能为空,并且不应泄露黑客正在寻找的信息。

图4.新服务器参数
新服务器参数的屏幕快照。

对server.xml文件进行更改后,保存它并退出文件编辑器。 通过第一步,您已成功阻止Tomcat向任何提出要求的人透露其服务器版本。

步骤2.编辑您的ServerInfo.properties

接下来,将配置Tomcat服务器,以使其不会在可公开访问的错误报告中显示其版本。 这是一个稍微复杂的步骤,但并不是太困难。

首先,在Tomcat安装中找到catalina.jar文件,并从中提取ServerInfo.properties文件。 catalina.jar文件通常位于/ usr / share / tomcat“ X ” / lib的二进制安装中。 对于TAR文件安装,它将位于lib目录中Tomcat的根安装路径上。

因此,在带有Tomcat二进制安装的Debian Linux安装中,catalina.jar文件将位于/usr/share/tomcat6/lib/catalina.jar中。 如果您从Apache主页下载了TAR文件并在/ opt中提取了catalina.jar,则该位置为$ CATALINA_HOME / lib / catalina.jar。

您可以通过运行以下命令轻松地搜索文件路径:

#> find / -name catalina.jar

在继续之前,请确保备份 catalina.jar文件。

接下来,要从catalina.jar中提取ServerInfo.properties文件,请运行以下命令:

#>  jar xf catalina.jar org/apache/catalina/util/ServerInfo.properties

此命令指示jar提取catalina.jar内/ org / apache / catalina / util中的ServerInfo.properties文件。

该文件的server.infoserver.number参数如图5所示。

图5. server.info和server.number的参数
控制台中server.info和server.number参数的屏幕快照。

您可以将这些值更改为所需的任何值,也可以删除一个值。 例如,您可以更改以下参数:

server.info=Apache Tomcat 6.0.x.x/x
server.number=6.0.3.1

这些:

server.info=
server.number=0.0.0.0

对更改满意后,保存文件并退出。 您仍然需要将修改后的文件压缩为catalina.jar,可以使用以下命令进行操作:

#>  jar uf catalina.jar  org/apache/catalina/util/ServerInfo.properties

请注意,将org目录替换为修改后的目录后,即可将其删除。

现在已将您的Apache Tomcat安装配置为阻止常见错误消息引起的横幅劫持。

步骤3.重新启动Apache Tomcat

您要做的最后一件事是重新启动Apache Tomcat。 对于二进制安装,请运行以下命令:

#> /etc/init.d/tomcat6 restart

要么

#> service tomcat6 restart

对于解压缩的TAR文件,运行以下命令:

#> . /$CATALINA_HOME/bin/shutdown.sh
#> . /$CATALINA_HOME/bin/startup.sh

要验证对Tomcat安装的更改,请执行以下操作:

  1. 在服务器侦听的端口上,打开到修改后的Tomcat服务器的Telnet会话:
    #> telnet 192.168.237.119 8080
  2. 服务器响应时,发送请求以请求其支持的选项 :
    #> OPTIONS / HTTP/1.1
    #> HOST: 192.168.237.119
    #> [ENTER]
  3. 服务器响应将类似于图6,显示您在server.xml文件中更新的服务器参数值:
    图6.验证新的主机服务器响应
    新服务器响应的屏幕截图。
  4. 现在打开浏览器,并将其重定向到Tomcat安装的主页,添加一个可能导致错误的页面请求,如下所示: http://192.168.237.119:8080/index : http://192.168.237.119:8080/index : http://192.168.237.119:8080/index
  5. Tomcat无法识别该URL,并且会发送一条错误消息,但是不会显示有关服务器版本的任何信息:
    图7.验证新的错误消息响应
    新错误消息的屏幕截图。

从图7的标语消息中,攻击者会看到服务器安装是Apache,而不是正在运行的特定服务器或版本。 成功!

结论

保持Tomcat服务器安装最新是确保应用程序免受已知服务器攻击的最佳方法。 覆盖Tomcat的默认标题行为以隐藏版本信息也是有效的。 它可以防止黑客轻易制定网络攻击,这可以帮助您晚上睡得更好。


翻译自: https://www.ibm.com/developerworks/java/library/se-banner/index.html

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值