7.9 KiB
Raw Blame History

rpcclient enumeration

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

Relative Identifiers (RID) ve Security Identifiers (SID) Genel Bakış

Relative Identifiers (RID) ve Security Identifiers (SID), Windows işletim sistemlerinde, bir ağ alanı içindeki nesneleri, örneğin kullanıcılar ve gruplar, benzersiz bir şekilde tanımlamak ve yönetmek için anahtar bileşenlerdir.

  • SID'ler, her alanın ayırt edici olmasını sağlayarak alanlar için benzersiz tanımlayıcılar olarak hizmet eder.
  • RID'ler, bu alanlar içindeki nesneler için benzersiz tanımlayıcılar oluşturmak üzere SID'lere eklenir. Bu kombinasyon, nesne izinlerinin ve erişim kontrollerinin hassas bir şekilde izlenmesini ve yönetilmesini sağlar.

Örneğin, pepe adında bir kullanıcının, alanın SID'si ile onun belirli RID'sini birleştiren benzersiz bir tanımlayıcısı olabilir; bu, hem onaltılık (0x457) hem de ondalık (1111) formatlarda temsil edilir. Bu, alan içinde pepe için tam ve benzersiz bir tanımlayıcı oluşturur: S-1-5-21-1074507654-1937615267-42093643874-1111.

rpcclient ile Enumerasyon

Samba'dan rpcclient aracı, adlandırılmış borular aracılığıyla RPC uç noktalarıyla etkileşimde bulunmak için kullanılır. Aşağıdaki komutlar, bir SMB oturumu kurulduktan sonra SAMR, LSARPC ve LSARPC-DS arayüzlerine verilebilir ve genellikle kimlik bilgileri gerektirir.

Sunucu Bilgisi

  • Sunucu Bilgisi elde etmek için: srvinfo komutu kullanılır.

Kullanıcıların Enumerasyonu

  • Kullanıcılar listelenebilir: querydispinfo ve enumdomusers kullanılarak.
  • Bir kullanıcının detayları: queryuser <0xrid> ile alınır.
  • Bir kullanıcının grupları: queryusergroups <0xrid> ile sorgulanır.
  • Bir kullanıcının SID'si: lookupnames <username> ile elde edilir.
  • Kullanıcıların takma adları: queryuseraliases [builtin|domain] <sid> ile sorgulanır.
# 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

Grupların Enumerasyonu

  • Gruplar için: enumdomgroups.
  • Bir grubun detayları için: querygroup <0xrid>.
  • Bir grubun üyeleri için: querygroupmem <0xrid>.

Takma Ad Gruplarının Enumerasyonu

  • Takma ad grupları için: enumalsgroups <builtin|domain>.
  • Bir takma ad grubunun üyeleri için: queryaliasmem builtin|domain <0xrid>.

Alanların Enumerasyonu

  • Alanlar için: enumdomains.
  • Bir alanın SID'si için: lsaquery.
  • Alan bilgisi için: querydominfo.

Paylaşımların Enumerasyonu

  • Tüm mevcut paylaşımlar için: netshareenumall.
  • Belirli bir paylaşım hakkında bilgi için: netsharegetinfo <share>.

SID'lerle Ek İşlemler

  • İsimle SID'ler için: lookupnames <username>.
  • Daha fazla SID için: lsaenumsid.
  • Daha fazla SID kontrolü için RID döngüsü: lookupsids <sid>.

Ek komutlar

Komut Arayüz ıklama
queryuser SAMR Kullanıcı bilgilerini al
querygroup Grup bilgilerini al
querydominfo Alan bilgilerini al
enumdomusers Alan kullanıcılarını listele
enumdomgroups Alan gruplarını listele
createdomuser Bir alan kullanıcısı oluştur
deletedomuser Bir alan kullanıcısını sil
lookupnames LSARPC Kullanıcı adlarını SIDa değerlerine bak
lookupsids SID'leri kullanıcı adlarına (RIDb döngüsü) bak
lsaaddacctrights Bir kullanıcı hesabına hak ekle
lsaremoveacctrights Bir kullanıcı hesabından hak kaldır
dsroledominfo LSARPC-DS Birincil alan bilgilerini al
dsenumdomtrusts Bir AD ormanındaki güvenilen alanları listele

Araçların samrdump ve rpcdump nasıl çalıştığını daha iyi anlamak için Pentesting MSRPC belgesini okumalısınız.

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