• Курсы Академии Кодебай, стартующие в мае - июне, от команды The Codeby

    1. Цифровая криминалистика и реагирование на инциденты
    2. ОС Linux (DFIR) Старт: 16 мая
    3. Анализ фишинговых атак Старт: 16 мая Устройства для тестирования на проникновение Старт: 16 мая

    Скидки до 10%

    Полный список ближайших курсов ...

Гостевая статья Изучение атак и методов, используемых на сайтах WordPress

WordPress - это хорошо известная система управления контентом с открытым исходным кодом (CMS), используемая для создания веб-сайтов и личных блогов. По оценкам, CMS сегодня используется , что делает ее идеальной целью для субъектов угроз. Слабым местом в платформе является все, что нужно, чтобы позволить злоумышленнику нарушить безопасность сайта - риск, усугубляемый проблемами безопасности, вызванными плохой гигиеной кибербезопасности.

Атаки на платформы CMS - это не новость, но субъекты угроз по-прежнему считают, что атаки на сайты являются эффективным способом закрепления активов организаций для использования в злонамеренных целях. В этом блоге перечислены различные виды атак на WordPress, примеры полезных нагрузок, которые мы наблюдали в дикой природе, и как атаки использовали взломанный административный доступ и API, развертывание Alfa-Shell и отравление SEO, чтобы использовать уязвимые сайты.

Атака сайтов WordPress через взломанный доступ администратора
Этот метод предполагает получение доступа администратора к веб-сайту на платформе WordPress. Злоумышленник может использовать уязвимость или просто войти в систему с помощью утечек или слабых учетных данных, что можно сделать, отправив запрос POST в /wp-login.php на целевом веб-сайте.

fig-1-wordpress-login-attempt.png

Рисунок 1. Пример попытки входа со слабыми учетными данными

fig-2-wordpress-attackers-tested-passwords.png

Рисунок 2. Пароли, проверенные злоумышленниками

После успешного входа в систему злоумышленнику с правами администратора предоставляется несколько вариантов. Мы наблюдали эти действия:

  • Установка пользовательской темы с включенным бэкдором​
  • Установка плагина для загрузки файлов​
Первые два действия в основном используются после успешного получения привилегий администратора, за которыми может последовать изменение пароля администратора или создание новой учетной записи администратора. Общий подход заключается в использовании общедоступной темы и встраивании пользовательских бэкдоров с функциональностью удаленного выполнения кода (RCE). Есть также несколько плагинов для загрузки файлов, которые позволяют злоумышленнику загружать полезные данные напрямую.

Следует отметить, что бэкдор, который развертывает другой бэкдор со схожей функциональностью, является распространенным явлением. Развертывание выполняется с помощью запросов GET или POST, когда полезная нагрузка / команда / код кодируются внутри данных COOKIES или POST. Логика декодирования находится внутри ранее развернутого бэкдора. После развертывания злоумышленник получает URL-адрес недавно загруженного компонента.

Одной из интересных особенностей, которые мы также наблюдали, является возможность исправления уже существующего файла .php , что позволяет скрывать вредоносные запросы. Сначала записываются все доступные для записи пути, выбирается случайный подходящий путь, а затем исправляется выбранный файл.

fig-3-wordpress-patched-php-file-payload.png

Рисунок 3. Исправлена существующая функция файла .php в обслуживаемой полезной нагрузке.

В этом случае функция патча была применена к index.php , чтобы включить вредоносный скрипт внутри скрытый файл Unix (точка - файл) с расширением .ico расширения претендующего быть иконой.

fig-4-wordpress-patched-index-php-hidden-ico.png

Рисунок 4. Пример патченного WordPress index.php, включая скрытый .ico

Еще одной примечательной особенностью является возможность заражать соседние домены (при условии, что веб-сервер обрабатывает больше доменов, а текущий пользователь имеет право на запись в свои каталоги).

fig-5-wordpress-payload-upload-neighbor-domains.png

Рисунок 5. Попытка загрузки полезной нагрузки в соседние домены

Развертывание Alfa-Shell на зараженных сайтах WordPress
Известно, что веб-оболочки размещаются на зараженных сайтах WordPress. Мы опишем один из продвинутых, который использует Alfa-Shell от ALFA TEAM / solevisible.

fig-6-wordpress-alfa-shell.png

Рисунок 6. Альфа-Шелл


Рисунок 7. Учетная запись Solevisible GitHub

Веб-оболочка предоставляет удобный интерфейс для RCE (например, регистрация обработчиков CGI, которые позволяют выполнять сценарии Perl, Python и Bash.) Alfa-Shell также может получать учетные данные базы данных из файла конфигурации WordPress, создавая дамп базы данных. и получение всех виртуальных доменов и настроек DNS.

fig-8-wordpress-cgi-handlers-script-execution.png

Рисунок 8. Обработчики CGI для выполнения различных типов скриптов

fig-9-wordpress-deployed-bash-script.png

Рисунок 9. Пример развернутого скрипта Bash

Веб-оболочка также поддерживает несколько платформ, включая Windows. Фактически, он способен загружать и запускать обратную оболочку с сайта разработчика.

fig-10-wordpress-alfa-team-windows-reverse-shell.png

Рисунок 10. Простой бинарный файл обратной оболочки Windows от Alfa Team

Зараженный WordPress может также служить в качестве перенаправителя рекламы, например, путем исправления файла JavaScript темы или функции генератора верхнего / нижнего колонтитула (например, wp-content \ themes \ fiftyseventeen \ functions.php ). Измененный JavaScript перенаправляет пользователей на сайт, указанный злоумышленником.

fig-11-wordpress-obfuscated-javascript-redirection.png

Рисунок 11. Перенаправление JavaScript

fig-12-wordpress-webpage-redirection.png

Рисунок 12. Веб-страница после перенаправления

Отравление поисковой оптимизацией (SEO) на зараженных сайтах WordPress
Другой вариант использования для зараженных сайтов WordPress - поисковая оптимизация (SEO). Мы нашли развернутые PHP-скрипты, принимающие ключевые слова внутри GET-запроса.

fig-13-wordpress-search-engine.png

Рисунок 13. WordPress «поисковая система»

Сценарии сначала проверяют User-Agent, совпадает ли оно с одним из следующих регулярных выражений, или если обратный поиск DNS для $ _SERVER [«REMOTE_ADDR»] (IP-адрес актера, выполняющего запрос HTTP) содержит подстроку Google. Если он проверяется, он устанавливает для переменной $ isbot значение 1.

fig-14-wordpress-deployed-script.png

Рисунок 14. Часть развернутого скрипта

Если $ isbot не равен нулю, тогда другой HTTP-запрос будет отправлен на жестко закодированный URL-адрес с использованием тех же ключевых слов.


Рисунок 15. Часть развернутого скрипта

Если длина возвращаемого текста меньше 1000 символов, другие запросы будут выполняться с помощью поисковой системы Bing, а результаты, соответствующие указанному регулярному выражению, будут добавлены к $ text.

fig-16-wordpress-served-text.png

Рисунок 16. Обслуживаемый текст

Последняя HTML-страница возвращается и сохраняется на сервере в случае повторного выполнения того же запроса.

fig-17-wordpress-final-webpage.png

Рисунок 17. Окончательная веб-страница

Как видно из созданного HTML-файла (см. Рисунок 17), на веб-странице Cockeysville Eagle's Football есть части, содержащие текст, относящийся к фреймворкам JavaScript, которые, очевидно, не связаны, таким образом, отравление SEO.

Если $ isbot не установлен и HTTP_REFERER содержит строки, такие как Google, Bing или Yahoo, он затем перенаправляется на другой обслуживающий веб-сайт.

fig-18-wordpress-deployed-script.png

Рисунок 18. Часть развернутого скрипта

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

fig-19-wordpress-sample-stories-compromised-sites.png

Рисунок 19. Образцы историй, размещенных на скомпрометированных сайтах

Как видно из приведенных выше примеров, взломанные сайты публикуют истории с явными грамматическими ошибками или сенсационными сообщениями. Часто статьи пишутся неразборчиво. Компромисс достигается через интерфейс прикладного программирования (API) WordPress XML, который позволяет передавать данные и выполняет несколько задач, таких как загрузка нового файла, редактирование и публикация сообщения.

fig-20-wordpress-api-sample-posted-text.png

Рисунок 20. POST /xmlrpc.php и metaWeblog.newPost (слева); образец размещенного текста (справа)

Хакер может использовать POST /xmlrpc.php и metaWeblog.newPost , что позволяет напрямую (и даже удаленно) публиковать блоги на сайте WordPress.

Рекомендации по безопасности для сайтов WordPress
Вышеупомянутые примеры - только некоторые из методов, которые, как было известно, злоумышленники использовали. Уязвимые сайты WordPress могут быть легко использованы, если они не защищены должным образом. Чтобы снизить риск компрометации, мы рекомендуем использовать плагины для двухфакторной аутентификации (2FA), чтобы обезопасить себя от злоупотреблений учетными данными и сканирования на наличие неустановленных уязвимостей. Вот другие меры, которые могут предпринять пользователи и администраторы сайта:

  • Принять основные правила гигиены, чтобы поверхность атаки сайта
  • Отключить или удалить устаревшие или уязвимые плагины
  • Используйте для устранения уязвимостей, для которых исправления еще не доступны, особенно для систем, которые должны постоянно работать и работать
  • Обеспечить соблюдение принципа наименьших привилегий
  • Регулярно обновляйте CMS до последней версии, включая плагины

Источник:
 
  • Нравится
Реакции: Виктор Зотов
Мы в соцсетях:

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