Когда компания Microsoft реализовала централизованную систему авторизации и явила всему миру Active Directory, каждый уважающий себя системный администратор принялся выдумывать способы максимально простого управления всей инфраструктурой на базе этой балалайки. Одна из задач, которую ставил перед собой админ - сохранить власть над всеми компутерами домена и иметь возможность демонстрировать эту власть не покидая своего отдаленного уютного логова заваленного пивом и снеками. Продвинутым пользователям в свою очередь это очень не нравилось. Ведь не бритый и всегда злой программист, обладая правами администратора к их системам, мог получить доступ к самой ценной информации, которая только может обрабатываться на корпоративном компьютере - к переписке в icq! Поэтому продвинутые пользователи всячески препятствовали сохранению админом высоких привилегий на своих системах.
прим. В то время (начало 2000 года) для многих админов была целая проблема запустить все необходимые программулины с правами непривилегированного юзверя. Потому каждый первый юзверь был локальным администратором на своем компьютере.
Сопротивление удаленному контролю со стороны продвинутых пользователей на своих рабочих станциях в корне не устраивало властелинов сети. Почесав слегка затылок в каталоге sysvol появляются файлы с расширением "bat" приблизительно следующего содержимого:
net localgroup administrators "domain\domain admins" /add
, которые будучи помещенные в автозагрузку компьютеров через gpo ненадолго выравнивали силы противодействующих сторон.
Прошло совсем немного времени и администраторы встретились с огромной проблемой - это был локальный администратор на каждом доменном компьютере. Удалить его низя, значит учетка нужная. Кроме того, ей всегда можно воспользоваться в случае, если компутер потеряет домен в силу различных обстоятельств, рассуждали админы. Порассуждали и заб(ы)или.
Но задвинуть надолго эту проблему в компаниях, где навязывалась "информационная безопасность" с регулярной сменой паролей или наблюдалась текучесть кадров в ит-отделе, не удавалось. А если к этому еще вспомнить насущие проблемы в виде нескольких версий unattended-инсталляций с различными паролями, выявленные случаи смены паролей корпоративными юзверями и несколько версий дефолтов в голове админа.....
Таким образом, у самых сообразительных админов, которые привыкли решать проблемы топорно в режиме неопределенного времени, среди многочисленных костылей в виде bat-файлов появляется нечто новое в cmd-обертке:
net user administrator password1
Задача файла аналогична предыдущему решению - запуститься на всех рабочих станциях домена с правами системы и установить хардкоженный пароль. Разумеется такой способ ротации пароля локального администратора кажется диким, однако ваш покорный слуга даже сегодня встречает подобное творчество в крупных гетерогенных сетях.
В то же самое время ребята из компании Microsoft хрустя попкорном с интересом наблюдали за всей этой движухой со стороны. Все понимали, что админы очень охотно активно используют logon/logoff сценарии в домене. Однако, функций командной строки явно не хватало для реализации всех многочисленных идей, которые рождались в светлых головах системных администраторов. Так, мир увидел WSH, который тут же был окучен сисадминами.
Каталог sysvol запестрил расширениями vbs и js вперемешку с уже историческими костылями командной строки. Новые технологии позволили администраторам "по новому" заняться старыми проблемами, в т.ч. и с пресловутым локальным администратором...
strComputer = "."
Set objUser = GetObject("WinNT://" & strComputer & "/Administrator, user")
objUser.SetPassword "password1"
objUser.SetInfo
На сцене появляются суровые админы, которые считают подобные методы ротации пароля администратора небезопасными. Но шутники корпорации добра предлагают иллюзию безопасности кода сценариев и релизят тулень под названием Script Encoder, которая "шифрует" содержимое сценариев vbs/js. Администраторы успокаиваются и все счастливы. Особенно счастливы зохеры, которые декодируют содержимое скриптов на раз.
Но шутникам из MS этого показалось мало. А потому в windows server 2008 появляется возможность "безопасной" ротации паролей локальных пользователей домена, прям из интерфейса управления групповыми политиками:
Админы пользуют, а зохеры тырят group.xml из каталога sysvol и пользуют локальных админов :) Как-то так и живем.
Эпилог
В данном рассказе я не хотел кого-то обидеть! И в первую очередь, не хотел обидеть системных администраторов, многие из которых действительно хорошо делают свою работу. Цель публикации в очередной раз обратить внимание администраторов и специалистов по ИБ на то, что хранение паролей в открытом виде опасно! И этим не брезгают пользоваться атакующие. А предлагаемые пути сокрытия пароля от ms при его хранении лишь вызывают широкую улыбку.
Что же касается локального администратора в доменной инфраструктуре, то в очередной раз хочу обратить внимание уважаемого читателя на следующую публикацию: http://support.microsoft.com/kb/814777 Отключите локального администратора на компьютерах домена и безопасность вашей сети немного повысится.
Дмитрий, а если всем пользователям компов урезать роли до "Пользователь" и для админов оставить учетку локального администратора со стойким паролем (без полного отключения локального администратора) - насколько это будет эффективно?
ОтветитьУдалитьПоявится очередная дырка т.к. после повышения привилегий (а при физическом не контроллируемом доступе к компьютеру это сделать довольно просто) с использованием этой учетной записи становится возможным прошерстить остальную сеть.
ОтветитьУдалитьА разве при физическом не контроллируемом доступе к компьютеру злоумышленник не сможет снова включить админскую учетку через безопасный режим и проделать всё тоже самое?
УдалитьВ отношении своего компьютера и в отношении компьютеров, к которым притопает ногами сможет. А вот лишь удаленно уже нет.
УдалитьЯ понял, что вы имели ввиду. Спасибо.
УдалитьДмитрий, не подскажите, пароль сохранится, если я задам его админской учетке, а затем отключу?
УдалитьРазумеется сохранится.
УдалитьК сожалению, просто отключение лок.админа не всегда помогает от хитрых юзеров, которые знают про разблокировку этой учетки в безопасном режиме.
ОтветитьУдалитьПоэтому приходится совместно использовать и пароль на учетке, правда устанавливаемый удаленно, а не локальным батничком :)
А локальный батничек видимо болтается где-то на вашем компьютере с вписанным в него паролем, нет? ;)
УдалитьСкриптик запускается 1 раз с машины админа, и проходит локальную сеть, устанавливая пароль удаленно (периодичность такой процедуры - на усмотрение). Пароль задается только при запуске и собственно в скрипте его не нужно хранить.
УдалитьС другой стороны, всегда есть с чего начать внутренний пентест :)
ОтветитьУдалитьVlad?????????????????????
УдалитьSkolko ya tebya ne videl, ti zhe takoy malenkyi bil
Удалить