rpcclient enumeration

Support HackTricks

Overview of Relative Identifiers (RID) and Security Identifiers (SID)

Relative Identifiers (RID) και Security Identifiers (SID) είναι βασικά στοιχεία στα λειτουργικά συστήματα Windows για την μοναδική αναγνώριση και διαχείριση αντικειμένων, όπως χρήστες και ομάδες, εντός ενός δικτύου.

  • SIDs λειτουργούν ως μοναδικοί αναγνωριστές για τομείς, διασφαλίζοντας ότι κάθε τομέας είναι διακριτός.

  • RIDs προστίθενται στα SIDs για να δημιουργήσουν μοναδικούς αναγνωριστές για αντικείμενα εντός αυτών των τομέων. Αυτή η συνδυαστική προσέγγιση επιτρέπει την ακριβή παρακολούθηση και διαχείριση των δικαιωμάτων και των ελέγχων πρόσβασης των αντικειμένων.

Για παράδειγμα, ένας χρήστης με το όνομα pepe μπορεί να έχει έναν μοναδικό αναγνωριστή που συνδυάζει το SID του τομέα με το συγκεκριμένο RID του, που αναπαρίσταται σε μορφές δεκαεξαδικών (0x457) και δεκαδικών (1111). Αυτό έχει ως αποτέλεσμα έναν πλήρη και μοναδικό αναγνωριστή για τον pepe εντός του τομέα όπως: S-1-5-21-1074507654-1937615267-42093643874-1111.

Enumeration with rpcclient

Το rpcclient εργαλείο από το Samba χρησιμοποιείται για την αλληλεπίδραση με RPC endpoints μέσω ονομασμένων σωλήνων. Παρακάτω είναι οι εντολές που μπορούν να εκδοθούν στις διεπαφές SAMR, LSARPC και LSARPC-DS αφού έχει δημιουργηθεί μια συνεδρία SMB, συχνά απαιτώντας διαπιστευτήρια.

Server Information

  • Για να αποκτήσετε Πληροφορίες Διακομιστή: χρησιμοποιείται η εντολή srvinfo.

Enumeration of Users

  • Οι χρήστες μπορούν να καταγραφούν χρησιμοποιώντας: querydispinfo και enumdomusers.

  • Λεπτομέρειες ενός χρήστη με: queryuser <0xrid>.

  • Ομάδες ενός χρήστη με: queryusergroups <0xrid>.

  • Το SID ενός χρήστη ανακτάται μέσω: lookupnames <username>.

  • Ψευδώνυμα χρηστών με: 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

Enumeration of Groups

  • Groups by: enumdomgroups.

  • Details of a group with: querygroup <0xrid>.

  • Members of a group through: querygroupmem <0xrid>.

Enumeration of Alias Groups

  • Alias groups by: enumalsgroups <builtin|domain>.

  • Members of an alias group with: queryaliasmem builtin|domain <0xrid>.

Enumeration of Domains

  • Domains using: enumdomains.

  • A domain's SID is retrieved through: lsaquery.

  • Domain information is obtained by: querydominfo.

Enumeration of Shares

  • All available shares by: netshareenumall.

  • Information about a specific share is fetched with: netsharegetinfo <share>.

Additional Operations with SIDs

  • SIDs by name using: lookupnames <username>.

  • More SIDs through: lsaenumsid.

  • RID cycling to check more SIDs is performed by: lookupsids <sid>.

Extra commands

Command

Interface

Description

queryuser

SAMR

Retrieve user information

querygroup

Retrieve group information

querydominfo

Retrieve domain information

enumdomusers

Enumerate domain users

enumdomgroups

Enumerate domain groups

createdomuser

Create a domain user

deletedomuser

Delete a domain user

lookupnames

LSARPC

Look up usernames to SIDa values

lookupsids

Look up SIDs to usernames (RIDb cycling)

lsaaddacctrights

Add rights to a user account

lsaremoveacctrights

Remove rights from a user account

dsroledominfo

LSARPC-DS

Get primary domain information

dsenumdomtrusts

Enumerate trusted domains within an AD forest

To understand better how the tools samrdump and rpcdump works you should read Pentesting MSRPC.

Support HackTricks

Last updated