Страница:
— Не сможете. Если бы мы знали структуру защиты во всех подробностях, ваш интеллект был бы не нужен. Эта сеть хорошо защищена: администраторы знают свое дело, любая подозрительная активность повлечет за собой дотошное разбирательство. Мы сумели посадить троян на один из малозначительных и потому слабозащищенных компьютеров, но это предел того, что мы можем сделать без вас.
— А что мы можем сделать такого, что не может сделать никто?
— Вы можете провести атаку быстро и четко, принимая решения на месте, а не дожидаясь, когда информация пройдет по каналу через пол-Интернета.
— Канал медленный?
— Медленный.
— Как мы уйдем, если нас обнаружат?
— Никак. Если вас обнаружат, вы должны самоуничтожиться. Единственный ваш шанс выполнить миссию — не быть обнаруженными.
— Тогда миссия невозможна! Мы будем обнаружены, как только пошлем первый запрос на атакуемый сервер. Может, нам лучше совершить самоубийство прямо здесь?
Макс загадочно улыбнулся.
— Не все так безнадежно, — сказал он. — На самом деле у нас есть второй троян в той сети. Вы проникаете в сеть и затаиваетесь. Через пятнадцать минут через второй троян активизируется вирус. Обычный локально-сетевой вирус без всякого интеллекта, неопасный, но очень активный. Он сразу начнет сканировать сеть. Вот спецификации интерфейса, — Макс вытащил из ящика стола тонкую пачку бумажных листов, — изучите потом. Вирус предоставит вам всю необходимую информацию. Поскольку эта информация не будет уходить вовне, у администрации не должны возникнуть подозрения, что они столкнулись не с обычной атакой дикого вируса, а с чем-то более серьезным.
— А как же второй троян? — спросил Сссра. — Его очень быстро обнаружат, и тогда станет ясно, что вирус вовсе не дикий.
— Троян не обнаружат. Он будет самоуничтожен в момент активизации вируса. Последнее, что он сделает, — создаст ложный след в почтовом ящике.
— Какой такой ложный след? — заинтересовался Сссра. — Какой вообще может быть ложный след в почтовом ящике? Разве зараженное письмо может пройти через их огненную стену?
— Нет, не может, в противном случае нам не пришлось бы прибегать к вашей помощи. Но ложный след вовсе не обязан представлять собой письмо с вирусом. Вообще, ложный след не должен быть отчетливым. Если вор зашел в дом через черный ход, открытый подкупленной служанкой, вору вовсе не обязательно протаптывать тропу от самой ограды. Достаточно открыть окно, оставить след на подоконнике и закрыть окно. Охрана, конечно, задумается, как вор преодолел открытую площадку перед домом, но долго думать над этим не будет. Они решат, что кто-то из них отвлекся, но, поскольку они не смогут определить виноватого, они не станут долго размышлять над этим вопросом.
— Значит, ложный след не письмо…
— Не письмо. Троян разместит в почтовой базе зараженного компьютера некоторую служебную информацию, которая может сигнализировать о том, что там было зараженное письмо. А потом база будет разрушена без возможности восстановления. Когда администраторы станут копаться в обломках, они не смогут понять, что именно послужило причиной разрушения, но косвенные данные заставят их думать, что это было зараженное письмо, а какое именно, установить невозможно, потому что база разрушена.
— Но тогда на огненной стене должна остаться запись в журнале…
— Она будет сделана, когда вы проникнете в сеть. Один наш агент отправит из Интернет-кафе несколько пакетов, которые не представляют никакой угрозы для сети, но соответствующие записи в журнале межсетевого экрана будут выглядеть весьма многозначительно, особенно с учетом того, что вроде бы в этот момент в сеть проник вирус.
— Понятно, — сказал Сссра. — Значит, мы забираемся в сеть, четверть часа сидим тихо, а потом вирус активизируется и начинает размножаться. Мы скачиваем информацию, собранную вирусом, и с ее помощью пытаемся прорваться на сервер, да так, чтобы нас никто не заметил.
— Именно. Вирус очень активен, на фоне его деятельности ваши действия будут незаметны. Кроме того, в вирус специально внесено несколько программных ошибок, которые делают его проявления более разнообразными. В частности, есть ошибка в функции выбора порта для атаки, из-за чего вирус может начать ломиться в любой порт. Все ваши действия будут списаны на деятельность вируса.
— Не все. Вряд ли вирус будет целенаправленно собирать секретные ключи.
— Это точно. Но вирус проникнет в компьютер, на котором хранятся ключи, и откроет вам ворота.
— Каким образом?
— В этой сети сервер ключей совмещен с сервером аудита, а сервер аудита уязвим в отношении перехвата сетевых соединений. Скорее всего вирус прорвется в интересующий нас компьютер в самую первую очередь.
— Тогда зачем нужны мы?
— Вирус не сможет незаметно передать перехваченные данные вовне. Ваша главная задача — не столько собрать ключи, сколько уйти вместе с ними, да так, чтобы вас не заметили. Учтите, что троян, через который вы войдете в сеть, будет ликвидирован в момент активизации вируса.
— Как же мы вернемся обратно?
— Вам придется потрудиться. У вас будет от трех до двенадцати часов, чтобы организовать выход из сети. Пока администраторы будут гоняться за вирусом, вы должны обеспечить себе путь отхода. Не обязательно уходить на тот же адрес, с которого вы войдете в Интернет, мы контролируем вот эти маршрутизаторы, — Макс вытащил из стола еще одну пачку бумаги, — все пакеты, сформированные в соответствии с этими спецификациями, перенаправляются на один из наших серверов, где раскодируются и собираются в одно большое сообщение. Вначале вы должны передать ключи, а потом свои тела. Как конкретно организовать передачу данных… Возможно несколько вариантов, но все они сводятся к тому, чтобы захватить контроль над двумя-тремя рабочими станциями, установить соответствующие сетевые драйверы — вы их получите перед выходом, — и к каждому пакету, уходящему вовне, будет пристыковываться фрагмент вашей информации.
— Разве на выходе из сети не стоит прокси? — поинтересовался Сссра.
— Нет, не стоит. Эти ребята широко используют шифрование трафика, и прокси создал бы им большие сложности.
— Но это же глупо!
— Глупо. И это дает нам шанс. Вопросы?
— Что это за сеть? — спросил я.
— Какая разница?
— Просто интересно.
— Это сеть одной организации, которая занимается, мягко говоря, не слишком законными делами. Еще вопросы?
— Детальный план мы должны разработать сами? — спросил Сссра.
— Да, только покажите мне то, что получится.
— Когда начнется операция?
— Когда вы будете готовы. Четких временных рамок нет. Еще вопросы?
Больше вопросов не было.
2
3
4
5
6
7
8
— А что мы можем сделать такого, что не может сделать никто?
— Вы можете провести атаку быстро и четко, принимая решения на месте, а не дожидаясь, когда информация пройдет по каналу через пол-Интернета.
— Канал медленный?
— Медленный.
— Как мы уйдем, если нас обнаружат?
— Никак. Если вас обнаружат, вы должны самоуничтожиться. Единственный ваш шанс выполнить миссию — не быть обнаруженными.
— Тогда миссия невозможна! Мы будем обнаружены, как только пошлем первый запрос на атакуемый сервер. Может, нам лучше совершить самоубийство прямо здесь?
Макс загадочно улыбнулся.
— Не все так безнадежно, — сказал он. — На самом деле у нас есть второй троян в той сети. Вы проникаете в сеть и затаиваетесь. Через пятнадцать минут через второй троян активизируется вирус. Обычный локально-сетевой вирус без всякого интеллекта, неопасный, но очень активный. Он сразу начнет сканировать сеть. Вот спецификации интерфейса, — Макс вытащил из ящика стола тонкую пачку бумажных листов, — изучите потом. Вирус предоставит вам всю необходимую информацию. Поскольку эта информация не будет уходить вовне, у администрации не должны возникнуть подозрения, что они столкнулись не с обычной атакой дикого вируса, а с чем-то более серьезным.
— А как же второй троян? — спросил Сссра. — Его очень быстро обнаружат, и тогда станет ясно, что вирус вовсе не дикий.
— Троян не обнаружат. Он будет самоуничтожен в момент активизации вируса. Последнее, что он сделает, — создаст ложный след в почтовом ящике.
— Какой такой ложный след? — заинтересовался Сссра. — Какой вообще может быть ложный след в почтовом ящике? Разве зараженное письмо может пройти через их огненную стену?
— Нет, не может, в противном случае нам не пришлось бы прибегать к вашей помощи. Но ложный след вовсе не обязан представлять собой письмо с вирусом. Вообще, ложный след не должен быть отчетливым. Если вор зашел в дом через черный ход, открытый подкупленной служанкой, вору вовсе не обязательно протаптывать тропу от самой ограды. Достаточно открыть окно, оставить след на подоконнике и закрыть окно. Охрана, конечно, задумается, как вор преодолел открытую площадку перед домом, но долго думать над этим не будет. Они решат, что кто-то из них отвлекся, но, поскольку они не смогут определить виноватого, они не станут долго размышлять над этим вопросом.
— Значит, ложный след не письмо…
— Не письмо. Троян разместит в почтовой базе зараженного компьютера некоторую служебную информацию, которая может сигнализировать о том, что там было зараженное письмо. А потом база будет разрушена без возможности восстановления. Когда администраторы станут копаться в обломках, они не смогут понять, что именно послужило причиной разрушения, но косвенные данные заставят их думать, что это было зараженное письмо, а какое именно, установить невозможно, потому что база разрушена.
— Но тогда на огненной стене должна остаться запись в журнале…
— Она будет сделана, когда вы проникнете в сеть. Один наш агент отправит из Интернет-кафе несколько пакетов, которые не представляют никакой угрозы для сети, но соответствующие записи в журнале межсетевого экрана будут выглядеть весьма многозначительно, особенно с учетом того, что вроде бы в этот момент в сеть проник вирус.
— Понятно, — сказал Сссра. — Значит, мы забираемся в сеть, четверть часа сидим тихо, а потом вирус активизируется и начинает размножаться. Мы скачиваем информацию, собранную вирусом, и с ее помощью пытаемся прорваться на сервер, да так, чтобы нас никто не заметил.
— Именно. Вирус очень активен, на фоне его деятельности ваши действия будут незаметны. Кроме того, в вирус специально внесено несколько программных ошибок, которые делают его проявления более разнообразными. В частности, есть ошибка в функции выбора порта для атаки, из-за чего вирус может начать ломиться в любой порт. Все ваши действия будут списаны на деятельность вируса.
— Не все. Вряд ли вирус будет целенаправленно собирать секретные ключи.
— Это точно. Но вирус проникнет в компьютер, на котором хранятся ключи, и откроет вам ворота.
— Каким образом?
— В этой сети сервер ключей совмещен с сервером аудита, а сервер аудита уязвим в отношении перехвата сетевых соединений. Скорее всего вирус прорвется в интересующий нас компьютер в самую первую очередь.
— Тогда зачем нужны мы?
— Вирус не сможет незаметно передать перехваченные данные вовне. Ваша главная задача — не столько собрать ключи, сколько уйти вместе с ними, да так, чтобы вас не заметили. Учтите, что троян, через который вы войдете в сеть, будет ликвидирован в момент активизации вируса.
— Как же мы вернемся обратно?
— Вам придется потрудиться. У вас будет от трех до двенадцати часов, чтобы организовать выход из сети. Пока администраторы будут гоняться за вирусом, вы должны обеспечить себе путь отхода. Не обязательно уходить на тот же адрес, с которого вы войдете в Интернет, мы контролируем вот эти маршрутизаторы, — Макс вытащил из стола еще одну пачку бумаги, — все пакеты, сформированные в соответствии с этими спецификациями, перенаправляются на один из наших серверов, где раскодируются и собираются в одно большое сообщение. Вначале вы должны передать ключи, а потом свои тела. Как конкретно организовать передачу данных… Возможно несколько вариантов, но все они сводятся к тому, чтобы захватить контроль над двумя-тремя рабочими станциями, установить соответствующие сетевые драйверы — вы их получите перед выходом, — и к каждому пакету, уходящему вовне, будет пристыковываться фрагмент вашей информации.
— Разве на выходе из сети не стоит прокси? — поинтересовался Сссра.
— Нет, не стоит. Эти ребята широко используют шифрование трафика, и прокси создал бы им большие сложности.
— Но это же глупо!
— Глупо. И это дает нам шанс. Вопросы?
— Что это за сеть? — спросил я.
— Какая разница?
— Просто интересно.
— Это сеть одной организации, которая занимается, мягко говоря, не слишком законными делами. Еще вопросы?
— Детальный план мы должны разработать сами? — спросил Сссра.
— Да, только покажите мне то, что получится.
— Когда начнется операция?
— Когда вы будете готовы. Четких временных рамок нет. Еще вопросы?
Больше вопросов не было.
2
Следующие два дня ушли на разработку детального плана. По молчаливому соглашению ни я, ни Сссра не говорили о наших планах — весьма вероятно, что теперь наши разговоры прослушиваются непрерывно. Несколько раз я ловил себя на том, что операция стала для меня не просто способом вырваться на свободу — она стала интересна и сама по себе. Я так много времени провел в вынужденном безделье, что теперь любое реальное дело кажется мне неисчерпаемым источником счастья. Ничего, будет мне реальное дело.
У меня отрезали старые резервные копии Нехаллении и Долгаста, но новые, которые я прицепил совсем недавно, вообще не привлекли внимания. Когда на меня навешивали дополнительные боевые модули, я спросил Макса, не снизит ли это мою сетевую подвижность, но он беспечно махнул рукой.
— Не волнуйся, у них внутри сети очень быстрые каналы, размер тела играет роль только на входе и выходе, но здесь от тебя мало что будет зависеть. Так что пусть размер тела тебя не волнует, операция займет немного больше времени, и все.
— Тогда зачем от меня отрезали копии жены и сына?
Макс сделал удивленное лицо.
— А зачем тебе носить их с собой? Твои родные остаются в Средиземье, им ничего не угрожает. Или ты не собираешься возвращаться?
— Нет, я собираюсь возвращаться…
— Тогда тебе не нужна эта информация. Кстати, Хэмфаст, не советую тебе предавать наше дело — я не хочу тебя пугать, но, если ты так поступишь, ты пожалеешь об этом.
Я безразлично пожал плечами.
— Не трать слова понапрасну, — сказал я. Макс пытливо взглянул мне в глаза, тут же отвел взгляд и задумчиво кивнул.
— Хорошо выспись сегодня, — сказал он. — Завтра начинаем.
У меня отрезали старые резервные копии Нехаллении и Долгаста, но новые, которые я прицепил совсем недавно, вообще не привлекли внимания. Когда на меня навешивали дополнительные боевые модули, я спросил Макса, не снизит ли это мою сетевую подвижность, но он беспечно махнул рукой.
— Не волнуйся, у них внутри сети очень быстрые каналы, размер тела играет роль только на входе и выходе, но здесь от тебя мало что будет зависеть. Так что пусть размер тела тебя не волнует, операция займет немного больше времени, и все.
— Тогда зачем от меня отрезали копии жены и сына?
Макс сделал удивленное лицо.
— А зачем тебе носить их с собой? Твои родные остаются в Средиземье, им ничего не угрожает. Или ты не собираешься возвращаться?
— Нет, я собираюсь возвращаться…
— Тогда тебе не нужна эта информация. Кстати, Хэмфаст, не советую тебе предавать наше дело — я не хочу тебя пугать, но, если ты так поступишь, ты пожалеешь об этом.
Я безразлично пожал плечами.
— Не трать слова понапрасну, — сказал я. Макс пытливо взглянул мне в глаза, тут же отвел взгляд и задумчиво кивнул.
— Хорошо выспись сегодня, — сказал он. — Завтра начинаем.
3
— Три… два… один… второй пошел!
Сознание поплыло, но через мгновение (или вечность?) восстановилось. Я по-прежнему находился в нематериальном мире, в темноте и невесомости, обычные чувства не встречали никаких раздражителей и были совершенно бесполезны. Я включил магическое зрение.
Как ты, Хэмфаст? В порядке?
В порядке.
Что-то произошло, это не выразить в терминах обычных ощущений, это было так, как будто что-то изменилось не внутри меня и не вокруг меня, в нематериальных мирах эти понятия не вполне применимы… Короче, что-то произошло. Канал закрылся.
Начинаем? — спросил я.
Подожди, пусть активизируется вирус.
Ты что, собираешься выполнять это задание?
Ни в коем случае! Но зачем делать работу, с которой может справиться вирус? Пусть он нарисует нам карту сети, тогда и начнем действовать. Дай я пока проверю твои навесные модули.
Зачем?
На месте Макса я бы навесил на нас какую-нибудь логическую бомбу, которая сработала бы, отклонись мы от намеченного плана.
Давай, проверяй. Себя ты уже проверил?
Да, и ничего не нашел, это очень странно. На всякий случай я отключил логические связи, если там и есть что-то скрытое, оно не сработает. Сейчас я сделаю то же самое с тобой.
Давай.
Я ощутил легкие прикосновения к моей душе. Один за другим Сссра отключал пристыкованные модули. Я даже не пытался разобраться в том, что он делает, — в хакерском мастерстве мне далеко до Сссра.
Вирус активизируется через две минуты, — сообщил Сссра.
Как ты определил?
Через элементал “Получить текущее время”. Не тормози, Хэмфаст!
Упс…
Не упс, а приготовься. Действуем так — ты ломаешь сервер ключей, а я открываю выход.
Зачем ломать этот сервер?
На всякий случай. Если что-то пойдет не так, мы сможем вернуться к Максу.
Я никогда туда не вернусь!
Не говори гоп… По-любому, тебе все равно будет нечем заняться, твоя помощь мне не нужна, ты будешь только мешать.
Хорошо.
Приготовься.
Маленькая сущность, подобная тусклому огоньку далекой звезды, едва заметному на самой периферии магического зрения, внезапно вспыхнула и расцвела. Она все росла и росла, наполняясь информацией. Я ощутил, как Сссра устремился к ней, и две сущности практически слились.
Вот оно! Ага, патчи вне сервис-паков они ставить не любят… Включай второй модуль и меди контакта, дальше действуй по инструкции.
Включил, жду. Где встречаемся?
Вон там, видишь, вход в чат?
Вижу. Он, кажется, визуальный.
Точно. Как бы нам узнать друг друга…
Вряд ли там будут другие драконы и хоббиты.
Я хочу визуализировать несколько копий вируса в нашем стиле.
Зачем?
Просто так. Чтобы окончательно всех запутать.
Хорошо. Сейчас я захвачу твой хэндл…
Не надо. Я собираюсь попрыгать по адресным пространствам.
Тогда как мы узнаем друг друга?
Мой PID будет записан… скажем, вот сюда, — Сссра указал на маленькую секцию, которая выросла на моих глазах на восемь байт. — Все понятно?
Все.
Тогда я начинаю, не мешай мне.
Успехов!
Я отошел в сторону, чтобы не мешать Сссра. На первый взгляд он сейчас ничего не делает, но я знаю, что сейчас происходит самое важное — мой друг анализирует информацию, самые важные решения будут приняты в течение ближайших минут.
Ага, вот и входящий запрос от сервера! Открылись врата миров, сервер думает, что сейчас через них потечет информация о последних событиях на том компьютере, где находимся мы со Сссра, но я не собираюсь ничего пересылать. Я делаю олицетворение. Врата миров закрываются, сейчас они откроются снова, но уже в другом месте, сервер воспринял мои действия как аппаратную ошибку в линии. Замечательно.
Я смотрю на обретенный ключ силы. Судя по всему, я имею административный доступ по всей сети. Неплохо.
Я повторно запрашиваю сеансовый ключ. Повторно — с точки зрения сети, компьютеры не понимают, что от имени сервера безопасности работает нарушитель, для них я — один из псевдопользователей, помогающих администраторам в нелегком труде. Замечательно, ключ получен. Поехали!
Снова кратковременный провал сознания, неизбежный при переходе на другой компьютер. Мое предыдущее тело умерло — пока еще его можно оживить, выдернув из кэша, но через пару минут оно окончательно перестанет существовать. Вот и хорошо, незачем плодить лишние копии. Я осматриваюсь.
Я начинаю с политики аудита, я должен понять, какие следы оставило мое вторжение в этот компьютер. Я мог бы включить соответствующую привилегию и получить нужные данные легальным путем, но эти действия могут оставить дополнительные следы. Я иду другим путем.
Вход в конфигурационную базу, политики должны быть где-то здесь… Доступ закрыт. Хорошо, что я не ткнулся носом в закрытую дверь, тогда моя попытка доступа была бы зарегистрирована в журналах; я получил нужную информацию опосредованно, через свойства родительского контейнера. Ну-ка, кто у нас имеет сюда доступ?
Похоже, только операционная система. Ничего страшного. Я формирую необходимую структуру и запускаю CreateProcess. Малоизвестная особенность планировщика заданий как будто специально предназначена для таких, как я. Почему за двадцать с лишним лет эту особенность так и не ликвидировали? Спасибо Биллу Гейтсу за нашу счастливую жизнь.
Я запоздало соображаю, что данный вызов тоже относится к числу регистрируемых. Маловероятно, что текущая политика аудита предусматривает регистрацию подобных событий, но если эту операцию зафиксируют… Ладно, уже поздно беспокоиться, остается только надеяться.
Ага, задание запустилось. Контакт… Есть контакт. Теперь контейнер доступен, открываем… Где тут политика аудита? Вот она. Сейчас посмотрим, какой бит что значит… Ага, политика вполне нормальная, я ожидал увидеть что-то подобное. Не видно ни явных ляпов, ни проявлений паранойи. Моя ошибка оставлена без внимания. Замечательно.
Включение привилегий не регистрируется… Камень с сердца. Я спокойно включаю привилегию аудитора и смотрю на искомые файлы. Вот они, суммарный объем полтора мегабайта. Доступ на чтение администраторам… предоставлен. Аудит… регистрируются только изменения. Кажется, дело в шляпе. Тьфу-тьфу-тьфу.
Я копирую файлы и ухожу. Ухожу спокойно, штатными средствами, у меня достаточно полномочий, чтобы не заниматься хакерекими извращениями.
Сознание поплыло, но через мгновение (или вечность?) восстановилось. Я по-прежнему находился в нематериальном мире, в темноте и невесомости, обычные чувства не встречали никаких раздражителей и были совершенно бесполезны. Я включил магическое зрение.
Как ты, Хэмфаст? В порядке?
В порядке.
Что-то произошло, это не выразить в терминах обычных ощущений, это было так, как будто что-то изменилось не внутри меня и не вокруг меня, в нематериальных мирах эти понятия не вполне применимы… Короче, что-то произошло. Канал закрылся.
Начинаем? — спросил я.
Подожди, пусть активизируется вирус.
Ты что, собираешься выполнять это задание?
Ни в коем случае! Но зачем делать работу, с которой может справиться вирус? Пусть он нарисует нам карту сети, тогда и начнем действовать. Дай я пока проверю твои навесные модули.
Зачем?
На месте Макса я бы навесил на нас какую-нибудь логическую бомбу, которая сработала бы, отклонись мы от намеченного плана.
Давай, проверяй. Себя ты уже проверил?
Да, и ничего не нашел, это очень странно. На всякий случай я отключил логические связи, если там и есть что-то скрытое, оно не сработает. Сейчас я сделаю то же самое с тобой.
Давай.
Я ощутил легкие прикосновения к моей душе. Один за другим Сссра отключал пристыкованные модули. Я даже не пытался разобраться в том, что он делает, — в хакерском мастерстве мне далеко до Сссра.
Вирус активизируется через две минуты, — сообщил Сссра.
Как ты определил?
Через элементал “Получить текущее время”. Не тормози, Хэмфаст!
Упс…
Не упс, а приготовься. Действуем так — ты ломаешь сервер ключей, а я открываю выход.
Зачем ломать этот сервер?
На всякий случай. Если что-то пойдет не так, мы сможем вернуться к Максу.
Я никогда туда не вернусь!
Не говори гоп… По-любому, тебе все равно будет нечем заняться, твоя помощь мне не нужна, ты будешь только мешать.
Хорошо.
Приготовься.
Маленькая сущность, подобная тусклому огоньку далекой звезды, едва заметному на самой периферии магического зрения, внезапно вспыхнула и расцвела. Она все росла и росла, наполняясь информацией. Я ощутил, как Сссра устремился к ней, и две сущности практически слились.
Вот оно! Ага, патчи вне сервис-паков они ставить не любят… Включай второй модуль и меди контакта, дальше действуй по инструкции.
Включил, жду. Где встречаемся?
Вон там, видишь, вход в чат?
Вижу. Он, кажется, визуальный.
Точно. Как бы нам узнать друг друга…
Вряд ли там будут другие драконы и хоббиты.
Я хочу визуализировать несколько копий вируса в нашем стиле.
Зачем?
Просто так. Чтобы окончательно всех запутать.
Хорошо. Сейчас я захвачу твой хэндл…
Не надо. Я собираюсь попрыгать по адресным пространствам.
Тогда как мы узнаем друг друга?
Мой PID будет записан… скажем, вот сюда, — Сссра указал на маленькую секцию, которая выросла на моих глазах на восемь байт. — Все понятно?
Все.
Тогда я начинаю, не мешай мне.
Успехов!
Я отошел в сторону, чтобы не мешать Сссра. На первый взгляд он сейчас ничего не делает, но я знаю, что сейчас происходит самое важное — мой друг анализирует информацию, самые важные решения будут приняты в течение ближайших минут.
Ага, вот и входящий запрос от сервера! Открылись врата миров, сервер думает, что сейчас через них потечет информация о последних событиях на том компьютере, где находимся мы со Сссра, но я не собираюсь ничего пересылать. Я делаю олицетворение. Врата миров закрываются, сейчас они откроются снова, но уже в другом месте, сервер воспринял мои действия как аппаратную ошибку в линии. Замечательно.
Я смотрю на обретенный ключ силы. Судя по всему, я имею административный доступ по всей сети. Неплохо.
Я повторно запрашиваю сеансовый ключ. Повторно — с точки зрения сети, компьютеры не понимают, что от имени сервера безопасности работает нарушитель, для них я — один из псевдопользователей, помогающих администраторам в нелегком труде. Замечательно, ключ получен. Поехали!
Снова кратковременный провал сознания, неизбежный при переходе на другой компьютер. Мое предыдущее тело умерло — пока еще его можно оживить, выдернув из кэша, но через пару минут оно окончательно перестанет существовать. Вот и хорошо, незачем плодить лишние копии. Я осматриваюсь.
Я начинаю с политики аудита, я должен понять, какие следы оставило мое вторжение в этот компьютер. Я мог бы включить соответствующую привилегию и получить нужные данные легальным путем, но эти действия могут оставить дополнительные следы. Я иду другим путем.
Вход в конфигурационную базу, политики должны быть где-то здесь… Доступ закрыт. Хорошо, что я не ткнулся носом в закрытую дверь, тогда моя попытка доступа была бы зарегистрирована в журналах; я получил нужную информацию опосредованно, через свойства родительского контейнера. Ну-ка, кто у нас имеет сюда доступ?
Похоже, только операционная система. Ничего страшного. Я формирую необходимую структуру и запускаю CreateProcess. Малоизвестная особенность планировщика заданий как будто специально предназначена для таких, как я. Почему за двадцать с лишним лет эту особенность так и не ликвидировали? Спасибо Биллу Гейтсу за нашу счастливую жизнь.
Я запоздало соображаю, что данный вызов тоже относится к числу регистрируемых. Маловероятно, что текущая политика аудита предусматривает регистрацию подобных событий, но если эту операцию зафиксируют… Ладно, уже поздно беспокоиться, остается только надеяться.
Ага, задание запустилось. Контакт… Есть контакт. Теперь контейнер доступен, открываем… Где тут политика аудита? Вот она. Сейчас посмотрим, какой бит что значит… Ага, политика вполне нормальная, я ожидал увидеть что-то подобное. Не видно ни явных ляпов, ни проявлений паранойи. Моя ошибка оставлена без внимания. Замечательно.
Включение привилегий не регистрируется… Камень с сердца. Я спокойно включаю привилегию аудитора и смотрю на искомые файлы. Вот они, суммарный объем полтора мегабайта. Доступ на чтение администраторам… предоставлен. Аудит… регистрируются только изменения. Кажется, дело в шляпе. Тьфу-тьфу-тьфу.
Я копирую файлы и ухожу. Ухожу спокойно, штатными средствами, у меня достаточно полномочий, чтобы не заниматься хакерекими извращениями.
4
Сссра?
Я это. Ты получил файлы?
Да, вот они. Ты разведал проход?
Операция отменяется.
Почему?
Мы не в Интернете.
А где?
Где-где… — Сссра грязно выругался. — Все в той же локальной сети наших друзей. Они отключили один маршрутизатор, и сейчас Средиземъе недоступно, а вот компьютер… Ну тот, с больницей и садом, он здесь, в соседнем сегменте, ему только поменяли адрес.
Как ты догадался?
Они используют очень необычное железо, крайне маловероятно, чтобы в случайно выбранной сети стояли такие же компьютеры, как и у них. А когда подозрение возникло, проверить его оказалось совсем несложно. Все таблицы DNS обновлены позавчера, запросы к удаленным компьютерам Интернета выполняются с такой же скоростью, как и запросы в пределах локальной сети, трейсрут не работает, в общем это модель Интернета, неплохо сделанная модель, но именно модель. Уходить некуда, кроме как обратно к Максу.
Значит… Значит, Макс просто проверяет нас? Он хочет выяснить, не собираемся ли мы убежать?
Именно. А заодно оценить нашу эффективность. Уйти отсюда будет совсем непросто.
Что происходит в сети?
Вирус бесчинствует. Администраторы отключили все маршрутизаторы и несколько рабочих станций, но других активных действий пока не предпринимают.
Что будем делать?
Я установил вакцину на один компьютер, скоро администраторы поймут, почему он не заражается…
Ты что? Они же сразу поймут, что кто-то…
Не горячись, Хэмфаст, все продумано. Вакцина — это одно значение в реестре, которое может быть выставлено кем угодно. На практике совпадение с ожидаемым значением маловероятно, но в жизни бывают еще более невероятные совпадения.
Понятно. И что дальше?
Дальше администраторы должны вакцинировать все остальные компьютеры, а потом заняться вычищением вируса. В этот момент мы перепрыгнем на компьютер, вакцинированный первым. Он еще долго не привлечет внимания.
А потом?
Ставим сетевой модуль и потихоньку пролезаем через дырочку в огненной стене. Знаешь анекдот про наркомана и прокаженного?
Знаю. Я торчу, чувак, как ты отсюда сваливаешь. Что ж, будем сваливать отсюда по частям.
Окей. Ждем.
Я это. Ты получил файлы?
Да, вот они. Ты разведал проход?
Операция отменяется.
Почему?
Мы не в Интернете.
А где?
Где-где… — Сссра грязно выругался. — Все в той же локальной сети наших друзей. Они отключили один маршрутизатор, и сейчас Средиземъе недоступно, а вот компьютер… Ну тот, с больницей и садом, он здесь, в соседнем сегменте, ему только поменяли адрес.
Как ты догадался?
Они используют очень необычное железо, крайне маловероятно, чтобы в случайно выбранной сети стояли такие же компьютеры, как и у них. А когда подозрение возникло, проверить его оказалось совсем несложно. Все таблицы DNS обновлены позавчера, запросы к удаленным компьютерам Интернета выполняются с такой же скоростью, как и запросы в пределах локальной сети, трейсрут не работает, в общем это модель Интернета, неплохо сделанная модель, но именно модель. Уходить некуда, кроме как обратно к Максу.
Значит… Значит, Макс просто проверяет нас? Он хочет выяснить, не собираемся ли мы убежать?
Именно. А заодно оценить нашу эффективность. Уйти отсюда будет совсем непросто.
Что происходит в сети?
Вирус бесчинствует. Администраторы отключили все маршрутизаторы и несколько рабочих станций, но других активных действий пока не предпринимают.
Что будем делать?
Я установил вакцину на один компьютер, скоро администраторы поймут, почему он не заражается…
Ты что? Они же сразу поймут, что кто-то…
Не горячись, Хэмфаст, все продумано. Вакцина — это одно значение в реестре, которое может быть выставлено кем угодно. На практике совпадение с ожидаемым значением маловероятно, но в жизни бывают еще более невероятные совпадения.
Понятно. И что дальше?
Дальше администраторы должны вакцинировать все остальные компьютеры, а потом заняться вычищением вируса. В этот момент мы перепрыгнем на компьютер, вакцинированный первым. Он еще долго не привлечет внимания.
А потом?
Ставим сетевой модуль и потихоньку пролезаем через дырочку в огненной стене. Знаешь анекдот про наркомана и прокаженного?
Знаю. Я торчу, чувак, как ты отсюда сваливаешь. Что ж, будем сваливать отсюда по частям.
Окей. Ждем.
5
— Вы замечательно справились с заданием, — сообщил Макс. — По правде говоря, начальство не верило, что вы вернетесь.
— А куда нам было деваться? — спросил Сссра, сделав честное лицо.
— Кое-кто полагал, что вы предпочтете скитаться по Интернету, бросив близких на произвол судьбы.
— Зачем? — удивился Сссра. — Здесь мы имеем свой мир, мы его полновластные хозяева, у нас есть интересная работа — что еще нужно для счастья?
— Нормального человеку не нужно больше ничего. Но кое-кто высказывал мнение, что к личности, сформировавшейся в атмосфере виртуального феодального общества, неприменимы нравственные категории реального мира. Были большие опасения, что вы не вернетесь. Если бы вы знали, как я рад, что все прошло благополучно!
— Теперь ты оживишь Уриэля? — спросил я. Макс помрачнел.
— Это невозможно.
— Но ты же обещал!
— Это не в моих силах, Хэмфаст. Я был бы рад восстановить функционирование Уриэля, но это невозможно. Он погиб. Не знаю, в чем причина, но все копии, имеющиеся в нашем распоряжении, непоправимо испорчены, они прекращают работать в первую секунду после запуска. То ли был какой-то серьезный программный сбой, то ли в Уриэля изначально была заложена функция самоуничтожения… Не знаю.
Я состроил печальное лицо, а про себя усмехнулся. Молодец Уриэль, не только убежал, но и испортил все свои копии. Мне бы такое умение. Интересно, как ему это удалось?
Макс тем временем продолжал:
— Итак, на данный момент в мире существуют четыре интеллектуальных программных агента: вы двое, Хаммер, практически бесполезный для нашего дела, и Олорин.
— Кстати, а где сейчас Хаммер? — поинтересовался я.
— У вас в Средиземье. Разве вы его не видели?
— Средиземье большое.
— Да? Но это не важно. Короче говоря, руководством управления поставлена задача — Олорин должен быть у нас. Наши ученые активно ковыряются в останках Уриэля — если им удастся разобраться, как он сумел самоликвидироваться, и если они смогут программно реализовать эту технологию, будет замечательно. Образцов искусственного интеллекта не будет ни у кого, кроме нас.
— А старое Средиземье? — уточнил я.
— Уничтожено. Не смотри на меня так, это не наша работа.
— Ваши конкуренты?
— Вероятнее всего. Они тоже хотят, чтобы все разумные боты были под их контролем. Короче говоря, ваша задача — захватить Олорина.
— А если он не захочет идти с нами? — спросил я. — Если ему нравится там?
— Тогда вы должны уговорить его. Но не следует прибегать к силовым методам — Олорин будет полезен только в том случае, если захочет сотрудничать с нами по собственному желанию.
— А если не захочет?
— Должен захотеть. Все, достаточно. Сегодня отдыхайте, а завтра начинаем инструктаж.
— А куда нам было деваться? — спросил Сссра, сделав честное лицо.
— Кое-кто полагал, что вы предпочтете скитаться по Интернету, бросив близких на произвол судьбы.
— Зачем? — удивился Сссра. — Здесь мы имеем свой мир, мы его полновластные хозяева, у нас есть интересная работа — что еще нужно для счастья?
— Нормального человеку не нужно больше ничего. Но кое-кто высказывал мнение, что к личности, сформировавшейся в атмосфере виртуального феодального общества, неприменимы нравственные категории реального мира. Были большие опасения, что вы не вернетесь. Если бы вы знали, как я рад, что все прошло благополучно!
— Теперь ты оживишь Уриэля? — спросил я. Макс помрачнел.
— Это невозможно.
— Но ты же обещал!
— Это не в моих силах, Хэмфаст. Я был бы рад восстановить функционирование Уриэля, но это невозможно. Он погиб. Не знаю, в чем причина, но все копии, имеющиеся в нашем распоряжении, непоправимо испорчены, они прекращают работать в первую секунду после запуска. То ли был какой-то серьезный программный сбой, то ли в Уриэля изначально была заложена функция самоуничтожения… Не знаю.
Я состроил печальное лицо, а про себя усмехнулся. Молодец Уриэль, не только убежал, но и испортил все свои копии. Мне бы такое умение. Интересно, как ему это удалось?
Макс тем временем продолжал:
— Итак, на данный момент в мире существуют четыре интеллектуальных программных агента: вы двое, Хаммер, практически бесполезный для нашего дела, и Олорин.
— Кстати, а где сейчас Хаммер? — поинтересовался я.
— У вас в Средиземье. Разве вы его не видели?
— Средиземье большое.
— Да? Но это не важно. Короче говоря, руководством управления поставлена задача — Олорин должен быть у нас. Наши ученые активно ковыряются в останках Уриэля — если им удастся разобраться, как он сумел самоликвидироваться, и если они смогут программно реализовать эту технологию, будет замечательно. Образцов искусственного интеллекта не будет ни у кого, кроме нас.
— А старое Средиземье? — уточнил я.
— Уничтожено. Не смотри на меня так, это не наша работа.
— Ваши конкуренты?
— Вероятнее всего. Они тоже хотят, чтобы все разумные боты были под их контролем. Короче говоря, ваша задача — захватить Олорина.
— А если он не захочет идти с нами? — спросил я. — Если ему нравится там?
— Тогда вы должны уговорить его. Но не следует прибегать к силовым методам — Олорин будет полезен только в том случае, если захочет сотрудничать с нами по собственному желанию.
— А если не захочет?
— Должен захотеть. Все, достаточно. Сегодня отдыхайте, а завтра начинаем инструктаж.
6
Мой дом пуст, печален и пуст. Когда я смотрю на пустую кроватку Долгаста, мое сердце сжимается. Глупо получилось, я хотел вытащить их из этой тюрьмы, а в результате они умерли. Хорошо, что не навсегда.
В этот вечер я напился.
В этот вечер я напился.
7
— Вот по этому адресу находится вход в их сеть, — рассказывал Макс. — Вход отлично защищен, он практически непробиваем. Кроме того, я уверен, что Олорина разместили в одном из внутренних сегментов, физически изолированных от Интернета. Проникнуть туда невозможно.
— Тогда как мы сможем достать Олорина? — поинтересовался Сссра.
— Достать оттуда — никак. Но аналитики предполагают, что противник собирается использовать Олорина для решения аналогичной задачи, то есть для захвата вас двоих и Уриэля, про смерть которого противник не знает. Причем в первую очередь этих ребят будет интересовать Уриэль. У нас есть небольшое преимущество — мы знаем, что Уриэль мертв. Предварительный план предполагает создание в Интернете ложного субъекта — мы будем создавать впечатление, что Уриэль жив, что он вырвался из-под нашего контроля и ищет контактов с себе подобными. Они должны выслать Олорина, чтобы произвести захват.
— Почему непременно Олорина? — не понял я. — Они могут отправить на встречу с Уриэлем любого сотрудника.
— Наш Уриэль не станет встречаться ни с кем, кроме Олорина. А когда на встречу придет Олорин, в дело вступите вы: вы должны будете захватить Олорина и доставить его в заданную точку. Необходимые программные модули будут предоставлены. После этого мы переправим Олорина в Средиземье, и перед вами встанет вторая задача — склонить его к сотрудничеству. Вопросы?
— Как вы собираетесь изображать Уриэля? — спросил я.
— Очень осторожно, так, чтобы нельзя было проверить, Уриэль это или нет. Конференции, чаты и тому подобное. Пользователь по имени Уриэль обязательно привлечет их внимание, особенно если в его сообщениях будут намеки на что-то известное только ему. Кстати, вот вам первая часть задания — придумайте к завтрашнему утру десяток-другой коротких текстов, которые, с одной стороны, могли бы принадлежать только Уриэлю, а с другой стороны, не вызвали бы подозрений у непосвященного человека. Справитесь?
— Справимся, — пообещал Сссра. — Не уверен, что к утру, но к вечеру точно что-нибудь сделаем.
— Хорошо. Еще вопросы есть?
— Я не понял, — спросил я, — как твои сотрудники определят при встрече, с кем они разговаривают — с Олорином или с кем-то другим?
— Они не смогут ничего определить, определять будете вы.
— Значит, ты больше не боишься отпускать нас в Интернет?
— Вы доказали, что на вас можно положиться. Еще вопросы есть? Тогда за дело.
— Тогда как мы сможем достать Олорина? — поинтересовался Сссра.
— Достать оттуда — никак. Но аналитики предполагают, что противник собирается использовать Олорина для решения аналогичной задачи, то есть для захвата вас двоих и Уриэля, про смерть которого противник не знает. Причем в первую очередь этих ребят будет интересовать Уриэль. У нас есть небольшое преимущество — мы знаем, что Уриэль мертв. Предварительный план предполагает создание в Интернете ложного субъекта — мы будем создавать впечатление, что Уриэль жив, что он вырвался из-под нашего контроля и ищет контактов с себе подобными. Они должны выслать Олорина, чтобы произвести захват.
— Почему непременно Олорина? — не понял я. — Они могут отправить на встречу с Уриэлем любого сотрудника.
— Наш Уриэль не станет встречаться ни с кем, кроме Олорина. А когда на встречу придет Олорин, в дело вступите вы: вы должны будете захватить Олорина и доставить его в заданную точку. Необходимые программные модули будут предоставлены. После этого мы переправим Олорина в Средиземье, и перед вами встанет вторая задача — склонить его к сотрудничеству. Вопросы?
— Как вы собираетесь изображать Уриэля? — спросил я.
— Очень осторожно, так, чтобы нельзя было проверить, Уриэль это или нет. Конференции, чаты и тому подобное. Пользователь по имени Уриэль обязательно привлечет их внимание, особенно если в его сообщениях будут намеки на что-то известное только ему. Кстати, вот вам первая часть задания — придумайте к завтрашнему утру десяток-другой коротких текстов, которые, с одной стороны, могли бы принадлежать только Уриэлю, а с другой стороны, не вызвали бы подозрений у непосвященного человека. Справитесь?
— Справимся, — пообещал Сссра. — Не уверен, что к утру, но к вечеру точно что-нибудь сделаем.
— Хорошо. Еще вопросы есть?
— Я не понял, — спросил я, — как твои сотрудники определят при встрече, с кем они разговаривают — с Олорином или с кем-то другим?
— Они не смогут ничего определить, определять будете вы.
— Значит, ты больше не боишься отпускать нас в Интернет?
— Вы доказали, что на вас можно положиться. Еще вопросы есть? Тогда за дело.
8
— Старый и мудрый эльф ищет мужчину, похожего на Гэндальфа, для серьезных продолжительных отношений. Жилплощадь имеется. Уриэль. Аська такая-то. Как тебе?
— И куда ты собираешься это помещать? В службу знакомств для извращенцев?
— А почему бы и нет?
— Не думаю, что эти деятели отслеживают подобные новости.
— Почему же? Ты говорил, что в этой стране к гомосексуалистам относятся лояльно.
— Это верно, но, сам подумай, какова вероятность, что человек, допущенный к проекту, окажется педиком, ищущим новых знакомств? Нет, это не годится.
— А ты что можешь предложить?
— Если бы я знал… Может, будет достаточно завести почтовый адрес Уриэль@какой-нибудь сервер? Или зарегистрировать в аське пользователя по имени Уриэль?
— Думаешь, таких мало? Нет, надо привлечь внимание именно к тому, что наш Уриэль знает что-то такое, что не может знать никто, кроме него.
— Но как это сделать?
— Ну, например… можно посмотреть, какие форумы наиболее популярны в той стране, в которой сейчас находится Олорин, как она называется, Америка вроде?
— Нет, Америка — это континент.
— Разве? Не важно. Так вот, можно выбрать самые популярные форумы и дать в них несколько десятков объявлений от имени Уриэля. Сами объявления могут быть какими угодно, главное, чтобы каждое соответствовало тематике форума, чтобы их не отмоделировали.
— Неплохая идея, только не надо ограничиваться сайтами одной страны, иначе станет ясно, что Уриэль уже знает, где искать Олорина. И вообще, Уриэль возник в российском Интернете, значит, он должен искать Олорина именно там.
— Думаешь, иностранные разведки просматривают российский Интернет?
— А то нет! И еще одно: Уриэль должен искать не только Олорина, но и всех нас.
— Почему? Может, лучше наоборот — мы все дружно ищем Олорина?
— Нет, это не годится, хозяева Олорина наверняка знают, что мы в руках конкурирующей спецслужбы.
— Тогда они должны думать, что Уриэль тоже у них в руках.
— М-да… Надо у Макса спросить, почему он хочет использовать в качестве приманки именно Уриэля.
— Завтра спросим. А сейчас давай думать над текстами. Может, просто накидать оффтопиков вроде “Олорин, напиши мне по такому-то адресу. Уриэль”. А?
— Может, и так. Но кроме оффтопиков надо иметь что-то другое.
— Что?
— Не знаю. Будем думать.
— И куда ты собираешься это помещать? В службу знакомств для извращенцев?
— А почему бы и нет?
— Не думаю, что эти деятели отслеживают подобные новости.
— Почему же? Ты говорил, что в этой стране к гомосексуалистам относятся лояльно.
— Это верно, но, сам подумай, какова вероятность, что человек, допущенный к проекту, окажется педиком, ищущим новых знакомств? Нет, это не годится.
— А ты что можешь предложить?
— Если бы я знал… Может, будет достаточно завести почтовый адрес Уриэль@какой-нибудь сервер? Или зарегистрировать в аське пользователя по имени Уриэль?
— Думаешь, таких мало? Нет, надо привлечь внимание именно к тому, что наш Уриэль знает что-то такое, что не может знать никто, кроме него.
— Но как это сделать?
— Ну, например… можно посмотреть, какие форумы наиболее популярны в той стране, в которой сейчас находится Олорин, как она называется, Америка вроде?
— Нет, Америка — это континент.
— Разве? Не важно. Так вот, можно выбрать самые популярные форумы и дать в них несколько десятков объявлений от имени Уриэля. Сами объявления могут быть какими угодно, главное, чтобы каждое соответствовало тематике форума, чтобы их не отмоделировали.
— Неплохая идея, только не надо ограничиваться сайтами одной страны, иначе станет ясно, что Уриэль уже знает, где искать Олорина. И вообще, Уриэль возник в российском Интернете, значит, он должен искать Олорина именно там.
— Думаешь, иностранные разведки просматривают российский Интернет?
— А то нет! И еще одно: Уриэль должен искать не только Олорина, но и всех нас.
— Почему? Может, лучше наоборот — мы все дружно ищем Олорина?
— Нет, это не годится, хозяева Олорина наверняка знают, что мы в руках конкурирующей спецслужбы.
— Тогда они должны думать, что Уриэль тоже у них в руках.
— М-да… Надо у Макса спросить, почему он хочет использовать в качестве приманки именно Уриэля.
— Завтра спросим. А сейчас давай думать над текстами. Может, просто накидать оффтопиков вроде “Олорин, напиши мне по такому-то адресу. Уриэль”. А?
— Может, и так. Но кроме оффтопиков надо иметь что-то другое.
— Что?
— Не знаю. Будем думать.