hacktricks/network-services-pentesting/pentesting-smb/rpcclient-enumeration.md
2023-06-03 13:10:46 +00:00

11 KiB

Énumération rpcclient

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

Qu'est-ce qu'un RID

Un Identificateur Relatif (RID) est un identificateur unique (représenté en format hexadécimal) utilisé par Windows pour suivre et identifier les objets. Pour expliquer comment cela s'insère, regardons les exemples ci-dessous :

  • L' SID pour le domaine NAME_DOMAIN.LOCAL est : S-1-5-21-1038751438-1834703946-36937684957.
  • Lorsqu'un objet est créé dans un domaine, le nombre ci-dessus (SID) sera combiné avec un RID pour créer une valeur unique utilisée pour représenter l'objet.
  • Ainsi, l'utilisateur de domaine john avec un RID:[0x457] Hex 0x457 serait = décimal 1111, aura un SID utilisateur complet de : S-1-5-21-1038751438-1834703946-36937684957-1111.
  • C'est unique à l'objet john dans le domaine NAME_DOMAIN.LOCAL et vous ne verrez jamais cette valeur appariée liée à un autre objet dans ce domaine ou dans un autre.

Définition ici.

Énumération avec rpcclient

Une partie de cette section a été extraite du livre "Network Security Assesment 3rd Edition"

Vous pouvez utiliser l'utilitaire Samba rpcclient pour interagir avec les points de terminaison RPC via des pipes nommés. Les commandes suivantes permettent d'interroger les interfaces SAMR, LSARPC et LSARPC-DS après l'établissement d'une session SMB (nécessitant souvent des informations d'identification).

Informations sur le serveur

  • Informations sur le serveur : srvinfo

Énumération des utilisateurs

  • Liste des utilisateurs : querydispinfo et enumdomusers
  • Obtenir les détails de l'utilisateur : queryuser <0xrid>
  • Obtenir les groupes d'utilisateurs : queryusergroups <0xrid>
  • Obtenir le SID d'un utilisateur : lookupnames <username>
  • Obtenir les alias des utilisateurs : 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

Énumération des groupes

  • Lister les groupes: enumdomgroups
  • Obtenir les détails d'un groupe: querygroup <0xrid>
  • Obtenir les membres d'un groupe: querygroupmem <0xrid>

Énumération des alias de groupes

  • Lister les alias: enumalsgroups <builtin|domain>
  • Obtenir les membres: queryaliasmem builtin|domain <0xrid>

Énumération des domaines

  • Lister les domaines: enumdomains
  • Obtenir SID: lsaquery
  • Informations sur le domaine: querydominfo

Énumération des partages

  • Énumérer tous les partages disponibles: netshareenumall
  • Informations sur un partage: netsharegetinfo <share>

Plus de SIDs

  • Trouver des SIDs par nom: lookupnames <username>
  • Trouver plus de SIDs: lsaenumsid
  • Cyclage RID (vérifier plus de SIDs): lookupsids <sid>

Commandes supplémentaires

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

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

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