9.7 KiB
Raw Blame History

rpcclient enumeration

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

Огляд відносних ідентифікаторів (RID) та ідентифікаторів безпеки (SID)

Відносні ідентифікатори (RID) та ідентифікатори безпеки (SID) є ключовими компонентами в операційних системах Windows для унікальної ідентифікації та управління об'єктами, такими як користувачі та групи, в межах мережевого домену.

  • SID слугують унікальними ідентифікаторами для доменів, забезпечуючи, щоб кожен домен був відрізняльним.
  • RID додаються до SID для створення унікальних ідентифікаторів для об'єктів у цих доменах. Ця комбінація дозволяє точно відстежувати та управляти дозволами об'єктів і контролем доступу.

Наприклад, користувач на ім'я pepe може мати унікальний ідентифікатор, що поєднує SID домену з його конкретним RID, представленим у шістнадцятковому (0x457) та десятковому (1111) форматах. Це призводить до повного та унікального ідентифікатора для pepe в межах домену, як: S-1-5-21-1074507654-1937615267-42093643874-1111.

Перерахунок з rpcclient

Утиліта rpcclient з Samba використовується для взаємодії з RPC кінцевими точками через іменовані канали. Нижче наведені команди, які можна виконати на інтерфейсах SAMR, LSARPC та LSARPC-DS після встановлення SMB сесії, що часто вимагає облікових даних.

Інформація про сервер

  • Щоб отримати інформацію про сервер: використовується команда srvinfo.

Перерахунок користувачів

  • Користувачів можна перерахувати за допомогою: 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

Перерахунок груп

  • Групи за допомогою: enumdomgroups.
  • Деталі групи з: querygroup <0xrid>.
  • Члени групи через: querygroupmem <0xrid>.

Перерахунок груп псевдонімів

  • Групи псевдонімів за допомогою: enumalsgroups <builtin|domain>.
  • Члени групи псевдонімів з: queryaliasmem builtin|domain <0xrid>.

Перерахунок доменів

  • Домени за допомогою: enumdomains.
  • SID домену отримується через: lsaquery.
  • Інформація про домен отримується за допомогою: querydominfo.

Перерахунок загальних ресурсів

  • Всі доступні загальні ресурси за допомогою: netshareenumall.
  • Інформація про конкретний загальний ресурс отримується з: netsharegetinfo <share>.

Додаткові операції з SID

  • SID за іменем за допомогою: lookupnames <username>.
  • Більше SID через: lsaenumsid.
  • Циклічний RID для перевірки більше SID виконується за допомогою: lookupsids <sid>.

Додаткові команди

Команда Інтерфейс Опис
queryuser SAMR Отримати інформацію про користувача
querygroup Отримати інформацію про групу
querydominfo Отримати інформацію про домен
enumdomusers Перерахувати користувачів домену
enumdomgroups Перерахувати групи домену
createdomuser Створити користувача домену
deletedomuser Видалити користувача домену
lookupnames LSARPC Знайти імена користувачів за значеннями SIDa
lookupsids Знайти SID за іменами користувачів (циклічний RIDb)
lsaaddacctrights Додати права до облікового запису користувача
lsaremoveacctrights Видалити права з облікового запису користувача
dsroledominfo LSARPC-DS Отримати інформацію про основний домен
dsenumdomtrusts Перерахувати довірені домени в лісі AD

Щоб краще зрозуміти, як працюють інструменти samrdump та rpcdump, вам слід прочитати Pentesting MSRPC.

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