Remote Procedure Call (RPC / MSRPC)
RPCClient
Acessando host
Acessando o host. Caso dê certo, seu terminal deve ficar com o seguinte PS1: rpcclient $>
# Com autenticação
rpcclient -U '<user>%<pass>' <ip>
# Sem autenticação (Sessão Nula)
rpcclient -U "" -N <ip>
Caso o alvo esteja em um Domínio, é preciso deixar o comando da seguinte forma:
rpcclient -U '<user>' -P '<pass>' -W '<domain>' -I <ip>
Informações sobre o servidor
Retorna detalhes como IP, versão do SO, Wk (Workstation), Sv (Server), etc
srvinfo
Informações sobre o usuário atual
getusername
Enumerando Active Directory
Informações sobre o domínio
querydominfo
Quando for enumerar um domínio, pode trazer um Builtin
na saída, que é um álias para groups
enumdomains
Detalhes de login, nomes dos usuários e descrição
querydispinfo
Após o comando acima, iremos ter o RID dos usuários, então podemos pegar esse RID (por exemplo 0x465) e executar o seguinte comando:
queryuser 0x464
Exibindo os compartilhamentos
netshareenumall
Enumerando o domínio do AD
enumalsgroups builtin
enumalsgroups domain
Podemos também realizar alguns tipos de enumeração com os seguintes comandos:
# Grupos
enumdomgroups
# Usuários do sistema local
enumdomusers
# Impressoras
enumprinters
Agora que já conhecemos os usuários podemos utilizá-los no seguinte comando para retornar algumas informações:
lookupnames <user>
O retorno deve ser algo como <user> S-1-5-21-4254423774-1266059056-3197185112-1012 (User: 1)
. Feito isso vamos ir mudando somente o último dígito, que no nosso exemplo seria o 2
de 1012
. Então podemos executar os sequintes comandos (até recebermos um *unknown\unknown*
como resposta).
lookupsids S-1-5-21-4254423774-1266059056-3197185112-1012
lookupsids S-1-5-21-4254423774-1266059056-3197185112-1013
lookupsids S-1-5-21-4254423774-1266059056-3197185112-1014
lookupsids S-1-5-21-4254423774-1266059056-3197185112-1015
lookupsids S-1-5-21-4254423774-1266059056-3197185112-1016
lookupsids S-1-5-21-4254423774-1266059056-3197185112-1017
lookupsids S-1-5-21-4254423774-1266059056-3197185112-1018
etc...
Quebrando essa "chave" em partes, temos o seguinte:
PARTE
DESCRIÇÃO
S-1-5-21
SID
4254423774-1266059056-3197185112
Domínio ou Identificador do Computador Local
1015
RID
Enumerando Informações de Usuário
queryuser <user>
queryuser <rid-user>
Caso queira fazer um brute force para descoberta de usuários através de uma wordist, utilize o comando abaixo:
cat <users.txt> | while read line ; do rpcclient -U "" --no-pass -c="queryuser $line" <ip_target> ; sleep 1 ; done
Enumerando Informações de Grupo
Pegue o <rid>
com o comando acima ou com enumdomusers
como vimos anteriormente.
queryusergroups <rid>
querygroup <rid-group>
A partir da saída do comando acima, iremos ver no resultado, o(s) group rid
, que iremos utilizar no comando abaixo para cada group rid:
querygroup <group_rid>
Enumerando Usuários de determinado Grupo
É sempre uma boa idéia verificar os usuários que pertecem ao grupo "Administrators".
querygroupmem <rid-group>
Rpcdump
rpcdump.py <ip>
Rpcinfo
Instalando
sudo apt-get install rpcbind nfs-common
Enumeração RPC
rpcinfo <ip>
rpcinfo -p <ip>
Na última coluna pode sair informações como rusersd
, NFS
e NIS
(porta 778 que pode ser o nome do servidor). Se encontrar um serviço NFS
, provavelmente você será capaz de listar, fazer e talvez até realizar upload de arquivos.
Enumeração RPC (com determinado aplicativo)
Caso queira enumerar o alvo que está executando o TTDB (ToolTalk Database), que tem um conhecido problema de segurança, execute:
rpcinfo -n 32776 -t <ip> 100083
EXPLICAÇÃO: O número 100083 é o "número do programa" do RPC para o TTDB.
A opção -n
é útil quando está sendo barrado pelo firewall.
OBS.: Utilize NMAP caso não saiba o "número do programa" e utilize o parâmetro -sR
, assim o NMAP irá fazer todo o "trabalho sujo".
Rusers
Enumerando Usuários conectados (UNIX)
rusers -l <ip>
OBS.: O parâmetro -l
, serve para deixar a saída mais detalhada, incluindo a quantidade de tempo desde que o usuário digitou. Essas informações são fornecidas pelo rpc.rusersd
(RPC), caso esteja em execução.
nmap
nmap -sV -p 111 --script=rpcinfo <ip>
nmap -p 111 --script nfs* <ip>
nmap -p 111 -sSUC <ip>
Last updated
Was this helpful?