Pull to refresh

Comments 101

Ну или сохранить содержимое запроса. Но ничего особо интересного я там увидеть не ожидаю.
Хм, нетерпеливые какие. Сегодня в 0:21 MSK прислали точно такое же письмо. И, не дожидаясь какой-либо реакции, прямо ночью:
169.57.0.216 - - [27/Aug/2015:02:35:25 +0300] "GET /reestr/reestr-id128032.php?roskomnadzor=phpinfo(); HTTP/1.0" 404 21507 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; Alexa Toolbar)"

Больше пока не появлялись. Выложить туда, что ли, страницу, похожую на phpinfo(), на случай возвращения слонопотама?
На мой сайт так же с этого ip пришёл запрос.
Это наверное просто пингование сайта — сработало или нет. Интересно было бы узнать, какой код присылают на выполнение после того как пинг успешно получен.
Похоже кто-то из браузера вручную проверял — сработало или нет.
От ботов вот такие запросы приходят (без user-agent):
access.log:77.221.130.49 — — [27/Aug/2015:07:50:09 +0300] «GET /reestr/reestr-id128032.php?roskomnadzor=print-439573653*57; HTTP/1.1» 301 184 "-" "-" «77.221.130.49»
А что, id у всех одинаковый? Т.е. заюзаь это дело могут не только авторы рассылки? Т.о. нельзя однозначно их идентифицировать.
id — одинаковый, но запросы идут с разных ip-адресов

Но, действительно, похоже что чей-то ботнет (не авторов развода) мог начать запрашивать эти адреса в поисках возможной уязвимости: я попытался нагуглить «print-439573653*57» — находится очень много результатов, и довольно старых в т.ч.
Да не определишь бот это или нет по одному юзер-агенту.
Сейчас наоборот стараются делать ботов с максимальной похожестью на реальный браузер, т.е с заполненым юзер агентов, accept encoding, и т.д.

+ судя по айпи это: www.softlayer.com/info/transparency
т.е проверки скорее всего были через скрипт, запущенным в впс. Врядли это был сотрудник SoftLayer Internal который проверял реквест вручную :-)
UFO landed and left these words here
Почему-то напомнило
Я первый казахский вирус, у моего автора не хватает знаний/денег для написания кода, поэтому скопируйте меня в буфер обмена и отправьте всем контактам из своего списка, потом пожалуйста удалите у себя пару самых важных файлов и перегрузите компьютер. Заранее спасибо…
В качестве дополнительного квеста предлагаю зарегистрироваться на сайте госуслуг, и пошляться между ними и сайтом росреестра :) Можно чё там заказать, в связке с оплатой через СБ…
Поставьте редирект на natribu.org и все.
Или редирект на какую-нибудь ооочччееень меддддллееееннно отдающуюся большую страничку.
Можно отдавать /dev/zero по байту в секунду. Правда, вполне вероятно, что с той стороны будут использовать подход fire & forget.
Толку только?
Память не переполнится, дескрипторы не закончатся.
Лучше делать редирект на файл размером в сотни гигабайт,
так у них или место закончится на сервере (памяти), или трафик с каналом закончится.
Например вот так
location /reestr/ {
                rewrite ^(.*)$ http://mirror.yandex.ru/debian-cd/8.1.0/amd64/iso-dvd/debian-8.1.0-amd64-DVD-3.iso?$1 break;
        }

Это при условии что «хацкеру» хватило ума автоматизировать свой труд.
Скорее всего скрипт парсит ответы в цикле через какую-то стандартную функцию типа filegetcontent() и после этого вылетит с ошибкой memory_limit или max_execution_time.
Такой подход — это DoS самому себе. Для одного запроса подойдет, конечно, но для защиты от ботов/скана не советовал бы.
Сначала тоже хотел предложить медленно отдавать /dev/random, но решил промолчать, а то кто-нибудь запомнит и захочет сделать для «защиты» от сканирующих ботов.
Это не к нормальным ботам, а по непубличному пути. Причем отдавать /dev/zero в виде long connection можно очень эффективно.
Ну то есть у вас на сервере будет висеть несколько очень долгих медленных коннектов? А оно вам надо?
А чем вы их будете отдавать? Не nginx'ом же — то есть специально напишете скрипт со sleep(1), который будет занимать ресурсы?
Судя по логам, которые тут выкладывались, запросы могут придти как раз в час, так и раз в 10 минут, то есть допустим, ботнет прислал вам за 2 часа 10 запросов — это вы всех их хотите у себя держать? А оно того стоит?

Вообще, редирект на огромный файл — это не самый лучший выход. Хозяева ботнета этого и не заметят, а вот реальные владельцы зараженных серверов получат увеличение входящего трафика. Представьте что это ваш сервер случайно заразился — вы бы обрадовались такому счету?
Вопрос, конечно, спорный — и без вас они получат трафик — с других задач…
Не nginx'ом же — то есть специально напишете скрипт со sleep(1), который будет занимать ресурсы?
Это какое-то странное решение… Возьму какой-нибудь golang и в путь. Ограничить количество запросов и длительность каждого не такая уж и проблема. Но это всё теоретизирование, да.

А для получения трафика для DDoS сейчас неплохо использовать portmapper ,)
Зачем скрипты со слипами, когда nginx может отдавать контент (читать как /dev/zero) с указанной скоростью?
Спасибо, после вашего комментария полез поискать и нашел второй же ссылкой: habrahabr.ru/post/226975
Идея ясна, при случае можно попробовать.
В той статье описывается как раз совсем не то, что надо. Там описывается способ ограничить скорость до каждого IP-адреса, нам же надо урезать индивидуальные соединения, отдающие /dev/zero, каждое отдельно.
То есть если будет одновременно 10-20 запросов с одного IP (как и работают многие боты), то мы будем ставить лимит на каждое соединение?
Логичнее как раз выделить этому IP какую-то скорость и пусть делит ее между всеми соединениями…
Напомню, что наша задача — обратная DoS-атака на бота методом медленной записи. Иными словами, нам надо отдавать /dev/zero боту со скоростью порядка 1 байт в секунду.

В чем вы видите проблему лимита на каждое соединение — и почему этот лимит надо вдруг делить на количество соединений? Делить лимит между разными соединениями даже опасно — при слишком маленькой скорости бот может отвалиться по тайм-ауту, а нам же не это надо…
Да, в целом согласен с вами.
А если отдавать кучу нулей через подготовленный заранее gzip, то можно при экономии своего канала создать боту хорошую нагрузку при распаковке.
Если он распаковывает в потоке.
На текущий момент моя файлопомойка отдала этим идиЁтам уже 100мб мусора =) Правда я её зашейпил на 50кбит
Интересно, сколько людей реально поймать на такое? Ведь если в качестве владельца прописан не технарь, то он отдаст задачу технарю, а тот уже с очень большой вероятностью скажет, что это развод. Если в качестве владельца технарь, то он сам себя завернёт.

Отсюда вывод их аудитория та не большая часть людей, которая будет готова вступить в неравный бой с технологиями (инструкция явно не на чайника рассчитана) списавшись с ними (но такие отчаянные могут выслать реквизиты доступа к хостингу (во время беседы, лишь бы всё за них сделали), своему ящику и т. д., и странно, что у них есть хостинг в таком случае) или копаясь в интернете своими силами, что звучит как-то мифически. Либо если кто-то с большого запоя машинально сделает указанное :)

Кто-то представляет профиль того, кто купится на это с 99% вероятностью? (точнее даже, того, кто купится на письмо и сможет сделать указанное?)
Кто-то представляет профиль того, кто купится на это с 99% вероятностью? (точнее даже, того, кто купится на письмо и сможет сделать указанное?)
Мы немного представляем.
Гугл, яндекс, некоторые другие сервисы приучили владельцев сайта создавать в корне файл и вписывать туда какую-нибудь строчку для верификации. Поэтому знания и навыки для выполнения этой задачи несколько ниже, чем может показаться и сама просьба положить что-то для верификации выглядит натурально.
Кроме того, многие фирмы по скупке ссылок, а так же тот же вирусдай который тут на хабре пиарился, да и некоторые биржи ссылок, уже просят разместить php файл в корне. Тут получается что мало того, что знания и навыки уже есть, но и просьба разместить php код выглядит достаточно естественно.
Про роскомнадзор каждый неленивый слышал, так что испуг приглушит возможные подозрения до кучи.
Под таким углом задача выглядит не сложнее чем зайти в вордпресс и разместить какую-нибудь новость… и не опаснее.

Тем кто придумал — зачет, неплохой ход. Скомпилировали несколько удачных подводок.
Гугл, яндекс, некоторые другие сервисы приучили владельцев сайта создавать в корне файл и вписывать туда какую-нибудь строчку для верификации.


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

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

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

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

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

Пароль от ВК и почты роскомнадзором не обоснуешь, тут же еще психологический аспект есть

В данном случае ключевое слово подобным способом.

да и натренированы юзеры кому попало пароли не давать

По вашей логике, есть люди у которых есть сайт и которые натренированы заливать файлы верификации на сайт.

Следовательно, есть люди которые не умеют заливать файлы верификации на сайт (по моей логике они менее подкованы).

И вот люди из второй группы более уязвимы к «прямому» запросу пароля от админки или хостинга, чем первые. И таковых на мой взгляд больше. Соусом главное правильным письмо облить.

PS но гораздо эффективнее просто дырки в стандартных движках юзать, урожай будет больше, чем от описанного в посте. Ведь авторам письма главное урожай большой, а не проверка гипотезы.
Да ладно пароль не обоснуешь. Недавно видел интересный ход. В письме вместо «пришлите нам ваш пароль», было написано «В рамках акутализации базы данных онлайн банка, просим подтвердить правильность ваших учетных данных. Ваш логин: user, пароль: qwerty123. Если это не так, просим протий по ссылке и поменять пароль».

Уверен что такая простая модификация увеличила конверсию в разы. Думаю если бы написали что-нибудь такое же про пароль админа, то дофига народу бы отправили учетки.
Да очень просто. Например, я фрилансер и я сделал заказчику сайт. Заказчик умеет ходить по FTP на сервер и править файлики. Положить файлик по этой инструкции он сможет, а просить меня — это еще вдруг оплачивать придется работу, или контакт потерялся, или еще что…
Самое правильное на мой взгляд всем хабром отправить письмо с абузой на адрес abuse@sendgrid.com и abuse@ripe.net
С текстом из серии (Переводил в гугл транслейт)
Good evening,
with your IP address (167.89.17.173, 169.57.0.216) is sent an e-mail to owners of sites on behalf of the «Roskomnadzor» (the state organization responsible for blocking illegal information in Russian). In this letter, the attackers need to download a dangerous site php code.
Please lock the server.

Log:
169.57.0.216 — - [27/Aug/2015:02:36:23 +0300] «GET /reestr/reestr-id122031.php?roskomnadzor=phpinfo(); HTTP/1.0» 404 564 "-" «Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; MRA 4.1 (build 00975); .NET CLR 1.1.4322)» "-"
169.57.0.216 — - [27/Aug/2015:02:36:25 +0300] «GET /reestr/reestr-id122032.php?roskomnadzor=phpinfo(); HTTP/1.0» 404 162 "-" «Mozilla/5.0 (Windows; U; Windows NT 5.1; ru-RU; rv:1.7.12) Gecko/20050919 Firefox/1.0.7» "-"
Mail:
Received: from o1678917x173.outbound-mail.sendgrid.net (o1678917x173.outbound-mail.sendgrid.net [167.89.17.173])



Когда-то таким образом заставили ТТК отправлять трафик из многих городов России в Санкт-Петербург не через германию с пингом в 100мс, а через москву с пингом 20мс.
Надо только «need to download» заменить на «ask/urge the victim to place/install», так как это жертва должна совершать телодвижения, а не атакующий.
Тоже получил такое письмо. В этой ситуации очень удивляет размах, у меня далеко не самый популярный сайт.
Вспомнился сайт http://natribu.org. Можно, например, туда перенаправить :-D
Прочем, вроде это это уже писали как я посмотрел.
Во всем этом письме особенно доставила строка
*В < ?php необходимо убрать пробел между < и ?php

Пожалуй, сегодняшний день после нее уже ничего не сможет испортить, это win :)
А почему это win? Это какой-то особый PHP-шный юмор? (Я просто с PHP мало общался, могу не знать.)
Да при чем тут php… Всё дело в подходе, лучше чем edogs выше сложно сказать
Ну, если дело в подходе, тогда да. А то я уже кучу вариантов перебрал. Странно, почему нельзя было в письме фрагмент дать сразу без пробела? Пусть бы пользователь скопировал, вставил и забыл.
Это психологический момент — закос под «тупую гос.контору». Уж не самом же деле они боялись что их «неэкранированный код» парсер не пропустит.
Для полноты закоса я бы на их месте прислал инструкцию в word-файле, вложив в него скан инструкции с подписью.
Тсс, тише, может быть не стоит продолжать такого рода обсуждения в публичных тредах? Таким образом невольно можно прострелить обе ноги не особо подкованным в этом вопросе людям, только чужими руками.
И как потом копировать код из скана? Необходимость переписывания непонятных буков вручную значительно повышает шансы обращения к специалисту.
О, вы думаю плохо знаете юзеров. Такое они с маниакальным рвением будут переписывать, лищь бы не отдавать на откуп «компьюторщику» или «тыжпрограммисту». У меня подобное юзеры делали уже, при том цель всегда доказать «я сам, сам всё сделал, без тебя, я такой умный!!!111».
Письма как бы немного на html, и любая сущность между <  ... > пытается рендериться браузером как некий объект, скрывая (почти во всех движках) своё содержимое. Автор не знаком с волшебными комбинациями &lt; и &gt;. Немного подкачал в тех. части наш юный соц. инженер
А с чего бы вдруг гуглу индексировать эти ссылки, если кто-то даже и поведётся на это?
По тем же причинам, что и inurl:/bitrix/backup
По причинам криворукости разработчиков.
М-м, окей, принимаю ваш аргумент и допускаю, что могут появиться :-D
Тут не столько разработчики. А всякие аддоны в браузерах, которые отзваниваются поисковику при посещении каждой страницы. Даже если она запрещена в роботс.тхт (проверки тиц/пр, переводчики, статистики, ...).
Давно ждал когда кто-нибудь нечто подобное сделает.

Еще давно жду другого закоса — когда таким образом сайты конкурентов выключаться будут.
Черт, чувствую себя чайником. Просветите меня, пожалуйста, коллеги многоопытные:
если сайт написан не на php — это вообще работать будет?
а если на серваке нет php-интерпритатора?
Разумеется, нет.
Если сайт написан не на PHP, но сервер научен (то есть у него в конфигурации указано) обращаться к PHP для обработки PHP-файлов (таковы некоторые сборки Apache, например), то PHP-файл всё равно сработает.

Если сервер не научен обращаться к PHP для обработки PHP-файлов (например, сервер Express.js на движке Node.js), или если нет обработчика PHP, то тогда не сработает.
Да будет вам известно, Node.js — не «движок», а платформа, основанная на «движке» V8.
Если к веб-серверу подключен интерпретатор то оно будет работать даже если сайт не на php. Если интерпретатора нет то и работать не будет.
Благодарю всех ответивших. Огромное спасибо.
Всё верно. Но у этого письма другая аудитория: люди имеющие домен, хостинг, сайт и при этом не понимающие что именно этот код делает. Иными словами это аудитория CMS (Wordpress, Joomla, Drupal etc.). А большинство CMS написанно на php.
Такое же письмо пришло. Массово работают. )
Вообще, меня бы сразу смутил не юридический стиль письма. "чёрные списки интернет-провайдеров" — это РКН такую терминологию использует?
Автор письма ещё не проходил эту главу учебника.
один из моих знакомых повелся, пока я не удалил это, и вот что было в логах:

77.222.57.53 — - [27/Aug/2015:08:27:51 +0300] «GET /reestr/reestr-idxxxxx.php?roskomnadzor=print-439573653*57; HTTP/1.0» 200 223 "-" "-"

188.93.212.151 — - [27/Aug/2015:08:12:29 +0300] «GET /reestr/reestr-idxxxxx.php?roskomnadzor=print-439573653*57; HTTP/1.0» 200 223 "-" "-"

5.101.156.31 — - [27/Aug/2015:09:49:53 +0300] «GET /reestr/reestr-idxxxxx.php?roskomnadzor=print-439573653*57; HTTP/1.0» 200 223 "-" "-"

89.108.106.146 — - [27/Aug/2015:10:04:10 +0300] «GET /reestr/reestr-idxxxxx.php?roskomnadzor=print-439573653*57; HTTP/1.0» 200 223 "-" "-"

5.101.157.29 — - [27/Aug/2015:10:21:57 +0300] «GET /reestr/reestr-idxxxxx.php?roskomnadzor=print-439573653*57; HTTP/1.0» 200 223 "-" "-"

54.94.241.168 — - [27/Aug/2015:11:12:40 +0300] «GET /reestr/reestr-idxxxxx.php?roskomnadzor=print-439573653*57; HTTP/1.0» 200 267 "-" «Mozilla/5.0 (Windows NT 6.1; rv:31.0) Gecko/20100101 Firefox/31.0»

5.9.96.235 — - [27/Aug/2015:11:12:52 +0300] «POST /reestr/reestr-idxxxxx.php?roskomnadzor=eval(base64_decode(\»$_POST[qwe]\")); HTTP/1.0" 200 10702 "-" "-"

Последний раз 10 делал этот post запрос…
Ну то есть ботнет поддерживает у себя список зараженных хостов и каждые несколько минут проверяет их доступность.
Когда появляется задача — отправляет ее случайно выбранной ноде. Обычная сеть распределенных вычислений.

А может быть, они там обсчитывают формулы молекул для создания лекарства в помощь больным детям Африки — откуда вы знаете? Давайте напишем их и спросим! Если благое дело, так почему не помочь?
Альтернативные предположения:
а) Майнинг криптовалют.
б) Рассылка аналогичных e-mail писем другим блоггерам.
Правильно ли я понимаю, что можно с помощью GET/POST запроса к этому сайту получить конфиг CMS, хеши паролей/пароли и данные из базы данных?
Да. А также можно получить любую другую информацию, доступную самому сайту, в том числе исходные коды самого сайта для дальнейшего анализа, залогиниться под любым именем пользователя без пароля, загрузить на сервер любые другие файлы если у скрипта будут на это права, можно использовать этот скрипт как прокси для анонимизации — и даже можно собрать что-то вроде ботнета.
Вот с этого и надо начинать статью, а то одна картинка — а дальше типо сами додумают.
За МИНУС спасибо — главное адекватно.
Очевидно, автор предполагал, что читатели будут знать последствия уязвимостей вида «исполнение произвольного кода» (а эти самые последствия одинаковы для всех дыр такого рода).

PS жаловаться на ОДИН минус — верный способ нахватать еще девять :)
Мне не жалко, таких тут хватает, пусть ставят.
Сегодня в логах, засветился, вот такой запрос:
93.95.103.133 - - [27/Aug/2015:07:44:33 +0300] "GET /reestr/reestr-id128032.php?roskomnadzor=print-439573653*57; HTTP/1.0" 404 224 "-" "-"

[sarcasm]А что если это всё вытворяет РосКомНадзор и они решили получить тотальный контроль над рунетом?[/sarcasm]
А далее уже «Привет, Хабрахабр!»

62.113.86.40 — - [27/Aug/2015:12:50:24 +0300] «GET /reestr/reestr-id128032.php?roskomnadzor=print-439573653*57;&privet_habrahabr! HTTP/1.1» 404 298 "-" "-"
178.132.201.92 — - [27/Aug/2015:12:59:29 +0300] «GET /reestr/reestr-id128032.php?roskomnadzor=print-439573653*57;&privet_habrahabr!&ischem_specov_po_ib_horosho_platim&pokupaem_i_prodaem_shells&ischem_teh_kto_pomojet_monetizirovat_sites&drugie_uslugi-jabber-(здесь был jabber)- HTTP/1.1» 301 572 "-" "-"
5.101.157.63 — - [27/Aug/2015:13:08:15 +0300] «GET /reestr/reestr-id128032.php?roskomnadzor=print-439573653*57;&privet_habrahabr!&ischem_specov_po_ib_horosho_platim&pokupaem_i_prodaem_shells&ischem_teh_kto_pomojet_monetizirovat_sites&drugie_uslugi-jabber-(здесь был jabber)- HTTP/1.1» 301 322 "-" "-"
С нормальными настройками просто вылетит с ошибкой, так как индекс массива они забыли заключить в ковычечки
Господи, ну почему ковычечки-то?
Конечно, Господь же всеведущ.
<?var_dump($_SERVER[HOME]);

Notice: Use of undefined constant HOME — assumed 'HOME' in /.../index.php on line 1
string(8) "/var/www"

Это не ошибка если что.
Руки за это отбивать конечно нужно, но то что вы сказали — это от незнания.
А про настройки не прочел, да, точно, принято.

Перечислю тех, кого я заблокировал сегодня:
за обращения к этому файлу
-A INPUT -s 77.222.57.53 -j DROP
-A INPUT -s 188.93.212.151 -j DROP
-A INPUT -s 5.101.156.31 -j DROP
-A INPUT -s 89.108.106.146 -j DROP
-A INPUT -s 5.101.157.29 -j DROP
-A INPUT -s 54.94.241.168 -j DROP
-A INPUT -s 5.9.96.235 -j DROP

заодно заблокировал кучу ботов, которые думают что у меня WP и подбирают ссылки типа admin и т.д.
вот они
-A INPUT -s 41.35.83.64 -j DROP
-A INPUT -s 94.179.34.81 -j DROP
-A INPUT -s 94.179.34.81 -j DROP
-A INPUT -s 77.37.208.110 -j DROP
-A INPUT -s 192.187.99.195 -j DROP
-A INPUT -s 188.163.69.211 -j DROP
-A INPUT -s 46.148.31.73 -j DROP
-A INPUT -s 46.148.30.39 -j DROP
-A INPUT -s 91.223.28.4 -j DROP
-A INPUT -s 46.148.30.76 -j DROP
-A INPUT -s 46.148.30.78 -j DROP
-A INPUT -s 91.223.28.2 -j DROP
-A INPUT -s 46.148.30.88 -j DROP
-A INPUT -s 91.223.28.3 -j DROP
-A INPUT -s 195.88.190.2 -j DROP
-A INPUT -s 212.47.195.52 -j DROP
-A INPUT -s 198.204.245.202 -j DROP
-A INPUT -s 91.200.12.139 -j DROP
-A INPUT -s 93.124.99.80 -j DROP
-A INPUT -s 198.204.230.130 -j DROP
-A INPUT -s 142.54.174.178 -j DROP
-A INPUT -s 122.201.109.175 -j DROP
-A INPUT -s 128.187.97.21 -j DROP
-A INPUT -s 202.158.52.212 -j DROP
-A INPUT -s 59.61.184.4 -j DROP
-A INPUT -s 5.45.117.51 -j DROP
-A INPUT -s 185.87.121.69 -j DROP
-A INPUT -s 37.230.96.48 -j DROP
-A INPUT -s 91.78.147.240 -j DROP
-A INPUT -s 146.185.251.251 -j DROP
-A INPUT -s 157.55.39.127 -j DROP
-A INPUT -s 176.9.58.227 -j DROP
-A INPUT -s 183.60.244.30 -j DROP
-A INPUT -s 93.124.99.80 -j DROP
-A INPUT -s 5.9.156.11 -j DROP
-A INPUT -s 37.187.53.180 -j DROP
-A INPUT -s 66.231.191.6 -j DROP
-A INPUT -s 142.54.184.181 -j DROP
-A INPUT -s 74.208.100.245 -j DROP
-A INPUT -s 198.204.245.202 -j DROP
-A INPUT -s 77.222.56.204 -j DROP
-A INPUT -s 77.221.130.20 -j DROP
-A INPUT -s 115.146.123.160 -j DROP
Да в серьезных ботнетах десятки тысяч хостов. Мне кажется блокировать (а особенно руками) каждого — не очень эффективно. Не думаю что уменьшится у вас количество таких сканов.
Тем более что кто-то из них может быть простым прокси или выходным шлюзом провайдера.
Согласен, но заблокировал я наиболее активных ботов
Руками блокировать не очень правильно. Можно специально для ботов-сканеров поставить в типичных местах скрипты, которые уже автоматически при обращении к ним будут добавлять соответствующий ip в чёрный список.
Сам с ним не сталкивался, но он вроде по логам определяет — не знаю, с какой частотой идёт опрос логов. А простым скриптом можно сразу заблокировать.
У него ежесекундый опрос логов. Имеет множество своих правил, а также имеет возможность добавлять свои. В настройке прост и ресурсов потребляет не много. Очень удобная штука как раз вот для таких случаев.
А смысл блокировать их по IP?
Ну вернулась им 404 страница и все, это же не DDOS.
В моей практике было один раз что администратор заблокировал по IP и в этоге сам не мог попасть на сайт.
(Часто ботами могут быть обычные пользователи, зараженные вирусами, у многIих провайдеров IP динамические)
А практики когда из — за динамических IP живые клиенты не могли попасть на сайт очень много.
Тут как минимум надо смотреть георасположение IP и убедиться что IP не в зоне целевой аудитории и не среди провайдерских IP.
Даже к взломам я по большей части отношусь с интересом, отловить все скрипты и изменения на сайте дело пяти минут, поправить уязвимость еще 10 минут, а злоумышленник проделывает большую работу по тестированию продукта на безопасность в течении многих часов.
Лучше настроить fail2ban, чтобы блокировать и разблокировать автоматически. Желательно при этом не устроить себе DoS (например, не заблокировать себе ssh).
Они могли просто для прикола проверить, так как читали эту статью на Хабре
А теперь учтите, что все эти проверки перебираются последовательно для каждого входящего пакета. Да тут число правил уже почти достигло длины пакетов TCP ACK! Вы, получается, каждый байт такого пакета проверяете :)

Для таких случаев давно уже придумали ipset.
… ваш сайт внесён в список организаторов распространения информации...

Пять с плюсом за речевой оборот!
Создать пустую виртуальную машину (на которой поднять php), все запросы посылать туда, и смотреть на отчаянные попытки хакера найти что-либо.
Зачем отдельная машина, когда есть докер?
Тоже такое пришло. Отправил сообщение в Роскомнадзор, чтобы они со своей стороны обратились в правоохранительные органы.
Only those users with full accounts are able to leave comments. Log in, please.