Sicherheitsrisiko? Microsoft-HTTPAPI / 2.0


8

Während der Sicherheitsüberprüfung unserer Computer stellte ich fest, dass ein Host einen Microsoft-HTTPAPI / 2.0-Dienst über Port 80 dem Internet zur Verfügung stellte.

Ich bin damit nicht vertraut, aber nach dem Googeln stellte ich fest, dass SQL Server 2008 SQL Server Reporting Services standardmäßig auf Port 80 veröffentlicht und sich als HTTPAPI / 2.0 identifiziert. Auf dem Host wird auch IIS7 ausgeführt.

Ich vermute, dies ist wahrscheinlich nicht etwas, das der Welt ausgesetzt werden sollte. Kann mir jemand Informationen oder Ratschläge zum Sicherheitsrisiko der Offenlegung dieses Dienstes geben?

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

Antworten:


7

Wenn Sie keinen guten Grund haben, es freizulegen, sollten Sie es wahrscheinlich nicht aussetzen. Übrigens könnten Sie an diesem Artikel interessiert sein , um zu entscheiden, ob Sie ihn offenlegen sollten oder nicht


2

Suchen Sie dazu nach Schwachstellen in einer Exploit-Datenbank


2

Wenn der Server-Header der Antwort "Microsoft-HttpApi / 2.0" zurückgibt, bedeutet dies, dass HTTP.sys anstelle von IIS aufgerufen wird. Exploits und Port-Scans verwenden dies als Mittel zum Fingerabdruck eines IIS-Servers (auch eines, der sonst den Server-Header verbirgt).

Sie können dies testen, indem Sie mit CURL einen Fehler auslösen:

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

Sie sehen ungefähr so ​​etwas, wenn Ihr Server den Header sendet:

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

Sie können einen Registrierungswert hinzufügen, damit HTTP.sys den Header nicht enthält.

  • Öffnen Sie Regedit
  • Navigieren Sie zu: Computer \ HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ HTTP \ Parameters
  • Wenn DisableServerHeader nicht vorhanden ist, erstellen Sie es (DWORD 32bit) und geben Sie ihm den Wert 2. Wenn es vorhanden ist und der Wert nicht 2 ist, setzen Sie es auf 2.
  • Starten Sie den Server neu ODER starten Sie den HTTP-Dienst neu, indem Sie "net stop http" und dann "net start http" aufrufen.

Referenz: WS / WCF: Server-Header entfernen

Nachdem Sie den Registrierungsschlüssel hinzugefügt haben, sieht die Antwort folgendermaßen aus:

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

Hier posten, damit Leute, die das brauchen, es finden können. (Danke, Oram!)


1

Die häufigste Ursache für diesen Server-Antwortheader ist, dass IIS nicht bestimmen kann, welche Website bereitgestellt werden soll.

IIS antwortet mit diesem Server-Header, wenn beide der folgenden Bedingungen erfüllt sind

  • Die Anforderung enthält einen nicht erkannten Host-Header
  • Es ist keine Standardwebsite konfiguriert

Wenn die Konfiguration für die Website, die IIS zu liefern versucht, fehlerhaft ist, wird sie ignoriert und als nicht vorhanden betrachtet, was ebenfalls den gleichen Effekt hat.


1
Es gibt weitere Möglichkeiten, um diesen Header anzuzeigen. Dieser Header bedeutet, dass HTTP.sys die Antwort gesendet hat, nicht den Arbeitsprozess von IIS. Ich glaube, Anwendungen wie ADFS 3, die eine URL auf HTTP.sys registrieren, antworten normalerweise auch mit diesem Header.
Milope

Ich vergesse oft, dass Anfragen über http.sys gehen. Eine andere Möglichkeit, diesen Header zu erzwingen, besteht darin, eine legitime Anfrage zu stellen, z. B. server /%, und http.sys lehnt die Anfrage sofort ab, HTTP/1.1 400 Bad Request Server: Microsoft-HTTPAPI/2.0ohne sie an einen registrierten Handler
weiterzuleiten
Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.