***
Уроки, пропущенные Леоном, километры исписанных черновиков и не сделанное домашнее задание — все то время, которое обычные подростки тратили на зубрежку и подготовку к тестам, парень попросту не терял. Ему безумно нравилось программировать, искать уязвимости, разрабатывать сложные скрипты с нуля. Направление кибербезопасности стало его персональным убежищем, где он чувствовал себя как рыба в воде. В реальном мире Леон был тихим, незаметным тенью на задней парте, но в сети он превращался в совершенно другого человека — расчетливого, холодного и тотально контролирующего все вокруг. Ему нравилось иметь власть над чужими данными, следить за логами, анализировать чужие ошибки. Он никогда и никому не рассказывал об этом увлечении, ревностно охраняя свой цифровой мир от чужих глаз. И именно сейчас этот секретный навык должен был сработать на полную мощность. План мести зрел в голове сам собой, ведь Леон идеально знал слабости своей цели. Жизнь Эмз почти полностью состояла из социального маркетинга и блогерства — она буквально намертво связала свою личность с экраном смартфона. Ее виртуальный образ, количество лайков и просмотров были для нее важнее реального воздуха; ее практически невозможно было оттащить от телефона. Для Леона это была не просто раздражающая черта характера, а идеальная, сияющая брешь в ее защите. Самая уязвимая точка. Зачем пытаться ответить ей физически или вступать в глупые школьные разборки, если можно нанести хирургически точный удар прямо по ее цифровому сердцу? Леон собирался не просто проучить ее — он собирался полностью уничтожить ее идеальный сетевой мир, обрушив на нее цифровой кризис. Черный корпус ноутбука растворялся в густой темноте комнаты. Леон не любил беспорядок: он быстро убрал обрывки марлевой повязки и спрятал открытый флакон перекиси водорода. Что-то полетело в мусорку, остальное вернулось в шкаф. Очистив пространство, парень опустился на край кровати и притянул ноут к себе, устраивая его на бедрах. Леон протянул правую руку и открыл крышку. Пришлось зажмуриться — яркий свет экрана ударил по глазам. В темноте развернулось угольно-черное окно консоли Gentoo, ожидавшее ввода пароля. Левая, забинтованная рука неподвижно лежала на простыне, напоминая о себе тупой, пульсирующей болью. Пальцы правой руки застучали по клавишам. Леон вошел в систему, но вместо запуска вредоносных скриптов открыл браузер. С атакой можно повременить — сначала следовало осмотреться. Он вбил в поиск никнейм Эмз и через секунду уже листал ее профиль. Розовые тона, сотни бессмысленных селфи и бесконечный поток фальшивого позитива. Леон уже собирался открыть список ее друзей, чтобы отыскать там одно конкретное имя, но копаться в чужих подписках не пришлось. На самом верху стены красовался свежий, выложенный всего полчаса назад пост — ее очередное селфи, на котором она уже позировала вместе с Сэнди на фоне школы. Внутри у Леона что-то глухо оборвалось. — Вот же сука. Рана на ладони резко запульсировала, но он даже не обратил внимания. Просто снести ее профиль? Нет, это слишком дешево и просто, удовольствие на пару часов. Она не заслужила легкой цифровой смерти. Она должна была сама разрушить свою жизнь, своими руками. Ну или его руками, но от ее имени. Ледяное спокойствие окончательно вытеснило гнев. Леон захлопнул ноутбук, сунул его в рюкзак и поморщился, когда забинтованную руку прошило острой болью. В кармане штанов лежала флешка со свежим эксплойтом — скриптом, который использовал скрытую уязвимость в роутерах умного дома. Нулевка, так сказать. Накинув капюшон и глубже спрятав забинтованную ладонь в карман, Леон вышел на улицу. Пора было наведаться к ней в гости.***
Дневной шум и резко бьющие лучи солнца только раздражали. Леон не мешкал — он четко знал, куда идти, и шел длинными, уверенными шагами. Единственное, что сейчас приносило облегчение — редкие, освежающие потоки прохладного ветра. Парень не нервничал, прекрасно понимая, чем займется в ближайшее время и как это, по его мнению, подействует на отношение Сэнди к Эмз. На въезде в квартал Леон ступил на дорожку из темного клинкерного кирпича. По бокам высились раскидистые, густолиственные дубы, а в самом конце улицы угадывалось тупиковое кольцо. Он не впервые бывал здесь: они с Сэнди частенько гуляли по здешним улицам. Почти все дома в округе походили друг на друга, но один из них все же выделялся. Пройдя метров сорок, Леон остановился напротив него. Этот выделяющийся дом принадлежал Сэнди. Огражденный невысоким темно-желтым заборчиком, он выглядел по-особенному уютно. Ступени, ведущие к крыльцу, были аккуратно выложены красным кирпичом, а в палисаднике красовались ярко-оранжевые бархатцы, пахнущие медом. Мягко-зеленую крышу придерживали тонкие колонны цвета слоновой кости. Сквозь длинные прямоугольные окна Леон привык видеть теплый желтый свет, но на этот раз внутри было темно. Сэнди спал. Пройдя еще немного вперед, Леон остановился перед соседним участком. Коттедж Эмз по архитектуре мало отличался от дома Сэнди, но перепутать его с чужим было невозможно. На аккуратном крыльце громоздилась гора пустых картонных коробок из-под люксовой косметики, а объектив уличной купольной камеры был заботливо обклеен кастомным фиолетовым винилом. Ошибки быть не могло. Ее дом. Леон бесшумно скользнул за живую изгородь и пролез в узкий промежуток между глухой боковой стеной коттеджа и густыми декоративными кустами, росшими вдоль неё. Оказавшись в этой тесной зелёной нише, он прижался спиной к кирпичной кладке, полностью растворяясь в тени. Под ногами мягко проминалась влажная трава палисадника. Сердце глухо стучало в ушах. Чуть правее, на уровне его пояса, на самой стене висел серый пластиковый короб контроллера автополива, завязанный на общую проводную сеть дома. Парень достал небольшой нож из рюкзака здоровой рукой, вогнал лезвие в щель крышки щитка и надавил, помогая себе забинтованной ладонью. Свежий порез тут же отозвался ослепляющей, горячей вспышкой боли. Леон судорожно выдохнул сквозь зубы, на лбу выступила испарина, а пластиковый замок с предательским, резким щелчком отлетел в сторону. В знойной тишине квартала этот звук показался выстрелом. Леон замер, не смея пошевелиться. И вовремя: со стороны веранды донесся мягкий шуршащий звук сдвигающейся стеклянной двери. Эмз вышла на улицу. Парень похолодел, заметив, как ее длинная тень медленно ползет по идеальному газону прямо в его сторону. Она шла не глядя по сторонам — все ее внимание было поглощено экраном смартфона, где крутилась какая-то анимация. Кусты неплохо скрывали Леона, но если она сделает еще пару шагов и заглянет за угол дома, то упрется в него лицом к лицу. Бежать из этой ловушки было некуда. Не раздумывая ни секунды, Леон резко выдернул чеку своего внутреннего навыка. Один глубокий вдох — и его силуэт мгновенно окутался плотными клубами сизого дыма, заполнившего всё пространство между ветками и стеной, полностью растворяя фигуру парня в воздухе. Сердце готово было пробить ребра. Эмз прошла буквально в полуметре от него, обдав резким запахом сладких духов. Она остановилась прямо напротив вскрытого щитка, недовольно фыркнула на отвалившуюся крышку, сделала быстрое фото для сторис и, потеряв интерес, развернулась обратно к дому. Едва стеклянная дверь за ней закрылась, невидимость спала, оставив Леона с дикой слабостью в коленях. Мешкать было нельзя — он опустился на колени прямо в траву под кустами, быстро воткнул кабель PLC-адаптера в сервисный порт контроллера и рванул на себя крышку ноутбука, устроив его на земле перед собой. Экран ноутбука коротко мигнул, когда скрипт завершил сканирование сетевых портов. Леон бегло просмотрел выданные строки: на дряхлом китайском роутере, управлявшем всем домом, висел древний, ни разу не обновлявшийся веб-интерфейс, а в сетевом стеке сияла критическая уязвимость переполнения буфера. Парень не тратил времени на ручной ввод команд. Он запустил заранее написанный эксплойт. По экрану терминала лавиной побежали строки отладочного лога. Эксплойт отправил на роутер специально сформированный пакет данных, который мгновенно забил память устройства мусором, ломая логику его процессора. В следующую секунду защита роутера рухнула, и программа Леона перехватила права суперпользователя. Роутер окончательно подчинился ему, превратившись из защитника дома в послушного шпиона. Теперь парень полностью контролировал локальный трафик, видя каждое устройство в сети, но копаться в зашифрованных TLS-пакетах самой соцсети было бесполезно. Леон пошёл глубже. Дождавшись, пока смартфон Эмз отправит автоматический фоновый запрос, например, на обновление системы, Леон перехватил его и отправил обратно скрытый сетевой эксплойт. Секунда... вторая... Есть. Скрипт внедрился в систему и присосался прямо к оперативной памяти запущенного приложения соцсети. Началась трассировка. Теперь шифрование интернета Леона не волновало. Его софт читал данные прямо из памяти телефона, за секунду до того, как они отправлялись в сеть, или сразу после того, как устройство расшифровывало их для экрана. В окне терминала, среди системного мусора и кусков JSON-структур, Леон выловил то, ради чего рисковал: длинную строчку актуального сессионного токена, висевшую в открытом виде в кэше процесса. Парень хищно улыбнулся и записал сдампленный кусок памяти в файл на ноутбуке. Дело сделано. Адреналин, до этого заставлявший игнорировать боль в руке, начал стремительно спадать, уступая место свинцовой усталости. Парень потянулся к щитку и резко выдернул PLC-адаптер из сервисного порта. Это стало ошибкой. Лишенный поддержки эксплойта, забитый мусором процессор роутера окончательно захлебнулся и ушел в экстренную перезагрузку. Нарушенная логика умного дома тут же дала жесткий сбой. Буквально в метре от Леона из безупречного газона с металлическим щелчком и шипением выскочили скрытые форсунки. Не успел он даже выругаться, как его с ног до головы окатило мощным, ледяным веером технической воды. Леон инстинктивно прижал ноутбук к груди, спасая технику, и зажмурился. Вода с шумом лупила по листьям туи, мгновенно пропитывая толстовку и насквозь смачивая бинт на раненой ладони. Руку обожгло новой порцией боли, но соображать нужно было быстро: автоматика сошла с ума, и веерные струи автополива теперь шумно гуляли по всему периметру участка. Прятаться здесь больше не имело смысла. Пригибаясь и хлюпая мокрыми кедами, Леон рванулся прочь из сада Эмз. Он перемахнул через изгородь и, тяжело дыша, упал на ту самую пустующую хай-тек скамью у дороги, скрытую в тени раскидистого дуба. Металлический антрацитовый каркас был холодным, а ровные деревянные рейки сиденья мгновенно потемнели от стекающей с его толстовки воды. Леон огляделся — улица была пуста. Дрожащими от холода пальцами он спрятал мокрый ноут в рюкзак. Теперь — бегом домой, пока не приехала охрана.***
Дома было тепло и тихо. Леон запер дверь своей комнаты на защелку, скинул на пол потяжелевшую от воды толстовку и первым делом бросился к столу — проверять, выжил ли ноутбук. Экран зажегся, подмигнув строчками кода. Леон облегченно выдохнул. Самая опасная часть плана осталась позади, но впереди был целый вечер работы. Забинтованная рука ныла, но парень, не обращая на это внимания, открыл тот самый текстовый файл с вытянутым токеном Эмз. Банка энергетика отозвалась глухим пшиком. Леон сделал глоток приторного, но бодрящего напитка. Парень кликнул мышкой, открывая браузер. Минималистичное темное окно развернулось на весь экран. Леон краем глаза проверил, включено ли расширение, подменяющее информацию об устройстве. Все ок, можно начинать. Леон откинулся на спинку кресла, задумчиво вращая в пальцах банку с энергетиком. Обычный слив паролей или банальный спам матами от лица Эмз отпадали сразу — слишком глупо, слишком очевидно. Ей просто посочувстввуют. Месть должна быть тонкой, бьющей в самое больное место, но при этом выглядеть так, будто Эмз сама, случайно или по глупости, показала свое истинное лицо. Взгляд парня зацепился за открытый текстовый файл, где тускло мерцала длинная строчка украденного токена. В его голове план выстроился сам собой, идеальный и циничный. Он решил не устраивать публичных скандалов на миллионную аудиторию её блога. Вместо этого Леон задумал разыграть карту «приватности». Эмз часто использовала функцию «близкие друзья» для узкого круга лиц. Леон планировал загрузить туда свежее голосовое сообщение, которое Эмз записала своей подруге буквально сегодня утром, хвастаясь первыми днями знакомства с Сэнди. Вот только в этом аудио не было никакой романтики. Эмз цинично и со смехом наговаривала, что этот сонный парень — просто идельный повод попиариться, из которого она выжмет максимум лайков, пока он ей не надоест. Леон собирался преподнести это так, словно Эмз по невнимательности выложила эту приватную запись в историю для близких на пару минут, а потом в панике удалила. Но Сэнди успеет это увидеть. Любой бы понял, что его просто используют как живой аксессуар. Леон был уверен: после такого Сэнди, несмотря на всю свою мягкость, мгновенно прекратит это фальшивое общение. Пальцы Леона быстро забегали по клавиатуре, вбивая токен в заголовки запросов. Скрипт сработал без осечек. Программа выдала короткое "Complete", подтверждая, что публикация ушла в сеть. Леон сделал ещё один глоток энергетика, чувствуя, как внутри разливается ядовитое торжество. Дело сделано. Фальшивке, которая лишила его лучшего друга, пришел конец.***
Утро в школе встретило Леона удушливой духотой коридоров и звоном в ушах. Он почти не спал, то и дело обновляя страницу в браузере, карауля реакцию. Забинтованная ладонь противно пульсировала под свежей повязкой, но Леон упрямо искал глазами фиолетовые волосы Эмз. Он ждал драмы. Ждал, что сейчас всё рухнет. И она появились. Эмз, бледнее чем обычно, на взводе, со слезами на глазах, буквально летела к Сэнди, державшему в руках стаканчик с кофе. Леон замер у стены, прячась за чужими спинами, и затаил дыхание. Он видел, как она в панике сует Сэнди под нос свой телефон, как быстро-быстро оправдывается, размахивая руками. Леон сжал кулаки, предвкушая финал. Но финала не случилось. Сэнди выслушал ее, даже не изменившись в лице. Эмз взволнованно жестикулировала и нервно ухватилась за его рукав, а парень лишь сонно улыбнулся и неловко, чисто по-дружески приобнял ее за плечо. До Леона долетели лишь обрывки фраз: «...да ладно, ты же блогер... я знаю про просмотры... главное, что мы общаемся, мне нормально...» Эти слова ударили Леона сильнее, чем ледяной веер автополива. Весь его дневной риск, ледяная вода из автополива, содранная кожа на ладони — все это оказалось бесполезным. Сэнди было плевать. Он был настолько неконфликтным и понимающим, что эта циничная аудиозапись его даже не задела. В груди Леона вспыхнула и глухо зарычала слепая, чистая ярость. Он развернулся и быстрым шагом направился к лестнице, чтобы не видеть их объятий. Ему нужно было остаться одному. — А я видел, как ты вчера промок у ее дома. Тихий, монотонный голос раздался над самым ухом так внезапно, что Леон вздрогнул всем телом. Он и не заметил, как забрел в тупиковый коридор у старого актового зала. Перед ним стоял Гас. Странный, бледный мальчишка из младших классов, который вечно бродил сам по себе. В его тонких пальцах подергивалась ниточка от бледного воздушного шарика. Огромные, пустые глаза Гаса смотрели на Леона снизу вверх — без страха, без осуждения. С пугающим спокойствием. — И провод твой видел. И как ты в кустах прятался, — так же тихо продолжил мальчик, слегка наклонив голову. — Сэнди мой друг. Я не хочу, чтобы ты его обманывал. Если ты сам ему все не расскажешь... до вечера я ему все расскажу. Леон почувствовал, как внутри все обледенело. Сердце сделало бешеный кувырок и застряло где-то в горле. — Че ты хочешь? — процедил Леон, чувствуя, как рука инстикнтивно дергается к карману толстовки. Гас отпустил шарик чуть выше, и тот глухо стукнулся о побеленный потолок. — Здесь слишком шумно, — тихо ответил мальчик, покосившись на проходящих мимо старшеклассников. — И Сэнди может услышать. А я не хочу говорить за его спиной. Гас снова повернул к Леону свои огромные, немигающие глаза. — После уроков я буду на старой заброшке, на окраине. Знаешь же ее? Приходи туда один. Ты возьмёшь телефон, сам напишешь Сэнди всю правду про Эмз и покажешь мне отправленное сообщение. Сэнди добрый, он тебя простит. Но если ты не придёшь или не напишешь… тогда вечером я сам к нему зайду и всё расскажу. Мальчик развернулся и пошел прочь по коридору, тихо напевая какую-то детскую мелодию. А Леон остался стоять в полутемном углу, слушая, как бешено стучит кровь в висках. Назад дороги не было — если он не заставит этого мальчишку замолчать, вся его жизнь и все, ради чего он дышал, превратится в пепел.