rpcclient enumeration

Support HackTricks

Visão Geral dos Identificadores Relativos (RID) e Identificadores de Segurança (SID)

Identificadores Relativos (RID) e Identificadores de Segurança (SID) são componentes chave nos sistemas operacionais Windows para identificar e gerenciar objetos, como usuários e grupos, dentro de um domínio de rede.

  • SIDs servem como identificadores únicos para domínios, garantindo que cada domínio seja distinguível.

  • RIDs são anexados aos SIDs para criar identificadores únicos para objetos dentro desses domínios. Essa combinação permite um rastreamento e gerenciamento precisos das permissões de objetos e controles de acesso.

Por exemplo, um usuário chamado pepe pode ter um identificador único combinando o SID do domínio com seu RID específico, representado em formatos hexadecimal (0x457) e decimal (1111). Isso resulta em um identificador completo e único para pepe dentro do domínio como: S-1-5-21-1074507654-1937615267-42093643874-1111.

Enumeração com rpcclient

O utilitário rpcclient do Samba é utilizado para interagir com pontos finais RPC através de pipes nomeados. Abaixo estão os comandos que podem ser emitidos para as interfaces SAMR, LSARPC e LSARPC-DS após uma sessão SMB ser estabelecida, frequentemente necessitando de credenciais.

Informações do Servidor

  • Para obter Informações do Servidor: o comando srvinfo é utilizado.

Enumeração de Usuários

  • Usuários podem ser listados usando: querydispinfo e enumdomusers.

  • Detalhes de um usuário por: queryuser <0xrid>.

  • Grupos de um usuário com: queryusergroups <0xrid>.

  • O SID de um usuário é recuperado através de: lookupnames <username>.

  • Aliases de usuários por: queryuseraliases [builtin|domain] <sid>.

# Users' RIDs-forced
for i in $(seq 500 1100); do
rpcclient -N -U "" [IP_ADDRESS] -c "queryuser 0x$(printf '%x\n' $i)" | grep "User Name\|user_rid\|group_rid" && echo "";
done

# samrdump.py can also serve this purpose

Enumeração de Grupos

  • Grupos por: enumdomgroups.

  • Detalhes de um grupo com: querygroup <0xrid>.

  • Membros de um grupo através de: querygroupmem <0xrid>.

Enumeração de Grupos de Alias

  • Grupos de alias por: enumalsgroups <builtin|domain>.

  • Membros de um grupo de alias com: queryaliasmem builtin|domain <0xrid>.

Enumeração de Domínios

  • Domínios usando: enumdomains.

  • O SID de um domínio é recuperado através de: lsaquery.

  • Informações do domínio são obtidas por: querydominfo.

Enumeração de Compartilhamentos

  • Todos os compartilhamentos disponíveis por: netshareenumall.

  • Informações sobre um compartilhamento específico são obtidas com: netsharegetinfo <share>.

Operações Adicionais com SIDs

  • SIDs por nome usando: lookupnames <username>.

  • Mais SIDs através de: lsaenumsid.

  • Ciclo RID para verificar mais SIDs é realizado por: lookupsids <sid>.

Comandos extras

Comando

Interface

Descrição

queryuser

SAMR

Recuperar informações do usuário

querygroup

Recuperar informações do grupo

querydominfo

Recuperar informações do domínio

enumdomusers

Enumerar usuários do domínio

enumdomgroups

Enumerar grupos do domínio

createdomuser

Criar um usuário do domínio

deletedomuser

Deletar um usuário do domínio

lookupnames

LSARPC

Procurar nomes de usuários para valores SIDa

lookupsids

Procurar SIDs para nomes de usuários (ciclo RIDb)

lsaaddacctrights

Adicionar direitos a uma conta de usuário

lsaremoveacctrights

Remover direitos de uma conta de usuário

dsroledominfo

LSARPC-DS

Obter informações do domínio primário

dsenumdomtrusts

Enumerar domínios confiáveis dentro de uma floresta AD

Para entender melhor como as ferramentas samrdump e rpcdump funcionam, você deve ler Pentesting MSRPC.

Support HackTricks

Last updated