Как я уже сообщал два дня назад, сайты на CMS WordPress подверглись массированной атаке со стороны хакерской группировки. Зарубежные издания предполагают, что хакерская группировка представлена в лице одного человека, завладевшего целой сетью зараженных сайтов и серверов, используя их как ботнет. Этот ботнет продолжает атаковать все новые и новые сайты, вовлекая их в свою сеть. Целью атаки стали и сайты, которые я администрирую.
Благодаря информации от специалистов по информационной безопасности компании Defiant, мне удалось однозначно идентифицировать атаку на сайты в моем администрировании с упоминаемым выше ботнетом. Вот что пишет Ram Gall из Defiant в своем блоге 13 мая:
“Наши журналы показывают, что злоумышленник наращивал объем атаки, выдерживал атаку в течение нескольких дней, а затем уменьшал объем до минимума. Каждый из этих всплесков постепенно увеличивался в объеме, поскольку атакующий становится все более агрессивным.
Наличие следующих доменов в базе данных или файловой системе следует рассматривать как признак заражения вашего сайта:
digestcolect[тчк]com
trackstatisticsss[тчк]com
stivenfernando[тчк]com
collectfasttracks[тчк]com
destinyfernandi[тчк]com
Далее автор рекомендует обновить любые устаревшие плагины или темы и использовать для защиты сайта плагин, разработанный их компанией…”
Анализируя логи доступа к одному из администрируемых сайтов за май я смог выделить некоторые особенности хакерской атаки. Так как журналы содержат сотни тысяч записей в зависимости от объема сайта и количества аудитории, анализ журнала обращений к сайту становится нетривиальной задачей. Однако, используя регулярные выражения в Notepad++, мне удалось уменьшить объем лога за 14 дней мая до читаемых размеров в несколько тысяч записей. Это были зарегистрированные обращения атакующих ботнетов к сайту Yakto.Ru.
С самого начала мая злоумышленник, используя свою сеть ботнетов и проксируя IP-адреса, сделал около 1200 запросов, направленных на эксплуатацию известных уязвимостей, а также 11 000 запросов к файлам wp-login.php и xmlrpc.php с целью подбора пароля (брутфорс-атака). Одну из самых агрессивных брутфорс-атак я заметил 12 мая по избыточной нагрузке на сервер.
Моим решением было закрыть доступ к файлам wp-login.php, xmlrpc.php, и полностью к админке WordPress, для всех посторонних IP с помощью директив .htaccess. Это остановило агрессивный bruteforce-attack, однако запросы к файлам продолжались, что говорит об автоматическом режиме работы скриптов атакующего. Не получая в ответ код состояния 200, атакующий переходит в режим ожидания и через некоторое время снова пытается получить доступ к файлам админки и RPC.
Однако вернемся к тому, как распознать в огромном числе записей серверных логов, тревожные сигналы. Во-первых, это множественные запросы к несуществующим файлам с одного IP, множественные POST-запросы к wp-login.php, xmlrpc.php.
Во-вторых, брутфорс-атака начинается как правило с проверки:
такой
62.210.177.42 - - […2020:21:23:01] "GET /wp-includes/wlwmanifest.xml HTTP/1.0" 200 "Mozilla/5.0"
такой
218.21.32.98 - - […2020:08:30:43] "GET /?author=1 HTTP/1.0" 200 "Mozilla/5.0"
218.21.32.98 - - […2020:08:30:47] "GET /?author=2 HTTP/1.0" 200 "Mozilla/5.0"
218.21.32.98 - - […2020:08:30:52] "GET /?author=3 HTTP/1.0" 200 "Mozilla/5.0" …
или такой
52.138.3.22 - - […2020:12:24:05] "GET /?author=1 HTTP/1.0" 200 "Mozilla/5.0"
52. 138.3.22 - - […2020:12:24:06] "GET /wp-json/wp/v2/users/ HTTP/1.0" 404 "Mozilla/5.0"
52.138.3.22 - - […2020:12:24:06] "GET /wp-json/oembed/1.0/embed?url= HTTP/1.0" 404 "Mozilla/5.0"
и запросы повторяются неоднократно. А для проверки типа CMS-движка, атакующий использует множественные запросы к файлу wlwmanifest.xml такого вида:
137.117.80.211 - - "GET /shop/wp-includes/wlwmanifest.xml HTTP/1.0" 404 23556 "-" "Mozilla/5.0"
137.117.80.211 - - "GET /wp1/wp-includes/wlwmanifest.xml HTTP/1.0" 404 23555 "-" "Mozilla/5.0"
137.117.80.211 - - "GET /test/wp-includes/wlwmanifest.xml HTTP/1.0" 404 23556 "-" "Mozilla/5.0"
137.117.80.211 - - "GET /media/wp-includes/wlwmanifest.xml HTTP/1.0" 404 23556 "-" "Mozilla/5.0"
137.117.80.211 - - "GET /wp2/wp-includes/wlwmanifest.xml HTTP/1.0" 404 23556 "-" "Mozilla/5.0"
137.117.80.211 - - "GET /site/wp-includes/wlwmanifest.xml HTTP/1.0" 404 23556 "-" "Mozilla/5.0"
137.117.80.211 - - "GET /cms/wp-includes/wlwmanifest. xml HTTP/1.0" 404 23556 "-" "Mozilla/5.0"
137.117.80.211 - - "GET /sito/wp-includes/wlwmanifest.xml HTTP/1.0" 404 23556 "-" "Mozilla/5.0"
что не ускользнет от внимания бдительного наблюдателя.
Ну и третье, о чем говорил представитель Defiant – наличие в запросе доменных имен, приведенных выше, с которых поставляются зловредные скрипты для новых пациентов. В моем случае, это был XSS-запрос, содержащий домен trackstatisticsss.
Так что, будьте бдительны – атака ботнета в самом разгаре!
Чуть позже представлю список IP-адресов, с которых производятся атаки.
Понравилась статья? Получайте обновления на RSS!
И еще тут будет текст…
В публикации: знаков
5790, слов
775 —
на сумму 11.58 $ (?)
Метки: WordPress, безопасность, брутфорс-атака, взлом, интернет, уязвимости, хакеры
Главная » Лишнее в WordPress
Лишнее в WordPress
Автор Валентин На чтение 3 мин Опубликовано Обновлено
В WordPress есть множество удобных возможностей, особое внимание уделено внешним подключениям к сайту, чтобы сделать разработку и вообще работу удобнее для всех. Посмотри на встроенный функционал WLWmanifest.
Содержание
Функция WLW Manifest в формате xml, позволяет публиковать контент с помощью приложения программы Windows Live Writer.
Если “манифестом” не пользуемся, то следует отключить, тем более подключение ведется через тег link в разделе head, что не хорошо для SEO, потому что ссылка успешно индексируется и каждый раз выкачивается поисковым роботом. Так выглядит ссылка в исходном коде, рядом видим ссылки json, тоже не нужный хлам.
<link rel="wlwmanifest" type="application/wlwmanifest+xml" href="https://site.ru/wp-includes/wlwmanifest.xml" />Как выглядит wlw.
Судя из названия плагин WP head optimizer оптимизирует только раздел head, где идет подключение технической информации с файлами разметки. Устанавливаем и активируем, появится новый раздел в админке.
WP head optimizer.Сразу переходим на сайт, проверяем исходный код вордпресс на наличие линка. Но данный инструмент не универсален, потому что выполняет только одну функцию – это удалить лишнее “головы” блога, но в WordPress есть еще много проблем, поэтому лучше подходить к оптимизации комплексно. В дополнении прикреплю видео инструкцию.
Лучший плагин для оптимизации ресурсов на WordPress, считаю его обязательным для установки. Интерфейс простой, стоит лишь включить одноименный пункт в настройках.
ClearfyПодчеркну, что Clearfy улучшает ресурс еще по 46 пункта, например удалить Rest api, например: настройка архивов, таксономий, полная чистка кода, управление редиректами, защита контента и всего сайта. Для читателей даю скидку на кнопку, нажимайте на кнопку.
Clearfy -15%
Способ подходит не для всех шаблонов, возможно получит не работающий блог, поэтому изменения вносим через FTP соединение и лучше с применением дочерней темы. Вносим данный код в файл function.php, покажу через стандартный редактор.
ИнструкцияРезультат работы будет одинаковый во всех 3 случаях, код подключения WLW manifest исчезнет из HTML сайта. Так мы смогли приблизиться еще на один шаг к чистому WordPress движку, далее разберем другие методики.
Оцените автора
Задавать вопрос
спросил
Изменено 7 месяцев назад
Просмотрено 13 тысяч раз
На этот раз любопытный вопрос. Кто-то только что сделал следующие HTTP-запросы на мой сервер:
127.0.0.1 - - [02/Jun/2021 15:28:00] "GET //wp-includes/wlwmanifest.xml HTTP/1.0" 404 - 127.0.0.1 - - [02/Jun/2021 15:28:00] "GET //xmlrpc.php?rsd HTTP/1.0" 404 - 127.0.0.1 - - [02.06.2021 15:28:00] "GET/HTTP/1.0" 200 - 127.0.0.1 - - [02/Jun/2021 15:28:00] "GET //blog/wp-includes/wlwmanifest.xml HTTP/1.0" 404 - 127.0.0.1 - - [02/Jun/2021 15:28:00] "GET//web/wp-includes/wlwmanifest. xml HTTP/1.0" 404 - 127.0.0.1 - - [02/Jun/2021 15:28:01] "GET //wordpress/wp-includes/wlwmanifest.xml HTTP/1.0" 404 - 127.0.0.1 - - [02/Jun/2021 15:28:01] "GET//веб-сайт/wp-includes/wlwmanifest.xml HTTP/1.0" 404 - 127.0.0.1 - - [02/Jun/2021 15:28:01] "GET//wp/wp-includes/wlwmanifest.xml HTTP/1.0" 404 - 127.0.0.1 - - [02/Jun/2021 15:28:01] "GET//news/wp-includes/wlwmanifest.xml HTTP/1.0" 404 - 127.0.0.1 - - [02/Jun/2021 15:28:01] "GET //2018/wp-includes/wlwmanifest.xml HTTP/1.0" 404 - 127.0.0.1 - - [02/Jun/2021 15:28:01] "ПОЛУЧИТЬ //2019/wp-includes/wlwmanifest.xml HTTP/1.0" 404 - 127.0.0.1 - - [02/Jun/2021 15:28:01] "GET//shop/wp-includes/wlwmanifest.xml HTTP/1.0" 404 - 127.0.0.1 - - [02/Jun/2021 15:28:01] "GET //wp1/wp-includes/wlwmanifest.xml HTTP/1.0" 404 - 127.0.0.1 - - [02/Jun/2021 15:28:01] "GET//test/wp-includes/wlwmanifest.xml HTTP/1.0" 404 - 127.0.0.1 - - [02/Jun/2021 15:28:01] "GET//media/wp-includes/wlwmanifest.xml HTTP/1.0" 404 - 127.0.0.1 - - [02/Jun/2021 15:28:01] "GET//wp2/wp-includes/wlwmanifest. xml HTTP/1.0" 404 - 127.0.0.1 - - [02/Jun/2021 15:28:01] "GET//site/wp-includes/wlwmanifest.xml HTTP/1.0" 404 - 127.0.0.1 - - [02/Jun/2021 15:28:02] "GET//cms/wp-includes/wlwmanifest.xml HTTP/1.0" 404 - 127.0.0.1 - - [02/Jun/2021 15:28:02] "GET//sito/wp-includes/wlwmanifest.xml HTTP/1.0" 404 -
Любая идея, почему кто-то может попробовать это. Я знаю, что это как-то связано с WordPress (который я все равно не использую/не устанавливал). Но мне все еще интересно, почему кто-то пытается делать такие запросы.
Большое спасибо, Жюль
P.S. Сервер говорит, что он исходит от локального хоста, но это потому, что он проходит через Nginx
1
Это обычное дело. Сегодня более 40% мирового интернет-трафика составляют боты, а 25% — вредоносные боты. Это просто боты, которые постоянно ищут возможные бреши в безопасности как можно большего количества проиндексированных доменов, чтобы скомпрометировать сайт.
Существуют инструменты, которые могут помочь вам обнаружить эти запросы и принять меры. Например фейл2бан.2
Зарегистрируйтесь с помощью Google
Зарегистрироваться через Facebook
Зарегистрируйтесь, используя адрес электронной почты и пароль
Электронная почта
Требуется, но никогда не отображается
Электронная почта
Требуется, но не отображается
Я получаю так много этих соединений в моем файле журнала через сервер Apache2
138. 68.72.252 - - [06/янв/2022:10:44:18 +0100] "\x16\x03\x01\x01\xfc\x01" 400 0 "-" "-"
Благодаря https://serverfault.com/a/399901 я знаю, что пытаются взломать
Сервер не уязвим для этого. Также есть настройка для fail2ban и защиты от DOS и DDOS. Так что все, что там делают, можно было бы сделать.
Но они делают мой лог-файл отвратительным.
Итак, , как настроить SetEnvIf в режиме, не регистрируйте запрос, который не является GET и не POST 9\\x16\\x03(.*)$» dontlog=1
но так как нет вроде
20.203.156.151 - - [06/Jan/2022:18:44:01 +0100] "GET / HTTP/1.1" 200 5985 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, например Gecko) Chrome/88.0.4240.193 Safari/537.36" 20.203.156.151 - - [06/янв/2022:18:44:01 +0100] "GET / HTTP/1.1" 200 5871 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML , например Gecko) Chrome/88.0.4240.193 Safari/537.36" 20.203.156.151 - - [06/янв/2022:18:44:02 +0100] "GET /wp-includes/wlwmanifest. xml HTTP/1.1" 404 341 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, как Gecko) Chrome/88.0.4240.193 Сафари/537,36 дюйма 20.203.156.151 - - [06/янв/2022:18:44:02 +0100] "GET /xmlrpc.php?rsd HTTP/1.1" 404 341 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, как Gecko) Chrome/88.0.4240.193 Safari/537.36" 20.203.156.151 - - [06/янв/2022:18:44:02 +0100] "GET / HTTP/1.1" 200 5871 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML , например Gecko) Chrome/88.0.4240.193 Safari/537.36" 20.203.156.151 - - [06/янв/2022:18:44:02 +0100] "GET /blog/wp-includes/wlwmanifest.xml HTTP/1.1" 404 341 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, например Gecko) Chrome/88.0.4240.193 Сафари/537,36 дюйма 20.203.156.151 - - [06/янв/2022:18:44:02 +0100] "GET /web/wp-includes/wlwmanifest.xml HTTP/1.1" 404 341 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, например Gecko) Chrome/88.0.4240. 193 Safari/537.36" 20.203.156.151 - - [06/янв/2022:18:44:02 +0100] "GET /wordpress/wp-includes/wlwmanifest.xml HTTP/1.1" 404 341 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, например Gecko) Chrome/88.0.4240.193 Safari/537.36" 20.203.156.151 - - [06/янв/2022:18:44:02 +0100] "GET /website/wp-includes/wlwmanifest.xml HTTP/1.1" 404 341 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, например Gecko) Chrome/88.0.4240.193 Сафари/537,36 дюйма 20.203.156.151 - - [06/янв/2022:18:44:02 +0100] "GET /wp/wp-includes/wlwmanifest.xml HTTP/1.1" 404 341 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, например Gecko) Chrome/88.0.4240.193 Safari/537.36" 20.203.156.151 - - [06/янв/2022:18:44:02 +0100] "GET /news/wp-includes/wlwmanifest.xml HTTP/1.1" 404 341 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, например Gecko) Chrome/88.0.4240.193 Safari/537.36" 20.203.156.151 - - [06/янв/2022:18:44:03 +0100] "GET /2020/wp-includes/wlwmanifest. xml HTTP/1.1" 404 341 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, например Gecko) Chrome/88.0.4240.193 Сафари/537,36 дюйма 20.203.156.151 - - [06/янв/2022:18:44:03 +0100] "GET /2019/wp-includes/wlwmanifest.xml HTTP/1.1" 404 341 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, например Gecko) Chrome/88.0.4240.193 Safari/537.36" 20.203.156.151 - - [06/янв/2022:18:44:03 +0100] "GET /shop/wp-includes/wlwmanifest.xml HTTP/1.1" 404 341 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, например Gecko) Chrome/88.0.4240.193 Safari/537.36" 20.203.156.151 - - [06/янв/2022:18:44:03 +0100] "GET /wp1/wp-includes/wlwmanifest.xml HTTP/1.1" 404 341 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, например Gecko) Chrome/88.0.4240.193 Сафари/537,36 дюйма 20.203.156.151 - - [06/янв/2022:18:44:03 +0100] "GET /test/wp-includes/wlwmanifest.xml HTTP/1.1" 404 341 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537. 36 (KHTML, например Gecko) Chrome/88.0.4240.193 Safari/537.36" 20.203.156.151 - - [06/янв/2022:18:44:03 +0100] "GET /wp2/wp-includes/wlwmanifest.xml HTTP/1.1" 404 341 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, например Gecko) Chrome/88.0.4240.193 Safari/537.36" 20.203.156.151 - - [06/янв/2022:18:44:03 +0100] "GET /site/wp-includes/wlwmanifest.xml HTTP/1.1" 404 341 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, например Gecko) Chrome/88.0.4240.193 Сафари/537,36 дюйма 20.203.156.151 - - [06/янв/2022:18:44:04 +0100] "GET /cms/wp-includes/wlwmanifest.xml HTTP/1.1" 404 341 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, например Gecko) Chrome/88.0.4240.193 Safari/537.36" 20.203.156.151 - - [06/янв/2022:18:44:04 +0100] "GET /sito/wp-includes/wlwmanifest.xml HTTP/1.1" 404 341 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, например Gecko) Chrome/88.0.4240.193 Safari/537.36" 20.119.227.
Об авторе