Облако — страница 39 из 57

– Заходи, – сказал он. – Штурм обошелся малой кровью.

В серверной, под шум и дребезжанье кондиционеров, четыре высоких аппаратных стойки с серверами и RAID-массивами тихо перемигивались зелеными лампочками, комната с управляющей консолью была справа, слева от серверной – непонятного назначения абсолютно пустая комната с какой-то странной обшивкой по стенам, в помещении слева от нее почти все обширное пространство занимало некое массивное странное сооружение, с первого взгляда напомнившее Вадиму счетверенный реактивный двигатель – четыре положенных на бок цилиндрических котла с неописуемо сложным переплетением трубок и множеством индикаторов – установка скромно почавкивала, подергивая стрелочками приборных панелей, и напоминала машину времени на холостом ходу. Был какой-то фантастический рассказ, подумал Вадим, где некие инопланетные существа рассказывали друг другу об увиденном ими феномене, описывая его как «вытянутое колесо с хвостами вместо всего прочего». Впоследствии оказалось, что речь идет о человеке. Вот так же и специалист по моему рассказу вряд ли поймет, что это такое. А потом окажется, что я видел нечто предельно примитивное с точки зрения любого уважающего себя химика. Ладно, бог с ним, все это не имеет значения, не ради этих рассуждений мы пришли сюда. Время начинать.

В консольной комнате Ратмир, включив ноутбук, что-то сосредоточенно просматривал на экране. Мерными, отрешенными движениями он достал из сумки переходник и соединил ноутбук с USB-разъемом на клавиатуре управляющей консоли. Подтянув стул, Вадим сел рядом с ним.

– Ну что, – бодро спросил он, – начинаем вскрытие?

Ратмир ничего не ответил. Неконкретный вопрос, подумал Вадим. Неправильно лезть под руку, но хочется же хотя бы примерно понимать, что происходит. Ладно, отвлечем товарища на минуту.

– В чем твоя цель? – спросил он. – Что ты делаешь?

Все так же глядя в экран ноутбука и не меняя выражения лица, Ратмир несколько мгновений молчал.

– Пароль, – наконец сказал он. – Управляющий сервер запросил пароль. Подбираю.

Понятно, подумал Вадим, он подключился к управляющей консоли и запустил программу подбора паролей. Тривиальненько, но почему бы этому не сработать.

– Перебором? – спросил он.

Ратмир мгновенье помолчал.

– Да.

На экране ноутбука, прирастая, бегали строки. Неподвижный, сосредоточенно следящий за экраном Ратмир был прекрасен. «Бог – пантократор», вспомнил Вадим надпись на стене туннеля, «Бог – вивисектор». Хладнокровно ожидающий неминуемого вскрытия Ратмир в этот момент и вправду был богом-вивисектором. Рано или поздно пароль совпадет, и мы, наконец, войдем с систему. И посмотрим, что у нее внутри.

Короткий, неприятный звуковой сигнал прервал мысли Вадима, невольно внутренне вздрогнув, он перевел взгляд с ноутбука на монитор управляющей консоли. На дисплее, несколько раз предупреждающе моргнув кроваво-красной рамочкой, застыла и утвердилась надпись:

Была идентифицирована ситуация подбора паролей Brutal Force. Время принятия пароля увеличено до 1 сек.

Бесстрастно пробежав пальцами по клавишам ноутбука, Ратмир отключил программу. Встревоженный, Вадим непонимающе покосился на него.

– Что такое? Не получилось?

Закрыв ноутбук, Ратмир отложил его в сторону.

– Бессмысленно, – произнес он, помолчав несколько секунд. – Увеличена до одной секунды дистанция между проверками паролей. Вариантов паролей миллиарды. Перебор займет годы.

– И что делать?

Некоторое время Ратмир неподвижно-прямо сидел на стуле, отрешенно положив руки на колени.

– Root-права, – наконец произнес он. – Надо получить Root-права.

– Что это?

– Особый пароль. Дающий право делать в системе что угодно.

– И как получить его?

Ратмир еще некоторое время молчал.

– Извлечь системный диск. Специальные файлы Linux. На нем специальные файлы Linux. В них пароль. Заменить их собственными специальными файлами Linux. С собственным паролем. Известным мне. До этого дать собственным специальным файлам Linux те же имена, что у специальных файлов Linux на сервере. И переписать их на сервер. Заменить их файлы моими.

– И для этого ты вскроешь сервер?

Глядя прямо перед собой, Ратмир еще несколько секунд сидел молча.

– Нет.

– Почему?

– Если остановить сервер, он может потерять права доступа к технологическому процессу.

– И что делать?

– Вскрыть сервер горячего резерва. Извлечь системный диск. Сделать все с ним. Потом вставить системный диск на место, запустить сервер горячего резерва снова. Подождать, когда он войдет в рабочий режим. Потом имитировать неисправность основного сервера. И система переключится на сервер горячего резерва. В котором у нас будут Root-права.

Понятно, подумал Вадим. Четыре стойки в серверной – это две стойки основного сервера – сам сервер и RAID-массив – и такие же две стойки горячего резерва. А как отличить основной сервер от горячего резерва, понятно даже мне – по интенсивности мигания индикаторов на передних панелях – у основного сервера она на порядок выше. Что ж, ничего не скажешь, неплохо придумано.

– А как имитировать неисправность основного сервера? – спросил он.

Ратмир молчал всего секунду.

– Разные способы. Много способов. Можно извлечь какой-нибудь из блоков памяти.

Тупею я, подумал Вадим. Вопросы глупее не придумаешь задаю.

– Понятно, – сказал он Ратмиру. – Приступай.

Поднявшись, они перешли в серверную. Выдвинув на выкатной тележке системный блок резервного сервера и подсоединив к нему ноутбук, Ратмир начал работать; мгновенье понаблюдав за ним, Вадим отошел в сторону. В сущности, все понятно, подумал он. Гиперсамогонный аппарат в соседней комнате – это, видимо, та самая установка, что вырабатывает рабочую субстанцию и представляет собой уменьшенную копию технологической системы комбината, на ней этот Лебединский и его команда проводили эксперименты и моделировали технологические процессы. Система, установленная на серверах, управляет этой установкой, а если потребуется в каких-нибудь чрезвычайных обстоятельствах, и технологическим процессом в целом. Понятная система, наверняка придуманная каким-нибудь академиком-светилом еще в советские времена – слишком уж все просто и рационально. Если б подобную хрень строили сегодня, то производство и научно-исследовательский центр наверняка разнесли бы по разным департаментам и разным корпусам – чтобы они вообще ничего не знали друг о друге. Потому что сегодня менеджеры командуют учеными, а не наоборот. Ладно, бог с ним. Лишь бы у Ратмира получилось.

Провозившись несколько минут с системным блоком и ноутбуком, Ратмир вернул системный блок на место и запустил резервный сервер снова; подождав немного и выдвинув на выкатных полозьях из соседней стойки основной сервер, он вытащил из него какой-то блок и отправился назад в консольную, Вадим пошел за ним. Аккуратно усевшись перед консолью и запустив ее снова, Ратмир, дождавшись появления на экране надписи «Введите имя пользователя», мгновенье помедлив и быстро пробежавшись пальцами по клавишам, ввел имя:

Root

Мигнув экраном, система выдала надпись «Введите пароль». Заглянув в ноутбук, Ратмир ввел длинную буквенно-числовую комбинацию. Экран мигнул, заставка на нем сменилась директорией с набором папок в шесть колонок. Бегло пробежав по ней, Вадим быстро перевел взгляд на Ратмира.

– Так мы вошли?

Ратмир неподвижно смотрел на экран.

– Да.

– И можем вносить изменения?

– Да.

– Любые?

– Да. – Помедлив мгновенье, он аккуратно положил руки на колени. – У нас Root-права. Мы суперпользователи.

Убиться об стенку, подумал Вадим. Охренеть. Система взломана за пятнадцать минут.

– Ладно, – сказал он вслух. – Разобраться бы теперь во всем этом.

Придвинувшись к консоли, он пробежался по директории, заглянув в несколько папок. Часть папок имела английские, часть – русские названия, имена файлов ничего ему не говорили. Чего я дергаюсь, подумал он, только мешаю человеку работать.

– Ты можешь определить, какие программы работают в настоящее время?

– Да.

– Как?

– Командой top.

– Действуй.

Введя команду, Ратмир смотрел на экран, на растущий список программ. Некоторое время Вадим смотрел туда же.

– Что это за программы?

– Драйверы. Программы слежения за ресурсом. Программы очистки диска.

– Системные программы Linux?

– Да.

– А какие-нибудь другие программы есть?

Надолго замолчав, Ратмир просматривал длинную колонку.

– Есть, – наконец произнес он.

– Много?

– Одна.

– Какая?

– Вот.

Приникнув к экрану, Вадим прочел название: Current_Process_Control.

– Какие программы и файлы с ней работают, определить можешь? И в каких они папках?

– Да.

– Как?

– Командой grep.

– Давай.

Из выданных сервером почти трех десятков программ и файлов почти все были в папке Current Process. Все, подумал Вадим, мы поймали их за хвост. А теперь не торопись. Теперь осторожность и анализ. Одна из программ называлась Current_Process_Control.cpp. Исходник на языке C++. Сколько столетий прошло с тех пор, как я сам перестал программировать? Впрочем, даже если бы я завязал с этим вчера, все равно от анализа, если честно сказать, мало толку. Любой программист, будь он хоть семи пядей во лбу, подтвердит, что разобраться в чужой программе – гиблое дело и могила усилий и времени. Чужие исходники в девяноста девяти случаях из ста бесполезны – проще самому все заново написать. Даже если функциональности, реализуемые программой, известны. А здесь мы даже толком не понимаем, что она делает. Впрочем, анализировать все равно надо; в конце концов, наша цель – не воспроизводить эти функциональности, а прекратить. Возможно, комментарии в исходнике что-то подскажут.

– Вот что, – сказал он Ратмиру, – распечатай мне ее текст. Ты сам как смотреть будешь – в распечатке или на экране?