
POC de movimento lateral via DCOM abusando da interface IMsiServer - envia e executa um payload remotamente
POC de movimento lateral via DCOM abusando da interface IMsiServer
https://www.deepinstinct.com/blog/forget-psexec-dcom-upload-execute-backdoor
A solução contém 2 projetos
DCOMUploadExec - Um projeto C++ que hospeda o código de ataque de movimento lateral
AssemblyPayload - Uma DLL .NET que exibe uma MessageBox. É o payload padrão usado pelo DCOMUploadExec
Compile a solução
Usage: DCOMUploadExec.exe [domain]\[user]:[password]@[address]
Local Usage: DCOMUploadExec.exe LOCALHOST (Run this as administrator)
DCOMUploadExec.exe irá:
Enviar a DLL de payload padrão, AssemblyPayload, para o PC remoto
Carregar a DLL em um processo remoto do MSIEXEC.exe
Executar um export da DLL
Receber um resultado do export
O payload deve ser um assembly .NET com nome forte
PayloadConfig.h é usado para configurar o payload que o DCOMUploadExec usará.
Seu padrão é a saída de AssemblyPayload.
Para usar um payload personalizado:
Crie um assembly .NET com nome forte que exporte uma função chamada InitializeEmbeddedUI - esta será a função que DCOMUploadExec eventualmente executará no alvo remoto
Preencha os detalhes do seu payload personalizado em PayloadConfig.h:
PAYLOAD_ASSEMBLY_PATH = // caminho local para o payload criado
ASSEMBLY_NAME = // o nome do assembly
ASSEMBLY_BITNESS = // "64" para um payload x64, "32" para payload x86;
ASSEMBLY_VERSION = // o valor de sigcheck.exe -n PAYLOAD_ASSEMBLY_PATH
ASSEMBLY_PUBLIC_KEY = // o valor
de
sn.exe -T PAYLOAD_ASSEMBLY_PATH
Compile o DCOMUploadExec e use-o
As máquinas do atacante e da vítima devem estar no mesmo domínio ou floresta.
As máquinas do atacante e da vítima devem estar em conformidade com o patch de proteção do DCOM - seja com o patch aplicado em ambos os sistemas ou ausente em ambos.
O payload do assembly deve ter um nome forte.
O payload do assembly deve ser x86 ou x64 (não pode ser AnyCPU).