
Codeausführung & Persistenz im NETWORK SERVICE FAX-Dienst
Eine Fax-Routing-Erweiterung ist eine DLL, die dem Faxdienst Routing-Funktionen hinzufügt. Mehrere Fax-Routing-Erweiterungen können auf einem Server vorhanden sein. Wenn der Faxserver eine Faxübertragung empfängt, leitet er das empfangene Dokument in der Reihenfolge ihrer Priorität durch jede der Fax-Routing-Erweiterungen. Ein Benutzer legt die Routing-Priorität über die Faxdienst-Verwaltungsanwendung fest, ein Snap-In der Microsoft Management Console (MMC). Der FAX-Dienst wird manuell ausgeführt, wenn eine Anwendung eine Verbindung zum FAX-Dienst anfordert (z. B. beim Laden von fxsadmin in MMC). Auf Desktops ist der Dienst vorhanden, läuft jedoch bei dem Versuch, Erweiterungen festzulegen, in einen Timeout, da Konfiguration und Rolle erforderlich sind. Mehr dazu auf MSDN. Standardmäßig sind Administratorrechte erforderlich, um mit dem Dienst zu interagieren. Wenn ein Benutzer über die FAX-Konfigurationsrolle für den FAX-Dienst verfügt und erhöhte Rechte besitzt, kann er den FAX-Dienst erweitern. Dieser Exploit erfordert die FAX-Serverrolle, die auf Workstations standardmäßig nicht verfügbar ist. Sie wird auf Servern installiert, die Fax- und Druckdienste aktivieren.
Benutzer in der FAX-Gruppe mit der FAX-Konfigurationsrolle können außerdem Erweiterungen hinzufügen/entfernen, die möglicherweise mit Faxprogrammen von Drittanbietern konfiguriert sind. Die FAX-Konfigurationsrolle wird standardmäßig Benutzern der lokalen Administrator- oder Domänenadministratorgruppe zugewiesen. Zusätzliche Benutzer müssen explizit in der FAX-Dienst-Benutzerkonfiguration definiert worden sein, wenn dies als Teil eines Privilege-Escalation-Pfads in Active Directory verwendet wird.
Weitere Informationen: https://docs.microsoft.com/en-us/previous-versions/windows/desktop/fax/-mfax-fax-routing-extension
Wir können auch im FAX-Dienst persistieren – unsere DLL wird bei jedem Start des Dienstes aufgerufen, der beim Neustart nicht automatisch gestartet wird, sodass dies nur Persistenz auf Servern bietet, die Faxfunktionen aktiv nutzen. Es bietet einem Angreifer außerdem einen alternativen Weg zu SYSTEM ausgehend von Administratorrechten, da Sie vom Network Service zu SYSTEM eskalieren können.
Erweitert den FAX-Dienst, um alle Befehle in c:\temp\run.bat einmal auszuführen, und räumt die FXSSVC auf. Verwendet eine Fax-Erweiterungs-DLL mit geeigneten Callbacks, um den FAX-Dienst zuverlässig zu starten/stoppen. Die Erweiterung startet Befehle aus der Bat-Datei. Sie können das Entfernen der DLL zu „Persistenzzwecken“ verhindern. Dadurch wird die Batch-Befehlsdatei jedes Mal ausgeführt, wenn der FAX-Dienst verwendet wird, z. B. beim Öffnen, Senden oder Empfangen von Faxen.
Kompilieren Sie dieses Projekt mit Visual Studio 22. Es werden sowohl x86- als auch x64-statische Binärdateien erzeugt, die sich im selben Verzeichnis befinden müssen.
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
Diese Dateien sind unter der 3-Clause-BSD-Lizenz verfügbar.