Skip to content
Rejoignez Censys le 10 septembre 2024 pour notre atelier sur la chasse aux menaces à San Francisco, CA | Inscrivez-vous maintenant
Blogs

Environ 1600 serveurs Sharepoint vulnérables aux attaques

Mise à jour 22 mai 2019

Il s'agit d'une recherche réservée aux entreprises, mais en interrogeant les données brutes de Censys , nous trouvons que Sharepoint fonctionne sur des ports non standard. Nous avons analysé les en-têtes de serveur bruts que nous collectons sur nos données de 1000 ports et avons recherché les chaînes de version vulnérables, ainsi que le nom du service. Microsoftsharepointteamservices. En incluant notre Données de la bannière du port 1000 dans notre recherche dans cette mise à jour, nous avons trouvé 35% d'hôtes SharePoint vulnérables en plus ! Voici un exemple de requête :

SELECT ip, SAFE_CAST(s.banner AS String), s.port_number FROM censys-io.ipv4_banners_public.current, UNNEST(services) as s WHERE REGEXP_CONTAINS(SAFE_CAST(s.banner AS String), r".[Mm]icrosoftsharepointteamservices:.(16.0.0.4351|15.0.0.4571|14.0.0.7015|16.0.0.10337).*")


Récemment, nous sommes tombés sur un article de blog d'AlienVault décrivant l'exploitation sauvage d'une vulnérabilité Sharepoint connue, CVE-2019-0604. Nous avons voulu estimer à quel point cette vulnérabilité est répandue, quelle est la surface d'attaque qu'elle présente et comment nous pourrions déterminer qui est à risque.

Sharepoint est la suite collaborative phare de Microsoft et est utilisée pour toutes sortes de choses dans les entreprises, en particulier pour les fichiers d'entreprise sensibles. En tant que tel, Sharepoint est généralement utilisé par de grandes organisations qui sont souvent ciblées en raison de la grande valeur de leurs données.

Dans ce billet, nous explorons comment faire correspondre une vulnérabilité à un logiciel trouvé sur Internet "à l'état sauvage". Sharepoint, en particulier, utilise des noms de produits tels que "Sharepoint 2019", ce qui le rend assez facile à suivre dans nos analyses.

Étape 1 - Recherche par mot-clé

L'un des meilleurs moyens de commencer votre recherche d'une vulnérabilité logicielle est de commencer par une simple recherche par mot-clé - dans ce cas : Sharepoint. Cette recherche par mot-clé affiche les résultats pour chaque champ que nous analysons à la recherche de tout ce qui correspond - pages web, noms DNS, etc. Environ 20 500 serveurs apparaissent sur la page de résultats pour la recherche par mot-clé "Sharepoint". Cela nous donne un bon point de départ, mais ne nous montre pas la liste des versions du logiciel Sharepoint affectées par cette vulnérabilité.

Après avoir exploré les données d'une douzaine d'hôtes à partir de ces résultats, j'ai pu découvrir que Sharepoint a quelques en-têtes HTTP spécifiques à Sharepoint visibles dans Censys: x-sharepointhealthscore et microsoftsharepointteamservices. Ces en-têtes ne semblent apparaître que sur les hôtes Sharepoint légitimes. Ce point de données peut donc nous servir de pivot pour l'étape 2.

Étape 2 - Recherche par champ

Maintenant que nous avons notre champ d'en-tête HTTP spécifique au produit, effectuons une recherche par index sur HTTPS et HTTP :

443.https.get.headers.unknown.key: microsoftsharepointteamservices OR 80.http.get.headers.unknown.key: microsoftsharepointteamservices

Cette recherche donne environ 35 000 hôtes - il s'agit en fait d'une augmentation des résultats par rapport à l'étape 1, mais ce n'est pas grave puisque nous avons plus confiance en cette approche qu'en une simple recherche par mot-clé. Nous voulons maintenant voir s'il existe un ou deux numéros de version que nous pouvons rechercher. Le site de Microsoft indique que les versions suivantes sont vulnérables à cette attaque : Microsoft SharePoint Enterprise Server 2016, Microsoft SharePoint Foundation 2010 Service Pack 2, Microsoft SharePoint Foundation 2013 Service Pack 1, Microsoft SharePoint Server 2010 Service Pack 2, Microsoft SharePoint Server 2013 Service Pack 1 et Microsoft SharePoint Server 2019.

Armés de ces informations, nous allons inspecter quelques hôtes et voir ce que le serveur nous dit - rappelez-vous, nous utilisons sa chaîne de version annoncée pour nous informer s'il est vulnérable. Nous voyons maintenant des valeurs pour cette clé comme "14.0.0.7123" et "15.0.0.4599" - cela ne ressemble certainement pas aux versions de produits que Microsoft me dit être vulnérables, comment puis-je les faire correspondre à des populations vulnérables ?

Étape 3 - Recherche par champs joints

Après quelques recherches sur les moteurs de recherche, j'ai trouvé cet article de blog d'un enthousiaste ou d'un professionnel de Sharepoint qui établit une correspondance entre les noms conviviaux des produits Sharepoint et les versions. En utilisant cette information pour mettre en correspondance les versions rapportées par le CSEM avec les numéros de build, j'ai construit une requête comme celle-ci :

443.https.get.headers.unknown.key: microsoftsharepointteamservices AND (443.https.get.headers.unknown.value: "16.0.4351.1000" OR 443.https.get.headers.unknown.value: "15.0.4571.1502" OR 443.https.get.headers.unknown.value: "14.0.7015.1000" OR 443.https.get.headers.unknown.value: "16.0.10337.12109")

Et je n'obtiens aucune réponse. Je me demande alors ce qui se passe et je creuse un peu plus. Il s'avère que le numéro de fabrication est similaire, mais pas tout à fait identique, aux versions d'en-tête de cet article de blog. Je dois les adapter un peu - supprimer la dernière valeur (peut-être un numéro de fabrication ajouté au numéro de produit ?) et insérer un autre 0 au milieu. Je me retrouve avec une requête comme celle-ci :

443.https.get.headers.unknown.key: microsoftsharepointteamservices AND (443.https.get.headers.unknown.value: "16.0.0.4351" OR 443.https.get.headers.unknown.value: "15.0.0.4571" OR 443.https.get.headers.unknown.value: "14.0.0.7015" OR 443.https.get.headers.unknown.value: "16.0.0.10337")

Ça a l'air génial ! Environ 800 serveurs dans le monde, visibles de l'extérieur, sont vulnérables à cette attaque. Après quelques ajustements pour inclure 80/HTTP, j'obtiens cette requête :

(443.https.get.headers.unknown.key: microsoftsharepointteamservices AND (443.https.get.headers.unknown.value: "16.0.0.4351" OR 443.https.get.headers.unknown.value: "15.0.0.4571" OR 443.https.get.headers.unknown.value: "14.0.0.7015" OR 443.https.get.headers.unknown.value: "16.0.0.10337")) OR (80.http.get.headers.unknown.key: microsoftsharepointteamservices AND (80.http.get.headers.unknown.value: "16.0.0.4351" OR 80.http.get.headers.unknown.value: "15.0.0.4571" OR 80.http.get.headers.unknown.value: "14.0.0.7015" OR 80.http.get.headers.unknown.value: "16.0.0.10337"))

Au final, environ 1600 serveurs Sharepoint dans le monde sont vulnérables à cette attaque.

Principaux enseignements

Bien que cette dernière vulnérabilité de Sharepoint représente une menace pour certaines organisations, il ne s'agit pas d'un effondrement mondial de l'Internet. Si vous constatez que l'un de vos serveurs figure sur la liste des hôtes vulnérables, veillez à le corriger en suivant les instructions fournies par Microsoft dans sa mise à jour de sécurité.

Pour des articles similaires sur la façon de trouver des vulnérabilités, en particulier dans votre propre organisation, consultez notre article sur les problèmes de sécurité d'Apache. Pour les personnes intéressées par la recherche de menaces nouvelles et émergentes, consultez notre article sur la manière de suivre le réseau de zombies Mirai.

Solutions de gestion de la surface d'attaque
En savoir plus