Ao lado do SMB, outro protocolo revela as entranhas de um sistema Windows: o RPC (Remote Procedure Call, Chamada de Procedimento Remoto). RPC é o mecanismo que permite que um programa execute funções em outra máquina pela rede, como se fossem locais — é a cola que faz muitos serviços do Windows funcionarem em ambientes distribuídos. Para o pentester, o RPC é uma janela para os serviços internos do alvo, e sua enumeração frequentemente complementa a do SMB, revelando usuários, políticas e detalhes que ajudam a montar o quadro completo. Esta aula é mais curta e específica que a anterior, mas o RPC é peça importante do mosaico de enumeração Windows.

O endpoint mapper como recepcionista

Entenda primeiro o conceito. Quando um programa quer executar uma função numa máquina remota via RPC, ele precisa saber onde (em qual porta) aquele serviço está escutando. Quem responde a isso é o RPC endpoint mapper, que roda na porta 135 e funciona como uma "recepcionista": você pergunta a ele quais serviços RPC estão disponíveis e em que portas, e ele te informa. Essa porta 135, portanto, é o ponto de partida da enumeração RPC — encontrá-la aberta num scan sinaliza que há serviços RPC a interrogar. Além dela, o RPC frequentemente usa portas altas e dinâmicas para os serviços em si.

rpcclient e a conexão anônima

A ferramenta central para enumeração RPC é o rpcclient, que permite conectar-se ao serviço RPC do alvo e, se as permissões (ou a falta delas) permitirem, consultar uma riqueza de informação. Assim como no SMB, a possibilidade de conexão anônima (sessão nula) é o que torna o RPC especialmente revelador quando mal configurado:

# conecta ao RPC do alvo, tentando sessão nula (sem usuário/senha)
rpcclient -U "" -N 192.168.1.10

# uma vez conectado, comandos internos do rpcclient revelam informação:
#   enumdomusers      → enumera os usuários do domínio/máquina
#   enumdomgroups     → enumera os grupos
#   querydominfo      → informações do domínio
#   getdompwinfo      → política de senhas do domínio
#   queryuser <RID>   → detalhes de um usuário específico

Automatizar com NSE e enum4linux

Também há scripts NSE e o próprio enum4linux (que por baixo usa o rpcclient) para automatizar parte disso. Conectar ao RPC com sessão nula e rodar enumdomusers num alvo mal configurado devolve a lista de usuários — de novo, o insumo precioso para os ataques de autenticação do Bloco VII.

RIDs, política de senhas e o que o RPC entrega

O que o RPC revela e por que importa: assim como o SMB, ele pode entregar usuários e grupos (com um detalhe técnico útil — os RIDs, identificadores relativos, que ajudam a mapear contas, inclusive a conta de administrador, que tem um RID conhecido); política de senhas do domínio (essencial para não bloquear contas ao atacar); informações do domínio e relações de confiança; e detalhes que, cruzados com a enumeração SMB, formam um retrato coeso do ambiente. Há inclusive uma técnica chamada RID cycling, em que, mesmo sem obter a lista completa de usuários diretamente, o atacante itera sobre os RIDs sequenciais para descobrir nomes de contas uma a uma — engenhosa quando a enumeração direta está parcialmente bloqueada.

SMB e RPC como frentes complementares

O ponto conceitual desta aula é entender que SMB e RPC são frentes complementares da mesma investigação. Ambos operam no ecossistema Windows, ambos podem sofrer com sessões nulas, e ambos revelam peças sobrepostas e complementares do quadro. Um pentester experiente enumera os dois, cruzando resultados: o que o SMB não revelou, o RPC talvez revele, e vice-versa. Essa redundância é característica da enumeração madura — você não confia numa única fonte, você trata cada protocolo como um ângulo distinto sobre o mesmo alvo, montando o retrato por sobreposição. É a correlação da aula Consolidando o reconhecimento: do fragmento à inteligência aplicada em nível técnico.

Fechar o acesso anônimo e a porta 135

Do lado defensivo, as contramedidas espelham as do SMB e do endurecimento Windows em geral: restringir o acesso anônimo/sessões nulas (a raiz do vazamento), filtrar a porta 135 e as portas RPC dinâmicas no perímetro (RPC exposto à internet é perigoso e desnecessário), aplicar o princípio do menor privilégio para que, mesmo autenticado, um usuário comum não consiga enumerar tudo, e monitorar consultas RPC anômalas. Como sempre, a auditoria defensiva usa as mesmas ferramentas — rpcclient, enum4linux — para verificar o que a própria rede vaza.

Fontes e leituras recomendadas

Exercícios

  1. O que é o RPC e qual o papel do endpoint mapper na porta 135?

    ✓ Resposta:

    RPC (Remote Procedure Call) é o mecanismo que permite a um programa executar funções em outra máquina pela rede. O endpoint mapper, na porta 135, funciona como recepcionista: informa quais serviços RPC estão disponíveis e em que portas escutam, servindo de ponto de partida da enumeração.

  2. Por que a possibilidade de sessão nula torna o RPC especialmente revelador, assim como no SMB?

    ✓ Resposta:

    Porque a conexão anônima, sem credenciais, quando permitida por má configuração, ainda retorna informações sensíveis (usuários, grupos, política de senhas), entregando dados valiosos sem exigir autenticação.

  3. Que comando do rpcclient enumera os usuários, e por que essa lista é valiosa para fases posteriores?

    ✓ Resposta:

    enumdomusers. A lista de usuários é valiosa porque alimenta diretamente ataques de autenticação (força bruta, password spraying) do Bloco VII, eliminando a necessidade de adivinhar quem são as contas.

  4. Explique a técnica de RID cycling e em que situação ela é útil.

    ✓ Resposta:

    RID cycling é iterar sobre os identificadores relativos (RIDs) sequenciais das contas para descobrir nomes de usuário um a um, mesmo quando a enumeração direta da lista está bloqueada. É útil quando a enumeração completa está parcialmente restrita, mas ainda é possível consultar contas por RID.

  5. Por que se diz que SMB e RPC são "frentes complementares", e o que um pentester ganha ao enumerar os dois?

    ✓ Resposta:

    Porque ambos operam no ecossistema Windows, sofrem com sessões nulas e revelam informações sobrepostas e complementares. Enumerar os dois permite cruzar resultados — o que um não revelou, o outro pode revelar —, formando um retrato mais completo e confiável do alvo por sobreposição.