Как взломать сайт за 5 минут: уязвимость в плагине Ultimate Member дает полный доступ к WordPress

200 тысяч сайтов под угрозой.
Уязвимость, которая получила идентификатор CVE-2023-3460 (оценка CVSS: 9.8), затрагивает все версии плагина Ultimate Member, включая последнюю версию (2.6.6), которая была выпущена 29 июня 2023 года. Ultimate Member — это популярный плагин, который позволяет создавать профили пользователей и сообщества на сайтах WordPress. Он также предоставляет функции управления учетными записями. “Это очень серьезная проблема: неаутентифицированные злоумышленники могут использовать эту уязвимость для создания новых учетных записей пользователей с административными привилегиями, давая им возможность полностью контролировать зараженные сайты”, — говорится в предупреждении компании по безопасности WordPress WPScan. В целях предотвращения активного злоупотребления подробности об уязвимости в данном случае не раскрываются. Однако, она связана с недостатком в логике блокировки. Этот недостаток позволяет злоумышленникам модифицировать значение параметра wp_capabilities в метаданных нового пользователя, присваивая ему статус администратора и таким образом обеспечивая себе полный доступ к сайту.
“Хотя у плагина есть предопределенный список запрещенных ключей, которые пользователь не должен иметь возможность обновлять, есть тривиальные способы обхода фильтров, установленных в уязвимых версиях плагина, такие как использование разных регистров, слешей и кодировки символов в передаваемом значении метаданных ключа”, — сказала исследовательница Wordfence Хлоя Чамберлен. Проблема была обнаружена после того, как появились сообщения о том, что на затронутых сайтах добавляются поддельные административные учетные записи, что заставило разработчиков плагина выпустить частичные исправления в версиях 2.6.4, 2.6.5 и 2.6.6. Новое обновление ожидается в ближайшие дни. «Уязвимость, приводящая к повышению привилегий и используемая через формы Ultimate Member, обнаружена в дикой природе,» — говорится в примечаниях к последнему выпуску Ultimate Member. «Эта уязвимость позволяет несанкционированным лицам создавать пользователей WordPress с правами администратора».
«WPScan выражает озабоченность по поводу того, что текущие исправления являются неполными, и указывает на наличие множества методов для их обхода. Это говорит о том, что уязвимость продолжает активно эксплуатироваться», — говорится в сообщении WPScan.
В наблюдаемых атаках уязвимость используется для регистрации новых учетных записей под именами apadmins, se_brutal, segs_brutal, wpadmins, wpengine_backup и wpenginer для загрузки вредоносных плагинов и тем через панель администрирования сайта. Пользователям Ultimate Member рекомендуется отключить плагин до тех пор, пока не будет выпущено надлежащее исправление, которое полностью устранит уязвимость. Также рекомендуется проверить все учетные записи пользователей с правами администратора на сайтах, чтобы определить, не были ли добавлены какие-либо несанкционированные учетные записи. 1 июля разработчики плагина Ultimate Member выпустили версию 2.6.7, в котором попытались устранить активно эксплуатируемую уязвимость, позволяющую повышать привилегии пользователей. В качестве дополнительной меры безопасности они также планируют внедрить в плагин новую функцию, которая позволит администраторам веб-сайтов сбрасывать пароли всех пользователей. «Версия 2.6.7 представляет собой внедрение белого списка для мета-ключей, которые сохраняются при отправке форм», — заявили разработчики в своем самостоятельном информационном бюллетене. «Кроме того, 2.6.7 отделяет данные настроек формы от отправленных данных, работая с ними как с двумя отдельными переменными».
Закрываем дыры в своем сайте на примере сканеров уязвимости ресурсов
Когда-то давно в еще далеком 2012 году я открыл цикл рубрик по хакингу, вернее, по поиску и исправлению уязвимостей в различных IT приложениях. Но потом блог «опопсился» в целях популяризации публики и превратился в то, что вы видите. Однако, как и обещал, programbeginner.ru вновь станет тем ресурсом, каким я его видел и создавал изначально.
Так как ко мне часто обращаются те, кто только начинает свои робкие шаги на поприще веб-разработки, то приходится нередко и слышать жалобы о том, что их сайт «угнали» или заразили шеллкодом. Причем, эти люди искренне недоумевают о том, почему так происходит. А ведь причина очень проста – сейчас столько автоматизированных средств для поиска уязвимостей, что буквально делает взлом слабозащищенного ресурса делом лени и времени.
Наверняка читатель это статьи имеет свой сайт или блог. И скорее всего это будет из троицы популярных CMS – WordPress, Joomla или Drupal. WordPress вообще сейчас отдельная тема. Изначально созданный для блогосферы, он теперь позволяет создавать колоссальные сайты, причем, эта эволюция системы у меня проходила буквально на глазах за все эти четыре года. В итоге простой для освоения, этот мощный движок заполонил дисковые пространства жестких дисков хостингов всего мира.
Впрочем, эта проблема касается не только Worpdress. Тоже самое можно сказать и о Joomla, Drupal и о многих бесплатных и популярных CMS. Вполне законно, что чем популярнее движок, тем больше его устанавливают и тем больше к нему привлекается внимание хакеров. Ведь владельцу популярного ресурса есть что терять, а, значит, он легче расстанется со своими деньгами, дабы его защитить.
В этой статье я не буду ничего писать ни об инъекциях в код, ни о метасплойте, хотя посредством Armitage такой пентест превращается в нечто сродни баловству. Сейчас вообще появилось масса инструментов, облегчающих жизнь пентестерам и хакерам. И особенно так называемым «скрипт-кидди», часто новичкам, которые хотят что-либо «хакнуть», не понимая многих процессов при этом, но упорно мучающие тот или иной инструмент для пентеста. А их сейчас безумно много. Взять тот же Kali Linux, который должен быть у любого мало-мальски уважающего себя айтишника. Профессиональный дистрибутив представляющий из себя набор высококлассных инструментов для сканирования уязвимостей и взлома многих систем. Однако Kali Linux это просто сборник программ, которые легко можно установить и в Ubuntu, Debian, Fedora т.д.
Так как ко мне обращаются мои рефералы с ihc.ru (хорошего хостинга, на котором я и сижу все эти четыре года), имеющие блоги на WordPress, на примере этой CMS я и покажу как обнаруживают, сканируют и ломают эти сайты.
Итак, нам понадобится браузер Google Chrome, инструмент под названием WPscan и немножко усидчивости.
Поставьте в Chrome расширение под названием Wappalyzer. Это незаменимое расширение для тех, кто занимается поиском и устранением уязвимостей на различных ресурсах. Wappalyzer определяет, на чем работает тот или иной сайт, сильно упрощая подбор средств для пентеста. Так что иметь в своем арсенале обязательно!

Так достаточно просто можно узнать много о сайте
Вот пример того, как мы в гугле нашли сайт «жертвы» и с помощью Wappalyzer считали информацию по нему.
Это пример того, как уже хакеры упрощают себе жизнь тем, что просто уже знают что они будут сканировать и взламывать. У нас же все проще, ведь мы будем изучать собственные ресурсы, хотя в случае, когда ко мне обращаются, мне приходится для исправления дыр в уязвимости сайта начинать с подобных шагов.
Теперь нам понадобится WPscan –написанная на языке ruby программа для поиска информации и уязвимости сайтов, созданных на WordPress. К слову, для Joomla такой инструмент называется joomscan, для Drupal — drupscan. У меня стоит Kali Linuxна виртуалке и я буду пользоваться им, если у вас стоит Ubuntu, к примеру, и на ней версия от 14.04, то можете установить wpscan следующим образом:
sudo apt-get install libcurl4-openssl-dev libxml2 libxml2-dev libxslt1-dev ruby-dev build-essential git clone https://github.com/wpscanteam/wpscan.git cd wpscan sudo gem install bundler && bundle install --without test
Будем считать, что программа у вас уже установлена. Что ж, теперь остается дело техники – запустить ее и считать интересующую информацию:
wpscan –u адрес_сайта [—опции, которые можно посмотреть в справке]
Команда без опций даст полную информацию по сайту:

Сканируем сайт с помощью wpscan
В большинстве случаев, часто достаточно для теста именно приведенной команды.
После запуска программы, она предложит обновить базы данных, с чем нужно согласиться. После этого начнется процесс сканирования, в котором вам будут давать общую информацию об используемых плагинах и темах, а также какая версия WordPress сейчас используется. В этом же листинге вы сможете увидеть обнаруженную уязвимость и любезно предоставленную ссылку для перехода на страницу с эксплойтом, как видите на моем скриншоте. Кроме того, WordPress Security Scannerдаст вам информацию о том, какие элементы устарели и предоставляют повышенную опасность.
Безусловно, то, что я сейчас написал весьма поверхностно. Однако фактически вы можете буквально изучить свой сайт, да и сайт конкурента. Понравилась тема или плагин? Просканировали и установили у себя нечто подобное. Перечисления в wpscan довольно-таки простые:
wpscan -u сайт –enumerate p -покажет перечень всех плагинов на сайте
wpscan -u сайт –enumerate t -покажет перечень тем
wpscan -u сайт –enumerate u-покажет список всех пользователей сайта
Фактически, все это и можно использовать во вред, та как зная, какие пользователи есть на сайте, можно попытаться брутфорсом подобрать пароль, причем, снова же при помощи wpscan. Поэтому здесь нужно быть особенно внимательным и осторожным.
В общем, на тему пентеста я могу писать огромные фолианты, так как тема здесь достаточно обширна. Вам важно понимать, что создав свой блог или сайт, нужно тут же примерить на себя маску хакера и провести такой аудит, ведь это бесплатно и избавит вас от проблем в дальнейшем.
Не забывайте обновляться. Это избавит вас от массы уязвимостей как самого движка, так и плагинов.
Также имейте в виду, что wpscan нагло «палит» все, что лежит в директориях вашего сайта. Даже если темы или плагины не активны, они лежат в каталогах сайта и представляют брешь, поэтому просто удаляйте все то, чем вы не пользуетесь.
Не помешает в файле robots.txt запретить индексацию каталогов, которые могут о вас много чего рассказать ненужного. Например:
После этого добавьте уже то, что можно индексировать и все.
WordPress славится тем, что очень легко расширяется плагинами, превращающими его в мощнейшую систему. Поэтому установите плагины, усложняющие взлом. Лично я советую использовать такие плагины как: iThemesSecutity – очень мощный плагин. Однако безопасности много не бывает и прежде чем установить тему, рекомендую использовать Revisium WordPress Theme Checker, а сам сайт промониторить на зловредов с помощью Sucuri Security.
А вот авторизация, господа… Здесь просто поставьте LoginLockDown, ограничивающих количество неудачных попыток авторизоваться, и не пускающих больше по этому ip адресу в течение некоторого промежутка времени.
Как видите, современным взломщикам сейчас достаточно уметь пользоваться автоматизированными инструментами, которых сейчас много. Поэтому не поленитесь просканировать свой сайт на Worpdress на предмет уязвимости wpscan. Поверьте, это спасет вас в дальнейшем от ряда проблем.
Ломаем и защищаем WordPress своими руками

WordPress — это удобная блог-платформа для публикации статей и управления ими, на которой базируется огромное число различных сайтов. Из-за своей распространенности эта CMS уже давно является лакомым куском для злоумышленников. К сожалению, базовые настройки не обеспечивают достаточного уровня защиты, оставляя многие дефолтные дырки незакрытыми. В этой статье мы пройдем типичным путем «типового» взлома сайта на WordPress, а также покажем как устранить выявленные уязвимости.
Введение
На сегодняшний день WordPress среди систем управления контентом популярнее всего. Его доля составляет 60,4% от общего числа сайтов, использующих CMS-движки. Из них, согласно статистике, 67,3% сайтов базируется на последней версии данного программного обеспечения. Между тем за двенадцать лет существования веб-движка в нем было обнаружено 242 уязвимости различного рода (без учета уязвимостей, найденных в сторонних плагинах и темах). А статистика сторонних дополнений выглядит еще печальней. Так, компания Revisium провела анализ 2350 русифицированных шаблонов для WordPress, взятых из различных источников. В результате они выяснили, что более половины (54%) оказались зараженными веб-шеллами, бэкдорами, blackhat seo («спам») ссылками, а также содержали скрипты с критическими уязвимостями. Поэтому устраивайся поудобней, сейчас мы будем разбираться, как провести аудит сайта на WordPress и устранить найденные недостатки. Использовать будем версию 4.1 (русифицированную).
Индексирование сайта
Первым этапом любого теста обычно бывает сбор информации о цели. И тут очень часто помогает неправильная настройка индексирования сайта, которая позволяет неавторизованным пользователям просматривать содержимое отдельных разделов сайта и, например, получить информацию об установленных плагинах и темах, а также доступ к конфиденциальным данным или резервным копиям баз данных. Чтобы проверить, какие директории видны снаружи, проще всего воспользоваться Гуглом. Достаточно выполнить запрос Google Dorks типа site:example.com intitle:»index of» inurl:/wp-content/ . В операторе inurl: можно указать следующие директории:
/wp-content/ /wp-content/languages/plugins /wp-content/languages/themes /wp-content/plugins/ /wp-content/themes/ /wp-content/uploads/
Если сможешь просмотреть /wp-content/plugins/ , следующий шаг по сбору информации об установленных плагинах и их версиях значительно упрощается. Естественно, запретить индексирование можно с помощью файла robots.txt . Так как по умолчанию он не включен в установочный пакет WordPress, его необходимо создать самому и закинуть в корневую директорию сайта. Мануалов по созданию и работе с файлом robots.txt довольно много, поэтому оставлю эту тему для самоподготовки. Приведу лишь один из возможных вариантов:
User-Agent: * Disallow: /cgi-bin Disallow: /wp-login.php Disallow: /wp-admin/ Disallow: /wp-includes/ Disallow: /wp-content/ Disallow: /wp-content/plugins/ Disallow: /wp-content/themes/ Disallow: /?author=* Allow: /
Если в файлах, хранящихся в папке uploads , имеются сведения конфиденциального характера, добавляем к этому списку строчку: Disallow: /wp-content/uploads/ .
С другой стороны, в файле robots.txt не рекомендуется размещать ссылки на директории, которые были созданы специально для хранения чувствительной информации. Иначе этим самым ты облегчишь злоумышленнику задачу, так как это первое место, куда обычно все заглядывают в поисках «интересненького».
Определение версии WordPress
Еще один важный шаг — идентификация версии CMS. Иначе как подобрать подходящий сплоит? Существует три быстрых способа для определения используемой на сайте версии WordPress:
-
Найти в исходном коде страницы. Она указана в метатеге generator :
или же в тегах :
"Project-Id-Version: WordPress 4.1.1\n"


Другие статьи в выпуске:
Хакер #196. Все о Docker
- Содержание выпуска
- Подписка на «Хакер» -60%

Один из вариантов защиты в данном случае — ограничить доступ к файлам readme.html и ru_RU.po с помощью .htaccess .
Автоматизация процесса тестирования
Исследованием безопасности WordPress занялись не вчера, поэтому существует достаточное количество инструментов, позволяющих автоматизировать рутинные задачи.
nmap -sV --script http-wordpress-info
nmap -p80 --script http-wordpress-brute --script-args 'userdb=users.txt,passdb=passwords.txt' example.com
- модуль для определения версии: auxiliary/scanner/http/wordpress_scanner ;
- модуль для определения имени пользователя auxiliary/scanner/http/wordpress_login_enum .
- перечисление установленных плагинов: wpscan —url www.exmple.com —enumerate p ;
- перечисление установленных тем: wpscan —url www.exmple.com —enumerate t ;
- перечисление установленного timthumbs: wpscan —url www.example.com —enumerate tt ;
- определение имени пользователя: wpscan —url www.example.com —enumerate u ;
- подбор пароля по словарю для пользователя admin: wpscan —url www.example.com —wordlist wordlist.txt —username admin ;
- подбор пароля с использованием связки имя пользователя / пароль с числом потоков, равным 50: wpscan —url www.example.com —wordlist wordlist.txt —threads 50 .
Определение установленных компонентов
Теперь давай соберем информацию об установленных плагинах и темах независимо от того, активированы они или нет. Прежде всего такую информацию можно выудить из исходного кода HTML-страницы, например по JavaScript-ссылкам, из комментариев и ресурсов типа CSS, которые подгружаются на страницу. Это самый простой способ получения информации об установленных компонентах. Например, строчки ниже указывают на используемую тему twentyeleven:
Далее, HTTP-заголовки, такие как X-Powered-By , могут указывать на наличие плагина (например, на плагин W3 Total Cache).
Так как информация о плагинах не всегда отображается в исходном коде HTML-страницы, то обнаружить установленные компоненты можно с помощью утилиты WPScan (см. врезку). Только не забывай, что перебор путей плагинов зафиксируется в логах веб-сервера.
Получив данные об установленных компонентах, уже можно приступать к поиску уязвимостей своими силами либо найти общедоступные эксплойты на ресурсах типа rapid7 или exploit-db.
Определение имени пользователей
По умолчанию в WordPress каждому пользователю присваивается уникальный идентификатор, представленный в виде числа: example.com/?author=1 . Перебирая числа, ты и определишь имена пользователей сайта. Учетная запись администратора admin, которая создается в процессе установки WordPress, идет под номером 1, поэтому в качестве защитной меры рекомендуется ее удалить.
Брутфорс wp-login

Зная имя пользователя, можно попробовать подобрать пароль к панели администрирования. Форма авторизации WordPress на странице wp-login.php весьма информативна (рис. 3), особенно для злоумышленника: при вводе неправильных данных появляются подсказки о неверном имени пользователя или пароле для конкретного пользователя. Разработчикам известно о данной особенности, но ее решили оставить, так как подобные сообщения удобны для пользователей, которые могли забыть свой логин и/или пароль. Проблему подбора пароля можно решить, используя стойкий пароль, состоящий из двенадцати и более символов и включающий буквы верхнего и нижнего регистра, числа и спецсимволы. Или же, например, при помощи плагина Login LockDown.
Security-плагины для WordPress
- Login LockDown — ограничивает количество неудачных попыток авторизации;
- Revisium WordPress Theme Checker — ищет типичные вредоносные фрагменты в темах WordPress;
- Sucuri Security — проводит мониторинг и обнаружение вредоносного кода;
- iThemes Security (бывший Better WP Security) — многофункциональный плагин для защиты WordPress;
- BackUpWordPress — делает резервное копирование файлов и БД;
- Google Captcha (reCAPTCHA) — устанавливает капчу при регистрации, авторизации, восстановлении паролей и в форме комментариев.
Заливаем Shell
После того как мы сбрутили пароль, ничто не мешает залить шелл на скомпрометированный веб-ресурс. Для этих целей вполне сгодится фреймворк Weevely, который позволяет генерировать шелл в обфусцированном виде, что делает его обнаружение довольно сложным. Чтобы не вызывать подозрения, полученный код можно вставить в любой файл темы (например, в index.php ) через редактор темы консоли WordPress. После чего с помощью того же Weevely можно подключиться к машине жертвы и вызывать различные команды:
python weevely.py http://test/index.php Pa$$w0rd [+] weevely 3.1.0 [+] Target:test [+] Session: _weevely/sessions/test/index_0.session [+] Browse the filesystem or execute commands starts the connection [+] to the target. Type :help for more information. weevely> :help
Подключаем .htaccess
Для запрета доступа к чувствительной информации лучше воспользоваться файлом .htaccess — это файл конфигурации, используемый в Apache Web Server. Рассмотрим возможности этого файла с точки зрения безопасности. С его помощью можно: запретить доступ к директориям и файлам, заблокировать различные SQL-инъекции и вредоносные скрипты. Для этого стандартный файл .htaccess для CMS WordPress 4.1 нужно немного расширить. Чтобы закрыть список файлов и папок, добавляем:
Options +FollowSymLinks -Indexes
RewriteCond % base64_encode[^(]*\([^)]*\) [OR] заблокирует ссылки, содержащие кодировку Base64. Избавиться от ссылок, содержащих тег :
RewriteCond % (<|%3C)([^s]*s)+cript.*(>|%3E) [NC,OR]
Противодействовать скриптам, пытающимся установить глобальные переменные или изменить переменную _REQUEST через URL:
RewriteCond % GLOBALS (=|\[|\%[0-9A-Z]) [OR] RewriteCond % _REQUEST (=|\[|\%[0-9A-Z])
Для противодействия SQL-инъекциям блокируем запросы к URL, содержащие определенные ключевые слова:
RewriteCond % concat.*\( [NC,OR] RewriteCond % union.*select.*\( [NC,OR] RewriteCond % union.*all.*select [NC] RewriteRule ^(.*)$ index.php [F,L]
Чтобы испортить жизнь распространенным хакерским утилитам, отфильтровываем определенные user-agent’ы:
SetEnvIf user-agent «Indy Library» stayout=1 SetEnvIf user-agent «libwww-perl» stayout=1 SetEnvIf user-agent «Wget» stayout=1 deny from env=stayout
Защищаем файлы
Неплохо было бы также ограничить и доступ к особо важным файлам, которые хранят конфигурацию или просто могут выдать злоумышленнику какую-то информацию. Можно выделить следующих кандидатов:
- wp-config.php , содержит имя БД, имя пользователя, пароль и префикс таблиц;
- .htaccess ;
- readme.html и ru_RU.po , которые содержат версию WordPress;
- install.php .
Делается это следующим образом:
Order Allow,Deny Deny from all
Причем файл .htaccess , содержащий эти строки, должен находиться в той же директории, что и защищаемый файл. Затем запрещаем перечисление пользователей (помнишь, чуть выше мы говорили о том, как легко получить список пользователей?):
RewriteCond % author=\d RewriteRule ^ /? [L,R=301]
Так, что еще? Можно разрешить вход только с указанных IP-адресов. Для этого создай файл .htaccess в папке wp-admin со следующими правилами:
AuthUserFile /dev/null AuthGroupFile /dev/null AuthName "Access Control" AuthType Basic order deny,allow deny from all allow from 178.178.178.178 # IP домашнего компа allow from 248.248.248.248 # IP рабочего компа
Метод не слишком гибкий и применим только в случае, если ты работаешь с ограниченным числом фиксированных IP-адресов. В противном случае рекомендуется установить пароль на папку wp-admin через хостинг-панель (при наличии такого функционала).
WWW
Набор правил 5G Blacklist и 6G Blacklist beta от Perishable Press, который позволяет бороться с распространенными вредоносными URL-запросами для WordPress.
Дополнительные меры
К тому, что было сказано выше, можно добавить следующие рекомендации. Во-первых, использовать только актуальные версии WordPress и его компонентов — это позволит устранить известные уязвимости. Во-вторых, удалить неиспользуемые плагины и темы, которые также могут быть проэксплуатированы. В-третьих, скачивать темы и плагины WordPress из достоверных источников, например с сайтов разработчиков и официального сайта WordPress. Как и домашний ПК, нужно периодически проверять свой веб-ресурс веб-антивирусом, например AI-Bolit. Если у тебя есть доступ к веб-серверу, настрой права доступа к файлам и каталогам. Как правило, WordPress устанавливает все необходимые права на стадии установки, но в случае необходимости chmod можно выставить вручную. Для каталогов — chmod 755 , для файлов — chmod 644 . Убедись, что права 777 присвоены только тем объектам, которые в этом нуждаются (иногда это необходимо для нормальной работы некоторых плагинов). Если WordPress перестал нормально функционировать, поэкспериментируй с правами доступа: сначала попробуй 755, затем 766 и, наконец, 777. Для всех htaccess-файлов выставь chmod 444 (только чтение). Если сайт перестанет работать, попробуй поэкспериментировать со значениями 400, 440, 444, 600, 640, 644.
Перемести файл wp-config.php . Данный файл содержит информацию о настройках MySQL, префикс таблиц, секретные ключи и прочее. Поэтому его необходимо перенести для того, чтобы файл не был доступен из интернета. Если сайт не располагается в папке public_html , то перенеси файл wp-config.php в папку уровнем выше, и WordPress автоматически найдет его в этой корневой директории (применимо, если на хостинге имеется только один сайт на этой CMS).
Чтобы усложнить заливку шелла, отключи возможность редактирования темы через консоль WordPress. Для этого вставь следующую строчку в файл wp-config.php : define(‘DISALLOW_FILE_EDIT’, true); .
Еще одно слабое место — файл install.php (что в папке wp-admin ). Поэтому его лучше удалить, заблокировать или изменить. Выполни один из вариантов:
- Просто удали этот файл — после установки в нем нет больше необходимости.
- Запрети доступ к файлу с помощью .htaccess .
- Переименуй оригинальный файл install.php (например, install.php.old ) и создай новый файл install.php со следующим содержимым:
Error Establishing Database Connection
Помимо уведомления посетителей сайта, данный скрипт выполняет следующие действия:
- отправляет клиенту и поисковым системам код состояния 503 («Сервис временно недоступен»);
- указывает промежуток времени, через который клиенты и поисковые системы могут вернуться на сайт (настраиваемый параметр);
- уведомляет по электронной почте о проблеме с БД для принятия соответствующих мер.

Полезные ссылки
- Hardening WordPress
- Десять шагов для защиты твоего WordPress-блога
- Каждый второй русифицированный шаблон для WordPress заражен или уязвим
- Презентация по взлому сайтов WordPress
Заключение
WordPress — довольно крупный и сложный продукт, со своими плюсами и минусами. К сожалению, в дефолтной конфигурации его безопасность находится под большим вопросом, так как даже обычный скрипткидис при наличии прямых рук и интернетов сможет пробить защиту. Поэтому настоятельно рекомендую проверить свой ресурс таким же образом, как мы делали это в статье. И если обнаружишь недостатки — пофиксить их, чтобы свести шансы злоумышленника на компрометацию ресурса к минимуму.
Руководство по взлому и предотвращению взлома веб-сайтов WordPress 2023
WordPress — самая широко используемая в мире система управления контентом. Более 63% сайтов создано с использованием этой CMS, что делает ее предпочтительной мишенью для хакеров. Факт, который делает WordPress наиболее уязвимым для взлома, заключается в том, что он использует большое количество плагинов с открытым исходным кодом. Эти плагины могут содержать некоторые вредоносные коды и сценарии, которые предоставляют хакеру платформу для внедрения вредоносного ПО в WordPress и выполнения гнусных действий. Кроме того, хакеры также используют новые дорки WordPress Google для поиска конфиденциальной информации и веб-сайтов, которые уязвимы и легко взломаны.
Статистика показывает, что почти каждый шестой сайт на базе WordPress уязвим для атак. В 2021 году злоумышленники скомпрометировали более полумиллиона сайтов WordPress. Распространенные провайдеры веб-хостинга являются наиболее известными целями для хакеров.
По состоянию на 2021 год 40% всех отчетов о взломе сайтов WordPress поступали всего от пяти веб-хостов, несмотря на то, что 60% веб-хостов относятся к малому и среднему бизнесу.
Подсчет сайтов WordPress по отраслям
- Интернет и Телеком — 20%
- Технологии — 13%
- Еда и напитки — 12%
- Искусство и развлечения — 8%
- Спорт — 8%
- Книги и литература — 5%
- Образование — 4%
- Дом и сад — 4%
- Животные — 3%
- Хобби и отдых — 3%
- Закон и правительство — 2%
- Игра — 2%
- Здоровье — 2%
- Новости — 2%
- Недвижимость — 2%
- Промышленность — 2%
- Путешествие — 1%
- Красота и фитнес — 1%
- Финансы — 1%
- Наука — 1%
- Покупки —
ПРИМЕЧАНИЕ . Цель этой статьи — предоставить вам базовую информацию о том, как взломать сайт WordPress или обойти вход в систему. Это руководство предназначено только для образовательных целей. Упомянутые методы взлома WordPress не должны использоваться для эксплуатации.
Безопасность вашего сайта WordPress ставится под сомнение, если его взломают без вашего ведома. Взлом веб -сайта может длиться месяцами или годами, если вы не обновите свою тему, плагины и CMS .
Содержащий некоторые основные уязвимости в плагинах, сайт WordPress, над безопасностью которого не поработали, является открытой дверью для хакеров, желающих восстановить ваши данные или просто испортить ваш сайт. Это может привести к порче вашего сайта WordPress хакерами.
Важно установить плагины безопасности wordpress с самого начала создания вашего сайта, чтобы не бороться с вторжениями в течение всего года.
Вот почему в этом руководстве мы расскажем вам обо всех методах взлома и уязвимостях, которые делают ваш веб-сайт WordPress уязвимым для взлома, а также о лучших методах обеспечения безопасности вашего WordPress.
Вот каким рискам подвергается ваш бизнес в этом случае!
Кто эти хакеры?

Угрозы, запущенные против вашего веб-сайта, могут исходить из трех разных источников.
Во-первых, роботы (боты). Они запускаются с компьютера и нацелены на несколько сайтов, чтобы причинить вред. Быстрые, эффективные, они максимально используют недостатки безопасности и уязвимости в приложениях, плагинах и темах.
Уязвимости до сих пор неизвестны разработчикам и должны быть устранены с помощью обновлений и патчей. Атаки ботов особенно агрессивны и поэтому легко обнаруживаются.
Ботнеты похожи на ботов, но запускаются из сети компьютеров, контролируемых вредоносными программами. Иначе называемые зомби-армиями, их урон значителен, потому что они могут нанести ущерб многим объектам одновременно.
Наконец, самое пагубное из всех, человеческое нападение. Физическое лицо за своим экраном атакует ваш сайт и ищет уязвимые элементы. Этот тип атаки трудно обнаружить, потому что люди более осторожны, чем боты или ботнеты.
Хотя человек может атаковать только один сайт за раз, его атака не менее опасна. Затем хакер, как правило, нацеливается на веб-сайты в больших масштабах , на которых хранятся важные данные, которые после кражи легко перепродать по высоким ценам.
Признаки того, что ваш сайт WordPress взломан
- Неудачный вход в систему.
Решение: Попробуйте восстановить пароль по электронной почте или используйте другую учетную запись для повторного входа в систему
- Вредоносный контент добавлен на ваш сайт
Решение: Попробуйте поискать скрытый контент в коде веб-сайта. В нижнем колонтитуле вашего сайта могут быть ссылки на вредоносные сайты, которые хакеры разместили, или они могли установить всплывающие окна, которые будут регулярно открываться вашим клиентам. Используйте Security Ninja для сканирования вашего сайта или постоянного мониторинга вашего сайта на предмет наличия проблем.
- Подозрительные визиты
Решение: Используйте инструменты Google и Яндекс, чтобы найти подозрительные домены.
- Внезапное сокращение трафика
Решение: Используйте статус «сайта безопасного просмотра» Google, чтобы проверить, помечен ли ваш сайт как небезопасный и в настоящее время его опасно посещать
- Странные результаты поисковой системы
Проверьте свой сайт с помощью инструментов Google для веб-мастеров и проверьте, не был ли ваш сайт взломан.
- Вы не можете отправлять/получать электронные письма
Решение: Протестируйте свою почтовую функцию WordPress
- Сайт не существует
Решение: Установите один из плагинов для управления резервными копиями в WordPress
- Подозрительные файлы
Решение: Попробуйте поискать файлы, которые не принадлежат вашей установке WordPress. Используйте Security Ninja для регулярного сканирования вашего сайта и автоматического поиска этих файлов. Затем удалите файлы или удалите вредоносный код из зараженных файлов. Не забудьте о дополнении Core Scanner для обеспечения безопасности.
Решение: Измените URL-адрес входа с помощью бесплатного плагина, ограничьте доступ к вашей странице входа в WordPress с помощью файла .htpasswd и используйте Login Ninja, чтобы постоянно протестовать против вашего входа в систему
- Проверьте запланированные события на вашем сервере
Решение: Проверьте свои задания CRON на сервере, который вы используете, и убедитесь, что нет подозрительных запланированных
Основные причины для взлома сайта WordPress

Прежде всего, это не только WordPress. Все веб-сайты в Интернете уязвимы для попыток взлома.
Причина, по которой веб-сайты WordPress являются общей целью для взлома, заключается в том, что это самый популярный в мире конструктор веб-сайтов. Также это видно из того, что объемы поиска по этой фразе « как взломать сайт wordpress 2022» очень высоки . Большинство этих пользователей являются этичными хакерами и новичками, которые хотят научиться взламывать веб-сайты.
Эта огромная популярность предлагает хакерам простой способ найти менее безопасные веб-сайты, чтобы использовать их.
У хакеров разные мотивы, некоторые из них просто новички, которые учатся работать с менее безопасными сайтами.
Хакеры, как правило, являются злонамеренными людьми, которые распространяют вредоносное ПО, захватывают ресурсы хостинга сайта, чтобы атаковать других, или даже рассылают спам через Интернет.
Как только хакер сможет обойти вход на ваш сайт WordPress, он может выполнять различные виды вредоносных действий, таких как
- Кража финансовых данных с сайта электронной коммерции, встроенного в woocommerce,
- дефейсить сайты WordPress для развлечения или вымогательства,
- вставлять бэкдоры для внедрения нелегальных фармацевтических продуктов на сайт WordPress,
- рассылать спам-письма,
- заражение веб-сайта вредоносным ПО – с помощью вредоносных скриптов, которые упрощают загрузку вредоносного/потенциально вредоносного программного обеспечения на компьютер пользователя
- использование черных методов SEO, таких как внедрение спам-ссылок, SEO-спам, взлом ключевых слов на японском языке.
Основные причины, которые приводят к взлому WordPress
С учетом сказанного давайте рассмотрим некоторые из основных причин взлома сайтов WordPress и способы предотвращения взлома вашего сайта.
Причина 1. Незащищенный хостинг

Как и все веб-сайты, сайты WordPress размещаются на веб-сервере. Некоторые хостинговые компании пренебрегают безопасностью своей хостинговой платформы. Это особенно часто случается с бесплатными, неограниченными или недорогими хостингами.
Этого можно легко избежать, выбрав лучшего хостинг-провайдера WordPress для своего сайта.
Причина 2. Слабые пароли

Пароли — это ключи к вашему сайту WordPress. Вы должны убедиться, что используете надежный уникальный пароль для каждой из следующих учетных записей, поскольку все они могут предоставить хакеру полный доступ к вашему веб-сайту.
- Ваша учетная запись администратора WordPress
- Учетная запись панели управления хостингом CPanel
- FTP-аккаунты
- База данных MySQL, используемая для вашего сайта WordPress
- Учетные записи электронной почты, используемые для администратора WordPress или учетной записи хостинга
Все эти учетные записи защищены паролем. Использование слабых паролей облегчает хакерам взлом паролей с помощью основных хакерских инструментов.
Этого легко избежать, используя уникальные и надежные пароли для каждой учетной записи.
Причина 3. Незащищенный доступ к админке WordPress (директория wp-admin)
Область администрирования WordPress позволяет пользователю получить доступ к различным действиям на вашем сайте WordPress. Это также наиболее атакуемая область сайта WordPress.
Если оставить его незащищенным, хакеры смогут попробовать разные подходы к взлому вашего сайта. Вы можете усложнить им задачу, добавив уровни аутентификации в каталог администратора WordPress.
Прежде всего, вам необходимо защитить свою админку WordPress паролем. Это добавляет дополнительный уровень безопасности, и любой, кто попытается получить доступ к администратору WordPress, должен будет ввести дополнительный пароль.
Если вы используете сайт WordPress с несколькими авторами или несколькими пользователями, вы можете применять надежные пароли ко всем пользователям на вашем сайте.
Вы также можете добавить двухфакторную аутентификацию , чтобы хакерам было еще труднее получить доступ к вашей административной области WordPress.
Причина 4. Неверные права доступа к файлам
Права доступа к файлам — это набор правил, используемых вашим веб-сервером. Эти разрешения помогают вашему веб-серверу контролировать доступ к файлам на вашем сайте. Неверные права доступа к файлам/папкам могут дать злоумышленнику доступ для записи и изменения этих файлов.
Все ваши файлы WordPress должны иметь значение 644 в качестве разрешения файла. Все папки на вашем сайте WordPress должны иметь разрешение 755 как файл.
Причина 5. Не обновлял WordPress
Некоторые пользователи WordPress боятся обновлять свои сайты WordPress, опасаясь, что это ухудшит работу их сайта. В каждой новой версии WordPress исправляются ошибки и уязвимости безопасности.
Если вы не обновляете WordPress, вы намеренно оставляете свой сайт уязвимым.
Если вы обеспокоены тем, что обновление сломает ваш сайт, вы можете создать полную резервную копию WordPress перед запуском обновления.
Таким образом, если что-то не работает, вы можете легко вернуться к предыдущей версии.
Причина 6. Неисправленные плагины или темы
Как и основное программное обеспечение WordPress, безопасность плагинов и тем WordPress также важна. Использование устаревшего плагина или темы может сделать ваш сайт уязвимым.
Недостатки и ошибки безопасности часто обнаруживаются в плагинах и темах WordPress. Обычно авторы тем и плагинов быстро их исправляют. Однако, если пользователь не обновляет свою тему или плагин, он ничего не может с этим поделать.
Убедитесь, что ваша тема и плагины WordPress обновлены, и обязательно сканируйте свои темы WordPress, прежде чем выполнять новую установку темы WP с нулевым значением.
Причина 7. Использование FTP вместо SFTP/SSH
Учетные записи FTP используются для загрузки файлов на ваш веб-сервер с помощью FTP-клиента. Большинство веб-хостов поддерживают FTP-соединения с использованием разных протоколов. Вы можете подключиться через простой FTP, SFTP или SSH.
Когда вы подключаетесь к своему сайту с помощью простого FTP, ваш пароль отправляется на сервер без шифрования. За ним можно шпионить и легко украсть. Вместо использования FTP всегда следует использовать SFTP или SSH.
Вам не нужно менять FTP-клиент. Большинство FTP-клиентов могут подключаться к вашему веб-сайту как через SFTP, так и через SSH. Вам просто нужно изменить протокол на «SFTP — SSH» при подключении к вашему сайту.
Вы также можете использовать файловый менеджер, доступный в вашей cPanel. Это мощный и интуитивно понятный инструмент, особенность которого состоит в том, что он предлагает функцию сжатия/распаковки (Zip/unzip) на сервере.
Причина 8. Использование Admin в качестве имени пользователя WordPress
Использование «admin» в качестве имени пользователя WordPress не рекомендуется. Если ваше имя администратора — admin, вы должны немедленно изменить его на другое имя пользователя .
Причина 9. Устаревшие темы и плагины
Многие сайты в Интернете бесплатно распространяют платные плагины и темы WordPress. Иногда легко поддаться искушению использовать эти бесплатные плагины и темы для своего сайта.
Загрузка тем и плагинов WordPress из ненадежных источников очень опасна. Они могут не только поставить под угрозу безопасность вашего веб-сайта, но также могут быть использованы для кражи конфиденциальной информации.
Вы всегда должны загружать плагины и темы WordPress из авторитетных источников, таких как веб-сайт разработчиков плагинов/тем или официальные репозитории WordPress.
Если вы не можете себе это позволить или не хотите покупать плагин или тему премиум-класса, всегда есть бесплатные альтернативы этим продуктам. Эти бесплатные плагины могут работать не так хорошо, как их платные аналоги, но они выполнят свою работу и, что более важно, обеспечат безопасность вашего сайта.
Причина 10. Файл wp-config.php небезопасен — может привести к взлому wp-config.php
Файл конфигурации WordPress wp-config.php содержит информацию о подключении к базе данных WordPress. В случае взлома он раскроет информацию, которая может дать хакеру полный доступ к вашему сайту. wp config.php является наиболее атакуемым файлом после wp-content.php.
Вы можете добавить дополнительный уровень защиты, запретив доступ к файлу wp-config с помощью .htaccess.
Причина 11. Не меняйте префикс таблицы WordPress
Многие эксперты рекомендуют изменить префикс таблицы WordPress по умолчанию. По умолчанию WordPress использует wp_ в качестве префикса для таблиц, созданных в вашей базе данных. Вы получаете возможность изменить его во время установки.
Рекомендуется использовать немного более сложный префикс. Это затруднит хакерам угадывание имен таблиц вашей базы данных.
Как взломать сайт WordPress — разные способы
В зависимости от своих целей, вредоносная атака открывает путь для различных возможностей взлома вашего сайта WordPress.
Вот наиболее частые атаки и методы, которые касаются сайтов, созданных WordPress:
Создание новых пользователей через FTP
Когда HTTP недоступен для хакеров, они попытаются получить доступ к FTP-серверу и создать новые права администратора. Чтобы создать учетную запись за пределами административной среды WordPress, хакерам нужен только FTP-доступ к сайту.
Как администратор, он будет иметь всю информацию, необходимую для подключения к серверу и, следовательно, для создания новых учетных записей пользователей, создав новую функцию с использованием вашей темы.
functions.php
Есть два способа приблизиться к этому, во-первых, отредактировав funtions.php через cPanel, а во-вторых, используя для этого FTP-клиент. Используя cPanel, хакеры открывают файловый менеджер и находят папку с активной темой.
Оттуда он должен перейти в папку public_html/wp_content/themes и найти тему. Остается только открыть его файл и отредактировать functions.php.
Код должен быть добавлен перед закрывающим тегом, и взлом выполнен. Не забудьте также сменить пароль. После создания новой учетной записи хакеры удаляют код из файла functions.php.
Использование Cpanel/MySQL
Используйте этот метод, чтобы изменить пароль (или имя пользователя, если необходимо) существующего пользователя или создать новую учетную запись. Вам потребуется доступ к cPanel или прямой доступ MySQL к базе данных сайта. Начнем со смены пароля существующего пользователя .
Если вы используете cPanel, войдите в систему (доступ к cPanel всегда можно получить по ссылке https://yoursite.com:2083), найдите и откройте phpMyAdmin. Список баз данных и таблиц находится слева . Вы ищете таблицу, которая заканчивается на _users . Вероятно, это будет wp_users , но если у вас на сервере установлено более одного сайта WordPress, вам нужно найти правильный.
В правой таблице будет пользователь, которого вы хотите отредактировать. Следуйте той же процедуре, если вы подключаетесь к MySQL через внешний клиент, такой как SQLyog . Как только вы найдете таблицу и фактическую запись пользователя, пришло время изменить пароль.
Как вы, наверное, уже поняли, пароль сохраняется в user_pass поле, хэшируется с использованием алгоритма MD5. Откройте генератор MD5, введите пароль, который хотите использовать, и нажмите «Хэш». Скопируйте сгенерированную строку и замените ею исходный пароль. В phpMyAdmin вы можете отредактировать поле, дважды щелкнув по нему. Процедура аналогична другим клиентам MySQL. Сохраните изменения и войдите в WordPress с новым паролем.
Создание новой учетной записи пользователя через FTP
Учетные записи FTP обычно используются пользователями, которые хотят создать область через каталог на своем сайте, чтобы разрешить загрузку и загрузку файлов определенным людям с именем пользователя и паролем, которые они назначают сами.
Все файлы, опубликованные в этой области, также можно просмотреть в Интернете с использованием используемого домена и папки.
Чтобы создать учетную запись FTP на своем сайте, войдите в панель управления, нажав на значок «Учетные записи FTP». В этой части вы можете настроить доступ к определенной области вашего сайта, чтобы загружать или скачивать файлы:
- Введите запрашиваемые данные:
- Пользователь или Логин: Имя пользователя новой учетной записи FTP.
- Пароль: пароль, который вы хотите назначить этой учетной записи для доступа через FTP.
- Каталог: Каталог на сайте, к которому можно получить доступ через FTP, автоматически такой же, как и у пользователя без @mydomain.com , но его можно изменить. Этот каталог будет создан автоматически, если он еще не создан. Если это поле оставить пустым, новая учетная запись FTP сможет получить доступ ко всем каталогам на сайте. Это не рекомендуется, поэтому мы рекомендуем разрешить доступ только к папке public_html, например, если вы хотите разрешить доступ к вашему сайту. Чтобы ваш веб-дизайнер мог загружать файлы и каталоги, соответствующие вашему сайту, без возможности входа с основные данные вашего аккаунта запишите в директорию public_html.
- Квота: Это пространство в Мб, которое вы хотите выделить этой папке, оно может быть неограниченным или поставить ограничение на пространство, чтобы не занимать все ресурсы на вашем хостинге.
- Теперь просто нажмите кнопку «Создать», чтобы создать новую учетную запись FTP.
Пользователь новой учетной записи FTP должен получить доступ к сайту через FTP с помощью программы и со следующими данными: