информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Страшный баг в WindowsСетевые кракеры и правда о деле ЛевинаГде водятся OGRы
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Бэкдор в xz/liblzma, предназначенный... 
 Три миллиона электронных замков... 
 Doom на газонокосилках 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
[Win32] Это понятно. Но не совсем ;-) 01.10.02 20:17  Число просмотров: 1140
Автор: HandleX <Александр М.> Статус: The Elderman
<"чистая" ссылка>
> а все дело завязано на привилегиях, которые выставляются в
> токене процесса с помощью спец. функций и флагов.
> AdjustTokenPrivileges - устанавливает/снимает привилегии
> GetTokenInformation - плучаешь инфу о токене - конкретно
> для привилегий юзай
> TokenPrivileges - получишь на выходе
> typedef struct _TOKEN_PRIVILEGES { // tp
> DWORD PrivilegeCount;
> LUID_AND_ATTRIBUTES Privileges[ANYSIZE_ARRAY];
> } TOKEN_PRIVILEGES;
> ну вот и все

Всё и ничего. Итак, ситуёвина. Лежит файло в каталоге раздела NTFS. На него навешали разных ACE'ов в DACL (ну, эти это могут, другие то-сё и т.д.). Я открыл файло с флагом доступа вместо GENERIC_READ поставил MAXIMUM_ALLOWED. И теперь хочу узнать по дескриптору этого файла, могу ли я его удалить (к примеру) — знать мне это надо, к примеру, для того, чтобы в UI некоторые пункты меню, к примеру, сделать Disabled. А сразу открывать c флагом DELETE я его не хочу, и опять, для этого могут быть серьёзные причины — аудит выставлен, к примеру, на доступ к объектам, и я не хочу лишних записей ;-)))
Итак, вопрос ещё раз — как узнать по дескриптору объекта тот ACCESS_MASK, который система назначила объекту, открытому по MAXIMUM_ALLOWED ;-)))))))
Ну, прямо de ja vu
<programming>
[win32] security: maximum_allowed и access_mask 30.09.02 17:33  
Автор: HandleX <Александр М.> Статус: The Elderman
<"чистая" ссылка>
Hello, добрый All ;-))))

В общем вопрос такой:
Насколько я понимаю, когда открываем защищённый объект с «просьбой» MAXIMUM_ALLOWED, то система, исходя из «крутости» процесса пользователя, попытается дать всё, что можно для этого пользователя. Как узнать, какой получился ACCESS_MASK (чтобы узнать, что же я всё-таки могу ;-) по дескриптору объекта, возможно ли это вообще?

Заранее всем спасибо.
[win32] security: maximum_allowed и access_mask 30.09.02 23:13  
Автор: beetle <beetle> Статус: Member
<"чистая" ссылка>
а все дело завязано на привилегиях, которые выставляются в токене процесса с помощью спец. функций и флагов.
AdjustTokenPrivileges - устанавливает/снимает привилегии
GetTokenInformation - плучаешь инфу о токене - конкретно для привилегий юзай
TokenPrivileges - получишь на выходе
typedef struct _TOKEN_PRIVILEGES { // tp
DWORD PrivilegeCount;
LUID_AND_ATTRIBUTES Privileges[ANYSIZE_ARRAY];
} TOKEN_PRIVILEGES;
ну вот и все
[Win32] Это понятно. Но не совсем ;-) 01.10.02 20:17  
Автор: HandleX <Александр М.> Статус: The Elderman
<"чистая" ссылка>
> а все дело завязано на привилегиях, которые выставляются в
> токене процесса с помощью спец. функций и флагов.
> AdjustTokenPrivileges - устанавливает/снимает привилегии
> GetTokenInformation - плучаешь инфу о токене - конкретно
> для привилегий юзай
> TokenPrivileges - получишь на выходе
> typedef struct _TOKEN_PRIVILEGES { // tp
> DWORD PrivilegeCount;
> LUID_AND_ATTRIBUTES Privileges[ANYSIZE_ARRAY];
> } TOKEN_PRIVILEGES;
> ну вот и все

Всё и ничего. Итак, ситуёвина. Лежит файло в каталоге раздела NTFS. На него навешали разных ACE'ов в DACL (ну, эти это могут, другие то-сё и т.д.). Я открыл файло с флагом доступа вместо GENERIC_READ поставил MAXIMUM_ALLOWED. И теперь хочу узнать по дескриптору этого файла, могу ли я его удалить (к примеру) — знать мне это надо, к примеру, для того, чтобы в UI некоторые пункты меню, к примеру, сделать Disabled. А сразу открывать c флагом DELETE я его не хочу, и опять, для этого могут быть серьёзные причины — аудит выставлен, к примеру, на доступ к объектам, и я не хочу лишних записей ;-)))
Итак, вопрос ещё раз — как узнать по дескриптору объекта тот ACCESS_MASK, который система назначила объекту, открытому по MAXIMUM_ALLOWED ;-)))))))
Ну, прямо de ja vu
Processing............ 02.10.02 20:18  
Автор: beetle <beetle> Статус: Member
<"чистая" ссылка>
2 buLLet: Ну как, свежак в голову не пришёл? ;-)) А может и ещё кто-нибудь чего подскажет ;-) 12.10.02 22:25  
Автор: HandleX <Александр М.> Статус: The Elderman
<"чистая" ссылка>
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2024 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach