информационная безопасность
без паники и всерьез
 подробно о проектеRambler's Top100
Атака на InternetЗа кого нас держат?
BugTraq.Ru
Русский BugTraq
 Анализ криптографических сетевых... 
 Модель надежности двухузлового... 
 Специальные марковские модели надежности... 
 Ядро Linux избавляется от российских... 
 20 лет Ubuntu 
 Tailscale окончательно забанила... 
главная обзор RSN блог библиотека закон бред форум dnet о проекте
bugtraq.ru / форум / programming
Имя Пароль
ФОРУМ
если вы видите этот текст, отключите в настройках форума использование JavaScript
регистрация





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
2 buLLet: Ну как, свежак в голову не пришёл? ;-)) А может и ещё кто-нибудь чего подскажет ;-) 12.10.02 22:25  Число просмотров: 1202
Автор: HandleX <Александр М.> Статус: The Elderman
<"чистая" ссылка>
<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