Главная страница
Top.Mail.Ru    Яндекс.Метрика
Текущий архив: 2007.08.12;
Скачать: CL | DM;

Вниз

Защита   Найти похожие ветки 

 
Чапаев ©   (2007-02-24 09:04) [0]

Создаю дескриптор защиты ConvertStringSecurityDescriptorToSecurityDescriptor(), преобразую его к абсолютному MakeAbsoluteSD(), устанавливаю права SetSecurityInfo() на процесс (и/или его основной поток). В качестве строки описания дескриптора задаю O:SYG:SYD:(A;;GA;;;SY)(D;;GA;;;BA). Все функции отрабатывают успешно. Но администратор по-прежнему может завершить процесс. Почему так?


 
Игорь Шевченко ©   (2007-02-24 20:06) [1]


> Но администратор по-прежнему может завершить процесс. Почему
> так?


А какой дескриптор получается в итоге ? (Точнее, какой ACL) ? (глянуть можно Process Explorer"ом)


 
Eraser ©   (2007-02-24 21:13) [2]

> [0] Чапаев ©   (24.02.07 09:04)

не понял, зачем вот это

> преобразую его к абсолютному MakeAbsoluteSD


Если нужно установить права для процесса, я бы действовал следующим образом:

1. Заполняем массив структур EXPLICIT_ACCESS, для кажной устанавливаем нужный SID (AllocateAndInitializeSid), нужные права доступа и т.д.
2. Содаем и заполняем DACL ф-цией SetEntriesInAcl, передав ей массив структур EXPLICIT_ACCESS.
3. Выполняем SetSecurityInfo с DACL_SECURITY_INFORMATION (или PROTECTED_DACL_SECURITY_INFORMATION, там смотря по обстоятельствам), передав ф-ции полученный ранее DACL.


 
Чапаев ©   (2007-02-24 21:55) [3]

> А какой дескриптор получается в итоге ? (Точнее, какой ACL)
> ? (глянуть можно Process Explorer"ом)
Если я правильно понял про "глянуть Process Explorer"ом" (Properties -> Security), доступ имеют Built-in admins, Authenticated users и Everyone. Хотя GetSecurityInfo() выдаёт, что DACL имеено тот, какой я назначал.

> [2] Eraser ©   (24.02.07 21:13)
Буду пробовать...


 
Чапаев ©   (2007-02-24 22:00) [4]

Ага... У главного потока DACL именно такой, как я назначил.


 
Игорь Шевченко ©   (2007-02-24 22:11) [5]

Чапаев ©   (24.02.07 21:55) [3]

Ну вот, Built-in admins имеют, значит есть ACE, в котором есть SID админский. Я бы посмотрел полностью ACL (через тот же Process Explorer на вкладке Security|Permissions|Advanced - оно там все ACE показывает.


 
Чапаев ©   (2007-02-25 08:12) [6]

> [5] Игорь Шевченко ©   (24.02.07 22:11)
Хм... В имеющейся у меня версии 8.41 такого не вижу... Буду искать поновее.


 
Чапаев ©   (2007-02-25 08:33) [7]

Скачал Process Explorer 10.2. Всё страньше и страньше, как говорила Алиса. В Security|Permissions|Advanced -- всё как было задумано: запретить - администраторы - полный доступ; разрешить - SYSTEM - полный доступ.

Даже когда средствами Process Explorer"а явно запрещаю доступ всем, через диспетчер задач можно завершить.


 
Игорь Шевченко ©   (2007-02-25 10:10) [8]

А унаследованных прав в ACL случаем нету ?


 
Чапаев ©   (2007-02-25 10:52) [9]

Нету!


 
Игорь Шевченко ©   (2007-02-25 22:24) [10]

совсем забыл, у админа может быть вклчена по умелчанию привилегия отладки. С этой привилегией права недействительны. Кроме того, в случае XP процесс может быть открыт с опцией WRITE_DACL для того, чтобы изменить его дексриптор безопасности, и после этого изменения процесс уже убивается вполне легально. Всем этим занимается Task Manager



Страницы: 1 вся ветка

Текущий архив: 2007.08.12;
Скачать: CL | DM;

Наверх




Память: 0.49 MB
Время: 0.025 c
2-1184524311
Pont
2007-07-15 22:31
2007.08.12
Вырезание из файла


2-1184160268
vitv
2007-07-11 17:24
2007.08.12
Сброс модема


3-1177453476
TTable
2007-04-25 02:24
2007.08.12
Как получить указатель на строку в Table1.Fields[2].AsString ?


15-1184293628
Slider007
2007-07-13 06:27
2007.08.12
С днем рождения ! 13 июля 2007 пятница


8-1162773834
OlDirtyBastard
2006-11-06 03:43
2007.08.12
TChart