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
- HackTricks — seções "Pentesting RPC" (135) e MSRPC
- rpcclient — man page oficial da suíte Samba
- enum4linux-ng — para ver como automatiza a enumeração RPC/SMB
- Salas de enumeração Windows no TryHackMe e HackTheBox
Exercícios
-
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.
-
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.
-
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. -
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.
-
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.