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

Привет! Я, Григорий Мельников, создатель сервиса защиты от ботов KillBot расскажу что за мега сканер бегает по интернету, ломает сайты и как вооружиться по максимому чтобы не отхватить прямо завтра.
Прямо сейчас (ноябрь 2026 года) в новостях обсуждаются громкие инциденты:
Взлом 3 тысяч аккаунтов GitHub в октябре.
Тотальный блэкаут хостинга Beget (2 ноября 2026 года).
Закрытие сети гипермаркетов «Порядок» (25 октября 2026 года).
Взлом и дефейс сайтов Росстата (29 октября 2026 года).
И до моего небольшого сервиса тоже добрались, хотя на фоне любого гиганта он не может представлять особого интереса.
Атака началась с того, что я создал ветку на GitHub и выложил исходники сервиса, чтобы у пользователей не возникало ощущения, что они устанавливают на свой сервер чёрный ящик. Именно с этим я связываю интерес МЕГА-БОТА-сканера к моему проекту.
Атаковали англоязычное зеркало (и бекенд и фронтенд), и только после того, как находили там дыры, тут же опробовали их на всех доступных серверах русской и английско локаций.
Справка. Как получают доступ к серверу если пароль не известен
Представь, что ты учишься в универе и написал программу, которая принимает на вход два аргумента: год и месяц рождения. И запускаешь в консоли так:
Age.exe 1984 январьИли если у тебя оконная программа, то так:

А теперь представь, что вместо месяца кто-то передал: “format c:”.
Age.exe 1984 "format c:"И если у тебя программа написана с ошибкой, то она может напрямую вызвать команду format c:.
Сайты ломают так же, заместо обычного запроса:
https://website.ru?a=1984&b=январь
Атакующий может послать такой запрос:
https://website.ru?a=1984&b="создай новый админский аккаунт для меня"
Конечно же, одной командой взлом не происходит. Для этого нужно выполнить целую цепочку действий, а перед этим нужно нащупать какие именно команды нужно передать чтобы добиться успеха.
У тебя есть 3-12 часов на то, чтобы выпилить ковырятеля пока твой сервер не убили
Взлом НЕ ежеминутный. От начала ковыряния дыры до непосредственного проникновения может уйти от 3-5 и более часов! От момента проникновения до понимания что у тебя лежит и где - так же может уйти 3-5 часов. Т.е. от момента проникновения до убийства твоего сервера есть резервное окно часов в 8 - чтобы ты очухался и вовремя прикрыл дыру.
Что нужно знать:
МЕГА БОТ работает по НОЧАМ и круглосуточно в выходные. Чтобы на утро, после сладких снов, подготовить тебе подарок.
Дыра раскрывается НЕ по шаблону - по типу - вон битрикс такой то версии, щас я один запрос бахну и он упадет. Дыра ищется перебором возможных инъекций уязвимости которые формируются из понимания как вообще это все работает, и что может сработать для твоего конкретного случая.
Взлом похож на полностью автоматический. Наблюдаются просадки с окнами в 4-ре часа по времени - тут может или ожидание оператора или планирование или еще что.
Настойчивость. Если ты бота заблокировал по IP, он без эмоций возьмет другой и продолжит делать своё дело.
Возвращаемость. Если бот взломал твой сайт - он вернется на следующую ночь чтобы сломать тебя еще раз через другую дыру.
ЦЕЛЬ БОТА - это получение доступа к управлению сервером. Сайт, админка, майлы, пользователи сайта не так интересны как проникновение внутрь сервера. Этот вывод сделан из анализа действий атакующего.
Скорость прощупывания очень высокая.
В момент проникновения идёт массовое создание ресурсов (отправка get и post запросов) для прощупывания системы: Т.е. GET и POST параметры будут кишить php и mysql инъекциями. В логах сервера ты увидишь или попытки авторизации или попытки регистрации или попытки создания проекта внутри системы, создание страниц на сайте, ты просто увидишь много запросов типа "страница не найдена с битыми параметрами". В секунду может приходить 10-30 прощупывательных запросов - бывают перерывы или чтобы скорость не палить - или чтобы продумать план на будущее.
Когда дыра одного сервера чуть расширена, готовый план без промедления применяется к другим серверам из списка.
Вот прямо сейчас зайди в админку И в пользователей базы данных и ищи там левых СУПЕРПОЛЬЗОВАТЕЛЕЙ.
Да, это возможно! Хотя, у тебя И пароли уникальные. И доступ у тебя к базе ограничен по IP. И входные параметры у тебя валидируются, и кавычки экранируются. А левый супер-админ, то появится.
Добро пожаловать в новую эпоху осознания того, что всё, что мы используем в своей работе, - одно сплошное ДУПЛО! И то, что ты делаешь для безопасности - тоже большое ДУПЛО.
КАК получают доступ к серверу ПО ШАГАМ:
Точки входа сейчас - это дырявый web софт, который мы используем. С одной стороны использовалась библиотека для MySQL, которая оказалась не устойчива к SQL-инъекциям. А с другой стороны - это движек сайта в котором за 3 часа ковыряния удалось создать суперпользователя.
SQL-инъекция, это когда запрос к базе сайта проходит через форму логина сайта, например или по какому либо URL запросу на сайт.
В этом случае злоумышленник может получить доступ к файликам твоего сайта. Например, так:
SELECT LOAD_FILE('/path/to/your/file.txt') AS file_content;И всё - твои паролички которые есть в файлах сервера, исходнички, гитхабчики как на ладони.
ИЛИ:
CREATE USER 'admin_user'@'localhost' IDENTIFIED BY 'Password123!';
GRANT ALL PRIVILEGES ON *.* TO 'admin_user'@'%' WITH GRANT OPTION;
FLUSH PRIVILEGES;Запрос прошел, и все - в твоей базе новый пользователь с админскими привилегиями, и аля-улю.
ВАЖНО! Чтобы злоумышленник через инъекцию НЕ смог бы открыть файл файлы твоего сервера или создать админа. ЗАПРЕЩЕНО прописывать в настройках сайта в MYSQL, ROOT пользователя с административными GRAND правами.
А если злоумышленник смог создать пользователя в MySQL, то все - он подключится к базе сайта напрямую.
ВАЖНО! Чтобы у тебя в фаерволе порт 3306 был открыт только для твоих IP, а не для всех подряд. Иначе злоумышленник запользует своего нового пользователя для твоей базы данных.
ВОТ прямо сейчас иди и посмотри, какие права имеет пользователь базы данных твоего сайта, и убедись, что он не может создавать других пользователей и читать файлы сервера. И убедись что фаервол у тебя запрещает обращение к 3306 с любого IP.
Файлы твоего сервера можно слить и без взлома MYSQL.
Атакующий по аналогии через формы, поля ввода или url сможет создать файл с таким содержимым:
<?php echo shell_exec($_GET["c"]); ?>А этот код может передать ЛЮБУЮ команду из URL напрямую на твой сервер. И все - сервер ушел.
ВАЖНО! На сервере тебе нужно запретить создание файлов от имени веб-пользователя (www-data).
Далее, если даже файл создан, тебе нужно запретить через PHP выполнять опасные функции вроде shell_exec.
Так же нужно отключить возможность писать (выполнять) php код через админку сайта. В админке только HTML страницы. PHP относится к модулям сайта - их очень хорошо сейчас пишет нейронка - из админки эту часть можно выпилить полностью.
Даже если у тебя стоит фильтр защиты от выполнения левого PHP-кода, сама возможность выполнять PHP остаётся, вот пример попытки обхода такого фильтра:
$w='file'.'_put'.'_contents';
$a=array('M4083');
$z=@array_walk(
$a,
$w,
'/var/www/html/killbot.ru/sites/default/files/kb4083e.txt'
);
return 'k';ИМЯ функции собирается из частей - file_put_contents. Это попытка обойти защиту ModSecurity.
Пароль от админки написал на листочке, Надёжно!
ХА-ХА-ХА! А дырочки в твоей CMS позволят создать пользователя с АДМИНСКИМИ правами - и твой бумажный пароль не потребуется. Через одни дырочки можно создать пользователя, а через другие - выдать ему права доступа.
А если админский пароль хранится в каком то файле, то дырочки сервера могут позволить получить паролик от твоей CMS.
ЗАПРЕЩАЙ физически, ХАРДКОДОМ, создавать новых админов и выдавать административные роли. Напиши код и вбей его колом: Админом можешь быть только ты и твой друг, и все! Ни через интерфейс, никак нельзя больше получить роль админа. Если идет запрос на сайт от другого пользователя с ролью админа, то сразу сбрасывай роль и звони себе с предупреждением, что сайтик-то ломают.
ЗАПРЕТИ доступ в админку с любых IP, кроме своего, родненького, - и никак иначе. А то твой паролик утечёт, в пятницу ты уйдёшь спать, а в понедельник увидишь жирный ПРИВЕТ на морде сайта.
Теперь о самой важной ДЫРЕ безопасности, которую НУЖНО закрыть всем и прямо сейчас!
Когда МЕГА БОТ зашел в CMS и я увидел множество автоматических действий, сразу возник вопрос: КАК?! У МЕНЯ ЖЕ СПЕРЕДИ ЭКРАН ЗАЩИТЫ!!!
А всё просто. ОН пошел напрямую на сервер сайта, минуя сервер защиты.
И это как раз тот момент, о котором я постоянно говорю своим пользователям: запретите принимать запросы на сайт в обход сервера. Если ты подключил Cloudflare, Килбот или любой другой сервис, то тебе еще нужно руками в настройках своего сервера запретить подключения вне этого сервера.
Но я-то думал, что самый умный! Я-то думал, что раз заказал отдельный сервер с отдельным IP, специально под файлы сайта, никому про этот IP не сказал, то никто об этом IP не узнает. ХА-ХА-ХА!
Атака сразу прекратилась, как только я запретил прямой доступ к сайту в обход сервера защиты. Идти через защитный прокси боту по не интересно, алгоритм настроен на обращение к серверу сайту, минуя всё, что находится перед ним.
Как нужно защитить сайт прямо сейчас чтобы его не взломали?
Смотрите логи и на бекенде и на фронтенде, и перед сном, и ночью на предмет инъекций. Если видите запросы с инъекцией, то НЕ СПИТЕ - спать запрещено.
Смотрите лог действий в админке сайта - там не должно быть левых сканирующих запросов вообще, не должно быть массовых действий. Если увидели подозрительное, то НЕ СПИТЕ, если даже бота нет сейчас - он вернется.
Запретите сайту подключаться к базе с root-правами. Это сразу не даст атакующему создать админа в случае SQL-инъекции.
Удалите все лишние файлы из проекта. Каждый файл - это точка входа для атакующего.
Отключите отображение ошибок на сайте. Сайт не должен выдавать посетителю причину ошибки. А то если сайт выдаст mysql запрос с ошибкой или название параметров которых не хватает - это сразу инструкция как изменить запрос чтобы он заработал.
Отключить вывод PHP-ошибок на сайте. Иначе абсолютные пути к фалам сайта сольются и будет проще слить файлы.
К веб серверу (nginx или ачач) подключите простой конфиг на выявление и блокировку SQL инъекций.
Запретите устанавливать модуль на сайт через админку. ПРЯМО захардкодьте. Если у атакующего будет админский доступ к сайту, то нейронка тут же напишет модуль под ваш сайт, скачает и убьёт всё что нужно.
Выпилите PHP модули с CMS - чтобы ни админ не пользователь не мог бы выполнять php код на сайте. Прямо удалите этот модуль физически чтобы его нельзя было включить.
Захардкодьте тех админов что есть. Других админов в принципе нет, и все!
Запретите админу вход с любого IP. Администратор должен входить только с разрешённого адреса.
НОТИФИКАЦИИ по звонку! Прямо сейчас накидайте шел скрипт, который:
- проверяет пользователей к БД, что там нет левых
- проверяет админов
- проверяет что нет левых файлов на сервере (простым счетчиком)
- проверяет что на сайте нет активных действий (ВАЖНО!)И подключите экран защиты (поставьте прокси перед сайтом чтобы все запросы оседали бы там). Можно написать самомоу с помощью нейронки, вот есть моя другая статья где передается идея: https://habr.com/ru/articles/851698/.
Скинь этот документ другу, чтобы он тоже смог защититься
И прямо сейчас иди в нейронку и попроси помочь сконфигурировать свой сайт и веб сервер по всем пунктам что описаны выше.
KioskNews shows a cleaned-up reading view extracted from the publisher’s page — the original always lives on their site, not ours.