
Un Bind Shell utilisant le service de fax et un DLL Hijack
Un shell de liaison Proof-of-Concept utilisant le service Fax et un détournement de DLL basé sur Ualapi.dll.
Voir notre article à l'adresse : https://windows-internals.com/faxing-your-way-to-system/

Ualapi.dll et placez-le dans c:\windows\system32Fax, qui chargera la DLL et appellera l'export UalStart. UalStart mettra en file d'attente un élément de travail du pool de threads qui ouvrira un handle vers RpcSs, trouvera un jeton SYSTEM, puis l'usurpera. Ensuite, il créera un socket sur l'adresse de point de terminaison locale, le liera au port 9299, puis attendra de manière asynchrone une connexion en utilisant un port d'achèvement d'E/S du pool de threads.nc(at).exe <ip> 9299) puis tapez let me in et appuyez sur ENTER. Si vous écrivez du code personnalisé, assurez-vous d'envoyer la chaîne let me in\n.Cmd.exe sous le service DcomLaunch avec les privilèges SYSTEM, en liant ses handles d'entrée et de sortie au socket nouvellement créé.SYSTEM, revenant rapidement à NETWORK SERVICE après avoir effectué un seul appel API. Cela aide à réduire les chances d'être détecté par divers scanners.DcomLaunch (qui est déjà un service SYSTEM) et non sous le service Fax, ce qui le rend beaucoup plus naturel et évite un arbre de processus très suspect.Fax, et non à DcomLaunch ou Cmd.exe. Si nous tuons le service Fax, on dirait que le socket appartient à System.Ce n'est pas destiné à être un shell prêt à l'emploi, indétectable, malveillant et weaponized :
80 ou 443 fonctionnerait mieux.Spooler, chargent également Ualapi.dll. Bien que le système se comporte correctement si le service Fax est "bloqué" dans l'état SERVICE_START_PENDING, cela causera des problèmes dans Spoolsv.exe.