Считается, что искушенные ИТ-специалисты надежно защищены от сетевых мошенников, которые используют в своих интересах доверчивых пользователей Интернета. Однако есть категория злоумышленников, которые специально занимаются обманом администраторов виртуальных хостингов. Сегодня мы поговорим об используемых ими методах и рассмотрим некоторые типичные уязвимости и поговорим какие опасности подстерегают админов виртуального хостинга.
Фишинг
Выпив традиционный утренний кофе, вы запускаете свой почтовый клиент и неожиданно получаете электронное письмо от вашего провайдера, напоминающее вам, что пора снова платить за хостинг. Кстати, прямо сейчас вы можете пополнить свой баланс значительной скидкой в честь годовщины освобождения Изенгарда от засилья Урук-хая.
Издав радостный боевой клич, ты переходишь по ссылке и только тут, если повезет, замечаешь что‑то неладное. Да, письмо выглядит безобидно: оно оформлено в точности так же, как официальные сообщения от твоего хостера, текст набран тем же шрифтом, адрес отправителя — верный. И даже в «подвале» на своем законном месте расположены ссылки на политику конфиденциальности, правила обработки персональных данных и прочую лабуду, которую никто никогда не читает. Только вот URL страницы авторизации в администраторской панели немного отличается от настоящего, да и SSL-сертификат на сайте вызывает подозрения и у тебя, и у антивируса. Ой, а не фишинг ли это?
Фишинговое окошко входа в cPanel
Подобные атаки, нацеленные на перехват учетных данных от админки популярных хостингов, в последнее время участились. Можно, конечно, заподозрить провайдера в утечке базы клиентов, но не торопись с выводами. Раздобыть нужную информацию об администраторах сайтов, хостящихся у той или иной компании, не так сложно, как кажется.
Чтобы получить образец корпоративного письма, достаточно зарегистрироваться на сайте провайдера или заказать тестовый хостинг, который многие компании бесплатно предлагают на ограниченный срок. Дальше такое письмо можно обработать в любом HTML-редакторе, поменяв содержимое. Нетрудно найти и все используемые провайдером диапазоны IP-адресов: для этой цели создано множество сервисов, например xseo.in. Ну а затем можно получить список сайтов на каждом из IP-адресов shared-хостинга, например здесь, здесь или тут. Проблемы могут возникнуть только с провайдерами, которые прячутся за Cloudflare, но на каждый хитрый винт, как известно, найдется гайка с левой резьбой.
Поиск сайтов на одном IP
Все, что вам нужно сделать, это просмотреть страницы и собрать адреса электронной почты или создать список рассылки, подставив admin, administrator, contact, info для каждого domain.tld — мы кое-что получим. Затем этот список можно очистить, чтобы исключить из него несуществующие адреса. Более того, весь процесс можно легко автоматизировать с помощью простого сценария на Python или вы можете использовать одну из программ для автоматического сбора электронных писем, которые получают список URL-адресов для последующего анализа (мы не будем рекламировать их в этой статье, поскольку почти все такие программы оплачиваются). Что ж, счастливые пользователи Kali могут использовать для этого Harvester, немного повозившись с настройками.
theHarvester — тулза для сбора email-адресов
Похожие «письма счастья» зачастую прилетают администраторам доменов, особенно если их данные не скрыты за анонимайзером Private Person. Здесь для парсинга адресов электронной почты используются публичные базы Whois.
Также существует целый комплекс утилит, позволяющих узнать не только контактный адрес электронной почты администратора, но и название компании — регистратора домена, а затем собрать с них базу для фишинговых рассылок. В этом случае администратору обычно предлагают оплатить продление делегирования доменного имени, перенаправив его на страницу платежной системы с левым кошельком или номером счета. Подвох, конечно, заметить несложно, но если вы устали от похмелья или спешите на работе, то есть шанс ненароком и лохануться.
Вот такие письма рассылают жулики администраторам доменов — это типичное фишинговое сообщение было получено буквально на днях
А вот куда ведет кнопка: за домен xakep.ru жулик просил аж целых 4800 рублей
Методы борьбы с подобными явлениями просты: по возможности выбирать провайдера, использующего двухфакторную авторизацию для входа в панель управления хостингом, и, разумеется, всегда быть внимательным, чтобы не попасться на удочку прохиндеев.
Самый цимес
Кто в наши дни не пользуется CMS? Все используют CMS! Многие провайдеры предлагают услугу быстрого развертывания наиболее популярных движков, таких как WordPress, Joomla, Drupal, Bitrix, из контейнера: нажмите кнопку на панели управления хостингом и вуаля. Но некоторые уникальные пользователи предпочитают устанавливать CMS вручную, скачивать дистрибутив с сайта разработчика и выгружать его на сервер по FTP — потому что это более привычно, надежнее и больше по фэн-шуй. Однако иногда они забывают удалить установочные скрипты и служебные папки.
О Google Dorks мы уже неоднократно рассказывали, но актуальность описанных приемов от этого не уменьшается. Например, всем известно, что инсталляционный скрипт WordPress при установке движка располагается по адресу wp-admin/
. Давай посмотрим, сколько результатов с таким URL найдет для нас великий Гуголь при использовании команды inurl
.
Количество найденных ссылок с командой inurl и пример одного из найденных сайтов
Конечно, поисковая выдача будет очень загромождена, потому что среди ссылок есть много ссылок на форумы, обсуждающие глюки WordPress. Но, внимательно рассмотрев эту кучу, можно найти рабочие варианты, которые позволяют нам изменять настройки сайта — один из них показан на картинке выше. Уловка будет успешной, если, конечно, взломщик сможет найти действительные данные в базе данных. Вы можете, например, испытать удачу с помощью команды intext: DB_PASSWORD, указав интересующий нас URL-адрес второй директивой, или использовать традиционный перебор.
Посмотреть структуру скриптов в WordPress можно с помощью запроса inurl:
. Еще есть шанс узнать много интересного, поискав забытые скрипты phpinfo(
запросом inurl:
.
Один из обнаруженных на просторах интернета файлов с phpinfo()
Отыскать рабочие скрипты инсталляции популярного движка Joomla можно, например, с использованием характерного заголовка веб‑страницы: для этого подойдет команда вроде intitle:
. Один из результатов поиска по такому запросу показан на иллюстрации ниже.
Инсталлятор Joomla, доступный для всех желающих
В целом, при правильном использовании специальных режимов поиска можно найти загруженные на хостинг раздачи систем управления контентом с незавершенной установкой или забытые служебные скрипты и помочь несчастному владельцу завершить установку. Одновременно в CMS регистрируется новый администратор. С этим легко справиться: все, что вам нужно сделать, это очистить папки на сервере или использовать контейнеризацию — обычно это более безопасно.
Мисконфигурейшн
Из предыдущего раздела логично вытекает еще одна возможность поиска уязвимостей на виртуальных хостах с предустановленной CMS: изъяны в настройке и использование конфигурации по умолчанию. И в WordPress, и в Joomla, и в других движках обычно присутствует огромное количество плагинов, имеющих известные уязвимости с настройками по умолчанию.
В первую очередь атакующие обычно пытаются выяснить версию CMS, установленную на хосте, — в случае с WordPress это можно сделать, например, посмотрев в код веб‑страницы и поискав там метатеги вроде <
. Версию шаблона подскажут строчки наподобие https://
.
Затем можно поискать версии интересующих взломщика плагинов: многие из них имеют в своем составе текстовые файлы readme, доступные по адресу вроде https://
. Подобные файлы лучше прибивать сразу после установки плагинов, не оставляя их на хостинге для любопытных исследователей. Выяснив версии ядра движка, шаблона и плагинов, хакер может попытаться заюзать известные уязвимости.
Кроме этого, на некоторых сайтах с WordPress можно попытаться выяснить имя администратора, добавив к URL строку вида /
. С настройками по умолчанию движок вернет в URL валидное наименование учетки первого пользователя, зачастую имеющего права админа. Останется только сбрутить пароль. Эта возможность зависит от нескольких факторов — используемой темы, установленных плагинов, настроек веб‑сервера. Если перечисление пользователей не отключено, можно перебрать ID всех юзеров WordPress и собрать таким нехитрым способом список логинов для брута. Отключить возможность перебора пользователей можно, отредактировав соответствующим образом functions.
или .
. Например, так:
functions.php
if ( ! is_admin() ) {
if ( preg_match('/author=([0-9]*)/i', $_SERVER['QUERY_STRING']) ) die();
add_filter( 'redirect_canonical', 'check', 10, 2 );
}
function check( $redirect, $request ) {
if ( preg_match('/\?author=([0-9]*)(\/*)/i', $request) ) die();
else return $redirect;
}
.htaccess
<IfModule mod_rewrite.c>
RewriteCond %{QUERY_STRING} ^author=([0-9]*)
RewriteRule .* http://yoursite.com/? [L,R=302]
</IfModule>
Ну и конечно же, нельзя не сказать о том, что владельцы сайтов зачастую оставляют доступными на чтение некоторые директории. В том же WordPress чаще всего можно попасть в эти служебные папки:
/
;wp-content/ /
;wp-content/ plugins/ /
;wp-content/ themes/ /
;wp-content/ uploads/ files/ /
.images/
Очевидно, что делать там посторонним совершенно нечего, поскольку в таких папках может храниться критичная информация, в том числе довольно‑таки конфиденциальная.
Содержимое папки /uploads/files/ одной государственной больнички
Запретить доступ к служебным папкам можно, опять же установив соответствующий шаблон, или самым простым способом — поместить в корне каждой директории пустой файл index.
(либо добавить в .
сайта строчку Options
). У многих хостинг‑провайдеров эта опция прописана по умолчанию, но далеко не у всех, в чем ты при желании можешь убедиться самостоятельно.
Кроме того, нужно осмотрительно обращаться с командой chmod
, особенно при раздаче прав куче вложенных директорий на запись и выполнение скриптов. Последствия таких необдуманных действий могут быть самыми неожиданными.
Забытые учетки
Однажды к автору этих строк за помощью обратилась одна знакомая компания, сайт которой ежедневно падал без видимых на то причин. Восстановление содержимого серверной папки из резервной копии помогало ненадолго — в какой‑то совершенно непрогнозируемый момент все повторялось вновь. Поиск уязвимостей и бэкдоров в скриптах тоже ничего не дал. Сисадмин конторы пил ведрами корвалол и бился головой о серверную стойку.
Только вдумчивое курение логов помогло найти настоящую причину. Это оказался «заброшенный» FTP-доступ, созданный давным-давно одним из уволенных сотрудников, который знал пароль к панели управления хостингом. Видимо, не удовлетворившись размером выходного пособия, новоиспеченный безработный решил таким нехитрым способом отомстить бывшим начальникам. После удаления всех «лишних» FTP-аккаунтов и профилактической смены паролей шалости «барабашки» окончательно полностью прекратились.
Выводы
Главное оружие владельца интернет-ресурса в борьбе за безопасность — осторожность, рассудительность и внимание. Можно и нужно пользоваться услугами проверенного провайдера, но поговорку «доверяй, но проверяй» придумали умные люди. Независимо от того, насколько надежными могут быть готовые решения, вам необходимо самостоятельно проверить наиболее типичные узкие места конфигурации сайта.
А потом еще раз проверьте. Так, на всякий случай.