Примерно последние 2 месяца наблюдается волна взломов WordPress. С взломанного сайта обычно ставят редирект на какой нибудь сайт казино или фишинговый сайт , маскируя под капчу , как на картинке.
Вкратце расскажу про причину взлома, а затем расскажу про простой способ лечения сайта, если повезло и вирус затронул только БД. — это самый частый сценарий.
Способ взлома необычен и связан не с уязвимостью какого нибудь плагина или с использованием уязвимой версии Вордпреса. А связан с халатностью разработчиков или владельца сайта. Многие вебмастера используют для работы с БД MySql утилиту Adminer. Мой поклон разработчикам, сам охотно использую. Только оставлять после разработки adminer на сайте дурной тон. Как оказалось, версия до 4.6.2 имеет уязвимость связанную с использованием конструкции
LOAD DATA LOCAL INFILE ‘filename’ . С ее помощью можно импортировать клиентские файлы в БД. Adminer позволяет соединяться с бд, на удаленном сервере, соотвественно хакер может использовать конструкция для просмотра на своем сервере файлов с сайта на котором стоит adminer. Например wp-config.php . Из него можно извлечь настстройки к БД, далее через тот же adminer создать админа к WordPress и далее делать что угодно.
Уязвимость обнаружена давно ,еще в 2018 году, но массовые атаки с ее использованием наблюдаются последние пару месяцев. Чаще всего атакуют WordPress, реже Joomla, ModX, Opencart и другие CMS. Чаще всего ставят редирект, внедряя его в БД Mysql, реже закидывают вредоносы других типов.
Вот так выглядит фрагмент сканирования на уязвимость в логах одного из сайтов.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 |
51.39.196.197 - - [29/Nov/2019:17:11:56 +0300] "GET //administrator/index.php HTTP/1.0" 301 430 "-" "python-requests/2.22.0" 51.39.196.197 - - [29/Nov/2019:17:11:57 +0300] "GET /administrator/ HTTP/1.0" 404 113848 "-" "python-requests/2.22.0" 51.39.196.197 - - [29/Nov/2019:17:11:58 +0300] "GET //wp-login.php HTTP/1.0" 302 296 "-" "python-requests/2.22.0" 51.39.196.197 - - [29/Nov/2019:17:12:07 +0300] "GET //admin HTTP/1.0" 301 421 "-" "python-requests/2.22.0" 51.39.196.197 - - [29/Nov/2019:17:12:08 +0300] "GET /admin HTTP/1.0" 404 113848 "-" "python-requests/2.22.0" 91.121.84.201 - - [29/Nov/2019:19:13:26 +0300] "GET /admin.php HTTP/1.0" 404 113848 " 51.15.144.64 - - [29/Nov/2019:19:18:19 +0300] "GET /_adminer HTTP/1.0" 404 113848 "-" "Go-http-client/1.1" 51.15.144.64 - - [29/Nov/2019:19:18:24 +0300] "GET /_adminer.php HTTP/1.0" 404 113848 "-" "Go-http-client/1.1" 51.15.144.64 - - [29/Nov/2019:19:18:26 +0300] "GET /ad.php HTTP/1.0" 404 113848 "-" "Go-http-client/1.1" 51.15.144.64 - - [29/Nov/2019:19:18:30 +0300] "GET /adm.php HTTP/1.0" 404 113848 "-" "Go-http-client/1.1" 51.15.144.64 - - [29/Nov/2019:19:18:35 +0300] "GET /adminer HTTP/1.0" 404 113848 "-" "Go-http-client/1.1" 51.15.144.64 - - [29/Nov/2019:19:18:37 +0300] "GET /adminer-4.3.1.php HTTP/1.0" 404 113848 "-" "Go-http-client/1.1" 51.15.144.64 - - [29/Nov/2019:19:18:39 +0300] "GET /adminer.php HTTP/1.0" 404 113848 "-" "Go-http-client/1.1" 51.15.144.64 - - [29/Nov/2019:19:18:41 +0300] "GET /db.php HTTP/1.0" 404 113848 "-" "Go-http-client/1.1" 51.15.144.64 - - [29/Nov/2019:19:18:46 +0300] "GET /mysql.php HTTP/1.0" 404 113848 "-" "Go-http-client/1.1" 51.15.144.64 - - [29/Nov/2019:19:18:51 +0300] "GET /pma.php HTTP/1.0" 404 113848 "-" "Go-http-client/1.1" 51.15.144.64 - - [29/Nov/2019:19:18:53 +0300] "GET /wp-content/adminer.php HTTP/1.0" 404 113848 "-" "Go-http-client/1.1" 51.15.144.64 - - [29/Nov/2019:19:18:58 +0300] "GET /wp-content/plugins/adminer/inc/editor/index.php HTTP/1.0" 301 454 "-" "Go-http-client/1.1" |
Ищут в разных папках, под разными названиями.
Как лечить сайт на WordPress от редиректа?
Рассмотрим самый простой сценарий. Если вам повезло и вы обнаружили взлом сразу же.
Вариант 1, если у вас есть бекап на сервере или у хостера, то можно просто откатить сайт и затем удалить adminer . В данном случае даже не нужно никаких спец знаний.
Если бекапа нет, но вам повезло и вирус затронул только БД. В этом случае, можно использовать для лечения от редиректа тот же adminer , ирония судьбы :). Редирект обычно располагается в двух местах WordPress, в постах и в опциях. В админере есть очень удобная опция, поиска по всем таблицам. Ищем «/script» фрагмент закрывающего тега javascript с редиректом. Или если мы знаем код редиректа, можно искать по его фрагменту. Пример на скрине редирект на land[.]buyittraffic.
Удалить можно и вручную, но если включений много, то проще sql запросом.
1 2 3 4 5 |
UPDATE wp_posts SET post_content = REPLACE(post_content, "<script src='https://scripts[.]trasnaltemyrecords[.]com/pixel.js?track=r&subid=043' type='text/javascript'></script>",'') WHERE post_content LIKE "%trasnaltemyrecords%"; UPDATE wp_posts SET post_content = REPLACE(post_content, "<script src='https://land[.]buyittraffic[.]com/clizkes' type='text/javascript'></script>",'') WHERE post_content LIKE "%land.buyittraffic%"; UPDATE wp_posts SET post_content = REPLACE(post_content, "<script type=text/javascript src='https://top[.]worldctraffic[.]com/top'></script>",'') WHERE post_content LIKE "%top.worldctraffic%"; |
Я привел пример 3 включений, но могут быть и другого типа. В примере добавил лишние квадратные скобки [],чтобы не ругался антивирус на ссылки на вредоносные сайты. Их надо убрать из запроса.
Далее проверить опции. В опциях ‘siteurl‘ и ‘home‘ обычно выставляют адрес своего сайта, но могут засунуть и в другие. Ну и конечно проверить на наличие лишних администраторов. Пример левого админа wordprestadmin на скрине
После удаления лишних администраторов, проверить та ли стоит почта, ее могли подменить на свою. Обязательно поменять пароль оставшимся админам. Не забыть удалить adminer и поменять пароль к БД.
Если вам повезло и вредоносный редирект затронул только БД Вордпреса, то на этом все. Если не повезло, то придется проверять и файлы, это уже сложнее. Если вам позволяет квалификация, то вы можете сделать это самостоятельно при помощи моей утилиты fscure или альтернативными методами.
Если у вас не получается вылечить сайт самостоятельно, welcome, могу помочь! 6 месяцев гарантии на работу, цена 800 руб.
Контакты
Свежие комментарии