![]() |
|
|
Регистрация Восстановить пароль |
Регистрация | Задать вопрос |
Заплачу за решение |
Новые сообщения |
Сообщения за день |
Расширенный поиск |
Правила |
Всё прочитано |
![]() |
|
|
Опции темы | Поиск в этой теме |
![]() |
#1 |
Регистрация: 02.02.2008
Сообщений: 9
|
![]()
При обработке процессов (получение привилегий) все работает нормально, но если этот процесс от NETWORK SERVICE и LOCAL SERVICE то доступ блокируется.
1) Возможно моему процессу нехватает привилегии (какой?). 2) Возможно OpenProcessToken имеет неправильный флаг доступа, я использую TOKEN_QUERY = &H8. Как считаете, что не так?
- Копирование лицензионного диска - это пиратство?
- Нет, т.к. пиратство подразумевает наличие: моря, корабля и абардажной команды. |
![]() |
![]() |
![]() |
#2 |
добрый няша
Старожил
Регистрация: 29.10.2006
Сообщений: 4,804
|
![]()
1) попробуй включить для себя привилегию SeDebugPrivilege
2) TOKEN_ALL_ACCESS пробовал? |
![]() |
![]() |
![]() |
#3 | |
Регистрация: 02.02.2008
Сообщений: 9
|
![]() Цитата:
2) Естественно пробовал... Как ты думаешь,что если добавить и подключить SeTcbPrivilege?
- Копирование лицензионного диска - это пиратство?
- Нет, т.к. пиратство подразумевает наличие: моря, корабля и абардажной команды. |
|
![]() |
![]() |
![]() |
#4 |
добрый няша
Старожил
Регистрация: 29.10.2006
Сообщений: 4,804
|
![]()
ну попробуй
|
![]() |
![]() |
![]() |
#5 |
Форумчанин
Регистрация: 29.12.2007
Сообщений: 137
|
![]()
Если код ошибки = ERROR_ACCESS_DENITED, значит у этого токена выставлены такие разрешения, которые запрещают тебе его открывать. И сделать ты ничего не сможешь.
Последний раз редактировалось Ins; 01.04.2008 в 16:48. |
![]() |
![]() |
![]() |
#6 |
Регистрация: 02.02.2008
Сообщений: 9
|
![]()
Тогда, как быть с "LsaOpenPolicy" и "LsaAddAccountRights"?
- Копирование лицензионного диска - это пиратство?
- Нет, т.к. пиратство подразумевает наличие: моря, корабля и абардажной команды. |
![]() |
![]() |
![]() |
#7 | |
Форумчанин
Регистрация: 29.12.2007
Сообщений: 137
|
![]() Цитата:
Тебе вообще слова маркер доступа (Token), дескриптор защиты (SD), список контроля доступа (DACL) что либо говорят? Если ты думаешь, что обладая нужными привилегиями, ты сможешь обходить все механизмы защиты, ты ошибаешься. Если не говорят, то рекомендую почитать Соломона с Руссиновичем, или на худой конец это: http://www.delphikingdom.com/asp/vie...catalogid=1322 PS: Хотя, честно говоря, у меня есть одна мысль по поводу того, как все-таки будучи админом, можно заполучить хэндл нужного тебе маркера. Вот только не уверен, будет ли работать, но попробовать можно. Прежде, чем тебе эту мысль сказать - рекомендую почитать статью, ссылку на которую я привел выше, иначе ты мою мысль просто не поймешь. |
|
![]() |
![]() |
![]() |
#8 |
Регистрация: 02.02.2008
Сообщений: 9
|
![]()
Ins, большое спасибо! статья просто замечательная...
Какая твоя мысль?
- Копирование лицензионного диска - это пиратство?
- Нет, т.к. пиратство подразумевает наличие: моря, корабля и абардажной команды. |
![]() |
![]() |
![]() |
#9 |
Форумчанин
Регистрация: 29.12.2007
Сообщений: 137
|
![]()
Ну а мысль - такая.
1. У администратора есть привилегия: SE_TAKE_OWNERSHIP_NAME = 'SeTakeOwnershipPrivilege'; Правда она находится в отключенном состоянии (необходимо включать явно через AdjustTokenPrivilege). Эта привилегия позволяет ему стать владельцем (Owner) любого объекта. Зачем нам становиться владельцем? Об этом ниже. 2. Система защиты устроена таким образом, что не только DACL определяет кому и какой вид доступа предоставить. Ключевую роль также играет владелец. А именно - за владельцем всегда остается право менять разрешения на свое усмотрение. Таким образом, если доступ нам запрещен, но мы являемся владельцем - мы можем этот доступ себе включить. Т.е. последовательность действий: 1. Включаем привилегию SE_TAKE_OWNERSHIP_NAME. 2. OpenProcessToken с маской доступа WRITE_OWNER. Нам будет разрешено из-за наличия привилегии 3. SetSecurityInfo (второй параметр - SE_KERNEL_OBJECT) - назначаем владельцем себя 4. Закрываем токен - CloseHandle 5. Снова открываем токен с маской WRITE_DAC. Нам будет разрешено, так как мы являемся владельцем. 6. Создаем DACL и добавляем туда ACE, дающий над доступ типа TOKEN_QUERY 7. SetSecurityInfo - назначаем объекту DACL 8. Закрываем токен - CloseHandle 9. Открываем токен с маской TOKEN_QUERY и работаем. Нам будет разрешено, так как это явно записано в DACL Если получится (эх, не уверен я...) - маякнешь, интересно ![]() Последний раз редактировалось Ins; 04.04.2008 в 11:47. |
![]() |
![]() |
![]() |
#10 |
Регистрация: 02.02.2008
Сообщений: 9
|
![]()
Ins, мысль тоже замечательная...
Пробую реализовать...
- Копирование лицензионного диска - это пиратство?
- Нет, т.к. пиратство подразумевает наличие: моря, корабля и абардажной команды. |
![]() |
![]() |
![]() |
|
Опции темы | Поиск в этой теме |
![]() |
||||
Тема | Автор | Раздел | Ответов | Последнее сообщение |
директивы в MASM - INVOKE, PROTO, LOCAL | fermat_c | Assembler - Ассемблер (FASM, MASM, WASM, NASM, GoASM, Gas, RosAsm, HLA) и не рекомендуем TASM | 3 | 05.04.2008 18:25 |
И снова Service! | Shurik Hacker | Общие вопросы Delphi | 5 | 27.01.2008 21:36 |
MSXML 4.0 Service Pack 2 | Nevil | Общие вопросы Delphi | 1 | 16.09.2007 18:15 |