安全风险?Microsoft HTTPAPI / 2.0


8

在对我们的机器进行安全审查的同时,我发现一个主机正在通过端口80向Internet公开Microsoft-HTTPAPI / 2.0服务。

我对此并不熟悉,但是在四处搜寻之后,我发现SQL Server 2008通过默认的方式在端口80上发布了SQL Server Reporting Services,并将其标识为HTTPAPI / 2.0。主机也正在运行IIS7。

我猜这可能不是应该暴露给世界的东西。任何人都可以向我提供有关暴露此服务的安全风险的任何信息或建议。

Response Headers - http://#.#.#.#/
Content-Type: text/html; charset=us-ascii
Server: Microsoft-HTTPAPI/2.0
Date: Mon, 10 Aug 2009 10:44:25 GMT
Connection: close
Content-Length: 315

404 Not Found

Answers:


7

如果没有充分的理由公开它,则可能不应该公开它。顺便说一句,您可能对本文感兴趣,以便决定是否应该公开它


2

尝试为此在漏洞利用数据库中查找漏洞


2

如果响应的服务器标头返回“ Microsoft-HttpApi / 2.0”,则表示正在调用HTTP.sys而不是IIS。漏洞利用和端口扫描将其用作对IIS服务器进行指纹识别的一种方法(甚至可以隐藏IIS服务器头)。

您可以使用CURL抛出错误来进行测试:

curl -v http://www.yourdomain.com/ -H "Range: bytes=00-18446744073709551615"

如果您的服务器正在发送标头,您将看到以下内容:

HTTP/1.1 400 Bad Request
Content-Type: text/html; charset=us-ascii
Server: Microsoft-HTTPAPI/2.0
Date: Thu, 19 Dec 2019 00:45:40 GMT
Connection: close
Content-Length: 339

您可以添加注册表值,以便HTTP.sys不包含标头。

  • 打开注册表编辑器
  • 导航到:Computer \ HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ HTTP \ Parameters
  • 如果DisableServerHeader不存在,则创建它(DWORD 32位)并将其值设置为2。如果确实存在,并且该值不为2,则将其设置为2。
  • 重新启动服务器或通过调用“ net stop http”然后“ net start http”重新启动HTTP服务

参考:WS / WCF:删除服务器头

添加注册表项后,响应如下所示:

HTTP/1.1 400 Bad Request
Content-Type: text/html; charset=us-ascii
Date: Thu, 19 Dec 2019 00:45:40 GMT
Connection: close
Content-Length: 339

张贴在这里,以便有需要的人可以找到它。(谢谢,欧兰!)


1

此服务器响应标头的最常见原因是IIS无法确定要服务的网站。

满足以下两个条件时,IIS将使用此服务器标头进行响应

  • 该请求包含无法识别的主机标头
  • 没有配置默认网站

或者,如果IIS尝试提供的网站配置格式错误,则将其忽略并认为该配置不存在,也具有相同的效果。


1
有更多方法可以显示此标题。此标头意味着HTTP.sys发送了响应,而不是IIS的辅助进程。我相信,在HTTP.sys上注册URL的ADFS 3之类的应用程序通常也会对此标头进行响应。
milope

我经常忘记请求是通过http.sys进行的。强制此标头的另一种方法是发出iilegal请求,例如server /%,而http.sys立即拒绝该请求,HTTP/1.1 400 Bad Request Server: Microsoft-HTTPAPI/2.0而没有将其传递给已注册的处理程序
Cheekysoft
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.