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





Легенда:
  новое сообщение
  закрытая нитка
  новое сообщение
  в закрытой нитке
  старое сообщение
  • Напоминаю, что масса вопросов по функционированию форума снимается после прочтения его описания.
  • Новичкам также крайне полезно ознакомиться с данным документом.
[DCOM] Может кто-то знает... 28.01.02 21:52  Число просмотров: 1016
Автор: + <Mikhail> Статус: Elderman
<"чистая" ссылка>
ty dolzhen skohfigurirovat` etot object na servere ispolzui "dcomcnfg.exe"
i posmotri "Identity" tab, pohozhe chto u tebia stoit interactive user to run this object.
<programming>
[DCOM] Может кто-то знает... 28.01.02 01:32  
Автор: Harald Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Под Win2k в функции CoInitializeSecurity можно указать дополнительный параметр SOLE_AUTHENTICATION_LIST * pAuthList.
В структуре SEC_WINNT_AUTH_IDENTITY можно указать имя пользователя и пассворд для идентификации пользователя удаленным компонентом.
Таким образом, теоретически, наверное, имелось ввиду, что для запуска удаленного сервера от имени User2\Password2 не обязательно входить в систему на машине клиента под этим пользователем, а можно зайти под пользователем User1\Password1 и просто указать значения User2 и Password2 в структуре SEC_WINNT_AUTH_IDENTITY.
Однако, это не работает... Точнее работает, но не так как нужно. Если даже указать несуществующего пользователя NotExistingUser, которого нет на клиентской машине и нет в ACL удаленного сервера можно создать instance объекта. Просто на самом деле вызов все-таки происходит от имени интерактивного пользователя клиентской машины (User1\Password1), а не от имени User2\Password2. Почему-то игнорируются значения, указанные при инициализации безопасности процесса. Кто-нибудь сталкивался с такой проблемой? Хэлпайте, если поняли что я тут написал :о)

З.Ы. кусок кода примерно такой:
::CoInitialize(NULL);

// Auth Identity structure
SEC_WINNT_AUTH_IDENTITY_W authidentity;
ZeroMemory( &authidentity, sizeof(authidentity) );

WCHAR User[32] = L"NotExistingUser";
WCHAR Domain[32] = L"NotExistingDomain";
WCHAR Password[32] = L"BadPssword";

int UserLength, DomainLength, PasswordLength;

authidentity.User = (unsigned short*)User;
UserLength = wcslen(User);
authidentity.UserLength = UserLength;

authidentity.Domain = (unsigned short*)Domain;
DomainLength = wcslen(Domain);
authidentity.DomainLength = DomainLength;

authidentity.Password = (unsigned short*)Password;
PasswordLength = wcslen(Password);
authidentity.PasswordLength = PasswordLength;
authidentity.Flags = SEC_WINNT_AUTH_IDENTITY_UNICODE;

// Auth Info structure
SOLE_AUTHENTICATION_INFO authninfo[2];
ZeroMemory( authninfo, sizeof( authninfo ) );

// NTLM Settings
authninfo[0].dwAuthnSvc = RPC_C_AUTHN_WINNT;
authninfo[0].dwAuthzSvc = RPC_C_AUTHZ_NONE;
authninfo[0].pAuthInfo = &authidentity;

// Kerberos Settings
authninfo[1].dwAuthnSvc = RPC_C_AUTHN_GSS_KERBEROS ;
authninfo[1].dwAuthzSvc = RPC_C_AUTHZ_NONE;
authninfo[1].pAuthInfo = &authidentity;

SOLE_AUTHENTICATION_LIST authentlist;

authentlist.cAuthInfo = 2;
authentlist.aAuthInfo = authninfo;

HRESULT result = CoInitializeSecurity... далее не интересно...
[DCOM] Может кто-то знает... 28.01.02 21:52  
Автор: + <Mikhail> Статус: Elderman
<"чистая" ссылка>
ty dolzhen skohfigurirovat` etot object na servere ispolzui "dcomcnfg.exe"
i posmotri "Identity" tab, pohozhe chto u tebia stoit interactive user to run this object.
[DCOM] Может кто-то знает... 28.01.02 11:28  
Автор: Sandy <Alexander Stepanov> Статус: Elderman
<"чистая" ссылка>
CoInitializeSecurity можно вызвать только ОДИН раз, в твоем случае она скорее всего уже вызывалась самой подсистемой СОМ. Посмотри, что она возвращает, скорее всего это будет RPC_E_TOO_LATE, что как раз и говорит о том, что она уже вызывалась.

А здесь можно подробнее про эту функцию почитать...
Хм... Вот я и говорю, что не понятно. 28.01.02 14:07  
Автор: Harald Статус: Незарегистрированный пользователь
<"чистая" ссылка>
Проблема в том, что возвращается S_OK. Я был бы рад увидеть какую-нибудь ошибку. Пока я грешу лишь на то, что удаленный сервер это адрес 127.0.0.1. Опробовать на настоящем удаленном сервере пока нет возможности.
Хм... Вот я и говорю, что не понятно. 28.01.02 15:20  
Автор: Sandy <Alexander Stepanov> Статус: Elderman
<"чистая" ссылка>
> Проблема в том, что возвращается S_OK. Я был бы рад увидеть
> какую-нибудь ошибку. Пока я грешу лишь на то, что удаленный
> сервер это адрес 127.0.0.1. Опробовать на настоящем
> удаленном сервере пока нет возможности.

А на локальном сервере, на мой взгляд, и не должно работать. Ведь ты уже инициализировал один раз секьюрити для своего DCOM (или система инициализировала), она и берет имеющиеся значения юзер/пассворд. А те, что ты ей даешь - игнорирует. А почему удаленный сервер нельзя использовать? Сетки локальной нет, что-ли? Тогда дай своему компу IP адрес какой-нибудь от балды, типа 10.10.10.10 - и пробуй!
1




Rambler's Top100
Рейтинг@Mail.ru


  Copyright © 2001-2025 Dmitry Leonov   Page build time: 0 s   Design: Vadim Derkach