
Exécution de code et persistance dans NETWORK SERVICE FAX Service
Une extension de routage de télécopie est une DLL qui ajoute des fonctionnalités de routage au service de télécopie. Plusieurs extensions de routage de télécopie peuvent résider sur un même serveur. Lorsque le serveur de télécopie reçoit une transmission de télécopie, il achemine le document reçu via chacune des extensions de routage de télécopie par ordre de priorité. Un utilisateur définit la priorité de routage à l'aide de l'application d'administration du service de télécopie, un composant enfichable Microsoft Management Console (MMC). Le service FAX s'exécute manuellement lorsqu'une application demande une connexion au service FAX (par exemple lors du chargement de fxsadmin dans MMC). Sur les postes de travail, le service est présent mais expirera lors de la tentative de définition des extensions car cela nécessite une configuration et un rôle. Plus d'informations sur MSDN. Des droits d'administrateur sont requis pour interagir avec le service par défaut. Si un utilisateur dispose des rôles FAX Config sur le service FAX et est élevé, il peut alors étendre le service FAX. Cette exploitation nécessite le rôle de serveur FAX qui n'est pas disponible sur les postes de travail par défaut. Il est installé sur les serveurs qui activent les services de télécopie et d'impression.
Les utilisateurs du groupe FAX qui disposent du rôle FAX Config peuvent également ajouter/supprimer des extensions qui peuvent être configurées avec des programmes de télécopie tiers. Le rôle FAX Config est fourni aux utilisateurs du groupe Administrateur local ou Administrateur de domaine par défaut. Des utilisateurs supplémentaires doivent avoir été explicitement définis dans la configuration utilisateur du service FAX si cela est utilisé dans le cadre d'un chemin d'élévation de privilèges dans Active Directory.
En savoir plus : https://docs.microsoft.com/en-us/previous-versions/windows/desktop/fax/-mfax-fax-routing-extension
Nous pouvons également persister dans le service FAX - notre DLL sera appelée à chaque démarrage du service, qui n'est pas appelé automatiquement au redémarrage, donc cela n'offrirait une persistance que sur les serveurs qui utilisent activement les fonctionnalités de télécopie. Cela offre également à un attaquant une voie alternative vers SYSTEM depuis des privilèges Administrateur, car vous pouvez élever de Network Service à SYSTEM.
Étend le service FAX pour exécuter toutes les commandes de c:\temp\run.bat une fois et nettoie FXSSVC. Utilise une DLL d'extension de télécopie avec des callbacks appropriés pour démarrer/arrêter le service FAX de manière fiable. L'extension lance des commandes à partir d'un fichier bat. Vous pouvez empêcher la suppression de la DLL à des fins de « persistance », ce qui exécutera le fichier de commandes batch à chaque utilisation du service FAX, par exemple lors de l'ouverture, de l'envoi ou de la réception d'une télécopie.
Compilez ce projet avec Visual Studio 22 ; des binaires statiques x86 et x64 seront produits et devront se trouver dans le même répertoire.
C:\Windows\system32>whoami
nt authority\network service
C:\Windows\system32>whoami /priv
PRIVILEGES INFORMATION
----------------------
Privilege Name Description State
============================= ========================================= ========
SeAssignPrimaryTokenPrivilege Replace a process level token Disabled
SeIncreaseQuotaPrivilege Adjust memory quotas for a process Disabled
SeAuditPrivilege Generate security audits Enabled
SeChangeNotifyPrivilege Bypass traverse checking Enabled
SeImpersonatePrivilege Impersonate a client after authentication Enabled
SeCreateGlobalPrivilege Create global objects Enabled
Ces fichiers sont disponibles sous la licence BSD à 3 clauses.