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

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

Б̴͘е̛͝з̧̢̕у̷͠м̷̛е̨͢ц̛͏


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

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

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

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

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

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

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

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

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

Код:

<string>admin</string>
<string>MyPassword</string>

Когда вы пытаетесь войти в WordPress, ваши имя пользователя/пароли отслеживаются следующим образом:

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

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


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

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

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

Откройте окно терминала и перейдите в директорию, в которую вы сохранили скачанный файл, затем разархивируйте его в следующее место:

Код:

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.py http://localhost/xmlrpc.php passwords.txt username

Необходимо соблюсти вышеуказанный порядок, а именно, имя Python файла, затем имя сервера, затем имя файла с паролем и, наконец, имя пользователя. Здесь мы используем файл passwords.txt, который включает в себя скачанный файл GitHub (который включает в себя небольшое количество паролей), и мы будем использовать admin, как имя пользователя. Если вы хотите использовать свой собственный список паролей, просто включите его в команду, вместо предыдущего, и используйте имя пользователя, которое считаете подходящим – этот инструмент работает только с паролями.

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

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

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

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

Report Page