Идентификация сайтов WordPress в локальных сетях

identifying wordpress sites on local networks and brute forcing login pages

Узнайте, как злоумышленники обнаруживают сайты WordPress за файрволами с помощью XSHM и риски атак перебором на страницы входа. Изучите основные сведения по безопасности.

Идентификация сайтов WordPress в локальных сетях и перебор страниц входа

WordPress управляет приблизительно 25% всех сайтов в мире, делая его самой популярной системой управления контентом (CMS) в интернете на сегодняшний день. Такая широкая распространённость обусловлена интуитивно понятным процессом установки, активным сообществом разработчиков и обширной поддержкой плагинов и тем, что привлекает как бизнес, так и частных пользователей. Однако эта огромная популярность также привлекает злоумышленников, нацеленных на уязвимости WordPress.

Введение в проблемы безопасности WordPress

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

Почему WordPress часто становится мишенью атак перебором

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

  • Установка плагинов безопасности, ограничивающих попытки входа и отслеживающих подозрительную активность.
  • Защита страницы входа через HTTP-аутентификацию с использованием .htpasswd.
  • Использование сложных уникальных паролей для снижения вероятности угадывания.

Отсутствие этих защит значительно повышает риск успешного взлома, причём злоумышленники используют эти уязвимости как на публичных, так и на внутренних установках WordPress.

Перебор WordPress на внутренних сетях и за файрволами

Многие организации развертывают порталы WordPress во внутренних сетях для сотрудников, защищённые файрволами. Хотя они изолированы от Интернета, эти внутренние сайты остаются уязвимыми к атакам, эксплуатирующим слабости браузерной безопасности, а не периметра сети. Одним из таких методов является атака Cross-Site History Manipulation (XSHM), позволяющая злоумышленникам обнаруживать и выполнять перебор страниц входа без прямого доступа к сети.

Понимание уязвимости XSHM

Атаки XSHM используют тонкий изъян в политике одинакового происхождения (Same-Origin Policy, SOP) — механизме безопасности браузера, который ограничивает сайтам доступ к данным друг друга внутри одной сессии. Хотя SOP запрещает прямой доступ, побочные атаки, такие как XSHM, используют манипуляции историей браузера для получения информации о взаимодействиях пользователя с целевыми сайтами.

Механизм атаки XSHM

  1. Злоумышленник внедряет iframe в злонамеренный сайт, который загружает конкретную страницу WordPress (wp-login.php), которая перенаправляет авторизованных пользователей в админку WordPress (index.php).
  2. Злоумышленник измеряет свойство history.length браузера жертвы до и после загрузки этого iframe.
  3. Если длина истории не меняется после загрузки, это указывает, что пользователь был перенаправлен и вошёл в систему WordPress.

Эта техника позволяет косвенно подтвердить наличие активной сессии, что облегчает целенаправленные атаки перебором.

Методы обнаружения сайтов WordPress в локальных сетях

Сайты WordPress проявляют характерные поведения, например, специфические шаблоны перенаправлений URL. Так, при обращении неаутентифицированного пользователя к URL админ-панели /wordpress/wp-admin/ происходит перенаправление на страницу входа с запросом вида:

/wp-login.php?redirect_to=http%3A%2F%2Fexample.com%2Fwordpress%2Fwp-admin%2F&reauth=1

Злоумышленники используют этот предсказуемый шаблон для сканирования внутренних IP-диапазонов на предмет установок WordPress, используя:

  • Вредоносные ссылки с полезной нагрузкой XSHM для проверки ответов на перенаправление.
  • JavaScript-сканирование сети с использованием WebRTC (например, через фреймворк BeEF) для перечисления активных хостов в локальных подсетях.
  • Проверку перенаправлений страницы входа WordPress для подтверждения обнаруженных хостов с WordPress.

Атаки перебором входа WordPress с использованием XSHM

После обнаружения внутренних сайтов WordPress злоумышленники могут выполнять попытки перебора паролей, используя:

  • Отсутствие CSRF-токенов на формах входа WordPress, что оставляет их уязвимыми к неавторизованным запросам входа.
  • Параметр redirect_to в формах входа WordPress, который можно злоупотреблять для проверки успешности входа по поведению перенаправления.

Последовательность атаки

  1. Злоумышленник читает значение history.length браузера жертвы с помощью вредоносных скриптов.
  2. Внедряет форму с самоподачей внутри iframe, которая проверяет комбинацию имени пользователя и пароля на странице входа WordPress.
  3. После отправки iframe перенаправляется с помощью параметра redirect_to на страницу, контролируемую злоумышленником.
  4. Злоумышленник сравнивает новое значение длины истории с предыдущим.
  5. Если значение не изменилось, вход прошёл успешно, раскрывая корректные учетные данные через слепой перебор.

Ограничения и трудности атак XSHM

Несмотря на новизну, атаки XSHM сталкиваются с существенными ограничениями:

  • Необходимость взаимодействия пользователя: жертвы должны посетить вредоносный сайт и вручную открыть либо взаимодействовать с новыми вкладками из-за блокировщиков всплывающих окон.
  • Видимость атаки: новые вкладки или обновления браузера могут насторожить пользователя.
  • Ограничения внедрения iframe: заголовки безопасности, такие как X-Frame-Options, препятствуют загрузке страниц WordPress в iframe, снижая надёжность атаки.
  • Особенности браузеров: например, Google Chrome изменяет поведение history.length в качестве меры противодействия.

Обход ограничений с помощью window.opener

Злоумышленники используют скрипты window.opener для обхода ограничений iframe, манипулируя отдельными вкладками браузера. Этот метод позволяет:

  1. Открыть новую вкладку под контролем злоумышленника.
  2. Получить доступ к значению history.length в исходной вкладке.
  3. Перенаправить исходную вкладку на страницу админки WordPress для вызова перенаправления входа.
  4. Вернуть исходную вкладку под контроль злоумышленника.
  5. Сравнить значения длины истории для определения статуса входа.

Эта техника повышает скрытность за счёт использования «popunder»-окон, которые открываются в фоне, снижая осведомлённость пользователя.

Дополнительные особенности атак XSHM

Ограничения длины истории

Браузеры, такие как Chrome, ограничивают число записей history.length значением 50, что может затруднять отслеживание со временем. Злоумышленники обходят это, применяя:

  1. Перенаправление жертв на URL с одинаковым происхождением для сброса истории.
  2. Манипуляции навигацией браузера для восстановления начальных записей истории.
  3. Искусственное увеличение длины истории для поддержания точности измерений.

Обход защиты CSRF при выходе

WordPress всегда показывает форму входа независимо от текущего статуса аутентификации, позволяя злоумышленникам принудительно выйти из системы с помощью параметра reauth=1. Это позволяет проверить наличие WordPress по поведению перенаправления после выхода.

Стратегии защиты от атак XSHM и перебора

Хотя пользователи самостоятельно не могут предотвратить XSHM, веб-разработчики и администраторы могут внедрять эффективные меры противодействия:

  • Избегать условных перенаправлений, которые раскрывают статус аутентификации или информацию о сессии.
  • Внедрять CSRF-токены во все формы аутентификации для блокировки неавторизованных межсайтовых запросов.
  • Рандомизировать структуру URL и токены для сокрытия предсказуемых путей перенаправления.
  • Применять двухфакторную аутентификацию (2FA) для снижения риска перебора даже при угадывании паролей.
  • Использовать ограничение скорости и блокировку учётных записей для срыва автоматизированных атак.
  • Добавлять заголовки безопасности, такие как X-Frame-Options и Content-Security-Policy, для минимизации векторов атак.

Заключение

Cross-Site History Manipulation — это творческий, но сложный метод, который используют злоумышленники для идентификации и перебора сайтов WordPress как в публичных, так и во внутренних сетях. Несмотря на технические ограничения и требуемое взаимодействие пользователя, понимание этих векторов атаки подчёркивает важные пробелы в безопасности WordPress.

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

Ключевые выводы

  • Повсеместность WordPress делает его первоочередной целью атак перебором входа, даже в изолированных внутренних сетях.
  • Атаки XSHM используют историю браузера и поведение перенаправлений для обнаружения сессий WordPress без прямого доступа к сети.
  • Реализация таких мер безопасности, как CSRF-токены, двухфакторная аутентификация и надёжная защита страницы входа существенно снижает успешность атак.
  • Особенности браузеров и заголовков безопасности как ограничивают, так и влияют на возможность использования методов на базе XSHM.