
Um Shell Bind Usando o Serviço de Fax e um Sequestro de DLL
Um bind shell de Prova de Conceito usando o serviço Fax e um sequestro de DLL baseado em Ualapi.dll.
Veja nosso artigo em: https://windows-internals.com/faxing-your-way-to-system/

Ualapi.dll e coloque em c:\windows\system32Fax, que carregará a DLL e chamará a exportação UalStart. O UalStart enfileirará um item de trabalho do pool de threads que abrirá um handle para RpcSs, encontrará um token SYSTEM e o impersonará. Em seguida, criará um socket no endereço do endpoint local, o associará à porta 9299 e aguardará assincronamente uma conexão usando uma porta de conclusão de I/O do pool de threads.nc(at).exe <ip> 9299) e então digite let me in e pressione ENTER. Se você estiver escrevendo código personalizado, certifique-se de enviar a string let me in\n.Cmd.exe sob o serviço DcomLaunch com privilégios SYSTEM, ligando seus handles de entrada e saída ao socket recém-criado.SYSTEM, revertendo rapidamente para NETWORK SERVICE após realizar apenas uma chamada de API. Isso ajuda a reduzir a chance de ser pego por vários scanners.DcomLaunch (que já é um serviço SYSTEM) e não sob o serviço Fax, tornando-o muito mais natural e evitando uma árvore de processos muito suspeita.Fax, e não ao DcomLaunch ou Cmd.exe. Se matarmos o serviço Fax, parece que o socket pertence ao System.Isso não pretende ser um shell malicioso, indetectável e pronto para uso:
80 ou 443 funcionaria melhor.Spooler, também carregam Ualapi.dll. Embora o sistema se comporte bem se o serviço Fax ficar "preso" no estado SERVICE_START_PENDING, isso causará problemas no Spoolsv.exe.