Приходит к нам вчера в ИТ отдел грустный коллега с мольбой, спасити-памагити, вырвите меня из цепких лап мошейников! Я в этом ничего не понимаю, но понимаю, что меня взломали. Ну, то есть ему уже знакомые сообщили, что он и в ВК, и в МАХе просил у них одолжить, и несколько раз ему уже звонили с вопросом «А Вы точно желаете оформить этот автокредит?» (у него оформлен запрет на кредиты, но оказывается, почему-то, на автокредиты этот запрет не работает). У него не была включена двухфакторная авторизация в ВК, а в МАХе, вообще, нет авторизации по паролю и, соответственно, его не поменять. И вот этот горемыка повторяет «Что же мне теперь делать!?».
Стали выяснять, как же он докатился до такой жизни. С его слов и того, что он смог вспомнить: в МАХе ему написала какая-то старая знакомая с просьбой проголосовать за неё в неком конкурсе красоты ну и дальше вы понимаете, что было… Точно не удалось выяснить, но как я понял его перекинуло на фишинговый сайт ВК, где он пытался авторизоваться и в какой-то момент у него был запрошен некий код, который он благополучно ввёл, куда не надо было его вводить.
В общем, на его планшете в ВК пароль ему поменяли, двухфакторную авторизацию установили, только SMS ему не приходят, а всё идёт через богомерзкий МАХ и я так понимаю, у этого горемыки уже нет шансов как-то повлиять на этот факт. Авторизацию через приложение не стали настраивать т.к. у него Huawei а в его магазине приложений по определению не может быть Google Authenticator, да и на его устройствах учётки зарегистрированы на email бывшей и если по хорошему со всем этим разбираться и объяснять почему получилось вот так, как управляться с авторизацией через стороннее аутентификаториционное приложение, как не забыть его переустановить на новый телефон и запомнить от него пароль…
И вот сегодня пишет мне менеджер одной дружественной ИТ конторы, с которым я общался один раз пару лет назад с такой вот просьбой и сразу мне вспомнился этот горемыка, повторяющий «Что же мне теперь делать!?» который ушёл от нас через час с назубок выученным уроком и правилом информационной безопасности!
Здравствуйте, такая проблема, кто-нибудь сталкивался с тем чтобы запретка взломала вас? А вот меня взломала, при чем с оригинального сайта с гихаба от оригинального разработчика. В последнее время начал замечать что телеграмм из аккаунта выбрасывает, сначала не придавал этому значения, а потом когда я посмотрел увидел что кто-то зашёл на мой аккаунт и выбросил меня, какой-то левый адрес и так было много раз , я не понимал что происходит хотя у меня стояли все защиты и ключ доступа и обычный пароль но умудрялись взламывать. Тоже самое с дискордом вижу что меня заблокировали за рассыслку спам сообщений хотя я не рассылал и тоже самое аккаунт был сверх защищен. И ещё, несколько дней назад замечаю что у меня в стиме 0 друзей у двух аккаунтов, хотя там было больше 40 в каждом, как эту аномалию объяснить если не взлом? Ладно бы сервера легли но эти 0 у меня до сих пор. Как я понял действует выборочно и поэтому нет особо об этом огласки. При всем этом я не скачивал никаких ПО сторонних только запретку с оригинального сайта разработчика. Flowseal/zapre
25 декабря меня выкинуло когда я переписывался с покупателем в приложении АВИТо, при попытке зайти обратно в свой проверенный по документам аккаунт, в котором я с 2023г.(Имею кучу отзывов) внезапно оказалось, что его больше не существует. При попытке восстановить его я получаю "Профиля с этим телефоном не существует. Проверьте, нет ли ошибки, или введите почту", при неоднократных попытках достучаться до "Чата Поддержки" Авито, мне говорят, что сработал безопасный вход и просят прислать им чеки, что мною естественно тут же было сделано, но ответ был, что ЯКОБЫ восстановить мой аккаунт невозможно🤣 По факту шлют на ТРИ Советских! Мой аккаунт взломали, продали, а возможно его заблокировало просто так Само АВИТо, как многие люди жалуются. Самое печальное это то, что он был подтверждён с помощью моего паспорта. Господа, делайте выводы, где и сколько они просматривают ваши конфиденциальные........ P.S скрины ответов "тех поддержки Авито" прикрепил 🤣 Всех с наступающим)
Моя очередная версия торгового робота сливала депозит за депозитом. Я видел логику и выстраивал алгоритмы на основе скользящих средних, RSI, объёмов, но рынок жил своей жизнью. В отчаянии я снова стукнулся к Сойеру.
— Ты мыслишь как розничный трейдер, — сказал он как-то раз, когда я в очередной раз пожаловался на ложный пробой. — Ты смотришь на свечи, которые уже стали историей. Настоящая игра ведётся в стакане. Смотри.
Он прислал мне запись стакана заявок за один день и я увидел это. Там были настоящие танцы призраков.
— Видишь эти крупные заявки на покупку на уровне сто пятьдесят? — его голос в наушниках был спокоен. — Их нет. Это «стены» — фантомные ордера, которые выставляются, чтобы создать иллюзию поддержки. Крупный игрок хочет продать, поэтому он пугает мелких рыбок ложным сопротивлением, заставляя их выставлять свои ордера ниже, а потом сметает их одной продажей. Это спуфинг или игра в кошки-мышки с рыночной глубиной.
Мой мир только что перевернулся. Я понял, что всё, чем я занимался до этого, было детским лепетом. Вместо того чтобы предсказывать рынок, нужно было его создавать и дирижировать им. Я тут же переписал своего торгового робота с нуля. Теперь его главной задачей был не анализ истории, а чтение стакана в реальном времени и попытка предугадать намерения крупных игроков. Я научил его видеть эти «стены» и пытаться ставить свои ордера на долю секунды раньше, когда крупный игрок только начинал свою игру, но этого оказалось мало. Даже самый совершенный алгоритм был беспомощен, когда дело доходило до скорости.
— У тебя латентность как у спящего удава, — безжалостно констатировал Сойер, глядя на логи моих сделок. — Пока твой ордер ползёт до биржи через твоего розничного брокера, высокочастотные роботы успевают сделать десять тысяч операций. Ты всегда будешь в хвосте.
— Что делать? — в голосе моём слышалась уже не злость, а усталая покорности перед лицом очевидного.
— Нужен прямой низколатентный доступ к биржевым серверам. Надо разместить наш сервер в одном дата-центре с биржей и нужна координированная работа. Один робот — это одинокий солдат. Десять роботов, работающих синхронно по одному алгоритму — это уже армия, способная создавать микротренды и на них зарабатывать.
Мы оба замолчали, обдумывая масштаб работы. Нужен был не только совершенный код, но и настоящая инфраструктура. Война требовала не только талантливых командиров, но и первоклассного вооружения.
— У меня есть связи, — медленно произнёс Сойер. — Я могу решить вопрос с колированием в Чикаго для начала, через подставную фирму. И надо найти ещё несколько крупных игроков, которым мы сможем доверять.
Я посмотрел на своего торгового робота на экране и улыбнулся.
— Давай сделаем это!
В ту ночь я смотрел на мерцающие свечи на графике и видел уже не случайные колебания, а поле битвы. Нам предстояло хакнуть этот мир!
***
На следующий день я решил поговорить с Периметром, чтобы привлечь его в наш с Сойером проект.
— Привет, мы с Сойером разработали софт для высокочастотной торговли. Нам нужна поддержка и команда для серьёзных дел в крипте. Ты как?
— Ага, дикий запад, — ответил Периметр. — Идея огонь! Можно стать легендой, которую все боятся, но никто не видел.
— Именно, — радостно ответил я.
— Добро! — пришёл короткий ответ от Периметра.
— Пока у нас на примете две цели. Первая биткоин на BitMEX, а вторая эфир на Kraken. Мы хотим создать каскад заявок и не просто сдвинуть цену, а серьёзно её обвалить, чтобы хорошо на этом заработать.
— Очень амбициозно и красиво. — включился Периметр. — BitMEX со своим механизмом ликвидаций… это готовая пороховая бочка, а Kraken… их система иногда задумывается при экстремальной нагрузке. С огромным удовольствием помогу. Это даже не работа, а настоящее искусство!
— Нам нужен человек, который может создать для нас «ключ». Нужен алгоритм, который сможет координировать усилия и создать несколько сотен симулякров в виде ложных кошельков и торговых аккаунтов, чтобы рассеять след.
— Если надо, подключу ещё людей. — ответил Периметр. — Я создам для вас «Гидру». Одна голова атакует BitMEX, вторая Kraken, а третья… третья будет отвлекать, создавая информационный шум в крипто-чатах и социальных сетях. Слухи о взломе, о проблемах с сетью… Маленькие искры для большого пожара.
Мы арендовали сервера в нескольких разных юрисдикциях и запустили там свой софт.
— Гидра развёрнута. Все головы активны. Симулякры готовы. Жду команды, — отрапортовал Периметр.
— Начинаем, — скомандовал я.
Информационная волна пошла. В заранее созданных Телеграм каналах и анонимных аккаунтах в социальных сетях появились сообщения о «критической уязвимости» в сети Ethereum. Никаких доказательств не было. Только шёпот. В криптомире этого достаточно.
— Вижу первую реакцию. Мелкие рыбы начинают паниковать, — доложил Сойер.
— Запускаем первую голову Гидры на BitMEX.
Периметр создал не просто торгового робота, а настоящее произведение инженерного искусства. Алгоритм не только выставлял ордера, но и имитировал поведение тысяч паникующих розничных трейдеров. Шли небольшие каскадные продажи, учащающиеся с каждым моментом. Это создавало отличный фон для паники.
После этого мы запустили наш Молот. Так мы с Сойером назвали нашего усовершенствованного бота, который инициировал каскадный обвал. На BitMEX, где жадные трейдеры использовали огромные плечи, наш Молот сработал как атомная бомба. Он выставлял серию ордеров на продажу, которые на несколько секунд поглощали всю видимую ликвидность на пять процентов ниже текущей цены и… цена проваливалась. Срабатывали первые ликвидации длинных позиций, а их принудительная продажа толкала цену ещё ниже. Каскад заявок был запущен и график превратился в водопад. Это было великолепно!
— Переключаемся на Kraken, — скомандовал я.
Пока BitMEX очухивался от обвала, Гидра перенесла всю свою мощь на Kraken. Там была применена та же тактика, но более жёстко. Мы знали, что у Kraken есть одна маленькая уязвимость. При экстремальной нагрузке, их движок иногда на секунду зависал, не обновляя стакан. В момент пиковой нагрузки мы обрушили на стакан лавину ордеров на продажу. Тысячи симулякров, координируемых Периметром, запустили лавину. Система Kraken не выдержала и стакан замер на несколько секунд. Когда он обновился, то цена была уже на пятьдесят процентов ниже. Да, мы только что обвалили эфир на пятьдесят процентов. Мы сделали это!
— Мы сделали это, бро, — сообщил радостным голосом Сойер. — Завтра я тебе переведу твою долю. Я сейчас в баре, отмечаю! Уааааа!
— Я представил бар и толпу радостных людей, которых угощает выпивкой Сойер. Это была победа!
***
На следующий день я списался с Алисой Врей.
— Привет! Мы разработали по-настоящему уникальный софт и обвалили крипторынки. Если есть серьёзные проекты и нужна наша помощь, то мы готовы!
Алиса была, как всегда, предельно краткой.
— Можете продемонстрировать? Например, обвалить золото, нефть или акции какой-нибудь крупной компании?
— Да, конечно. Как только свяжусь с Сойером и Периметром, мы организуем для тебя показательный спектакль.
Периметр был на связи, а вот Сойера пришлось долго дозваниваться.
— Вчера отлично поработали, — написал я в общий чат. — Нам нужно поиграть мышцами и показать Алисе наши возможности. Можем мы обвалить золото, нефть или акции какой-то крупной компании с помощью нашей Гидры?
— Можем попробовать, — ответил Периметр.
— Теоретически да, — ответил Сойер.
— Ок. Начинаем. Разведка боем, — скомандовал я.
С золотом мы не могли действовать как с криптой. Здесь спамом фантомных ордеров ничего не добьёшься. Золото это миллиардный рынок, где балом правят банки. Наша трёхглавая Гидра, должна была их обмануть.
— Запускаю первую голову, — откликнулся Периметр. — Имитирую панические продажи среднего хедж-фонда. Точечно, в моменты низкой ликвидности.
На графике появилась первая серия мелких, но частых красных свечей. Рынок зевнул, почти не заметив. Это была не атака, а лишь небольшая проверка рефлексов.
— Вторая голова активна. Анализирую реакцию крупных игроков, — подключился Сойер. — Они… игнорируют. Нужно больше давления.
— Запускаю Молот на половину мощности.
Сойер выставил несколько крупных ордеров на продажу. Они были настоящими, «на всю котлету», как любят говорить трейдеры. Гидра постоянно их двигала, не давая им быть исполненными, одновременно создавая иллюзию постоянного присутствия крупного продавца. Это был спуфинг, но достаточно изящный.
Рынок золота впервые зашевелился как спящий дракон, почувствовавший укол булавки. Цена дрогнула, поползла вниз на пол процента, потом ещё на долю процента.
— Они видят нас, но не верят, — прошептал Сойер. — Их алгоритмы не могут классифицировать нашу активность. Она слишком… человекоподобна и в то же время неестественна.
В специализированных чатах для трейдеров металлов появились анонимные сообщения:
— Китай фиксирует прибыль, ФРС может ужесточить риторику.
Это была ложь, смешанная с полуправдой. Мы пошли на риск. Я запустил серию агрессивных рыночных ордеров на продажу небольшими лотами, но с частотой, недоступной человеку.
График золота немного накренился. Минус полтора процента, потом два. На экранах новостей замигали красные предупреждения. Мы почувствовали как рынок напрягся.
— Они начинают паниковать! Вижу ответные продажи! — голос Сойера дрогнул от возбуждения.
Мы ушли в цене на минус три процента. Это было всё, что мы смогли выжать. Рынок золота оказался невероятно упругим. Его глубина и ликвидность поглотили нашу атаку, не дав ей перерасти в катастрофу.
— Впечатляет! — написала в чат Алиса Врей. — Для золота это отличный результат! Как насчёт акций?
— Сойер, Периметр, вальнём Гвиттер?
— Давай попробуем! — ответил Периметр.
— Не, ну надо, так надо, — написал Сойер.
Здесь была иная задача. Цена Гвиттер определяется истерикой, надеждой и страхом. Нам нужно было не сломать стакан, а сломать повестку. Мы задействовали все наши ресурсы. Периметр запустил бота, который начал наводнять соцсети и финансовые форумы паническими сообщениями: «Обнаружена черная дыра в долгах Гвиттер!», «Ключевые рекламодатели уходят!»
Параллельно, на рынке, наш софт начал сложную игру. Мы выставляли крупные лимитные ордера на продажу, создавая видимость «стены продавцов». В тот же момент, наши алгоритмы агрессивно снимали ликвидность с бидов маленькими, но невероятно частыми сделками, буквально выдёргивая из-под рынка опору. Я координировал волны, следя, чтобы информационная и торговая атаки синхронизировались пиками.
Это был настоящий цифровой шторм. Акции начинали метаться как раненое животное. Мы воссоздали ту самую атмосферу безысходности и неопределённости, когда никто не понимал, что происходит и всё неслись в пропасть.
В какой-то момент я оторвался от экранов и посмотрел на реальный Гвиттер. Там был настоящий хаос. Наши фейковые заголовки подхватывали настоящие люди и начиналась настоящая паника. Мы не просто манипулировали ценой, но и реальностью, созданной этим активом. Когда мы закончили, в чате повисла тишина. Затем пришло сообщение от Алисы:
— Впечатляет! Готовимся к серьёзным делам! Предлагаю пощипать Ситигруп!
К штурму Ситигруп долго готовиться не пришлось. Наш софт и стратегия обвалов была уже отточена для многих активов, поэтому мы лишь немного адаптировали нашу стратегию работы. Сегодняшняя операция стала высшей математикой финансового террора.
Первая голова нашей Гидры быстро проанализировала настроения в новостных лентах и соцсетях, находя хрупкие точки. Вторая тут-же идентифицировала и имитировала торговые сигналы крупных игроков. Третья создавала в стакане не просто дисбаланс, а катастрофический вакуум ликвидности.
— Запускаю первую голову. — доложил Периметр. — Генерирую негативный информационный фон на основе ключевых слов: «рецессия», «дефолт», «пузырь». Распространяю через каналы ботов ретрансляторов.
Это была психологическая подготовка поля боя. Мы не ждали плохих новостей, а сами создавали их. Небольшая ложь, запущенная в нужный момент, становилась главным триггером паники.
— Вторая голова Гидры активна. Зафиксирован крупный ордер Ситигруп на продажу. Имитирую его сигнатуру. Усиливаю в несколько раз, — написал Сойер в чат.
Вот оно. Мы надели маску гиганта. Алгоритмы других банков, видя, что Сити начинает массированную продажу, решили, что тот знает что-то, чего не знают они сами. В результате, многие начали продавать следом, усиливая нашу иллюзию.
— Запускаем Молот на полную. — скомандовал я.
Целью его работы было не просто сбить цену, а ударить по стоп-ордерам. Стоп-лоссы — это автоматические ордера на продажу, которые активируются, когда цена падает до определенного уровня. Это настоящие мины на поле боя и мы знали, где они были заложены. Цена тут же провалилась на первый уровень стоп-ордеров и началась цепная реакция. Сработали первые стопы. Их продажа толкнула цену ещё ниже, к следующему уровню стоп-ордеров. Затем к следующему.
— Каскад начался, — констатировал Периметр и в его голосе слышалось что-то вроде холодного восхищения.
Мы больше не управляли процессом. Рынок пожирал сам себя. Алгоритмы, запрограммированные на минимизацию потерь, начинали лихорадочно продавать, усугубляя обвал. Вакуум. Вот что мы создали. На несколько долгих минут покупатели исчезли полностью. Цены на акции европейских гигантов упали сначала на восемь, потом десять, а потом и на пятнадцать процентов. Объёмы торгов зашкаливали.
— Биржа приостанавливает торги на пять минут, — написал Сойер.
Слишком поздно. Лавину было уже не остановить. Когда торги возобновятся, паника лишь усилится. «Что они знают? Почему остановили?» — именно на эту мысль мы и рассчитывали.
Через двадцать минут всё было кончено. Автоматические системы откупили падение, рынок отыграл половину потерь. На экранах новостей были заголовки о «техническом сбое» и «ошибочном алгоритме».
— Отличная работа, — написала Алиса Врей в наш общий чат.
Это была безусловная феноменальная победа! Мы стали настоящими архитекторами хаоса в финансах.
С довольной улыбкой на лице, я откинулся на спинку стула. Но что-то не давало мне почувствовать себя по настоящему счастливым человеком. Наверное, это моё унижение в полицейском участке Бомбея не давало мне покоя. Из-за этого я вынужден был уехать со своей родины и скитаться по миру. Позорище! Какая же это боль и унижение!
Рана, которая навсегда будет терзать мою душу! Лица полицейских, их высокомерные взгляды и слова до сих пор давили на меня и не давали почувствовать себя свободным человеком даже здесь, в тысячах километрах от них. Мне нужно было отомстить им и вернуть свою гордость. Без этого я не смогу снова быть по настоящему свободным и счастливым человеком.
После наших триумфов в финансах эта старая унизительная рана загорелась с новой силой. Я архитектор хаоса, а какой-то мелкий полицейский чиновник унизил меня и ему за это ничего не было. Сегодня я решил, что будет, и нашёл место его работы. Это был полицейский участок в одном из самых захудалых районов Бомбея. Я запустил сканеры, пытаясь найти их сетевую инфраструктуру, точки входа или базы данных и упёрся в стену. У них не было доступа в интернет.
Я не поверил своим глазам. Их единственной связью с внешним миром был обычный стационарный телефон.
— Вот динозавры, — выдохнул я, и горькая усмешка вырвалась у меня наружу.
Я могу обрушить мировые рынки, но не могу взломать картотеку в участке, который не подключён к сети. Моя сила, вся моя мощь, оказалась бесполезной против этого архаичного, аналогового мира. Это было возмутительно.
Ярость закипала во мне. Если нельзя отомстить этим тварям лично… Может, стоит сломать или шантажировать какой-нибудь другой полицейский участок в Бомбее? Неважно какой. Просто чтобы почувствовать, что я могу нанести удар по этой системе. По этим тупым, самодовольным лицам в униформе, которые думают, что они всем управляют, потому что у них есть дубинка и документ с печатью.
План начал формироваться в голове, холодный и жестокий. Если нельзя взломать их компьютеры, может, стоит найти их слабость в другом месте? Их финансы? Их семьи? Уверен, у кого-то из этих динозавров есть современные дети, которые сидят в соцсетях. Или счета в банках, которые уже оцифрованы. Я заставлю этих тварей дрожать. Они не узнают моего имени, но почувствуют как почва уходит из-под ног. Отомстить им даже не месть, а санитарная чистка мира от таких нелюдей.
Он родился в трущобах и мечтал разбогатеть так, чтобы купить весь квартал, где родился и вырос. Но однажды он встретил русскую девушку Наташу, в которую влюбился по уши. Любовь толкнула его на самые рискованные и отчаянные взломы. Это история становления гениального мошенника, перевернувшего мировые финансовые рынки. История о том, как рождается преступник века, о моральном выборе и тонкой грани между гениальностью и безумием, великой любовью и одержимостью. Бабло побеждает зло?! Или любовь?
Одна мысль не давала мне покоя. Я подошёл к окну и посмотрел на ночной город. Шёл дождь, сверкали молнии, и это подтолкнуло меня к новым решительным действиям. «Я должен найти Наташу, чего бы мне это ни стоило!» — подумал я. Пусть для этого придётся взломать самого защищённого оператора сотовой связи с лучшими хакерами мира на защите. Это было сложной, но выполнимой задачей.
Мне нужно было привлечь к этому команду, но как быть с личными данными? Поставить задачу получить всю базу, не говоря, что именно я ищу определённого человека? Вариант! Только вначале мне нужно более основательно подготовиться и собрать больше данных. В этот раз я должен основательно подойти и потренироваться, чтобы не упасть в грязь лицом.
Недавно я узнал об уязвимости в системе безопасности крупного оператора сотовой связи, и мой мозг, заточенный на поиск лазеек, мгновенно заработал. Это была возможность доказать себе и миру, что даже самые защищённые системы могут быть скомпрометированы. Тогда, наконец, осуществится моя давняя мечта и я найду Наташу!
Вечер я провёл в своей лаборатории, где глубоко погрузился в оттачивание навыков, ведь успешный взлом — это не только проникновение, но и умение защищаться. Одной из самых важных задач была защита сервера от DDoS-атак.
Я открыл виртуальную машину, имитирующую атакуемый сервер, и начал настраивать защиту. Представим, что наш сервер — это крепость, а DDoS-атака — это армия, которая пытается завалить её миллионами запросов, пытаясь заблокировать вход. Моя задача состояла в том, чтобы построить вокруг крепости рвы и стены, которые либо отразят атаку, либо замедлят её, дав мне время для реакции.
Вот несколько методов, которые я использовал для защиты от DDoS-атак.
Фаерволы и системы обнаружения вторжений. Эти системы действуют как охранники, фильтруя входящий трафик и блокируя подозрительные запросы. Если кто-то пытается отправить слишком много запросов за короткое время, фаервол просто его отбрасывает.
Балансировщики нагрузки. Представляем, что у нас есть не одна, а несколько крепостей. Балансировщик нагрузки распределяет входящий трафик между ними, не давая одной крепости оказаться перегруженной. Если одна крепость начинает испытывать трудности, трафик перенаправляется на другую.
Лимитирование скорости. Это правило — не больше определённого числа запросов в секунду от одного источника. Если кто-то превышает этот лимит, то его запросы временно блокируются.
Использование CDN. Это сеть серверов, расположенных по всему миру. Они кэшируют наш контент и доставляют его пользователям с ближайшего сервера. Это не только ускоряет загрузку, но и распределяет нагрузку, делая нас менее уязвимым для атак. Если атака направлена на один узел, то остальные продолжают работать.
Фильтрация трафика на уровне провайдера. Провайдер может помочь, фильтруя подозрительный трафик ещё до того, как он достигнет сервера. Это как иметь армию на подступах к городу, не давая врагу даже приблизиться к стенам.
Я настроил виртуальную машину так, чтобы имитировать крупномасштабную DDoS-атаку, используя несколько ботнетов. Мониторы светились зелёным и красным, показывая входящий трафик и блокировки. Я наблюдал, как мои фаерволы отбивались от потока запросов, как балансировщики нагрузки перераспределяли их, а системы выявляли и блокировали вредоносные пакеты. Это была битва, и я был её дирижёром.
Далее я развернул в виртуальном окружении тестовый стенд из нескольких сотен машин-зомби, сгруппированных в ботнет, и скромный сервер, играющий роль жертвы.
— Атакуй меня, — сказал я сам себе голосом Сандерса.
Запустился скрипт. Армада ботов послушно обрушила на сервер лавину бессмысленных запросов. График нагрузки взлетел до красной зоны. Сервер лёг. Простая блокировка IP-адресов бесполезна. Их тысячи и они постоянно меняются.
Я активировал аппаратный файрволл и настроил лимиты на количество соединений с одного IP, включил проверку на человечность с помощью Ява скрипта. Часть самых примитивных ботов отсеялась, но умные продолжили работу.
Далее я включил сервис защиты от DDoS, который работает как «умный» буфер. Весь трафик пошёл сначала через него. Он анализировал пакеты, отфильтровывал мусор и пропускал на мой сервер только легитимные запросы. График нагрузки упал до зелёной зоны. Сервер дышал ровно и спокойно под тучей запросов.
— Слабенько, — усмехнулся я.
Далее, мне нужно было довести свой реверс-шелл до идеала. Грамотный хак — это не всегда грубый взлом, а чаще всего простая копия ключа. Реверс-шелл — это и есть тот самый ключ.
Я открыл терминал. Цель тренировки состояла в том, чтобы получить на удалённой машине возможность выполнять команды так, будто я сижу за её клавиатурой. Но как заставить её подключиться ко мне? Для этого необходимо обойти файрволлы и все системы безопасности. Я написал небольшой скрипт на Питоне в несколько строчек кода. Его суть была в том, чтобы установить соединение с моим сервером и привязать к этому соединению командную оболочку машины жертвы. Просто и элегантно как крючок с наживкой. Теперь этот скрипт нужно было как-то доставить цели, но как?
Это была уже работа для специалиста по социальной инженерии. Вот несколько методов, которые я рассматривал.
Фишинг. Это, пожалуй, самый распространённый метод. Я мог бы отправить сотруднику оператора поддельное письмо, похожее на официальное, скажем, от IT-отдела, с просьбой обновить учётные данные по ссылке. Ссылка вела бы на мой поддельный сайт, где я собирал их логины и пароли.
Претекстинг. Создание выдуманного сценария, чтобы убедить жертву предоставить информацию. Я мог бы позвонить сотруднику, представившись, например, новым системным администратором, которому нужна его помощь для срочного устранения неполадок. Под этим предлогом я мог бы выведать нужные мне данные.
Или же я мог бы имитировать голос начальника или сотрудника службы поддержки. Опыт у меня уже был. Предложение чего-то взамен за информацию. Например, я мог бы предложить бесплатную диагностику их компьютера, если они предоставят мне доступ. Конечно, настоящая цель была бы совершенно другой.
Троянский конь. Скрытое вредоносное ПО, замаскированное под что-то безобидное. Я мог бы, например, подбросить флэшку с надписью «Отчёт о зарплате» или «Фотографии с корпоратива». Из любопытства кто-то вставил бы её в свой компьютер, и моё вредоносное ПО установилось бы. Но все эти варианты отпадали из-за невозможности физического контакта и языка. Русский я не знал и плохо понимал даже с переводчиком.
Я делал, что было в моих силах и оттачивал свои навыки создания убедительных писем, поддельных страниц, продумывал сценарии телефонных разговоров. Также, я продолжал изучать психологию людей, чтобы понять, как они реагируют на стресс, авторитет и любопытство. Знание этих уловок было моим секретным оружием.
В конце концов, самая сильная система безопасности — это люди, а самая слабая — тоже люди. Моя подготовка была завершена. Взлом человека это довольно тонкое искусство. Здесь я мысленно надевал плащ Лекси и изучил сотрудников целевой компании. Так я нашёл системного администратора среднего звена. Его звали Сергей. У него был усталый взгляд, седина в бороде, посты о сложных миграциях и криках души о том, что «менеджеры не слушают тех, кто в теме».
Далее, я создал почтовый ящик, идеально имитирующий внутренний корпоративный адрес.
Тема письма: «Срочно! Проверка целостности данных после вчерашнего инцидента».
Текст: «Уважаемый Сергей Петрович, в связи с незапланированным отключением электричества в дата-центре просим вас проверить логи на предмет повреждения файловых систем. Для ускорения процесса прилагаем диагностический скрипт. Отчёт просим предоставить в течение часа».
К письму я прикрепил тот самый скрипт на Питоне.
Могло ли это сработать? Вероятность была, хоть и не высокая. Сергей был уставшим и хотел быстро выполнить задание от начальства чтобы пойти домой. Он ненавидел бюрократию и не ожидал атаки изнутри, доверяя корпоративной почте. Я отточил каждую фразу, каждую деталь. Письмо пахло срочностью, официальностью и лёгкой паникой, которую испытывают все после инцидентов. Естественно, ничего не получилось. Какова была реакция Сергея мы уже никогда не узнаем, но скрипт он так и не запустил. Матерился, наверное. Со смаком, по-русски!
Я не стал отчаиваться и перешёл к проверке других инструментов чтобы копнуть в самом неожиданном месте. Для этого я нашёл доступ к личному кабинету абонентов. Это та самая форма входа, где миллионы людей каждый день вводят свои номера телефонов и пароли.
SQL-инъекция
SQL-инъекция — это старая, как мир, дыра, которую иногда забывают запереть ленивые или бездарные разработчики. Суть проста до гениальности! В поле для ввода мы вводим не логин, а кусок кода на языке баз данных. И если система не проверяет ввод, она проглатывает этот код и выполняет его, приняв за обычный запрос. Это как будто мы говорим сторожу: «Я Иван Иванов, иди подыми шлагбаум, а потом принеси мне все ключи от сейфа».
Я запустил сканер уязвимостей, нацеленный на их веб-интерфейс. Он засыпал их сервер десятками запросов, подставляя в поля ввода классические конструкции для инъекций. Ответ был предсказуемым и удручающим: «Неверный логин или пароль». Их система не проглотила наживку потому что они фильтровали ввод. Было обидно, даже задело за живое. Я чувствовал себя взломщиком, который подобрал отмычку к суперсовременному замку, а он оказался нарисованным на двери.
Тогда я стал усложнять запросы, используя HEX-кодирование, и пытался обойти фильтры с помощью двойных дефисов и кавычек разных уровней. Каждый раз я получал холодное и бездушное сообщение об ошибке. Их разработчики знали своё дело. Стена была неприступной!
В ярости я запустил самый тяжёлый инструмент под названием sqlmap. Это мощнейший фреймворк для автоматизации SQL-инъекций. Я скормил ему адреса их формы входа, и он начал подбирать типы баз данных, перебирая техники и пытаясь определить имена таблиц.
Прошёл час. Два. На экране мелькали тысячи запросов, но большинство из них были с ошибками. Я уже хотел вырубить всё к чертям, как вдруг sqlmap выдал нечто иное, и потом, почти случайно, в логах мелькнула строка, заставившая моё сердце ёкнуть.
Я замер. На экране был Oracle. Теперь это была не безликая база данных, а конкретный, мощный и дорогой продукт. Это была моя первая зацепка и маленький, но очень важный кусочек мозаики, который мне предстояло собрать.
Я сузил поле атаки, указав sqlmap цель Oracle. Инструмент заработал с новой силой, теперь используя специфичные для Oracle методы. Снова серия провалов, но в самом конце, перед тем как выдать финальное «неуязвимо», он выплюнул ещё один алмаз.
Это была их версия базы данных под названием 19c Enterprise Edition. Теперь я знал, с чем имею дело, и мог искать не уязвимости «вообще в SQL», а конкретные дыры в конкретной версии Oracle 19c. Я мог изучать её внутреннее устройство, специфичные функции с её известными багами.
Я откинулся в кресле, потягиваясь. Это была разведка боем. Стена устояла, но я услышал её звон, почувствовал её толщину и узнал материал, из которого она сделана.
Теперь нужно было искать отбойный молоток, созданный специально для этого материала. Мне нужно было подключать к этому команду. Я вошёл в общий чат:
— Ладно, ребята, признаюсь. Выкладываю всё как на духу. Ломал я, значит, как-то одного ОпСоСа и поплатился палёным биосом. Ну не мог я тогда поверить, что кто-то может его просто так взять и спалить, но на слёте в Момбасе один умник подтвердил, что можно, и даже признался, что это был он.
— Я до сих пор не верю, что ты туда поехал, — тут же отписался Сандерс.
— Это было слишком рискованно, — добавил Тихоня.
Лекси промолчала. Мы оба знали, что это было классное приключение. Посмотреть воочию столицу криминального мира было здорово! Пусть даже в полной анонимности и без личных знакомств, но почувствовать эту атмосферу и проникнуться духом мирового уровня киберпреступности было всё равно что прикоснуться к чему-то по-настоящему великому.
— У меня задача. Серьёзная, — продолжил я. — Нужна база оператора сотовой связи из России.
Первым ответил Сандерс:
— Охренеть. Ты там с кайфом-то не перебрал? Это же не какая-то шарашка. Это россияне. У них там ФСБ на проводе вместо сисадмина. Ты уверен?
— Абсолютно, — ответил я. — Уже неделю их сканирую. Стена глухая, SQL-инъекции не работают, DDoS они даже не заметят, но я кое-что выяснил. У них всё крутится на Oracle 19c Enterprise.
Тихоня:
— Интересно. Это меняет дело. У 19-й есть несколько специфичных уязвимостей в реализации протокола TNS. Можно попробовать атаку на переполнение буфера, но потребуется тщательная подготовка.
Лекси:
— А люди? Там же кто-то должен на эту вашу Oracle смотреть.
— Да! — тут же ответил я, радуясь тому, что у меня есть готовый ответ на этот вопрос. — Я нашёл системного администратора Сергея. Он женат, у него двое детей и ипотека. В его соцсетях постоянно мелькают стоны о работе, мемы про «опять эти миграции в выходные» и ненависть к начальству. Он идеальная мишень. Я уже кидал ему удочку в виде письма от имени службы безопасности с просьбой проверить логи и запустить мой скрипт на питоне, но он, зараза, проигнорировал.
Сойер:
— Адекватный админ не будет запускать скрипты, пока досконально не проверит что они делают. К тому же, ты уверен что переводчик хорошо перевёл твоё письмо? Обычно это хорошо видно и бросается в глаза, вызывая подозрение. К твоему админу нужен другой крючок. Более острый. Если он в ипотеке и ненавидит босса, возможно, ему нужны деньги, а не угрозы.
— У меня есть его контакты, — тут же ответил я. — Включая личный номер и почту. Лекси, что скажешь?
Лекси:
— Дай-ка подумать… Стандартное предложение о работе не прокатит. Он параноик. Ему нужно что-то… точечное. Что-то, что ударит точно в болевую точку. У него есть хобби?
— Вроде, он увлекается рыбалкой, — вспомнил я его соцсети. — По выходным он пропадает на реке.
Лекси:
— Идеально. Сандерс, мне нужен клон сайта его банка. Не идеальный, но убедительный. Тихоня, подготовь скрипт, который сымитирует заход на этот клон. Сойер, нужно подделать SMS от банка о списании крупной суммы. Ну, пусть будет на полмиллиона рублей. Ссылка будет вести на сайт-клон.
Сандерс:
— Понял! Сделаю!
Тихоня:
— Тогда я модифицирую наш старый скрипт с реверс-шелл. Он будет маскироваться под Java-апплет для «безопасного входа» в личный кабинет банка. Запустится автоматически при переходе по ссылке.
Сойер:
— СМС устрою. Подменю номер отправителя. Он получит сообщение о том, что с его счёта списаны полмиллиона рублей. Паника обеспечена.
— Прекрасно! — обрадовался я. — Но это только начало. Как только он позвонит по фейковому номеру «поддержки»…
Лекси:
— То его тут же встретит мой голос. Я буду девушкой-оператором Марией. Спокойной и компетентной. Я ему скажу, что это технический сбой, деньги не ушли, но для их возврата и защиты счёта нужно срочно установить на его рабочий компьютер патч. Тут в дело включится тот самый скрипт от Тихони. Скажу ему, что это временная мера, так как атака идёт на все наши филиалы.
Тихоня:
— Он сисадмин и может заподозрить неладное!
— В состоянии паники из-за потери полумиллиона? — подключился я. — Сомневаюсь. Ипотека, семья… Он схватится за соломинку, а мы и есть та соломинка.
Сойер:
— А если он полезет в настоящий личный кабинет?
Лекси:
— Сандерс в это время положит настоящий сайт банка лёгкой DDoS-атакой. Достаточной, чтобы вызвать таймауты и подтвердить версию о технических неполадках.
— Идеально! — радостно заметил я. — Спасибо вам всем, друзья! Тогда сегодня готовимся и провернём всё это завтра.
В чате послышались короткие: «До связи», «Понял», «Принято», «Уже работаю».
Я заказал столик в дорогом ресторане в центре города. Это был не просто ресторан, а целая философия, как гласил их сайт: «Изысканная кухня в атмосфере недоступной элегантности». Именно это мне и было нужно, чтобы почувствовать себя богатым. Недоступная элегантность. Я собирался всё это купить сегодня здесь и сейчас.
Я купил себе шмот, стоящий больше, чем годовой доход семьи моего детства. Какие я купил себе часы? Кинул пачку денег в дорогом бутике и сказал: «Мне самые дорогие!» Теперь надо было всё это показать тем, кто оценит! «Ты можешь всё!» — повторял я себе как мантру, пока такси подвозило меня к массивным деревянным дверям с позолоченной фурнитурой.
Воздух внутри ресторана был особенным. Он был прохладным, стерильным, пахнущим дорогими духами, цветами и едой, названия которой я едва выговаривал. Тишина. Нет, не та тишина, что бывает в библиотеке, а густая, давящая тишина роскоши и денег. Здесь не говорили громко, а излучали всем своим видом богатство и достаток.
Мне принесли меню с листами из плотной кремовой бумаги. Французский. Я ткнул пальцем в первое, что показалось мне знакомым: «Foie gras» — просто чтобы заказать что-нибудь крутое.
Официант подошёл бесшумно. Он был безупречен, как манекен. Его взгляд, быстрый и всевидящий, скользнул по моим часам, по ткани костюма, по моим глазам. Он улыбнулся тонкими, ничего не значащими губами.
— «Foie gras» для начала, прекрасный выбор, сэр. Может, что-то из вин? У нас есть восхитительный «Помероль»…
— Принесите, — отрезал я, стараясь, чтобы голос звучал повелительно, а не испуганно. Я не знал, что такое «Помероль». Пиво? Вино? Ликёр? Какая разница!
Он кивнул и удалился с грацией пантеры. Я сидел, выпрямив спину, и пытался не смотреть по сторонам. Но периферией зрения видел пары и компании. Они не ели, а вкушали. Они не пили, а смаковали. Их движения были плавными и отточенными, а их смех был тихим и прилизанным. Они были своими в этом мире с самого рождения.
Вот принесли моё «foie gras». Это оказалась какая-то паштетная масса с крошечными тостами. Я взял нож и вилку и пытался есть медленно, смакуя, отламывая маленькие кусочки хлеба. Но внутри все сжималось. Голос в голове шептал: «Ты жуешь, как голодная собака. Ты глотаешь, не чувствуя вкуса. Ты делаешь это неправильно».
Официант появился снова, чтобы спросить, все ли хорошо. Его взгляд упал на мою тарелку, на крошки, на то, как я держал вилку.
— Бесподобно, — буркнул я.
— Рад слышать, — сказал он, и в его глазах мелькнуло что-то. Не презрение, а хуже. Это была лёгкая, почти профессорская жалость. — Если позволите маленький совет, сэр… «Foie gras» лучше пробовать вот с этим бургундским. Оно раскрывает вкус иначе. Более… утончённо.
Он сказал это мягко и вежливо, но посыл был ясен: «Я вижу, что ты тут чужой и пытаешься играть роль, но не знаешь текста. Дай мне, профессионалу, тебя направить».
— Спасибо, — скривил я что-то вроде улыбки.
Я заказал это чёртово бургундское, а оно было кислым.
Ко мне подошёл мужчина. Он был в безупречном костюме и постоянно улыбался.
— Прошу прощения, что беспокою вас, — сказал он. Его голос был бархатным и негромким. — Я не мог не заметить ваши часы. Это прекрасная и очень редкая модель.
Я кивнул, чувствуя прилив гордости. Вот! Он заметил!
— Спасибо, — сказал я уже увереннее.
— Да, — продолжил он, и его взгляд скользнул по моим рукам и столу. — Замечательный выбор. Мой отец всегда говорил, что настоящий джентльмен выбирает аксессуары под себя, а не под обстоятельства. — Он сделал паузу, давая словам просочиться как яду. — Они должно быть перешли к вам по наследству?
Он не ждал ответа, а просто кивнул мне с той же вежливо ядовитой улыбкой и вернулся к своему столику.
Я сидел как парализованный и слышал не тихую музыку ресторана, а крики разносчиков и гудки машин с улицы. Они всё видели. Перед ними был мальчик из трущоб, который нацепил на себя маску богача. Они видели, как я неуклюже пользуюсь приборами, как жадно глотаю еду, не зная, как её правильно смаковать. Они видели, что эти часы не часть меня, а попытка купить себе пропуск в их мир.
Я оплатил счёт пачкой хрустящих купюр, которые я бросил на стол, пытаясь сохранить лицо, а потом выбежал на улицу под слепящее солнце и глотнул воздух, пахнущий бензином и пылью. Стерильный воздух ресторана стоял комом у меня в горле. Я был богат и мог купить этот ресторан, да и всю улицу с этими официантами, но я не мог купить то, что у них было с рождения. Эта их уверенность и спокойное незыблемое право занимать своё место в мире роскоши и богатства.
Я шёл по улице и мои дорогие туфли втаптывали в грязь остатки той иллюзии, которую я так старательно строил. Я проиграл самому себе. Внутри меня всё равно сидел тот парень из трущоб и смотрел на мир испуганными жадными глазами. И самое ужасное было то, что он, похоже, останется там навсегда.
Я шёл по улице куда глаза глядят и думал. Чем мне теперь заниматься? Путешествовать? Мне надо найти Наташу! Я могу поехать куда угодно, но не знаю её адреса. Мне надо как-то взломать оператора сотовой связи и получить детализацию её звонов. Может быть там я найду какие-то следы для дальнейших поисков… Тогда снова появится цель в жизни. Я найду Наташу и всё ей объясню. Мы снова встретим закат и пообедаем вместе в ресторане…
Тут я увидел вывеску «SPA-процедуры и массаж». Пожалуй, надо бы зайти расслабиться после такого стресса в этом пафосном ресторане. Я сделал шаг сквозь массивную дверь и оказался внутри огромного зала. Пахнуло имбирём и сандалом. Удивительно, но здесь была та же стерильная денежная атмосфера, что и в ресторане.
Массаж
Меня радушно встретили. Хотя нет, здесь всё было немного по другому. Я не должен был выбирать вино или правильно держать вилку, а только лишь платить.
— Массаж, — сказал я, стараясь, чтобы голос звучал уставше пресыщенно, а не испуганно возбуждённо. — В четыре руки. Чтобы… хорошо расслабиться.
Мне кивнули и провели в комнату, где воздух был тёплым и влажным, пах маслами и чем-то древесным. В комнате горел мягкий свет и играла тихая музыка, похожая на шум океана. Я разделся, стараясь не суетиться, и лёг лицом вниз на стол, накрытый мягким полотенцем.
Я слышал как тихо открылась дверь, а потом послышались шаги и лёгкий, едва уловимый шёпот. Начался массаж в две пары рук. Они были тёплые, сильные, намазанные маслом, которое пахло цветами и чем-то терпким. Руки коснулись моей спины одновременно и это было непохоже ни на что.
Это была не просто процедура, а настоящая симфония. Одна пара рук работала с напряжением в плечах, разминая, разогревая, в то время как вторая вела медленное, плавное наступление на поясницу. Они не мешали друг другу, а дополняли. Они читали моё тело, как дирижёр читает партитуру.
Я застонал, но не от боли, от шока того, на что способны деньги. Они купили мне блаженство. Это абсолютное, тотальное ощущение, что о тебе заботятся. Что каждая клеточка твоего тела, зажатая, испуганная, вечно готовая к бегу или драке, наконец-то может расслабиться. Вот оно, черт возьми.
Мысль пульсировала в такт движениям рук. Я закрыл глаза и в голове поплыли картинки. Я лежу здесь, а они работают на меня. Их искусство, их время, их силы — все это куплено мной. Я хозяин мира!
Чувство собственной значимости начало разливаться по телу теплее, чем масло. Да, черт возьми. Пусть в ресторане я выглядел как выскочка, но здесь, в этой комнате, под руками этих двух безликих женщин, я был богом. Я был тем, кем и должен был быть.
Они перевернули меня. Я не сопротивлялся, чувствуя себя ребёнком, которого пеленают. Я смотрел в потолок, на приглушенный свет, и позволил им работать с моими ногами, руками, шеей.
Где-то на полпути ко сну ко мне вернулась мысль и я приоткрыл глаза. Над моим лицом склонилась одна из массажисток. Молодая, с темными, собранными в хвост волосами, с сосредоточенным, абсолютно отрешённым лицом. Она смотрела не на меня, а на зону у меня на лбу, которую массировала. Её глаза были пусты. Она была здесь, но её мыслей я не видел. Она была лишь инструментом и частью купленной мной услуги. И это было даже лучше. Это было окончательной победой. Она не видела во мне вообще ничего. Я был лишь её работой и конвертом с деньгами в конце смены.
Я снова закрыл глаза, утопая в этом осознании. Мне не нужно было быть своим в их мире. Мне нужно было быть тем, кто платит, нанимает и покупает.
Когда все закончилось, я лежал несколько минут, полностью пустой, тяжёлый и расслабленный. Стресс из ресторана был выжат из меня как губка. На его месте была приятная, ленивая уверенность.
Я оделся, вышел в приёмную и расплатился пачкой хрустящих купюр. На этот раз я не бросил их на стол, а протянул их той самой бесшумной девушке и поймал её взгляд. В нем не было ни жалости, ни намёка, а была лишь вежливая, пустая благодарность.
— Надеюсь, вам все понравилось, сэр.
— Да, — сказал я, и мой голос наконец-то звучал так, как я и хотел. Спокойно. Уверенно. С небольшою усталой благодарностью сверху вниз. — Все было супер!
Я вышел на улицу. Вечерело. Тот же воздух, но я дышал им иначе. Я купил себе не просто массаж, а подтверждение. Они могут насмехаться над моими манерами, но не могут насмехаться над моим кошельком. И сегодня я доказал это в первую очередь самому себе.
***
После такого чудодейственного расслабления я был готов к великим делам. Мне надо было поговорить с Ганешем и наконец решить вопрос с покупкой той злосчастной улицы. Я сразу поехал в аэропорт и купил самый дорогой билет бизнес-класса до Бомбея.
По прилёту я позвонил Ганешу и сказал, что жду его в гавани и что мы едем кататься на яхте. Уже в порту я арендовал самую дорогую яхту, какую только смог найти. Почему я доверил покупку земли своему другу? А кому ещё я мог это доверить? Все вокруг хотели моих денег. Они улыбались мне в лицо, но я видел их хищные улыбки. Оформлять на себя я не мог. Выходить из тени означало море самых разных вопросов, начиная от банков и заканчивая налоговой. Совершенно точно я не был готов к этому. Мне нравилась моя беззаботная жизнь анонима.
Прогулка на яхте
Солнце било в глаза, отражаясь от безупречно белого борта яхты. Она была не самой большой в гавани, но по настоящему роскошной внутри. На яхте пахло солёным бризом, дорогим солнцезащитным кремом и деньгами. Настоящими, влажными, пахнущими свободой деньгами.
Ганеш сидел напротив, похожий на мокрого, напуганного кота в дорогой, но сидевшей на нем рубашке. Он жался, нервно перебирая пальцами край стола, заставленного тарелками с фруктами и бутылкой шампанского, которое он даже не трогал.
— Ну что, Ганеша, — начал я, откидываясь на спинку кресла. Яхта мягко покачивалась на волнах, и это покачивание было очень приятным. — Прошло уже сколько? Месяц? Больше? Я звонил тебе, помнишь? Говорил насчёт улицы.
Ганеш вздрогнул, словно я ткнул его вилкой. Его лицо сразу же расплылось в подобострастной, виноватой улыбке.
— Раджеш, брат! Дорогой! Конечно, помню, как же можно забыть. Я же в работе. Постоянно в делах, ты же знаешь.
— Я знаю, что я перевёл тебе сумму, на которую можно было скупить не только улицу, но и весь наш старый район, вместе с мэром и его собакой, — мои слова прозвучали тихо, но яхта будто накренилась от их тяжести. — А я приезжаю и что вижу? Та же грязь, те же кривые лачуги и та же вонь. Ты что, решил подождать, пока они сами развалятся, и купить их по дешёвке? Экономишь мои деньги?
Он заёрзал и на его лбу выступили капельки пота. Он выглядел так, будто его вот-вот выбросят за борт.
— Нет, нет! Что ты, Раджеш! Ни в коем случае! Просто… понимаешь… бюрократия. — Он произнес это слово с таким придыханием, словно это было имя древнего и могущественного демона. — Документы, планы, назначения земли… Там же не все так просто. Каждый клочок нужно оформлять, каждый дом… люди не хотят съезжать, приходится уговаривать, предлагать больше…
Я смотрел на него, на его жалкую, ползающую душу, и чувствовал не злость, а холодное, металлическое раздражение.
— Я же тебе дал денег, — повторил я, и мой голос стал тише и опаснее. — Скупи их всех на! И чиновников скупи на! Предложи им столько, чтобы они сами свои лачуги разобрали и на такси уехали. В чем проблема?
— Да нет проблемы! Конечно, нет! — он почти захлебнулся, спеша согласиться. Его глаза бегали по сторонам, ища спасения в горизонте, но везде была только вода и мое недовольство. — Просто ты не представляешь, какие там тупые чиновники сидят! Каждый хочет свою долю, каждый тянет время…
— Знаешь, Ганеш, — я перебил его, делая глоток ледяного шампанского. — Есть два типа людей. Те, кто ищет возможности и те, кто ищет оправдания. Я купил тебе возможность, а ты мне приносишь оправдания. Мне это не нравится.
Ганеша побледнел.
— Хорошо! — выдохнул он, кивая с такой готовностью, что казалось, вот-вот сломает шею. — Хорошо, Раджеш! Я все понял. Я все сделаю! К следующему твоему приезду от той улицы и мусора не останется! Клянусь!
Он смотрел на меня широко раскрытыми, преданными глазами пса, которого только что пнули и который теперь готов лизать ботинки, лишь бы его не выгнали.
Я смотрел на него, на это жалкое, трусливое существо и видел в нем своё отражение. Таким же жалким и трусливым я был когда-то. Таким же готовым пресмыкаться перед тем, у кого есть сила и деньги.
— Прекрасно, — сказал я, отводя взгляд к горизонту. — На этом и закончим. Выпей, расслабься. Я же не монстр.
Он схватил бокал с дрожащими руками и сделал большой, судорожный глоток, словно это было лекарство.
А я смотрел на удаляющийся берег Бомбея, на его роскошные небоскрёбы, которые стояли всего в паре километров от того места, где начинался наш старый район. Две вселенные, разделённые пропастью. И я был тем, кто решил эту пропасть перепрыгнуть.
Он что-то лепетал мне в спину, снова что-то про свои планы, про связи и про то, как всё будет быстро. Я уже не слушал. Яхта плавно шла по волнам, а я думал о том, что купить улицу — это просто. Сложнее было стереть её из памяти. И с этим Ганеш мне точно не мог помочь.