hacktricks/network-services-pentesting/pentesting-smb/rpcclient-enumeration.md

9.2 KiB

rpcclient Enumeration

Erlernen Sie AWS-Hacking von Grund auf mit htARTE (HackTricks AWS Red Team Expert)!

Was ist eine RID

Überblick über Relative Identifiers (RID) und Security Identifiers (SID)

Relative Identifiers (RID) und Security Identifiers (SID) sind Schlüsselkomponenten in Windows-Betriebssystemen zur eindeutigen Identifizierung und Verwaltung von Objekten wie Benutzern und Gruppen in einem Netzwerkdienst.

  • SIDs dienen als eindeutige Kennungen für Domänen, um sicherzustellen, dass jede Domäne unterscheidbar ist.
  • RIDs werden an SIDs angehängt, um eindeutige Kennungen für Objekte innerhalb dieser Domänen zu erstellen. Diese Kombination ermöglicht eine präzise Verfolgung und Verwaltung von Objektberechtigungen und Zugriffssteuerungen.

Beispielsweise könnte ein Benutzer namens pepe eine eindeutige Kennung haben, die die SID der Domäne mit seiner spezifischen RID kombiniert, dargestellt in hexadezimaler (0x457) und dezimaler (1111) Form. Dies führt zu einer vollständigen und eindeutigen Kennung für pepe innerhalb der Domäne wie: S-1-5-21-1074507654-1937615267-42093643874-1111.

Enumeration mit rpcclient

Das Dienstprogramm rpcclient von Samba wird verwendet, um mit RPC-Endpunkten über benannte Pipes zu interagieren. Nachdem eine SMB-Sitzung hergestellt wurde, können die folgenden Befehle an die SAMR-, LSARPC- und LSARPC-DS-Schnittstellen gesendet werden, wobei häufig Anmeldeinformationen erforderlich sind.

Serverinformationen

  • Um Serverinformationen zu erhalten: wird der Befehl srvinfo verwendet.

Benutzerenumeration

  • Benutzer können aufgelistet werden mit: querydispinfo und enumdomusers.
  • Details eines Benutzers mit: queryuser <0xrid>.
  • Gruppen eines Benutzers mit: queryusergroups <0xrid>.
  • Die SID eines Benutzers wird abgerufen durch: lookupnames <Benutzername>.
  • Aliase von Benutzern mit: 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 von Gruppen

  • Gruppen mit: enumdomgroups.
  • Details einer Gruppe mit: querygroup <0xrid>.
  • Mitglieder einer Gruppe durch: querygroupmem <0xrid>.

Enumeration von Alias-Gruppen

  • Alias-Gruppen mit: enumalsgroups <builtin|domain>.
  • Mitglieder einer Alias-Gruppe mit: queryaliasmem builtin|domain <0xrid>.

Enumeration von Domänen

  • Domänen mit: enumdomains.
  • Die SID einer Domäne wird abgerufen durch: lsaquery.
  • Domäneninformationen werden abgerufen durch: querydominfo.

Enumeration von Freigaben

  • Alle verfügbaren Freigaben mit: netshareenumall.
  • Informationen zu einer bestimmten Freigabe werden abgerufen mit: netsharegetinfo <share>.

Zusätzliche Operationen mit SIDs

  • SIDs nach Namen mit: lookupnames <username>.
  • Weitere SIDs durch: lsaenumsid.
  • RID-Zyklus zur Überprüfung weiterer SIDs wird durchgeführt mit: lookupsids <sid>.

Zusätzliche Befehle

Befehl Schnittstelle Beschreibung
queryuser SAMR Benutzerinformationen abrufen
querygroup Gruppeninformationen abrufen
querydominfo Domäneninformationen abrufen
enumdomusers Domänenbenutzer auflisten
enumdomgroups Domänengruppen auflisten
createdomuser Domänenbenutzer erstellen
deletedomuser Domänenbenutzer löschen
lookupnames LSARPC Benutzernamen zu SIDa Werten nachschlagen
lookupsids SIDs zu Benutzernamen umwandeln (RIDb Zyklus)
lsaaddacctrights Rechte zu einem Benutzerkonto hinzufügen
lsaremoveacctrights Rechte von einem Benutzerkonto entfernen
dsroledominfo LSARPC-DS Primäre Domäneninformationen abrufen
dsenumdomtrusts Vertrauenswürdige Domänen innerhalb eines AD-Forest auflisten

Um die Funktionsweise der Tools samrdump und rpcdump besser zu verstehen, sollten Sie Pentesting MSRPC lesen.