Восстановление пароля windows через виртуальную машину на примере win2k8

Введение


За свою сознательную it-жизнь было несколько случаев, когда я забывал пароли. Так или иначе, с этим встречались почти все. Или забывали, или были близки к мысли, что забыли, если вот эти пришедшие в голову так и не подойдут.
И хорошо, когда есть средства отхода (секретные вопросы, запасные мейлы, привязки к телефону и т.п.). Хуже, когда этого нет, а проблема возникает в самый неподходящий момент (обычно воспринимается именно так, с выдачей себе обещания, что «как всё исправлю, обязательно сделаю пути отхода»).

Непосредственно проблема


Так уж случилось, что одним из последних случаев стал для меня случай, когда передо мной сервер hyper-v с несколькими виртуальными машинами win 2k8, к одной из которых забыт пароль. Машина не доменная (скольких бы проблем иначе удалось избежать), диска сброса никто не делал. Привода у сервера нет. USB в силу платформы — не пробрасывается. Образа win2k8 у владельца тоже нет. Да и инструментов у меня на руках нет (не для того вообще шёл).


Как решается обычно


Что делать, не очень понятно. Но недолгие размышления, что хорошо бы было сбросить пароль по типу, как это делается через образ системы (раздел repair).

Вполне стандартный вариант. Разрешить вызов командной строки на экране логина в систему. Вкратце:

1) загрузиться с установочного диска;
2) выбрать раздел «Восстановление системы»;
3) выбрать раздел «Командная строка»;
4) выполнить последовательно команды «copy C:\Windows\System32\sethc.exe» и «copy C:\Windows\System32\cmd.exe C:\Windows\System32\sethc.exe». Этой командой фактически производится подмена команды «Sticky Keys» (оно же «Залипание клавиш») на командную строку.
5) перезагрузиться. Вызвать залипание клавиш многократным нажатием shift;
6) в появившейся командной строке вбить «net user admin Passw0rd», где admin — пользователь, которому сбиваем пароль, а Passw0rd — пароль, который мы устанавливаем.

Естественно, после удачного входа, в целях безопасности заменить созданный в процессе sethc.exe на оригинальный. Проще это сделать, опять же, чтобы не заморачиваться с правами, через установочный диск, как это делалось вначале.

Это что касается обычного способа.

Что в случае имевшихся ограничений?


Вариант, доступный при моих ограничениях оказался не хуже.
Что делалось?

1) Погасил проблемную виртуалку.
2) Погасил рабочую машину.
3) Прицепил к рабочей машине виртуальный винт с проблемной win2k8. Запустил полученную виртуалку с 2мя винтами на борту, загружаясь, естественно, с рабочего.
4) Далее просто пошёл через эксплорер в \Windows\System32\ проблемной машины. Втупую скопировал sethc.exe в корень винта. Удалил sethc.exe в system32.
5) Втупую сделал копию cmd.exe (ctrl+c ->ctrl+v), переименовал её в sethc.exe.
6) Погасил рабочую машину, отцепил винт с проблемной системой. Запустил проблемную виртуалку. А дальше — как в случае с установочным диском.
7) Вызвал залипание клавиш многократным нажатием shift;
8) В появившейся командной строке вбил «net user admin Passw0rd».
9) Проверил — вошёл в систему. Погасил виртуалку, через вторую вернул на место оригинальный sethc.exe
Естественно, что работает и для винтов (железных, не виртуальных) тоже.

Кстати говоря. П.9 пришлось делать, поскольку система у меня ругалась очень на права.
По этой причине в п.4-5 пришлось сбивать права и владельца (через свойства-безопасность-дополнительно-разрешения/владелец). А сбивать все права и бросать исполняемый файл без ограничений на доступ, мне не позволяет моё отношение к безопасности.

Что характерно, Проблема возникла только в тот раз. В дальнейшем, при воспроизведении ситуации дома, проблем с правами не наблюдалось, и всё спокойно копировалось/переименовывалось и удалялось с сохранением прав.
Метки:
информационная безопасность, windows, пароли, виртуальная машина

Данная статья не подлежит комментированию, поскольку её автор ещё не является полноправным участником сообщества. Вы сможете связаться с автором только после того, как он получит приглашение от кого-либо из участников сообщества. До этого момента его username будет скрыт псевдонимом.