В данной статье я постарался максимально полно и глубоко рассказать про построение и внутреннее использование ACL (Access Control List) внутри Active Directory. В этой статье нет рассказов про "null DACL" и "empty DACL" и тому подобного. Если читатель хочет изучить все более простые нюансы использования ACL, то рекомендую почитать другую мою статью или лучше сразу почитать комментарии к моему тестовому коду для этой статьи.
Что будет в этой статье:
- Расскажу про все 22 различных типа ACE, а также разделю их на 4 различных вида;
- Расскажу, почему прав вида "GENERIC" не существует;
- Покажу, как именно флаги из ACCESS_MASK работают при проверках в Active Directory;
- Расскажу почему вы не сможете "сделать RBCD" имея AllExtendedRights на "computer";
- Расскажу и дам ссылку на программу для получения всех "control access rights" (extended rights, validated writes, property sets);
- Покажу, как получить полный список всех атрибутов, связанных control access rights и подчинённых классов для любого объекта в домене;
- Расскажу про каждое "validated write" в отдельности и покажу как можно обойти их контроль;
- Как именно хранятся security descriptors в NTDS.DIT и почему их там мало;
- Дам таблицу для всех "extended access rights" со ссылками на алгоритмы их использования;