hacktricks/network-services-pentesting/pentesting-smb/rpcclient-enumeration.md
carlospolop 63bd9641c0 f
2023-06-05 20:33:24 +02:00

11 KiB

Enumeración con rpcclient

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥

¿Qué es un RID?

Un Identificador Relativo (RID) es un identificador único (representado en formato hexadecimal) utilizado por Windows para rastrear e identificar objetos. Para explicar cómo encaja esto, veamos los siguientes ejemplos:

  • El SID para el dominio NAME_DOMAIN.LOCAL es: S-1-5-21-1038751438-1834703946-36937684957.
  • Cuando se crea un objeto dentro de un dominio, el número anterior (SID) se combinará con un RID para hacer un valor único utilizado para representar el objeto.
  • Entonces, el usuario de dominio john con un RID:[0x457] Hex 0x457 sería igual a decimal 1111, tendrá un SID de usuario completo de: S-1-5-21-1038751438-1834703946-36937684957-1111.
  • Esto es único para el objeto john en el dominio NAME_DOMAIN.LOCAL y nunca verá este valor emparejado vinculado a otro objeto en este dominio o en cualquier otro.

Definición de aquí.

Enumeración con rpcclient

Parte de esta sección fue extraída del libro "Network Security Assesment 3rd Edition"

Puede utilizar la utilidad rpcclient de Samba para interactuar con puntos finales RPC a través de named pipes. A continuación se enumeran los comandos que puede emitir a las interfaces SAMR, LSARPC y LSARPC-DS al establecer una sesión SMB (que a menudo requiere credenciales).

Información del servidor

  • Información del servidor: srvinfo

Enumeración de usuarios

  • Listar usuarios: querydispinfo y enumdomusers
  • Obtener detalles del usuario: queryuser <0xrid>
  • Obtener grupos de usuarios: queryusergroups <0xrid>
  • Obtener SID de un usuario: lookupnames <username>
  • Obtener alias de usuarios: queryuseraliases [builtin|domain] <sid>
# Brute-Force users RIDs
for i in $(seq 500 1100); do
    rpcclient -N -U "" 10.129.14.128 -c "queryuser 0x$(printf '%x\n' $i)" | grep "User Name\|user_rid\|group_rid" && echo "";
done

# You can also use samrdump.py for this purpose

Enumeración de grupos

  • Listar grupos: enumdomgroups
  • Obtener detalles de un grupo: querygroup <0xrid>
  • Obtener miembros de un grupo: querygroupmem <0xrid>

Enumeración de grupos de alias

  • Listar alias: enumalsgroups <builtin|domain>
  • Obtener miembros: queryaliasmem builtin|domain <0xrid>

Enumeración de dominios

  • Listar dominios: enumdomains
  • Obtener SID: lsaquery
  • Información del dominio: querydominfo

Enumeración de recursos compartidos

  • Enumerar todos los recursos compartidos disponibles: netshareenumall
  • Información sobre un recurso compartido: netsharegetinfo <share>

Más SIDs

  • Encontrar SIDs por nombre: lookupnames <username>
  • Encontrar más SIDs: lsaenumsid
  • Ciclo de RID (verificar más SIDs): lookupsids <sid>

Comandos adicionales

Comando Interfaz Descripción
queryuser SAMR Recuperar información de usuario
querygroup Recuperar información de grupo
querydominfo Recuperar información de dominio
enumdomusers Enumerar usuarios de dominio
enumdomgroups Enumerar grupos de dominio
createdomuser Crear un usuario de dominio
deletedomuser Eliminar un usuario de dominio
lookupnames LSARPC Buscar nombres de usuario para valores SIDa
lookupsids Buscar SIDs para nombres de usuario (ciclo RIDb)
lsaaddacctrights Agregar derechos a una cuenta de usuario
lsaremoveacctrights Eliminar derechos de una cuenta de usuario
dsroledominfo LSARPC-DS Obtener información del dominio principal
dsenumdomtrusts Enumerar dominios de confianza dentro de un bosque AD

Para comprender mejor cómo funcionan las herramientas samrdump y rpcdump, debes leer Pentesting MSRPC.

☁️ HackTricks Cloud ☁️ -🐦 Twitter 🐦 - 🎙️ Twitch 🎙️ - 🎥 Youtube 🎥