Darkoder писал по‑английски, но Кирилл прекрасно понимал его без помощи переводчика. Он ответил на приветствие. Спустя короткое время окно чата вновь ожило: «Привет. Ты один или с кем‑то?»
Кирилл задержал пальцы над клавиатурой. Вопрос был прямолинейный, но важный: он хорошо понимал причину беспокойства своего собеседника. «Один», — ответил он.
Ответ пришел почти мгновенно: «Хорошо. Если хочешь узнать, как обойти авторизацию в MXP, мне нужно удостовериться, что ты действительно понимаешь, о чем речь. Какие инструменты ты использовал для обхода на стадии хендшейка?»
Кирилл прищурился. Это был своеобразный тест. Возможно, Darkoder просто проверял его компетенцию, а может быть, пытался выяснить, насколько глубоко Кирилл продвинулся в изучении его программы. Он начал печатать ответ, мысленно прокручивая все, что успел вычитать за последние сутки:
«У MXP свой протокол c собственным механизмом управления ключами, — набрал на клавиатуре он. — Для каждого нового подключения сервер генерирует одноразовые токены и проверяет идентификатор клиента. Еще есть механизм ротации ключей, который активируется через заданные промежутки времени или по событию. Я протестировал протокол на нестандартные параметры фаззером, но ничего не обнаружил. Еще попытался найти шаблоны в работе хендшейка, перехватив сниффером пакеты, но у меня тоже ничего не вышло».
Мигающий курсор словно задумался на мгновение. Кирилл пытался не нервничать, но ощущение, что каждый напечатанный им символ вдумчиво взвешивается и оценивается, становилось невыносимым. Спустя несколько минут экран снова ожил:
«Это не совсем то, чего я ожидал, но, похоже, ты действительно в теме. Ладно. Для начала скажи, где ты отыскал мой почтовый адрес?»
Темнить смысла не было: Darkoder легко мог раскусить обман, а информация была нужна Кириллу как воздух.
«Я нашел на одном из серверов архив старого форума. Там была ветка, в которую ты когда‑то писал».
На этот раз пауза тянулась намного дольше.
«Удивительно, что это оказался русский сервер. Я разместил несколько таких архивов в разных локациях — в России, Германии, Штатах, Канаде и ЮАР. Рано или поздно кто‑то, разбирающийся во взломе, должен был добраться до этих машин и скачать файл. Ты оказался первым. Что ж, мои поздравления. Shadownet был местом, где собирались люди, которым небезразлично будущее. Сегодня от этой группы единомышленников никого не осталось. Думаю, тебе тоже не все равно, раз ты сумел найти меня».
В голове крутились десятки вопросов, и Кирилл не знал, какой из них задать первым. Но окно чата снова ожило, опередив его:
«Shadownet — это место, которое мы создавали годами. Когда‑то на этом форуме обсуждали идеи, разрабатывали инструменты и планировали операции. Мы верили, что технологии могут быть оружием для борьбы с несправедливостью. Эти архивы — наше наследие. Они содержат код, инструкции, переписку. Все, что мы когда‑либо делали, чтобы противостоять корпорациям, которые угрожают свободе».
«Что стало с Darkcoders?» — Кирилл не смог удержаться от этого вопроса, слишком велико было искушение получить ответ из первых рук.
«Несколько лет назад началась охота. Одни просто исчезали, другие попали за решетку. Я попытался сохранить то, что осталось».
«А если бы на архивы наткнулся кто‑то другой? Не такой, как ты?» — поинтересовался Кирилл.
«Свободу нельзя держать в клетке. Если мы не можем продолжать борьбу, ее должны подхватить другие. Зачем ты ищешь способы взлома MXP?»
Кирилл откинулся в кресле, обдумывая ответ. В принципе, он ничего не теряет, даже если скажет правду.
«Человек по имени Лиам пытается взломать меня. Я обнаружил один из принадлежащих ему C&C».
Ответ появился почти без паузы:
«Лиам был когда‑то одним из нас. Теперь он на другой стороне. Из‑за него многие из Darkcoders лишились свободы».
Окно чата некоторое время не подавало признаков жизни, а затем в нем появились новые строчки:
«В алгоритме генерации токенов и проверки идентификации есть ошибка. Я скину тебе файл с патчем, который написал для своих собственных инсталляций. Посмотришь диффом различия — найдешь уязвимость в генераторе ключей».
«Спасибо, Маркус», — набрал в ответ Кирилл.
«Удачи, Кикс. Ты сам решишь, что делать с тем, что нашел».
Его собеседник покинул чат, а спустя мгновение в почтовый ящик Кирилла упало новое письмо. Не теряя ни минуты, он открыл вложенный в сообщение файл и принялся жадно изучать его содержимое.
***
Кирилл нырнул в код, как в омут, и это помогло на время заглушить застарелую горечь и боль от расставания с Трикси, хотя бы ненадолго отвлечься от навалившихся проблем. Сложные алгоритмы вытесняли из головы обрывки воспоминаний о ее голосе, запахе, улыбке, которые вспыхивали, будто искры потухшего костра, в самый неподходящий момент. Он злился на себя за эту слабость, за то, что ничего не мог с собой поделать. «Ты же хакер, — с горечью подумал он. — Найди обходной путь. Или хотя бы удали эти мысли, как ненужные файлы». Однако человеческий разум оказался более сложной системой, чем любая из тех, с которыми он сталкивался до сих пор. Разум не желал подчиняться холодной логике.
В минувшие дни он несколько раз набирал ее номер, но Алла не брала трубку. Писал СМС и сообщения в мессенджерах, но все они так и остались без ответа. Кирилл понимал: все, что было между ним и Трикси, навсегда осталось в прошлом, но где‑то в глубине души еще теплилась надежда, что все можно вернуть.
Телефонный звонок разорвал тишину, как лист бумаги. Не отрывая воспаленные глаза от экрана, Кирилл прижал трубку к уху плечом.
— Кирюша, здравствуй, — загудел динамик знакомым голосом. — Как там мама? У вас все в порядке? Я с утра ей звоню, никак не могу дозвониться, она трубку не берет.
— Здравствуйте, тетя Таня, — отозвался Киря, — вот только что собирался вам набрать. Ей сегодня операцию сделали, обещали, что в палату завтра переведут.
— Уже сделали? И как все прошло?
— Все хорошо, тетя Таня, врачи говорят, без осложнений.
— Ой, как здорово, Кирюша! — с облегчением выдохнула соседка. — А я так волновалась, прямо извелась вся…
Кирилл не стал рассказывать маминой подруге о том, что сообщил ему по телефону доктор: соединить фрагменты кишечника не удалось, и наружу пришлось вывести стому. Теперь отходы организма будут собираться в сменный мешок, который матери предстоит научиться менять самостоятельно. Если повезет, где‑нибудь через год состоится вторая операция, и доктора попытаются собрать вместе то, что сейчас им сделать не удалось…
— Позвоните ей завтра, теть Тань, — успокаивающе сказал Кирилл, — ей уже должно стать лучше, и она сможет с вами поговорить. Сегодня у мамы телефон врачи отобрали и никого к ней не пускают.
Продолжение доступно только участникам
Материалы из последних выпусков становятся доступны по отдельности только через два месяца после публикации. Чтобы продолжить чтение, необходимо стать участником сообщества «Xakep.ru».
Присоединяйся к сообществу «Xakep.ru»!
Членство в сообществе в течение указанного срока откроет тебе доступ ко ВСЕМ материалам «Хакера», позволит скачивать выпуски в PDF, отключит рекламу на сайте и увеличит личную накопительную скидку! Подробнее