8.0 KiB

enumeration rpcclient

{{#include ../../banners/hacktricks-training.md}}

Aperçu des Identifiants Relatifs (RID) et des Identifiants de Sécurité (SID)

Identifiants Relatifs (RID) et Identifiants de Sécurité (SID) sont des composants clés dans les systèmes d'exploitation Windows pour identifier et gérer de manière unique des objets, tels que des utilisateurs et des groupes, au sein d'un domaine réseau.

  • SIDs servent d'identifiants uniques pour les domaines, garantissant que chaque domaine est distinct.
  • RIDs sont ajoutés aux SIDs pour créer des identifiants uniques pour les objets au sein de ces domaines. Cette combinaison permet un suivi et une gestion précis des permissions et des contrôles d'accès des objets.

Par exemple, un utilisateur nommé pepe pourrait avoir un identifiant unique combinant le SID du domaine avec son RID spécifique, représenté en formats hexadécimal (0x457) et décimal (1111). Cela donne un identifiant complet et unique pour pepe au sein du domaine comme : S-1-5-21-1074507654-1937615267-42093643874-1111.

Énumération avec rpcclient

L'utilitaire rpcclient de Samba est utilisé pour interagir avec des points de terminaison RPC via des pipes nommés. Ci-dessous, les commandes qui peuvent être émises aux interfaces SAMR, LSARPC et LSARPC-DS après qu'une session SMB soit établie, nécessitant souvent des identifiants.

Informations sur le Serveur

  • Pour obtenir des Informations sur le Serveur : la commande srvinfo est utilisée.

Énumération des Utilisateurs

  • Les utilisateurs peuvent être listés en utilisant : querydispinfo et enumdomusers.
  • Détails d'un utilisateur par : queryuser <0xrid>.
  • Groupes d'un utilisateur avec : queryusergroups <0xrid>.
  • Le SID d'un utilisateur est récupéré via : lookupnames <username>.
  • Alias des utilisateurs par : 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

Énumération des Groupes

  • Groupes par : enumdomgroups.
  • Détails d'un groupe avec : querygroup <0xrid>.
  • Membres d'un groupe via : querygroupmem <0xrid>.

Énumération des Groupes Alias

  • Groupes alias par : enumalsgroups <builtin|domain>.
  • Membres d'un groupe alias avec : queryaliasmem builtin|domain <0xrid>.

Énumération des Domaines

  • Domaines en utilisant : enumdomains.
  • Le SID d'un domaine est récupéré via : lsaquery.
  • Les informations sur le domaine sont obtenues par : querydominfo.

Énumération des Partages

  • Tous les partages disponibles par : netshareenumall.
  • Les informations sur un partage spécifique sont récupérées avec : netsharegetinfo <share>.

Opérations Supplémentaires avec les SIDs

  • SIDs par nom en utilisant : lookupnames <username>.
  • Plus de SIDs via : lsaenumsid.
  • Le cycle RID pour vérifier plus de SIDs est effectué par : lookupsids <sid>.

Commandes Supplémentaires

Commande Interface Description
queryuser SAMR Récupérer des informations sur l'utilisateur
querygroup Récupérer des informations sur le groupe
querydominfo Récupérer des informations sur le domaine
enumdomusers Énumérer les utilisateurs du domaine
enumdomgroups Énumérer les groupes du domaine
createdomuser Créer un utilisateur de domaine
deletedomuser Supprimer un utilisateur de domaine
lookupnames LSARPC Rechercher des noms d'utilisateur à des valeurs SIDa
lookupsids Rechercher des SIDs à des noms d'utilisateur (cycle RIDb)
lsaaddacctrights Ajouter des droits à un compte utilisateur
lsaremoveacctrights Retirer des droits d'un compte utilisateur
dsroledominfo LSARPC-DS Obtenir des informations sur le domaine principal
dsenumdomtrusts Énumérer les domaines de confiance au sein d'une forêt AD

Pour mieux comprendre comment les outils samrdump et rpcdump fonctionnent, vous devriez lire Pentesting MSRPC.

{{#include ../../banners/hacktricks-training.md}}