Risque de sécurité? Microsoft-HTTPAPI / 2.0


8

Lors de l'examen de sécurité de nos machines, j'ai constaté qu'un hôte exposait un service Microsoft-HTTPAPI / 2.0 sur le port 80 à Internet.

Je ne suis pas familier avec cela, mais après avoir parcouru Google, j'ai constaté que SQL Server 2008 publie SQL Server Reporting Services sur le port 80 par défaut et s'identifie comme HTTPAPI / 2.0. L'hôte exécute également IIS7.

Je suppose que ce n'est probablement pas quelque chose qui devrait être exposé au monde. Quelqu'un peut-il me fournir des informations ou des conseils sur le risque de sécurité de l'exposition de ce service.

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

Réponses:


7

Si vous n'avez aucune bonne raison de l'exposer, alors vous ne devriez probablement pas l'exposer. Au fait, cet article pourrait vous intéresser pour décider si vous devez l'exposer ou non.


2

Essayez de rechercher des vulnérabilités dans une base de données d'exploits pour cela


2

Si l'en-tête Server de la réponse renvoie «Microsoft-HttpApi / 2.0», cela signifie que HTTP.sys est appelé à la place d'IIS. Les exploits et les analyses de port utilisent cela comme un moyen de prendre les empreintes digitales d'un serveur IIS (même s'il cache autrement l'en-tête du serveur).

Vous pouvez tester cela en lançant une erreur à l'aide de CURL:

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

Vous verrez quelque chose comme ceci si votre serveur envoie l'en-tête:

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

Vous pouvez ajouter une valeur de registre afin que HTTP.sys n'inclue pas l'en-tête.

  • Ouvrir Regedit
  • Accédez à: Computer \ HKEY_LOCAL_MACHINE \ SYSTEM \ CurrentControlSet \ Services \ HTTP \ Parameters
  • Si DisableServerHeader n'existe pas, créez-le (DWORD 32 bits) et donnez-lui une valeur de 2. S'il existe et que la valeur n'est pas 2, définissez-le sur 2.
  • Redémarrez le serveur OU redémarrez le service HTTP en appelant "net stop http" puis "net start http"

Référence: WS / WCF: Supprimer l'en-tête du serveur

Après avoir ajouté la clé de registre, la réponse ressemble à ceci:

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

Publier ici pour que les personnes qui en ont besoin puissent le trouver. (Merci, Oram!)


1

La cause la plus courante de cet en-tête de réponse du serveur est lorsque IIS ne peut pas déterminer le site Web à servir.

IIS répondra avec cet en-tête de serveur lorsque les deux conditions suivantes sont vraies

  • la demande contient un en-tête Host non reconnu
  • aucun site Web par défaut n'est configuré

Sinon, si la configuration du site Web que IIS tente de fournir est incorrecte, elle sera ignorée et considérée comme absente, ce qui aura également le même effet.


1
Il existe plusieurs façons de faire apparaître cet en-tête. Cet en-tête signifie que HTTP.sys a envoyé la réponse, pas le processus de travail d'IIS. Des applications comme ADFS 3, je crois, qui enregistrent une URL sur HTTP.sys répondent généralement également avec cet en-tête.
milope

J'oublie souvent que les demandes passent par http.sys. Une autre façon de forcer cet en-tête est de faire une demande iilegal, par exemple server /% et http.sys rejette immédiatement la demande HTTP/1.1 400 Bad Request Server: Microsoft-HTTPAPI/2.0sans la transmettre à un gestionnaire enregistré
Cheekysoft
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.