Статья Получение контроля над WordPress с помощью использования XML-RPC

Перевод: Анна Давыдова
Источник:

WordPress не стал самой популярной платформой на планете для CMS и размещения блога, потому что он является довольно сложным в использовании. Скорее всего, его удобный и богатый набор функций привлек около 70 миллионов вебсайтов и это только количество блогов, размещенных на WordPress.com
Сегодня, нас интересует использование платформой , удаленный вызов процедур (под названием RPC), позволяющий закодированному XML вызывать то, что передаётся через HTTP протокол. Это позволяет сотрудникам WordPress, с легкостью размещать материал удаленно, а также размещать большие массивы данных.

Но эта возможность поместить большое количество данных, также подразумевает, что мы хакеры, можем разместить там пароли. Нет сомнений, что вы сможете получить доступ к чужому аккаунту на WordPress, но все ваши 500 попыток выглядят очень неуклюже и неловко. Процедура подбора пароля может быть намного проще.

Эта уязвимость впервые в сентябре 2015 года, и является одной из многих прошедших через XML-RPC. WordPress быстро , так что большинство версий начиная с WordPress 4.4.1 имеют иммунитет к этому хаку. Однако, не забывайте про те 70 миллионов сайтов, многие из которых используют более старую версию или являются непропатченными, что делает их уязвимыми к вашему паролю.

Step 1 Тестирование на наличие уязвимости

Сначала, если ваш WordPress запущен локально или на виртуальной машине, вы должны проверить базовый каталог установки. Нас интересует файл xmlrpc.php, который вы должны найти там, и это означает, что он уязвим к данному типу атак.

XML-RPC.jpg


Вы можете просто проверить свой сайт на наличие файла /xmlrpc.php, как сделал я выше на своем локальном WordPress (замените "localhost" на URL вашего вебсайта). Если XML-RPC прослушивается, или находится там, вам сообщат об этом. Похоже, что мы нашли потенциально уязвимый блог (вам сообщат "forbidden" или что-то на подобие).

XML-RPC-Server.jpg


Не вдаваясь глубоко в дебри, XML-RPC работает вместе с WordPress system.multicall функциональностью, что намекает на то, как вы можете направить большое количество информации на сайт в одно время, скажем, во время загрузки контента или поиска всех последних сообщений.

Этот эксплойт использует способ, с помощью которого содержание или, в данном случае, пароли перемещаются процедура идентификации пользователя. Во время процедуры входа, WP просто передает XML файл со строкой вашего имени и строкой с вашим паролем.
Код:
<string>admin</string>
<string>MyPassword</string>
Когда вы пытаетесь войти в WordPress, ваши имя пользователя/пароли отслеживаются следующим образом:

MyPassword.jpg


Вы могли заметить, если кто-то пытается войти в систему через каждые несколько секунд в течение нескольких часов, вы могли иметь набор инструментов для ограничения попыток входа. Все это ощутимая защита WordPress. Но, что касается данной статьи, если вы соедините XML-RPC с system.multicall, вы можете перенести сотни логинов на WordPress параллельно, но только так, чтобы несколько попыток входа отображались как одна, как это указано выше.

Это все, что я хотел рассказать в этом разделе.

Step 2 Взлом сервера

Ниже приведен пример того, как это выглядит в формате XML. Выделенный раздел, это только одна попытка подбора пароля, так что вам придется повторить этот раздел множество раз, используя различные пароли. Как вы можете себе представить, это займет много времени, перебирать варианты пароля один за другим.

Brute-Force-Exploit.jpg


Чтобы ускорить этот процесс, мы используем скрипт, найденный на GitHub, который читает наш список паролей и автоматически повторяет выделенную секцию, показанную выше, каждый раз подставляя новый пароль из нашего списка. Так что, перейдите на 1N3/Wordpress-XMLRPC-Brute-Force-Exploit на GitHub и скачайте файлы через HTTP ссылку (Скачайте ZIP, или Git если вы зарегистрированы в нем.)

Wordpress-XMLRPC.jpg


Откройте окно терминала и перейдите в директорию, в которую вы сохранили скачанный файл, затем разархивируйте его в следующее место:
Код:
unzip Wordpress-XMLRPC-Brute-Force-Exploit-master.zip
Затем перейдите в этот каталог:
Код:
cd Wordpress-XMLRPC-Brute-Force-Exploit-master
Пока вы находитесь здесь, это никак не повлияет на права доступа к Python файлу, так что мы можем быть спокойны, что не возникнет дополнительных проблем во время этого запуска. "7", которую вы назначаете, означает, что вы можете сделать все, что захотите с файлом.
Код:
chmod 755 wordpress-xmlrpc-brute.py
Теперь запустите Python команду отдельно, и проверьте инструкции.
Код:
./wordpress-xmlrpc-brute.py
Wordpress-XMLRPC-Brute-Force-Exploit.jpg


Я выделил инструкцию голубым цветом. Для локального хоста это:
Код:
./wordpress-xmlrpc-brute.py http://localhost/xmlrpc.php passwords.txt username
Необходимо соблюсти вышеуказанный порядок, а именно, имя Python файла, затем имя сервера, затем имя файла с паролем и, наконец, имя пользователя. Здесь мы используем файл passwords.txt, который включает в себя скачанный файл GitHub (который включает в себя небольшое количество паролей), и мы будем использовать admin, как имя пользователя. Если вы хотите использовать свой собственный список паролей, просто включите его в команду, вместо предыдущего, и используйте имя пользователя, которое считаете подходящим – этот инструмент работает только с паролями.

Так что, когда вы произведете указанные выше действия, используя имя вашего целевого сервера вместо "localhost," ваш файл пароля и ваше имя пользователя, Python скрипт пропустит их через включенный файл passwords.txt и запустится в большей мере не обнаруженным способом. Если все прошло успешно, скрипт выдаст ваш логин в форме имя пользователя/пароль.

XMLRPC-Brute-Force-Exploit.jpg


Как защититься от этого эксплойта

Защититься от XML-RPC уязвимости довольно просто — более новые версии вообще не включают в себя функциональность. Это означает, что многие инструменты WordPress стороннего производства, такие как , и приложения для смартфонов типа , могут требовать использования XML-RPC, таким образом, даже некоторые современные версии WordPress оснащены уязвим кодом и являются открытыми для внешнего внедрения.

Проверьте свою версию WordPress, и убедитесь, что устанавливая новый инструмент, который позволяет взаимодействие с WP с удаленной позиции, вы не откроете дверь для XML-RPC вторжения или какого-либо другого вмешательства. Это одна из многих уязвимостей WordPress, и этот простой скрипт атаки будет хорошим началом для вашего изучения WordPress.
 
Добрый день! Спасибо за статью!
При попытке запустить скрипт получаю ошибку (скриншот с ошибкой прилагаю ниже.
Python Version: 2.7.9-1
 

Вложения

  • erorr.jpg
    erorr.jpg
    18,8 КБ · Просмотры: 664
Добрый день! Спасибо за статью!
При попытке запустить скрипт получаю ошибку (скриншот с ошибкой прилагаю ниже.
Python Version: 2.7.9-1

Дело не в питоне, проверяйте параметры запуска ./wordpress-xmlrpc-brute.py passwords.txt username
доступность скрипта и сервера.
 
- вы можете перенести сотни логинов на WordPress параллельно...
Защита на вход у WP позволяет не более 5 попыток входа, а значит с помощью xmlrpc-brute получиться запросить до 1000 паролей с одного IP, я правильно понял?
 
  • Нравится
Реакции: LPA7145
Вся затея с брутфорсом перестает иметь смысл если домен смотрит через Cloudflare?
 
Вся затея с брутфорсом перестает иметь смысл если домен смотрит через Cloudflare?
Нет. CF даёт защиту от DDOS атак, а не брут. В данном случае, это дыра в коде и тут никакие защиты не помогут, если эта дыра не закрыта.
 
Доброго времени. Ни где не могу найти информацию.
Подскажите пожалуйста, как попасть в админку, имея данные от xmlrpc?
Или загрузить свой файл? Буду благодарен за ответы
 
таким образом, даже некоторые современные версии WordPress оснащены уязвим кодом и являются открытыми для внешнего внедрения
Буквально сегодня наткнулся на сайт с WP версии 4.9.7 где лежит фалй xmlrpc.php, так что да, и более новые версии вордпресса содержат эту уязвимость.
 
Тоесть если сайт на протоколе https, данный метод брутфорса не будет работать?
 
Поставил XAMPP, Wordpress 4.5, логин и пароль 'admin'
Ничего...почему так есть знающие?

RR7ApVJqHx.png
 
Мы в соцсетях:

Обучение наступательной кибербезопасности в игровой форме. Начать игру!