Форум: "Система";
Текущий архив: 2003.10.27;
Скачать: [xml.tar.bz2];
ВнизЗапуск ехе с администраторскими правами под юзером. Найти похожие ветки
← →
Jakommo (2003-08-11 14:14) [0]Уважаемые мастера! Помогите найти решение как написать ехе, который сможет запускать любые другие файлы с администраторскими правами. Можно написать сервис для этого( и как это сделать, если можно...) или, к примеру, запускать его как "run as", но тогда я не могу в строке параметров записать пароль, чтобы сразу запустить нужный файл. runas /user:UserAccountName program
Мне это нужно чтобы запускать обновления на пользовательских компах, которым нужны адм. права.
Заранее спасибо!!!
← →
Игорь Шевченко (2003-08-11 14:18) [1]Никак :)
← →
Jakommo (2003-08-11 14:26) [2]Хе-хе, неужели всё так плохо? :) А с сервисом тоже непроходит?
← →
AlexKniga (2003-08-11 17:03) [3]runas /user:username "C:\path\program.exe" /savecred
Вроде в ХРени приделали етот ключик.
← →
AlexKniga (2003-08-11 17:11) [4]echo password|su Administrator "C:\path\program.exe"
su это из RK
← →
AlexKniga (2003-08-11 17:19) [5]DebPloit
http://www.anticracking.sk/EliCZ/bugs/DebPloit.zip
Описание Exploit.WinNT.DebPloit
Exploit.WinNT.DebPloit использует брешь в системе безопасности и распределения прав WinNT и позволяет любому процессу использовать права любого другого процесса.
Возможности эксплоита позволяют, например, получить права системы или администратора (LocalSystem, Administrator) процессу, запущенному с минимальными привилегиями.
Данный эксплоит работоспособен на Microsoft Windows NT 4.0 и Windows 2000, но только если на них не установлены обновления после 12 марта 2002 года.
Неработоспособен на Windows XP.
источник:
Разработчик ПО - "Лаборатория Касперского"
← →
AlexKniga (2003-08-11 17:20) [6]В общем нельзя, но если очень хочется...
← →
Jakommo (2003-08-11 17:27) [7]su имеется ввиду в Линухе ?
Проблема в том что у меня 2000. Это прокатывает в нём?
А что этот ключ ( /savecrеd) означает и куда подставлять пароль?
Спасибо!!!
← →
AlexKniga (2003-08-11 17:31) [8]Read This Fucking Manual!
← →
Jakommo (2003-08-11 17:34) [9]Эксплойт похоже не прокатывает у нас сервис паки ставят регулярно...
А в строку параметров впихнуть пароль это нереально совсем :(
Тогда может имитировать нажатие клавиш на диалоговом окне, когда сделал run as..
← →
AlexKniga (2003-08-11 17:53) [10]Jakommo (11.08.03 17:34) [9]
> Тогда может имитировать нажатие клавиш на диалоговом окне, когда сделал run as..
С RunAs"ом это не прокатит.
← →
Burmistroff (2003-08-11 18:25) [11]Почему же нельзя??? Зачем сервис?!!
procedure WinExecAsUser(FileName: string; username: string; password:
string; Visibility:
integer);
var { V1 by Pat Ritchey, V2 by P.Below }
zAppName : array[0..512] of char;
StartupInfo : TStartupInfo;
ProcessInfo : TProcessInformation;
h : thandle;
begin { WinExecAndWait32V2 }
StrPCopy(zAppName, FileName);
FillChar(StartupInfo, Sizeof(StartupInfo), #0);
StartupInfo.cb := Sizeof(StartupInfo);
StartupInfo.dwFlags := STARTF_USESHOWWINDOW;
StartupInfo.wShowWindow := Visibility;
if not LogonUser(pchar(username), ".", pchar(Password),
LOGON32_LOGON_INTERACTIVE,
LOGON32_PROVIDER_DEFAULT, h) then
MessageBoxA(0, PChar(SysErrorMessage(GetLastError)), "Error", MB_OK);
CreateProcessAsUser(h, nil,
zAppName, { pointer to command line string }
nil, { pointer to process security attributes }
nil, { pointer to thread security attributes }
false, { handle inheritance flag }
CREATE_DEFAULT_ERROR_MODE,
nil, { pointer to new environment block }
nil, { pointer to current directory name }
StartupInfo, { pointer to STARTUPINFO }
ProcessInfo); { pointer to PROCESS_INF }
if GetLastError <> 0 then MessageBoxA(0, PChar(SysErrorMessage(GetLastError)), "Error", MB_OK);
end;
← →
Jakommo (2003-08-11 18:45) [12]Похоже то что надо!!! Попробую откомпилить...
← →
clickmaker (2003-08-11 18:46) [13]Представляешь, какое раздолье было бы вирусам и хакерам, если б все было так просто. Так что брось ты это дело. А обновления можно делать через логон-сценарии, ежели дело в одном домене происходит
← →
Jakommo (2003-08-11 18:58) [14]> clickmaker
Если не трудно не пояснишь подробнее? Как ими пользоваться..
← →
Jakommo (2003-08-11 19:16) [15]Если я правильно понял, то ты имеешь ввиду login scripт, который при логине в систему просто запускает с сетки ехе по указанному в скрипте пути. Но если ехе лезит в недоступную для юзера область, то ничего и не будет. Я могу лишь представить такой вариант с Novell Zen Work, который служит контролёром домена и имеет системныу права.
← →
clickmaker (2003-08-11 19:24) [16]Логон-скрипт выполняется ДО интерактивного входа юзера в систему, т.е. фактически с правами SYSTEM. Этого достаточно, чтобы сделать любое обновление
← →
Jakommo (2003-08-11 19:39) [17]Я тока что попробовал на Novell сервере, копирование файла в winnt через логон-скрипт не проходит! Все действия начинаются после логона в 2000...
← →
AlexKniga (2003-08-11 21:39) [18]Jakommo (11.08.03 19:39) [17]
А имена в UNC?
← →
Jakommo (2003-08-12 10:31) [19]> AlexKniga
В скрипте именно UNC и ставится.
> Burmistroff
Пробую разобраться с привелегиями. Компилю ехе он пишет: A required privilege is not held by the client. Как там что подправить чтобы пошло :)
← →
Карелин Артем (2003-08-12 11:48) [20]Вообще-то на моей старой работе через логон-скрипт шел запуск русификаторов для ДОС-программ, обновление шаблонов официальных бумажек и кое-что еще.
P.S. Одно плохо - давно сравнительно было, детали точные не помню.
← →
clickmaker (2003-08-12 11:50) [21]"The process that calls LogonUser must have the SE_TCB_NAME privilege". См. AdjustTokenPrivileges
По умолчанию эту привилегию имеет только аккаунт System. У процесса, запущенного под обычным юзером ее нет. Так что LogonUser не пройдет. Разве что выполнять его из под службы, как это делает Run As
← →
Jakommo (2003-08-12 12:27) [22]> Карелин Артем
Не с логоном не прёт никак :(
> clickmaker
Если я правильно понял его надо регестрировать как сервис в системе и тогда он запустит ехе с указанными прававми?
Если я его зарегистрирую такая схема будет рабочей?
← →
clickmaker (2003-08-12 14:56) [23]Да, код предложенный Burmistroff, должен сработать. Только там перед вызовом LogonUser надо вызвать AdjustTokenPrivileges для включения SE_TCB_NAME
← →
Jakommo (2003-08-12 15:19) [24]Ага, спасибо! Буду пробовать...
← →
Burmistroff (2003-08-12 18:17) [25]У меня все работает и так. Правда нужно чтобы у поле password не было пустым
← →
Jakommo (2003-08-13 09:44) [26]> Burmistroff
А ты запускаешь его как сервис?
Я пробую на w2k этот код. (Пишет A required privilege is not held by the client. Handle is invalid.
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Classes, Graphics, Controls, Forms, Dialogs,
StdCtrls;
type
TForm1 = class(TForm)
Button1: TButton;
Button2: TButton;
procedure Button1Click(Sender: TObject);
procedure Button2Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.DFM}
procedure WinExecAsUser(FileName: string; username: string; password:
string; Visibility:integer);
var { V1 by Pat Ritchey, V2 by P.Below }
zAppName : array[0..512] of char;
StartupInfo : TStartupInfo;
ProcessInfo : TProcessInformation;
h : thandle;
begin { WinExecAndWait32V2 }
StrPCopy(zAppName, FileName);
FillChar(StartupInfo, Sizeof(StartupInfo), #0);
StartupInfo.cb := Sizeof(StartupInfo);
StartupInfo.dwFlags := STARTF_USESHOWWINDOW;
StartupInfo.wShowWindow := Visibility;
if not LogonUser(pchar(username), ".", pchar(Password),
LOGON32_LOGON_INTERACTIVE,
LOGON32_PROVIDER_DEFAULT, h) then
MessageBoxA(0, PChar(SysErrorMessage(GetLastError)), "Error", MB_OK);
CreateProcessAsUser(h, nil,
zAppName, { pointer to command line string }
nil, { pointer to process security attributes }
nil, { pointer to thread security attributes }
false, { handle inheritance flag }
CREATE_DEFAULT_ERROR_MODE,
nil, { pointer to new environment block }
nil, { pointer to current directory name }
StartupInfo, { pointer to STARTUPINFO }
ProcessInfo); { pointer to PROCESS_INF }
if GetLastError <> 0 then MessageBoxA(0, PChar(SysErrorMessage(GetLastError)), "Error", MB_OK);
end;
procedure TForm1.Button1Click(Sender: TObject);
begin
close;
end;
procedure TForm1.Button2Click(Sender: TObject);
begin
WinExecAsUser("c:\winnt\notepad.exe","sergejz","bocmanis",0);
end;
end.
Страницы: 1 вся ветка
Форум: "Система";
Текущий архив: 2003.10.27;
Скачать: [xml.tar.bz2];
Память: 0.51 MB
Время: 0.015 c