Вопросы по Windows Authentication&Authorization (ACL/SID/Tokens и вот это все)

Тема в разделе "WASM.WIN32", создана пользователем ormoulu, 26 окт 2020.

  1. ormoulu

    ormoulu Well-Known Member

    Публикаций:
    0
    Регистрация:
    24 янв 2011
    Сообщения:
    1.208
    Хочу освежить в памяти тему (которая на самом деле никогда не была для меня особо понятной).

    1. что такое authority (NT AUTHORITY и т.п.)? Местами в техлитературе это переведено как "власть" и его идентификатор - часть SID, но что конкретно оно из себя представляет?

    3. могут ли быть другие authority кроме шести предопределенных?

    2. что означает в этом контексте SubAuthority?

    * тема будет дополняться другими глупыми вопросами *
     
    Последнее редактирование: 27 окт 2020
  2. ormoulu

    ormoulu Well-Known Member

    Публикаций:
    0
    Регистрация:
    24 янв 2011
    Сообщения:
    1.208
    - создаю файл
    - убираю все разрешения кроме Everyone - read
    - ставлю владельцем System
    - удаляю файл shift+delete

    Почему он удаляется? Разве не должно быть access denied?
     
  3. M0rg0t

    M0rg0t Well-Known Member

    Публикаций:
    0
    Регистрация:
    18 окт 2010
    Сообщения:
    1.574
    ormoulu, могу ошибаться, но право DELETE вроде как идет с вышестоящей директории. Вот в самой этой папке ты ничего не удалишь.
     
  4. ormoulu

    ormoulu Well-Known Member

    Публикаций:
    0
    Регистрация:
    24 янв 2011
    Сообщения:
    1.208
    Да, похоже так и есть (вернее почти так):

     
  5. ormoulu

    ormoulu Well-Known Member

    Публикаций:
    0
    Регистрация:
    24 янв 2011
    Сообщения:
    1.208
    UPD: можно удалить файл, на который нет прав, если есть разрешение Delete Subfolders and Files на директорию.
    Но! Если добавить этому файлу атрибут Readonly, удалить его становится невозможно. Забавно...
     
  6. M0rg0t

    M0rg0t Well-Known Member

    Публикаций:
    0
    Регистрация:
    18 окт 2010
    Сообщения:
    1.574
    ormoulu, в порядке оффтопа - как можно разрабывать лпе , не зная базы? Или там можно тупо фаззить ?
    наверное потому что нужно снять аттрибут, а права на это уже нет.
     
  7. ormoulu

    ormoulu Well-Known Member

    Публикаций:
    0
    Регистрация:
    24 янв 2011
    Сообщения:
    1.208
    Насколько я знаю, атрибут несет информативную функцию, для удаления (в норме) снимать его не нужно.

    Вы о чем? Расшифруйте пожалуйста.

    Ну фазить-то можно, тупо или умно, было бы что фазить. Чистая бинарщина редко встречается, все уже зафажено вдоль и поперек.
     
  8. M0rg0t

    M0rg0t Well-Known Member

    Публикаций:
    0
    Регистрация:
    18 окт 2010
    Сообщения:
    1.574
    Нужно, иначе файл не открыть на запись, да и удалить его не получится. Имею ввиду программно.
    ну видел какие-то ваши старые посты, и сложилось мнение, что вы кодили / находили в винде ядерные лпе. Я как бы стремлюсь к этому (хотел бы найти хотя бы лпе , а в идеале рце), но вот как раз не хватает базы по смежным темам - этот злополучный СОМ, безопасность, ядро и т.д. Поэтому даже не пробую, т.к. врядли выйдет недокументированное кодить, не зная документированной матчасти.
     
  9. ormoulu

    ormoulu Well-Known Member

    Публикаций:
    0
    Регистрация:
    24 янв 2011
    Сообщения:
    1.208
    Насколько я знаю, атрибут несет информативную функцию, для удаления (в норме) снимать его не нужно.

    Хмм... нет, вы правы. Readonly атрибут не дает удалять, explorer и cmd его снимают.
    --- Сообщение объединено, 4 ноя 2020 ---
    Попробуйте начать с разбора того что на паблике. Есть хорошие пейперы где все разжевано. Перечисленные темы обширны настолько, что изучать их подробно заранее смысла нет, если ваша цель не программирование в этой области. Гораздо эффективнее делать это на конкретных примерах.
     
  10. Andrey333

    Andrey333 Member

    Публикаций:
    0
    Регистрация:
    30 янв 2020
    Сообщения:
    35
    Ну да, верно. Защищенный объект имеет дескриптор безопасности (DA), который содержит в себе список инф. о пользователях которым разрешен/запрещен доступ (DACL). Каждый элемент в DACL (ACE) содержит SID пользователя, маску доступа и различные флаги, среди которых есть флаги определяющие наследуется ли элемент ACE дочерним объектом. Например OBJECT_INHERIT_ACE - ACE наследуется неконтейнерным дочерним объектом. Как то так.
    --- Сообщение объединено, 13 ноя 2020 ---
    ACL это общее название для списков DACL (о котором я писал выше) и SACL, которые содержатся в SD. SACL используется для аудита, т.е. произошло обращение, добавилась запись в журнал. SID идентифицирует пользователя или группу. Token привязывается к процессу (потоку). Он содержит SID пользователя, SID групп к которым принадлежит пользователь, привилегии, session id и много чего ещё. Когда поток обращается к защищенному объекту SID-ы из токена проверяются по списку DACL и выносится вердикт (разрешить или запретить доступ). Коротко так, многие нюансы я опустил.
    --- Сообщение объединено, 13 ноя 2020 ---
    ormoulu, все ведь подробно описано в MSDN:

    Authorization
    Authentication

    Ещё можно Руссиновича почитать, главу по безопасности.
     
    M0rg0t нравится это.
  11. ormoulu

    ormoulu Well-Known Member

    Публикаций:
    0
    Регистрация:
    24 янв 2011
    Сообщения:
    1.208
    Andrey333,