Фишинговое окошко входа в cPanel

Опасности подстерегающие админов виртуального хостинга

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

Опасности подстерегающие админов виртуального хостинга

Фишинг

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

Из­дав радос­тный боевой клич, ты перехо­дишь по ссыл­ке и толь­ко тут, если повезет, замеча­ешь что‑то нелад­ное. Да, пись­мо выг­лядит безобид­но: оно офор­мле­но в точ­ности так же, как офи­циаль­ные сооб­щения от тво­его хос­тера, текст наб­ран тем же шриф­том, адрес отпра­вите­ля — вер­ный. И даже в «под­вале» на сво­ем закон­ном мес­те рас­положе­ны ссыл­ки на полити­ку кон­фиден­циаль­нос­ти, пра­вила обра­бот­ки пер­сональ­ных дан­ных и про­чую лабуду, которую ник­то никог­да не чита­ет. Толь­ко вот URL стра­ницы авто­риза­ции в адми­нис­тра­тор­ской панели нем­ного отли­чает­ся от нас­тояще­го, да и SSL-сер­тификат на сай­те вызыва­ет подоз­рения и у тебя, и у анти­виру­са. Ой, а не фишинг ли это?

Фишинговое окошко входа в cPanel

Фи­шин­говое окош­ко вхо­да в cPanel

По­доб­ные ата­ки, нацелен­ные на перех­ват учет­ных дан­ных от админки популяр­ных хос­тингов, в пос­леднее вре­мя учас­тились. Мож­но, конеч­но, заподоз­рить про­вай­дера в утеч­ке базы кли­ентов, но не торопись с вывода­ми. Раз­добыть нуж­ную информа­цию об адми­нис­тра­торах сай­тов, хос­тящих­ся у той или иной ком­пании, не так слож­но, как кажет­ся.

Что­бы получить обра­зец кор­поратив­ного пись­ма, дос­таточ­но зарегис­три­ровать­ся на сай­те про­вай­дера или заказать тес­товый хос­тинг, который мно­гие ком­пании бес­плат­но пред­лага­ют на огра­ничен­ный срок. Даль­ше такое пись­мо мож­но обра­ботать в любом HTML-редак­торе, поменяв содер­жимое. Нет­рудно най­ти и все исполь­зуемые про­вай­дером диапа­зоны IP-адре­сов: для этой цели соз­дано мно­жес­тво сер­висов, нап­ример xseo.in. Ну а затем мож­но получить спи­сок сай­тов на каж­дом из IP-адре­сов shared-хос­тинга, нап­ример здесь, здесь или тут. Проб­лемы могут воз­никнуть толь­ко с про­вай­дерами, которые пря­чут­ся за Cloudflare, но на каж­дый хит­рый винт, как извес­тно, най­дет­ся гай­ка с левой резь­бой.

Поиск сайтов на одном IP

По­иск сай­тов на одном IP

Все, что вам нужно сделать, это просмотреть страницы и собрать адреса электронной почты или создать список рассылки, подставив admin, administrator, contact, info для каждого domain.tld — мы кое-что получим. Затем этот список можно очистить, чтобы исключить из него несуществующие адреса. Более того, весь процесс можно легко автоматизировать с помощью простого сценария на Python или вы можете использовать одну из программ для автоматического сбора электронных писем, которые получают список URL-адресов для последующего анализа (мы не будем рекламировать их в этой статье, поскольку почти все такие программы оплачиваются). Что ж, счастливые пользователи Kali могут использовать для этого Harvester, немного повозившись с настройками.

theHarvester — тулза для сбора email-адресов

theHarvester — тул­за для сбо­ра email-адре­сов

По­хожие «пись­ма счастья» зачас­тую при­лета­ют адми­нис­тра­торам доменов, осо­бен­но если их дан­ные не скры­ты за ано­нимай­зером Private Person. Здесь для пар­синга адре­сов элек­трон­ной поч­ты исполь­зуют­ся пуб­личные базы Whois.

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

Вот такие письма рассылают жулики администраторам доменов — это типичное фишинговое сообщение было получено буквально на днях

Вот такие пись­ма рас­сыла­ют жулики адми­нис­тра­торам доменов — это типич­ное фишин­говое сооб­щение было получе­но бук­валь­но на днях

А вот куда ведет кнопка: за домен xakep.ru жулик просил аж целых 4800 рублей

А вот куда ведет кноп­ка: за домен xakep.ru жулик про­сил аж целых 4800 руб­лей

Ме­тоды борь­бы с подоб­ными явле­ниями прос­ты: по воз­можнос­ти выбирать про­вай­дера, исполь­зующе­го двух­фактор­ную авто­риза­цию для вхо­да в панель управле­ния хос­тингом, и, разуме­ется, всег­да быть вни­матель­ным, что­бы не попасть­ся на удоч­ку про­хин­деев.

Самый цимес

Кто в наши дни не пользуется CMS? Все используют CMS! Многие провайдеры предлагают услугу быстрого развертывания наиболее популярных движков, таких как WordPress, Joomla, Drupal, Bitrix, из контейнера: нажмите кнопку на панели управления хостингом и вуаля. Но некоторые уникальные пользователи предпочитают устанавливать CMS вручную, скачивать дистрибутив с сайта разработчика и выгружать его на сервер по FTP — потому что это более привычно, надежнее и больше по фэн-шуй. Однако иногда они забывают удалить установочные скрипты и служебные папки.

О Google Dorks мы уже не­однократ­но рас­ска­зыва­ли, но акту­аль­ность опи­сан­ных при­емов от это­го не умень­шает­ся. Нап­ример, всем извес­тно, что инстал­ляци­онный скрипт WordPress при уста­нов­ке движ­ка рас­полага­ется по адре­су wp-admin/install.php. Давай пос­мотрим, сколь­ко резуль­татов с таким URL най­дет для нас великий Гуголь при исполь­зовании коман­ды inurl.

Количество найденных ссылок с командой inurl и пример одного из найденных сайтов

Ко­личес­тво най­ден­ных ссы­лок с коман­дой inurl и при­мер одно­го из най­ден­ных сай­тов

Конечно, поисковая выдача будет очень загромождена, потому что среди ссылок есть много ссылок на форумы, обсуждающие глюки WordPress. Но, внимательно рассмотрев эту кучу, можно найти рабочие варианты, которые позволяют нам изменять настройки сайта — один из них показан на картинке выше. Уловка будет успешной, если, конечно, взломщик сможет найти действительные данные в базе данных. Вы можете, например, испытать удачу с помощью команды intext: DB_PASSWORD, указав интересующий нас URL-адрес второй директивой, или использовать традиционный перебор.

Пос­мотреть струк­туру скрип­тов в WordPress мож­но с помощью зап­роса inurl:repair.php?repair=1. Еще есть шанс узнать мно­го инте­рес­ного, поис­кав забытые скрип­ты phpinfo() зап­росом inurl:phpinfo.php.

Один из обнаруженных на просторах интернета файлов с phpinfo()

Один из обна­ружен­ных на прос­торах интерне­та фай­лов с phpinfo()

Отыс­кать рабочие скрип­ты инстал­ляции популяр­ного движ­ка Joomla мож­но, нап­ример, с исполь­зовани­ем харак­терно­го заголов­ка веб‑стра­ницы: для это­го подой­дет коман­да вро­де intitle:Joomla! Web installer. Один из резуль­татов поис­ка по такому зап­росу показан на иллюс­тра­ции ниже.

Инсталлятор Joomla, доступный для всех желающих

Ин­стал­лятор Joomla, дос­тупный для всех жела­ющих

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

Мисконфигурейшн

Из пре­дыду­щего раз­дела логич­но вытека­ет еще одна воз­можность поис­ка уяз­вимос­тей на вир­туаль­ных хос­тах с пре­дус­танов­ленной CMS: изъ­яны в нас­трой­ке и исполь­зование кон­фигура­ции по умол­чанию. И в WordPress, и в Joomla, и в дру­гих движ­ках обыч­но при­сутс­тву­ет огромное количес­тво пла­гинов, име­ющих извес­тные уяз­вимос­ти с нас­трой­ками по умол­чанию.

В пер­вую оче­редь ата­кующие обыч­но пыта­ются выяс­нить вер­сию CMS, уста­нов­ленную на хос­те, — в слу­чае с WordPress это мож­но сде­лать, нап­ример, пос­мотрев в код веб‑стра­ницы и поис­кав там метате­ги вро­де <meta name="generator" content="WordPress 5.3.6" />. Вер­сию шаб­лона под­ска­жут строч­ки наподо­бие https://site-url/wp-content/themes/theme_name/css/main.css?ver=5.8.1.

За­тем мож­но поис­кать вер­сии инте­ресу­ющих взлом­щика пла­гинов: мно­гие из них име­ют в сво­ем сос­таве тек­сто­вые фай­лы readme, дос­тупные по адре­су вро­де https://site-url/wp-content/plugins/plugin_name/readme.txt. Подоб­ные фай­лы луч­ше при­бивать сра­зу пос­ле уста­нов­ки пла­гинов, не оставляя их на хос­тинге для любопыт­ных иссле­дова­телей. Выяс­нив вер­сии ядра движ­ка, шаб­лона и пла­гинов, хакер может попытать­ся заюзать извес­тные уяз­вимос­ти.

Кро­ме это­го, на некото­рых сай­тах с WordPress мож­но попытать­ся выяс­нить имя адми­нис­тра­тора, добавив к URL стро­ку вида /?author=1. С нас­трой­ками по умол­чанию дви­жок вер­нет в URL валид­ное наиме­нова­ние учет­ки пер­вого поль­зовате­ля, зачас­тую име­юще­го пра­ва адми­на. Оста­нет­ся толь­ко сбру­тить пароль. Эта воз­можность зависит от нес­коль­ких фак­торов — исполь­зуемой темы, уста­нов­ленных пла­гинов, нас­тро­ек веб‑сер­вера. Если перечис­ление поль­зовате­лей не отклю­чено, мож­но переб­рать ID всех юзе­ров WordPress и соб­рать таким нехит­рым спо­собом спи­сок логинов для бру­та. Отклю­чить воз­можность перебо­ра поль­зовате­лей мож­но, отре­дак­тировав соот­ветс­тву­ющим обра­зом functions.php или .htaccess. Нап­ример, так:

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/ одной государственной больнички

Со­дер­жимое пап­ки /uploads/files/ одной государс­твен­ной боль­нич­ки

Зап­ретить дос­туп к слу­жеб­ным пап­кам мож­но, опять же уста­новив соот­ветс­тву­ющий шаб­лон, или самым прос­тым спо­собом — помес­тить в кор­не каж­дой дирек­тории пус­той файл index.html (либо добавить в .htaccess сай­та строч­ку Options All -Indexes). У мно­гих хос­тинг‑про­вай­деров эта опция про­писа­на по умол­чанию, но далеко не у всех, в чем ты при желании можешь убе­дить­ся самос­тоятель­но.

Кро­ме того, нуж­но осмотри­тель­но обра­щать­ся с коман­дой chmod, осо­бен­но при раз­даче прав куче вло­жен­ных дирек­торий на запись и выпол­нение скрип­тов. Пос­ледс­твия таких необ­думан­ных дей­ствий могут быть самыми неожи­дан­ными.

Забытые учетки

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

Только вдумчивое курение логов помогло найти настоящую причину. Это оказался «заброшенный» FTP-доступ, созданный давным-давно одним из уволенных сотрудников, который знал пароль к панели управления хостингом. Видимо, не удовлетворившись размером выходного пособия, новоиспеченный безработный решил таким нехитрым способом отомстить бывшим начальникам. После удаления всех «лишних» FTP-аккаунтов и профилактической смены паролей шалости «барабашки» окончательно полностью прекратились.

Выводы

Главное оружие владельца интернет-ресурса в борьбе за безопасность — осторожность, рассудительность и внимание. Можно и нужно пользоваться услугами проверенного провайдера, но поговорку «доверяй, но проверяй» придумали умные люди. Независимо от того, насколько надежными могут быть готовые решения, вам необходимо самостоятельно проверить наиболее типичные узкие места конфигурации сайта.
А потом еще раз проверьте. Так, на всякий случай.

 

 

 

Click to rate this post!
[Total: 0 Average: 0]

Leave a reply:

Your email address will not be published.