Добро пожаловать! Это — архивная версия форумов на «Хакер.Ru». Она работает в режиме read-only.
 

Как задать привелигерованность процесса windows 2000/XP ???

Пользователи, просматривающие топик: none

Зашли как: Guest
Все форумы >> [Веб-программинг] >> Как задать привелигерованность процесса windows 2000/XP ???
Имя
Сообщение << Старые топики   Новые топики >>
Как задать привелигерованность процесса windows 2000/XP ??? - 2004-06-09 23:07:11   
yurok

Сообщений: 2
Оценки: 0
Присоединился: 2004-06-09 14:47:55
Народ кто знает как можно програмно задаеть привилегированность процесса
при его запуске в Windows 2000/XP?
т.е. Кто его запускает (какой пользователь)!?


СПАСИБО!!!
Post #: 1
Как задать привелигерованность процесса windows 2000/XP ??? - 2004-06-18 03:23:39   
SomewhereSomehow

Сообщений: 66
Оценки: 0
Присоединился: 2004-06-17 22:15:49
BOOL CreateProcessAsUser(

HANDLE hToken, // handle to a token that represents a logged-on user
LPCTSTR lpApplicationName, // pointer to name of executable module
LPTSTR lpCommandLine, // pointer to command line string
LPSECURITY_ATTRIBUTES lpProcessAttributes, // pointer to process security attributes
LPSECURITY_ATTRIBUTES lpThreadAttributes, // pointer to thread security attributes
BOOL bInheritHandles, // new process inherits handles
DWORD dwCreationFlags, // creation flags
LPVOID lpEnvironment, // pointer to new environment block
LPCTSTR lpCurrentDirectory, // pointer to current directory name
LPSTARTUPINFO lpStartupInfo, // pointer to STARTUPINFO
LPPROCESS_INFORMATION lpProcessInformation // pointer to PROCESS_INFORMATION
);
описание параметров смотри в мсдн или любой хелпе по вин32 апи
Post #: 2
Как задать привелигерованность процесса windows 2000/XP ??? - 2004-06-18 15:37:03   
cybermind

Сообщений: 805
Оценки: 0
Присоединился: 2004-05-24 20:16:13
Дык в диспечере задач можно!
Post #: 3
Как задать привелигерованность процесса windows 2000/XP ??? - 2004-06-18 20:12:37   
SomewhereSomehow

Сообщений: 66
Оценки: 0
Присоединился: 2004-06-17 22:15:49
По-моему ты запутался. Вопрос не про приоритеты выполнения процессов во времени а про привелигированность выполнения процессов под профилем безопасности определенного юзера. Что то в диспетчере задач я не видел чтобы можно было менять контекст токена безопасности. Если бы можно было то это бы нарушило всю концепцию разделения прав в винде. Ведь тогда любой пользователь мог бы менять привелегии запущеного процесса на админские и фактически делать что захочет. По этому в уже созданном процессе не возможно СТАНДАРТНЫМИ методами и средствами поменять контекст безопасности , его можно задать только при создании нового процесса (например из контекстного меню Run As User либо с помощью вышеописанной функции создания процесса). Если я где-то не прав - обьективно возразите. Если речь идет не об этом то надо конкретнее ставить вопрос.
Post #: 4
Как задать привелигерованность процесса windows 2000/XP ??? - 2004-06-18 21:33:05   
MishaSt

Сообщений: 10
Оценки: 0
Присоединился: 2004-06-18 21:28:53
Вопрос хороший, однозначна! Зеаю по опыту, что многие не знают ответа на такие вопросы, ибо пишут под Delphi или VC++, и не знают, ответы на элементарные вопросы. Вот прога, которая повышает права, чтобы SHUTDOWN делать было моно.
#include

int main()
{
HANDLE hToken;
TOKEN_PRIVILEGES tkp;

// Get a token for this process.
if (!OpenProcessToken(GetCurrentProcess(),
TOKEN_ADJUST_PRIVILEGES | TOKEN_QUERY, &hToken))
return( FALSE );

// Get the LUID for the shutdown privilege.
LookupPrivilegeValue(NULL, SE_SHUTDOWN_NAME,
&tkp.Privileges[0].Luid);

tkp.PrivilegeCount = 1; // one privilege to set
tkp.Privileges[0].Attributes = SE_PRIVILEGE_ENABLED;

// Get the shutdown privilege for this process.
AdjustTokenPrivileges(hToken, FALSE, &tkp, 0,
(PTOKEN_PRIVILEGES)NULL, 0);

if (GetLastError() != ERROR_SUCCESS)
return FALSE;

// Shut down the system and force all applications to close.
if (!ExitWindowsEx(EWX_SHUTDOWN | EWX_FORCE,0))
return FALSE;
return TRUE;
}
Post #: 5
Как задать привелигерованность процесса windows 2000/XP ??? - 2004-06-18 22:01:54   
SomewhereSomehow

Сообщений: 66
Оценки: 0
Присоединился: 2004-06-17 22:15:49
Т.е. хочешь сказать что локально можно повысить привелегии процесса до какого хочешь уровня??? Вот что написано в хелпе
BOOL OpenProcessToken(
HANDLE ProcessHandle, // handle to process
DWORD DesiredAccess, // desired access to process
PHANDLE TokenHandle // pointer to handle of open access token
);

Parameters
ProcessHandle
Identifies the process whose access token is opened.
DesiredAccess
Specifies an access mask that specifies the requested types of access to the access token. These requested access types are compared with the token's discretionary access-control list (ACL) to determine which accesses are granted or denied. The following access rights have been defined for access tokens.
Если в списке управления избирательным доступом (DACL) тебе запрещены манипуляции с объектом то ничего у тебя не получится…

Post #: 6
Как задать привелигерованность процесса windows 2000/XP ??? - 2004-06-21 12:10:31   
yurok

Сообщений: 2
Оценки: 0
Присоединился: 2004-06-09 14:47:55
А не мог бы по подробнее про этот DACL пояснить.
Это что вроде сервиса безопасности ОС, который следить за такого рода изменениями???[sm=6.gif]
Post #: 7
Как задать привелигерованность процесса windows 2000/XP ??? - 2004-06-21 17:04:33   
DeepThinker

Сообщений: 177
Оценки: 0
Присоединился: 2004-06-13 02:26:09
2 SomewhereSomehow: не до любого уровня. У маркера процесса есть какие-это привилегии. Их можно разрешать и запрещать, запросто. Но добавлять новые - нельзя. Скажем, если ты не админ, у твоих программ не будет SeDebugPrivilege в маркере в принципе, и ничего ты не сделаешь, а SeShutdownPrivilege есть по умолчанию у всех пользователей рабочей станции, это ведь не сервер, который только админ перезагрузить может. Но только по умолчанию она запрещена, чтобы программа случайно (это как интересно??? :)) чего не сделала.
Post #: 8
Как задать привелигерованность процесса windows 2000/XP ??? - 2004-06-26 21:10:20   
MishaSt

Сообщений: 10
Оценки: 0
Присоединился: 2004-06-18 21:28:53
Я уверен, что SomewhereSomehow знает, что не до любого. И я тоже это знал. Просто вопрос был, как повысит привилегии, разьве я не ответил? Ответил. Токо незнаю, это ли нужно было yurok.
Post #: 9
Как задать привелигерованность процесса windows 2000/XP ??? - 2004-06-28 20:51:00   
DeepThinker

Сообщений: 177
Оценки: 0
Присоединился: 2004-06-13 02:26:09
Цитирую: "Т.е. хочешь сказать что локально можно повысить привелегии процесса до *какого хочешь* уровня???"
Post #: 10
Как задать привелигерованность процесса windows 2000/XP ??? - 2004-07-01 17:56:31   
SomewhereSomehow

Сообщений: 66
Оценки: 0
Присоединился: 2004-06-17 22:15:49
4DeepThinker :
Тут не цитировать надо а читать внимательнее…а если читать внимательно то можно заметить в конце фразы знак вопроса(аж целых три =)) и выражение удивления…=))) А если собраться с духом и прочитать внимательно весь тред целиком и мои посты в частности то ты и вовсе увидишь что я как раз и утверждал что стандартными виапи НИКАК нельзя поднять привелегии до какого хочешь уровня…ибо нафиг вообще тогда придумывать всю эту концепцию безопасности если можно накодить простую утилитку которая бы клала на все это х.. =)))
4MishaSt
Мы просто не поняли др.др. , просто я подумал тов.создавшего тему интересует не просто как повысить привелегии а как повысить их до админских (не забывай тут же все просто жесткие хоксоры и хотят всех зохоксорить=)) )
4Создательтопика: Изменить привелегии одной группы на привелегии другой группы - никак(не используя маленькие хитрости), повысить привелигированность одного процесса, но в рамках этого же профиля безопасности смотри пост MishaSt.
4Ол Вроде разобрались =)
Post #: 11
Страниц:  [1]
Все форумы >> [Веб-программинг] >> Как задать привелигерованность процесса windows 2000/XP ???







Связаться:
Вопросы по сайту / xakep@glc.ru

Предупреждение: использование полученных знаний в противозаконных целях преследуется по закону.