
Выполнение кода и закрепление в службе FAX под учётной записью NETWORK SERVICE
Расширение маршрутизации факсов — это DLL, добавляющая функции маршрутизации в службу факсов. На одном сервере может находиться несколько расширений маршрутизации факсов. Когда сервер факсов получает факсимильное сообщение, он направляет полученный документ через каждое из расширений маршрутизации факсов в порядке приоритета. Пользователь задает приоритет маршрутизации с помощью приложения администрирования службы факсов — оснастки консоли управления Microsoft (MMC). Служба FAX запускается вручную, когда приложение запрашивает подключение к службе FAX (например, при загрузке fxsadmin в MMC). На настольных компьютерах служба присутствует, но при попытке установить расширения возникает тайм-аут, поскольку требуются конфигурация и роль. Подробнее на MSDN. По умолчанию для взаимодействия со службой требуются права администратора; если пользователь имеет роль FAX Config для службы FAX и обладает повышенными привилегиями, он может расширить службу FAX. Данный эксплойт требует роли сервера FAX, которая по умолчанию недоступна на рабочих станциях. Она устанавливается на серверах, где включены службы факсов и печати.
Пользователи группы FAX, имеющие роль FAX Config, также могут добавлять/удалять расширения, которые могут быть настроены сторонними программами для факсов. Роль FAX Config по умолчанию предоставляется пользователям локальной группы Administrators или группы Domain Administrators; дополнительные пользователи должны быть явно определены в конфигурации пользователей службы FAX, если это используется как часть пути повышения привилегий в Active Directory.
Узнать больше: https://docs.microsoft.com/en-us/previous-versions/windows/desktop/fax/-mfax-fax-routing-extension
Мы также можем закрепиться внутри службы FAX — наша DLL будет вызываться при каждом запуске службы, которая не вызывается автоматически при перезагрузке, поэтому это обеспечит закрепление только на серверах, активно использующих функции факсов. Это также предоставляет атакующему альтернативный путь к SYSTEM из привилегий администратора, поскольку можно повысить привилегии с Network Service до SYSTEM.
Расширяет службу FAX для однократного выполнения любых команд из c:\temp\run.bat и очищает FXSSVC. Использует DLL-расширение факса с соответствующими обратными вызовами для надежного запуска/остановки службы FAX; расширение запускает команды из bat-файла. Вы можете предотвратить удаление DLL в целях «закрепления» (persistence), тогда пакетный командный файл будет выполняться при каждом использовании службы FAX, например при открытии, отправке или получении факса.
Скомпилируйте этот проект в Visual Studio 22 — будут созданы статические двоичные файлы x86 и x64, которые должны находиться в одном каталоге.
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
Эти файлы доступны по трехпунктовой лицензии BSD.