spvd.ru
spvd.ru
Павел Селиванов. Статьи, обзоры, заметки

Сброс пароля к Intel Active System Console без переустановки

Несколько дней назад я столкнулся с такой ситуацией: на сервере на платформе Intel установлена Intel Active System Console, но пароль доступа к ней оказался неизвестен. В этой статье я расскажу, как восстановить доступ в IASC на Windows-сервере буквально за несколько минут, и при этом обойтись без переустановки и перезагрузки.

 

Предыстория

Сервер на платформе Intel, под управлением (хотя это вряд ли принципиально) Windows Server 2008. В один прекрасный момент потребовалось зайти в IASC, и тут оказалось, что логин и пароль неизвестны, да к тому же специалистом, устанавливавшим IASC, не задокументированы (о начале этой истории я рассказывал в одной из тем форума Intel IT Galaxy). Единственным (пока?) штатным способом восстановления доступа является переустановка IASC, запрос о вводе пароля для создаваемого пользователя "admin" – один из шагов в процессе установки. Однако для деинсталляции IASC штатная процедура требует перезагрузки сервера, что не так критично, если для сервера есть достаточное окно обслуживания, но неприемлемо для сервера с круглосуточной доступностью.

Описанная ниже процедура восстановления пароля была выполнена над актуальной на момент публикации Intel Active System Console версии 4.2.

 

Решение

Intel в ПО, относящемся к Intel System Management Software (и в том числе Active System Console) применяет некоторые Open Source компоненты других разработчиков. Список таких компонентов и условия их лицензирования перечислены в документе на сайте Intel по этой ссылке. Седьмой в списке значится SQLite library, лицензируемая как Public domain. Именно в формате SQLite format 3 хранится база данных Intel Active System Console. Всё, что потребуется сделать, это немного отредактировать одну из таблиц базы данных. При этом я предполагаю, что у вас есть легальный доступ к файловой системе сервера.

Базу данных Intel Active System Console можно найти папке, куда установлена программа, в файле SMS.db. Поскольку SQLite полностью открыта, к ней существует огромное количество, в том числе так же открытых, инструментов разработки. Я воспользовался просмторщиком/редактором SQLiteStudio (выпущен под лицензией GPLv2).

Открываем базу данных и находим в ней таблицу "User".

 

Как видите, пароль в явном виде не хранится, что совершенно правильно, а хранится там хэш с солью. Пытаться узнать что-то из этого хэша неразумно, выяснять особенности алгоритма хэширования, применённого Intel, неэтично и вряд ли законно. Поэтому я пошёл другим путём – создать хэш с солью для известного пароля и внести их в базу. Вопрос – с помощью чего создать хэш? А очень просто – с помощью той же IASC, только работающей на другом сервере.

Для этого заходим в web-интерфейс IASC другого сервера с известным логином, и создаём (User Profile – Add New) нового пользователя с паролем.

 

Открываем файл базы данных IASC другого сервера и копируем соль и хэш пароля свежесозданного пользователя.

 

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

Открываем базу IASC первого сервера и в таблице "User" заменяем хэш и соль для одного из пользователей (если, конечно, их там больше, чем один) на полученные на предыдущем шаге.

 

Осталось только сохранить изменения (кнопкой "Commit changes"), вернуть файл базы данных на место, если работали с копией, подключиться к web-консоли IASC с новыми учётными данными и, на всякий случай, сменить пароль, если хэш был создан кем-то другим по вашей просьбе.

Два важных замечания. Первое – желательно заранее подготовить хэш и соль для замены, а саму замену провести как можно быстрее. Причина простая – пока файл базы данных редактируется, есть некоторый риск потерять изменения, внесённые за это время самой Intel Active System Console, а если работы проводились над копией, то это уже не риск, а факт. Но потеря небольшого периода всё равно не идёт ни в какое сравнение с потерей всей истории мониторинга при переустановке.

Второе – вероятно, это собенность SQLiteStudio. Если редактировать поля User_Password и User_Password_Salt в режиме Grid view, то можно не заметить, что после знака "=" есть ещё один непечатаемый символ. Если переключиться в Form view, то становится понятно, что это перевод строки. Так вот, его удалять нельзя. Если удалить, при попытке входа в IASC будет выдаваться сообщение о неправильном имени пользователя или пароле. Если такое случилось, можно снова открыть базу и в режиме Form view добавить перевод строки, то есть просто в конце строки Enter нажать.

Оцените материал: 
twitter.com facebook.com vkontakte.ru odnoklassniki.ru mail.ru ya.ru rutvit.ru myspace.com blogger.com liveinternet.ru livejournal.ru memori.ru google.com yandex.ru
Комментариев: 2
  1. Алексей | 2013-06-10 в 20:11:54

    Вы бы выложили в статье хэш какого-нибудь просто пароля вроде Qwerty1234 стало бы намного полезнее, через интерфейс же потом можно будет сменить пароль на какой-нибудь свой.

  2. Алексей, мысль верная. Но всё делалось на реальном боевом сервере за ограниченное время. Хорошо хоть я сообразил скрины сделать на всякий случай, а уже потом они для заметки пригодились.

Оставить комментарий

Отправка комментария без регистрации. Комментарий публикуется после проверки.

Имя и сайт используются только при регистрации

Комментарий с авторизацией. Также можно сразу зарегистрироваться одновременно с первым комментарием. Для регистрации потребуется указать адрес электронной почты и придумать пароль, на электронную почту придет письмо с дальнейшей инструкцией по завершению регистрации. Комментарий публикуется после проверки.

(обязательно)