0

在 .\jboss-4.2.2.GA\server\default\deploy 文件夹中有一个文件,名为“jmx-console.war”。我遇到了一个处理这个模块的安全漏洞。我如何判断我们的应用程序是否正在使用此模块。我实现了一个开源工具,但我不确定如何测试它是否被使用。

高严重性的 Nessus 漏洞:

JBoss JMX 控制台无限制访问

http://www.tenable.com/plugins/index.php?view=single&id=23842

4

1 回答 1

1

如果您在 deploy 文件夹中看到该 war 文件,那么很可能您的应用程序正在使用它。也就是说,它最有可能被加载。假设您知道 JBoss 实例正在侦听的 HTTP 端口,它应该很容易测试。默认情况下,它是8080,因此将您的浏览器指向http://[您的 jboss 主机]:8080/jmx-console并查看控制台是否出现,请记住它可能受密码保护,而您的 HTTP 端口可能没有为8080。

您还应该在server.log或配置的等效项中看到类似的内容:

11:52:30,165 信息主 [TomcatDeployer] 部署,ctxPath=/jmx-console,warUrl=.../deploy/jmx-console.war/

话虽如此,我可以想到有几种方法可以指示或导致 jmx-console 未部署:

  • 您引用的文件夹位于默认服务器目录中。这只是 3 个实例中的一个(默认、全部、最小),您可能正在运行其他实例之一,甚至是自定义配置的服务器。也就是说,如果您正在运行最小的服务器实例,或者一个不包含 jmx-console.war 的服务器实例,那么该文件在默认服务器的部署目录中的存在不会导致它被部署到另一台服务器的实例中. (这一切听起来比实际上更复杂)
  • deploy 目录中的 War 文件依赖于另一个名为jboss-web.deployer 的目录,它实际上部署了 war 文件。如果该目录不存在,我的猜测是战争部署已被禁用。不过不太可能,因为有更简单的方法可以做到这一点,如果有人不小心删除了这个文件夹,他们可能也会删除战争。

底线是,最简单的方法是找到 http 端口,然后点击 jmx-console URL 并查看它是否响应,或者检查日志文件。可以想象,有人可以将 jmx-console.war 重命名为其他名称(也许是一种不明智的隐藏它的尝试?)在这种情况下,您需要执行一系列 http 请求扫描并尝试找到一个 jmx-控制台签名,但这超出了我(否则相当大......)的专业领域。

于 2013-04-26T20:30:50.060 回答