Zeek smb.log DCSync-like traffic
Zeek script: event dce_rpc::log_dce_rpc (rec: dce_rpc::Info) { if (rec?$endpoint && rec$endpoint == "DRSUAPI") print fmt("%s %s %s", rec$id$orig_h, rec$operation, rec$id$resp_h); }
Script do Zeek que monitora chamadas DCE/RPC ao endpoint DRSUAPI, a assinatura de rede do DCSync e da replicação anômala do diretório.
Implante este script no seu sensor Zeek quando quiser a visão de rede do DCSync: o ataque usa DRSUAPI (o protocolo de replicação de diretório) sobre DCE/RPC, geralmente encapsulado em SMB. O Zeek analisa essas chamadas no dce_rpc.log com o endpoint DRSUAPI e a operação específica (DsGetNCChanges é a que replica hashes). O script deixa um log próprio com origem, operação e destino — a base para detectar qual host solicita replicação sem ser um DC. É a detecção que funciona mesmo se a auditoria do DC estiver desligada e é a favorita dos blue teams que já têm Zeek no segmento de domínio.
Não use como única detecção de DCSync: chamadas DRSUAPI legítimas entre DCs geram o mesmo tráfego — o script sem filtro dá ruído de fundo constante em domínios com vários DCs. Você precisa de lógica de exceção: apenas origens que não são DCs e operações DsGetNCChanges em direção ao DC. Também não use se seu sensor não vê o segmento dos DCs (o tráfego de replicação não passa pelo span): o log sairá vazio. E atenção: ataques modernos podem ir por RPC sobre TCP direto (não SMB) — certifique-se de que seu Zeek parseia dce_rpc sobre ambos os transportes.