Автор Тема: Скрипт, меняющий пароль локального встроенного админа  (Прочитано 10578 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн Retif

  • Администраторы
  • Олдфаг
  • *****
  • Сообщений: 9059
  • Рейтинг: 88
  • Пол: Мужской
  • Афтар
    • Просмотр профиля
    • Мой блог
  • Откуда: Орёл
И чтобы пароль не в открытом виде, и посмотреть никак нельзя? Есть у кого? :)

Оффлайн shs

  • Модератор
  • Ветеран
  • *****
  • Сообщений: 4401
  • Рейтинг: 89
    • Просмотр профиля
    • ShS's blog
  • Откуда: Default city
И чтобы пароль не в открытом виде, и посмотреть никак нельзя
Параграфы детектид? (Хотя, через прокси реализовать можно, но там другие грабли)
На каком языке все равно?

Принцип то простой: найти пользователя с well-known SID'ом, да поменять ему пароль.

Оффлайн shs

  • Модератор
  • Ветеран
  • *****
  • Сообщений: 4401
  • Рейтинг: 89
    • Просмотр профиля
    • ShS's blog
  • Откуда: Default city
'http://social.technet.microsoft.com/Forums/en-US/ITCG/thread/e5c8bcc2-ea0a-4918-83ba-cff639365222
'строку If Left(objUser.SID, 6) = "S-1-5-" And Right(objUser.SID, 4) = "-500"
'лучше будет заменить на If Left(objUser.SID, 6) = "S-1-5-" And Right(objUser.SID, 4) = "-500"

Option Explicit

Const strNewName = "MyNewAdminName"
Const strPassword = "P@ssw0rd"

Dim objWMIService
Set objWMIService = GetObject("winmgmts:{impersonationLevel=impersonate}!root\cimv2")

Dim colUsers, objUser, objAdmin
' get all local user accounts
Set colUsers = objWMIService.ExecQuery("Select * from Win32_UserAccount WHERE LocalAccount=TRUE")

For Each objUser in colUsers
' Search local user accounts for user with the well-known rid 500 (administrator)
If Right(objUser.SID,4) = "-500" Then
' This is the builtin administrator account.
' Rename and set a new password

Set objAdmin = GetObject("WinNT://" & objUser.Domain & "/" & objUser.Name)
objAdmin.SetPassword(strPassword)

objUser.Rename strNewName
End If
Next

Оффлайн Retif

  • Администраторы
  • Олдфаг
  • *****
  • Сообщений: 9059
  • Рейтинг: 88
  • Пол: Мужской
  • Афтар
    • Просмотр профиля
    • Мой блог
  • Откуда: Орёл
Параграфы детектид? (Хотя, через прокси реализовать можно, но там другие грабли)
А в чем параграфы? Задача, чтобы пользователь не смог подсмотреть этот пароль и все.

Оффлайн shs

  • Модератор
  • Ветеран
  • *****
  • Сообщений: 4401
  • Рейтинг: 89
    • Просмотр профиля
    • ShS's blog
  • Откуда: Default city
Параграфы детектид? (Хотя, через прокси реализовать можно, но там другие грабли)
А в чем параграфы? Задача, чтобы пользователь не смог подсмотреть этот пароль и все.
Скрипт выполняется  в контексте пользователя?

Оффлайн Retif

  • Администраторы
  • Олдфаг
  • *****
  • Сообщений: 9059
  • Рейтинг: 88
  • Пол: Мужской
  • Афтар
    • Просмотр профиля
    • Мой блог
  • Откуда: Орёл
В контексте компьютера естественно. Но допускается вариант с кулхацкером, который может иметь локального админа на своем компьютере и теоретически может зайти в папку со startup-скриптами и подсмотреть пароль.

Оффлайн shs

  • Модератор
  • Ветеран
  • *****
  • Сообщений: 4401
  • Рейтинг: 89
    • Просмотр профиля
    • ShS's blog
  • Откуда: Default city
В контексте компьютера естественно. Но допускается вариант с кулхацкером, который может иметь локального админа на своем компьютере и теоретически может зайти в папку со startup-скриптами и подсмотреть пароль.
Тогда такой вариант тебе подойдет, т.к. содержит логин/пароль в в открытом виде.
Тогда остается либо отказ от логон/стартап скриптов (вместо этого запуск скрипта, который переберет все учетки компьютеров в домене и поменяет пароль у нужных учеток лок. пользователей для найденных компьютеров), либо проксирование (когда логон/стартап скрипт сам пароль не меняет, а как-либо сообщает о том, что это надо сделать. сам пароль меняется другм скриптом, который запущен на стороне сервера и, получив пинок от логон скрипта, этот скрипт сделат свое черное дело)
Upd.
« Последнее редактирование: 16 мая 2011, 12:29:38 от shs »

Оффлайн Retif

  • Администраторы
  • Олдфаг
  • *****
  • Сообщений: 9059
  • Рейтинг: 88
  • Пол: Мужской
  • Афтар
    • Просмотр профиля
    • Мой блог
  • Откуда: Орёл
Тогда остается либо отказ от логон/стартап скриптов (вместо этого запуск скрипта, который переберет все учетки компьютеров в домене и поменяет пароль у нужных учеток лок. пользователей),
Не катит, так компьютер может быть выключен.

Оффлайн shs

  • Модератор
  • Ветеран
  • *****
  • Сообщений: 4401
  • Рейтинг: 89
    • Просмотр профиля
    • ShS's blog
  • Откуда: Default city
Тогда остается либо отказ от логон/стартап скриптов (вместо этого запуск скрипта, который переберет все учетки компьютеров в домене и поменяет пароль у нужных учеток лок. пользователей),

Не катит, так компьютер может быть выключен.
ну, тогда проксирование. . Там 2 варианта проксирования предложено, либо пинок серверу с использованием IIS, либо мониторить отмашку от логон скрипта (например, создание и/или изменение файла на "шаре").

Оффлайн Scar

  • Постоялец
  • ***
  • Сообщений: 443
  • Рейтинг: 15
  • Пол: Мужской
    • Просмотр профиля
  • Откуда: Дефолт сити
Как вариант, шифрование (к сожалению, вполне легко обратимое).

1. Ставим http://www.microsoft.com/downloads/en/details.aspx?FamilyId=E7877F67-C447-4873-B1B0-21F0626A6329&displaylang=en
2. Запускаем screnc.exe /l vbscript script.vbs script.vbe

vbe - зашифрованный исполняемый файлег.

Могу предложить вариант "через 5-ю точку". Запуск скрипта дергает процедуру на SQL сервере, которая генерирует случайный пароль и складывает его в табличку, не видимую пользователем. Скрипт читает пароль и устанавливает его на локальной машине.

Оффлайн shs

  • Модератор
  • Ветеран
  • *****
  • Сообщений: 4401
  • Рейтинг: 89
    • Просмотр профиля
    • ShS's blog
  • Откуда: Default city
Могу предложить вариант "через 5-ю точку". Запуск скрипта дергает процедуру на SQL сервере, которая генерирует случайный пароль и складывает его в табличку, не видимую пользователем. Скрипт читает пароль и устанавливает его на локальной машине.
Ну, это тоже проксирование, только при помощи SQL. Вариантов проксирования может быть много всяких разных.

1. Ставим http://www.microsoft.com/downloads/en/details.aspx?FamilyId=E7877F67-C447-4873-B1B0-21F0626A6329&displaylang=en
2. Запускаем screnc.exe /l vbscript script.vbs script.vbe
Ну, а это, вообще, защита от честных людей.

Оффлайн Scar

  • Постоялец
  • ***
  • Сообщений: 443
  • Рейтинг: 15
  • Пол: Мужской
    • Просмотр профиля
  • Откуда: Дефолт сити
ну, тогда проксирование. . Там 2 варианта проксирования предложено, либо пинок серверу с использованием IIS, либо мониторить отмашку от логон скрипта (например, создание и/или изменение файла на "шаре").
Понравилось. Изящно :)

Вообще, идеальный вариант - действительно, поменять пароль удаленно. Либо проксирование в ASP и иже с ними, либо мониторинг какого-либо события, например, появление файла или строки в табличке.
У пользователя, который запускает скрипт, скорее всего не хватит прав на смену пароля локального админа. В этом случае необходимо повышение привилегий.
Но удаленное подключение может быть обрублено, например, фаерволлом. А передавать пароль в vbs для запуска с повышенными привилегиями - несекурно.

Оффлайн Scar

  • Постоялец
  • ***
  • Сообщений: 443
  • Рейтинг: 15
  • Пол: Мужской
    • Просмотр профиля
  • Откуда: Дефолт сити
Еще вариант: vbs скрипт лежит на шаре, права на шару - у Domain Computers. Групповой политикой задаем power-on script.

Оффлайн Retif

  • Администраторы
  • Олдфаг
  • *****
  • Сообщений: 9059
  • Рейтинг: 88
  • Пол: Мужской
  • Афтар
    • Просмотр профиля
    • Мой блог
  • Откуда: Орёл
которая генерирует случайный пароль и складывает его в табличку, не видимую пользователем. Скрипт читает пароль и устанавливает его на локальной машине
Дык смысл от такого пароля тогда? :D


Оффлайн Scar

  • Постоялец
  • ***
  • Сообщений: 443
  • Рейтинг: 15
  • Пол: Мужской
    • Просмотр профиля
  • Откуда: Дефолт сити
Shurikz, ты бы тогда задачу описал, раз уж претензии предъявляешь)
Можно вообще рандомный пароль генерировать, чтобы его никто не знал. Задачи-то разные есть.