Par Bhabesh Raj Rai, Associate Security Analytics Engineer

Le 2 mars 2021, Microsoft a publié des mises à jour de sécurité d’urgence pour Microsoft Exchange Server qui corrigeaient sept vulnérabilités, parmi lesquelles quatre étaient des failles zero-day qui étaient exploitées sur le terrain par plusieurs acteurs malveillants.

La télémétrie d’ESET a révélé que plusieurs groupes de cyber-espionnage d’origine chinoise tels que LuckyMouse, Tick et Calypso exploitaient au moins CVE-2021-26855 pour lancer une exécution de code à distance pré-authentifié au niveau de serveurs Exchange sur-site vulnérables.

Ces failles zero-day corrigées sont les suivantes : CVE-2021-26855, CVE-2021-26857, CVE-2021-26858 et CVE-2021-27065. Les acteurs malveillants peuvent combiner ces vulnérabilités pour lancer une exécution de code à distance non authentifiée. Ces vulnérabilités affectent uniquement les serveurs Microsoft Exchange sur-site et non les services de messagerie Cloud Exchange Online ou Microsoft 365.

La CISA a également publié une directive d’urgence obligeant toutes les organisations fédérales américaines à appliquer immédiatement un correctif à Microsoft Exchange et à présenter un rapport sur l’état d’exploitation avant midi (EST), le vendredi 5 mars 2021. L’ESET a noté que la plupart des cibles étaient situées aux États-Unis et concernaient des gouvernements, cabinets d’avocats, entreprises privées et établissements médicaux en tant que cibles au niveau des secteurs verticaux.

Les acteurs malveillants utilisent des Web shells comme China Chopper après avoir exploité avec succès ces vulnérabilités. Huntress a révélé comment plusieurs Web shells avaient été déployés au sein d’un seul serveur Exchange, pouvant ainsi indiquer une compromission mise en œuvre par des acteurs malveillants indépendants. Les administrateurs doivent rechercher l’utilisation de Web shells au niveau des emplacements enregistrés par Huntress, Microsoft et la télémétrie d’ESET.

FireEye suit actuellement les acteurs malveillants exploitant ces failles zero-day via trois clusters : UNC2639, UNC2640 et UNC2643, tandis que Microsoft Threat Intelligence Center (MSTIC) attribue cette campagne au groupe sponsorisé par l’État chinois HAFNIUM.

Les administrateurs système doivent garder à l’esprit que cette mise à jour de sécurité n’est pas disponible pour toutes les mises à jour cumulatives et de type rollup. Ainsi, pour les entreprises utilisant une mise à jour cumulative ou rollup pour le serveur Exchange non prise en charge, les administrateurs devront d’abord installer une RU/CU compatible avant de pouvoir installer la mise à jour de sécurité.

Détection d’une exploitation avec LogPoint

Les administrateurs peuvent rechercher l’apparition de processus anormaux au niveau du service de messagerie unifiée (Unified Messaging) du serveur Exchange, pouvant ainsi indiquer une exploitation réussie de CVE-2021-26857.

norm_id=WindowsSysmon label="Process" label=Create
parent_image="*\UMWorkerProcess.exe" -image IN ["*\wermgr.exe", "*\WerFault.exe"]

L’exploitation de CVE-2021-26857 peut également être détectée via les logs d’événements de l’application Windows car l’exploitation de ce bug de désérialisation générera des événements d’erreur au niveau du service de messagerie unifiée MSExchange.

norm_id=WinServer channel=Application event_type=Error
event_source="MSExchange*"
((message="Watson report*" message="*umworkerprocess*" message="*TextFormattingRunProperties*")
OR (message="An unhandled exception occurred in a UM worker process*" OR message="The Microsoft Exchange Unified Messaging service*"))
-message="*System.OutOfMemoryException*"

De même, nous pouvons rechercher la suppression de fichiers suspects par le service de messagerie unifiée du serveur Exchange, pouvant ainsi indiquer la suppression de Web shells ou d’autres charges virales via l’exploitation de CVE-2021-26858.

norm_id=WindowsSysmon label=File label=Create
source_image="*\UMWorkerProcess.exe" -file IN ["CacheCleanup.bin", "*.txt", "*.LOG", "*.cfg", "cleanup.bin"]

En général, on peut détecter une exploitation réussie en recherchant l’apparition d’une invite de commande ou de PowerShell au niveau du processus de travail IIS, w3wp.exe.

norm_id=WindowsSysmon label="Process" label=Create
parent_image="*\w2wp.exe" image IN ["*\cmd.exe", "*\powershell.exe"]

Détection de l’activité post-exploitation avec LogPoint

Le blog de Microsoft concernant HAFNIUM a révélé l’utilisation de plusieurs outils comme Nishang, PowerCat et Procdump dans la phase de post-exploitation. Par exemple, l’acteur malveillant a utilisé 7-Zip afin de compresser les fichiers pour l’exfiltration. Nous pouvons utiliser Sysmon pour rechercher des fichiers suspects dans des emplacements inhabituels.

norm_id=WindowsSysmon label=File label=Create
file IN ["*.exe", "*.zip", "*.rar", "*.7z"] path IN ["C:\ProgramData*", "*\AppData\Local\*", "*\AppData\Roaming\*", "C:\Users\Public*"] -file IN ["vs_setup_bootstrapper.exe", "DismHost.exe"] -source_image IN ["*\Microsoft Visual Studio\Installer\*\BackgroundDownload.exe", "C:\Windows\system32\cleanmgr.exe",
"*\MsMpEng.exe", "C:\Windows\SysWOW64\OneDriveSetup.exe", "*\AppData\Local\Microsoft\OneDrive\*", "*\MpCmdRun.exe", "*\AppData\Local\Temp\mpam-*.exe"]

De même, HAFNIUM a également utilisé Procdump pour vider la mémoire LSASS afin d’accéder aux identifiants, que nous pouvons trouver en recherchant les arguments de ligne de commande de Procdump.

norm_id=WindowsSysmon label="Process" label=Create
command IN ["* -ma lsass*"]

Nous conseillons aux administrateurs de rechercher des suppressions de Web shells via les événements de création de fichiers de Sysmon.

norm_id=WindowsSysmon label=File label=Create
file="*.aspx" path IN ["C:\inetpub\wwwroot\aspnet_client*", "*\FrontEnd\HttpProxy\owa\auth\Current*"]

Si Microsoft Defender est en cours d’exécution au niveau des endpoints, recherchez le malware suivant et vérifiez de manière plus approfondie si de tels événements ont été générés par Defender.

norm_id=WinServer event_id=1116 event_source="Microsoft-Windows-Windows Defender"
(threat_name IN ["Exploit:Script/Exmann.A!dha", "Behavior:Win32/Exmann.A", "Backdoor:ASP/SecChecker.A",
"Backdoor:JS/Webshell", "Trojan:JS/Chopper!dha", "Behavior:Win32/DumpLsass.A!attk", "Backdoor:HTML/TwoFaceVar.B"] OR
threat IN ["Exploit:Script/Exmann.A!dha", "Behavior:Win32/Exmann.A", "Backdoor:ASP/SecChecker.A",
"Backdoor:JS/Webshell", "Trojan:JS/Chopper!dha", "Behavior:Win32/DumpLsass.A!attk", "Backdoor:HTML/TwoFaceVar.B"])

HAFNIUM a utilisé Invoke-PowerShellTcpOneLine de Nishang, une simple commande, à une seule ligne, de shell inversé PowerShell que nous pouvons rechercher en utilisant des événements de création de processus.

norm_id=WindowsSysmon label="Process" label=Create
image IN ["*\powershell.exe", "*\powershell_ise.exe"] command="*$client = New-Object System.Net.Sockets.TCPClient*"
Similarly, the use of PowerCat can also be detected by using process creation events.
norm_id=WindowsSysmon label="Process" label=Create
image IN ["*\cmd.exe", "*\powershell.exe", "*\powershell_ise.exe"] command="*https://raw.githubusercontent.com/besimorhino/powercat/master/powercat.ps1*"

De plus, HAFNIUM a importé le composant Exchange PowerShell Snapin qui peut être utilisé pour exporter des données de messagerie et est facilement détecté en utilisant des événements de création de processus via Sysmon ou des logs d’événements natifs.

norm_id=WindowsSysmon label="Process" label=Create
image IN ["*\cmd.exe", "*\powershell.exe", "*\powershell_ise.exe"] command="*Add-PSSnapin Microsoft.Exchange.Powershell.Snapin*"

Volexity et FireEye ont également divulgué les adresses IP IoC utilisées par les acteurs malveillants exploitant ces failles zero-day. Ainsi, les administrateurs peuvent effectuer une recherche d’IoC à l’échelle de l’entreprise afin de déterminer si leurs serveurs Exchange ont été compromis.

(source_address IN ["103.77.192.219", "104.140.114.110", "104.250.191.110", "108.61.246.56", "149.28.14.163", "157.230.221.198",
"167.99.168.251", "185.250.151.72", "192.81.208.169", "203.160.69.66", "211.56.98.146", "5.254.43.18", "80.92.205.81", "165.232.154.116", "182.18.152.105", "89.34.111.11", "86.105.18.116"] OR destination_address IN ["103.77.192.219", "104.140.114.110", "104.250.191.110", "108.61.246.56", "149.28.14.163",
"157.230.221.198", "167.99.168.251", "185.250.151.72", "192.81.208.169", "203.160.69.66", "211.56.98.146", "5.254.43.18", "80.92.205.81", "165.232.154.116", "182.18.152.105", "89.34.111.11", "86.105.18.116"])

Comme indiqué par Huntress et FireEye, après avoir exploité ces vulnérabilités, les acteurs malveillants ont supprimé l’utilisateur administrateur du groupe Exchange Organizations Administrators via la commande net qui peut être facilement détectée.

norm_id=WindowsSysmon label="Process" label=Create image IN ["*\net.exe", "*\net1.exe"] command="*net*group *Exchange Organization Administrators* /del*"

Florian Roth de Nextron System a publié une règle sigma pour la traque des artéfacts d’exploitation Exchange laissés par HAFNIUM.

(request_method=POST ((url="*/owa/auth/Current/themes/resources/*" OR resource="*/owa/auth/Current/themes/resources/*")
OR ((url="*/owa/auth/Current/*" OR resource="*/owa/auth/Current/*")
user_agent IN ['DuckDuckBot/1.0;+(+http://duckduckgo.com/duckduckbot.html)',
'facebookexternalhit/1.1+(+http://www.facebook.com/externalhit_uatext.php)',
'Mozilla/5.0+(compatible;+Baiduspider/2.0;++http://www.baidu.com/search/spider.html)',
'Mozilla/5.0+(compatible;+Bingbot/2.0;++http://www.bing.com/bingbot.htm)',
'Mozilla/5.0+(compatible;+Googlebot/2.1;++http://www.google.com/bot.html',
'Mozilla/5.0+(compatible;+Konqueror/3.5;+Linux)+KHTML/3.5.5+(like+Gecko)+(Exabot-Thumbnails)',
'Mozilla/5.0+(compatible;+Yahoo!+Slurp;+http://help.yahoo.com/help/us/ysearch/slurp)',
'Mozilla/5.0+(compatible;+YandexBot/3.0;++http://yandex.com/bots)',
'Mozilla/5.0+(X11;+Linux+x86_64)+AppleWebKit/537.36+(KHTML,+like+Gecko)+Chrome/51.0.2704.103+Safari/537.36'])
OR ((url="*/ecp/*" OR resource="*/ecp/*")
user_agent IN ['ExchangeServicesClient/0.0.0.0', 'python-requests/2.19.1', 'python-requests/2.25.1'])
OR (((url="*/owa/*" OR resource="*/owa/*") OR (url="*/aspnet_client/*" OR resource="*/aspnet_client/*"))
user_agent IN ['antSword/v2.1', 'Googlebot/2.1+(+http://www.googlebot.com/bot.html)',
'Mozilla/5.0+(compatible;+Baiduspider/2.0;++http://www.baidu.com/search/spider.html)'])
OR (url IN ["*/owa/auth/Current/*", "*/ecp/default.flt*", "*/ecp/main.css*"] OR resource IN ["*/owa/auth/Current/*", "*/ecp/default.flt*", "*/ecp/main.css*"])
OR (url="*/ecp/*.js*" OR resource="*/ecp/*.js*")))

Conclusion

Seuls quelques acteurs malveillants axés sur l’espionnage ont été vus en train d’exploiter ces failles zero-day au niveau des serveurs Exchange. Cependant, nous nous attendons à ce que les acteurs motivés financièrement commencent à ajouter ces failles zero-day à leur arsenal au fil du temps. En mars, Microsoft devrait publier Exchange Server 2016 CU 20 et Exchange Server 2019 CU 9 avec les mises à jour de sécurité pour ces vulnérabilités. Toutefois, nous conseillons vivement aux administrateurs système de corriger immédiatement leurs serveurs Exchange.

Enfin, il est important de noter que certaines entreprises qui avaient corrigé leurs serveurs, ont découvert après coup qu’elles avaient déjà été compromises avant l’installation des correctifs et que les acteurs malveillants étaient déjà parvenus à mettre en place une persistance. Les administrateurs doivent garder à l’esprit que l’installation des correctifs ne supprimera pas les supports de persistance installés par les acteurs malveillants.