
Execução de Código & Persistência no Serviço FAX em NETWORK SERVICE
Uma extensão de roteamento de fax é uma DLL que adiciona funcionalidade de roteamento ao serviço de fax. Múltiplas extensões de roteamento de fax podem residir em um único servidor. Quando o servidor de fax recebe uma transmissão de fax, ele roteia o documento recebido por cada uma das extensões de roteamento de fax em ordem de prioridade. Um usuário define a prioridade de roteamento usando o aplicativo de administração do serviço de fax, um componente snap-in do Microsoft Management Console (MMC). O serviço FAX é executado manualmente quando um aplicativo solicita uma conexão ao serviço FAX (como ao carregar fxsadmin no MMC). Em desktops, o serviço está presente, mas expira ao tentar definir extensões, pois exige configuração e função. Mais informações no MSDN. Direitos de administrador são necessários para interagir com o serviço por padrão; se um usuário tiver as funções de Config FAX para o serviço FAX e estiver elevado, ele poderá estender o serviço FAX. Este exploit requer a função de servidor de FAX, que não está disponível em estações de trabalho por padrão. Ele é instalado em servidores que habilitam Fax & Print Services.
Usuários no Grupo FAX que possuem a função Config FAX também podem adicionar/remover extensões que talvez sejam configuradas com programas de FAX de terceiros. A função Config FAX é fornecida por padrão aos usuários nos grupos Administrador local ou Administrador de Domínio; usuários adicionais devem ter sido explicitamente definidos na configuração de usuários do serviço FAX se estiver sendo usado como parte de um caminho de escalonamento de privilégios no Active Directory.
Saiba mais: https://docs.microsoft.com/en-us/previous-versions/windows/desktop/fax/-mfax-fax-routing-extension
Também podemos persistir dentro do serviço FAX — nossa DLL será chamada toda vez que o serviço for iniciado, o que não é chamado automaticamente em uma reinicialização, portanto só ofereceria persistência em servidores que estão usando ativamente recursos de FAX; também oferece a um atacante um caminho alternativo para SYSTEM a partir de privilégios de Administrador, pois é possível escalar de Network Service para SYSTEM.
Estende o serviço FAX para executar quaisquer comandos em c:\temp\run.bat uma vez e limpa o FXSSVC. Usa a DLL de Extensão de Fax com callbacks apropriados para iniciar/parar o serviço FAX de forma confiável; a extensão lança comandos a partir do arquivo bat. Você pode impedir a remoção da DLL para fins de "persistência", o que executará o arquivo de comandos em lote sempre que o serviço FAX for usado, como ao abrir, enviar ou receber FAX.
Compile este projeto com o Visual Studio 22; tanto os binários estáticos x86 quanto x64 serão produzidos e precisam estar no mesmo diretório.
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
Estes arquivos estão disponíveis sob a licença BSD de 3 cláusulas.