Можно ли программно выполнить резервное копирование/восстановление учетных данных домена/сертификата Windows?

Я пытался использовать низкоуровневые функции API учетных данных Windows Authentication для резервного копирования/восстановления учетных данных.

http://msdn.microsoft.com/en-us/library/aa374731%28VS.85%29.aspx#low_level_credentials_management_functions

Однако я обнаружил, что, хотя я могу использовать CredEnumerate для получения всех учетных данных в системе, все пароли отсутствуют для учетных данных типа домена (что задокументировано). Есть ли способ сделать резервную копию/восстановить эти учетные данные так же, как это может сделать инструмент с графическим интерфейсом Windows?


person Benj    schedule 07.09.2010    source источник


Ответы (1)


Хм, похоже, я нашел ответ, хотя он мне не нравится. Единственный способ сделать это, по-видимому, состоит в том, чтобы CreateRemoteThread() создать поток в lsass.exe (подсистема безопасности Windows), а затем перечислить учетные данные из этого потока с помощью недокументированной функции LsaICryptUnprotectData, экспортированной из Lsasrv.dll, для расшифровки учетных данных. буфер.

Это работает, но я не уверен, что у меня хватит желудка, чтобы вставить это в свое программное обеспечение...

person Benj    schedule 07.09.2010
comment
Привет, Бен, я пытаюсь сделать то же самое, но когда я вызываю LsaICryptUnprotectData из lsass, я получаю, что параметр не поддерживается. Вот мой вызов LsaICryptUnprotectData, dwSize = GetFileSize(credfile,NULL); байтовый буфер; буфер=(байт)malloc(dwSize); pLsaICryptUnprotectData (буфер, dwSize, 0,0,0,0, 0x20000041, 0, &энтропия, &dwSize); - person Syler; 09.01.2014