Exploiter PowerShell Exchange après ProxyNotShell : Partie 3 – Chaîne de chargement de DLL pour l'exécution de code à distance
L'article traite d'une chaîne de trois vulnérabilités qui ont conduit à l'exécution de code à distance dans Exchange, y compris une écriture de fichier arbitraire, une lecture et des vulnérabilités de chargement de DLL locales. L'auteur a trouvé un gadget dans la classe Microsoft.Exchange.DxStore.Common.DxSerializationUtil+SharedTypeResolver, qui charge une DLL à partir d'un emplacement contrôlé par l'attaquant. Cependant, le gadget est limité par plusieurs restrictions, telles que des vérifications d'extension de fichier, la suppression du fichier après extraction, et la nécessité de prévoir le chemin d'extraction. L'auteur a contourné ces restrictions en utilisant l'injection d'arguments dans l'utilitaire expand, en créant un sous-répertoire pour le fichier malveillant, et en fuyant le GUID à partir d'un fichier de log. La charge utile finale a impliqué la livraison de trois fichiers CAB, y compris un pour FUSE.Paxos.dll, un pour Ijwhost.dll, et un contenant un fichier corrompu pour fuir le GUID. L'auteur a également préparé une structure de partage SMB astucieuse pour passer la vérification File.Exists.