April 20, 2021

3 способа найти рабочую учетную запись в WordPress

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

Предварительные требования:

  • На целевом сайте установлен WordPress
  • В качестве рабочей системы используется Kali Linux (с WPscan)
  • Приложение Burp Suite (Intruder) для осуществления автоматически атак на веб-приложения.

WPscan

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

В качестве примера используется сайт с WordPress, установленный на локальном хосте (localhost), как показано на рисунке ниже.

Тестовый сайт на WordPress, установленный на локальном хосте

Во время брутфорса вы можете использовать как свой список имен пользователей и паролей, так и словарь из дистрибутива Kali Linux. Я использовал файлrockyou.txt, идущий в комплекте с Kali Linux и содержащий 14341564 уникальных пароля.

wpscan --url http://192.168.1.100/wordpress/ -U users.txt -P /usr/share/wordlists/rockyou.txt

В параметре –URL указываем адрес сайта, где установлен Wordpress.

Параметр –Uпозволяет указать перечень используемых имен пользователей из файла (в нашем случае – вusers.txt).

Параметр –Pпозволяет указать перечень используемых паролей из файлаrockyou.txt.

Продолжительность сканирования, как правило, зависит о того, насколько большой словарь с паролями, а поскольку список пользователей тоже большой, брутефорс может повлиять на производительность сайта в случае длительного использования.

Текстовая заставка, появляющаяся во время запуска брутфорса

Как показано на рисунке ниже, брутфорс завершился успешно, и найдено рабочее сочетание имени пользователя и пароля.

Найдена рабочая учетная запись admin / flower

Metasploit

Metasploit устанавливается вместе с Kali Linux. Соответственно, первым делом нужно запустить консоль, а затем нужный модуль для WordPress.

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

msf > use auxiliary/scanner/http/wordpress_login_enum
msf auxiliary(wordpress_login_enum) > set rhosts 192.168.1.100
msf auxiliary(wordpress_login_enum) > set targeturi /wordpress
msf auxiliary(wordpress_login_enum) > set user_file user.txt
msf auxiliary(wordpress_login_enum) > set pass_file pass.txt
msf auxiliary(wordpress_login_enum) > exploit

И опять, как показано на рисунке ниже, брутфорс тоже завершился успешно. Найдена учетная записьAdmin / flower.

Повторное успешное завершение брутефорса

Burp Suite

Для решения нашей задачи подойдет Burp suite community edition, или можно использовать версию, которая устанавливается вместе с Kali Linux. Запускаем Burp Suite, открываем страницу авторизации в WordPress и активируем перехват в Burp Proxy. Затем указываем любое имя пользователя / пароля с целью последующего перехвата ответа на текущей запрос.

Пробная авторизация в Wordpress

Обратите внимание на последнюю строчку перехваченного сообщения на рисунке ниже, где показаны имя пользователя и парольraj:raj, введенные во время пробной авторизации. Затем кликните правой кнопкой мыши на пустом пространстве в поле с сообщением и выберите Send to Intruder или нажмите ctrl + I для отправки перехваченного сообщения в Intruder.

Перехваченное сообщение

Теперь зайдите в раздел Intruder, где находится запрос, созданный по базовому шаблону, который мы отправили. Далее зайдите во вкладку Positions, где выбраны несколько позиций, обозначенных символами§. Всё между двумя символами§будет заменено на полезную нагрузку. Однако сейчас нужно кликнуть на кнопку Clear с правой стороны от редактора.

Далее выберите позиции, как показано на рисунке ниже, и кликните на кнопку Add. Будут настроены две выбранные позиции для вставки полезной нагрузки. В списке Attack type выбираем Cluster bomb, поскольку у нас две позиции с полезной нагрузкой. Этот тип атаки полезен во время брутфорса, поскольку первая полезная нагрузка помещается на первую позицию, а вторая соответственно – на вторую. При проходе в цикле через элементы полезной нагрузки будут испробованы все комбинации. Например, если у вас 1000 имен пользователей и 1000 паролей, будет выполнено 1000000 запросов.

После выполнения всех настроек нажмите на кнопку Start attack.

Настройки атаки Cluster bomb для реализации брутфорса при помощи отправки запросов

Во вкладке Payloads кликните на выпадающий список Payload set, где можно выбрать числа 1 и 2. Выберите значение 1 для первой позиции полезной нагрузки. В выпадающем списке Payload type выберите Simple list, позволяющий настроить простой список строк для полезных нагрузок. Вы можете вручную добавить элементы в список при помощи текстового поля и кнопки Add или вставить список из буфера обмена или загрузить из файла.

Настройка первой позиции полезной нагрузки

Схожим образом выбираем значение 2 для второй позиции полезной нагрузки и в параметре Payload type выбираем Runtime file. Эта опция полезна, когда нужен очень большой список полезных нагрузок, чтобы не хранить в памяти. Добавьте путь к словарю с паролями и кликните на кнопку Start attack.

Настройка второй позиции полезной нагрузки

Во время атаки будут перебираться все возможные комбинации, как показано на рисунке ниже. Если вы обратите внимание на колонки Status и Length, то можете увидеть, что для комбинацииadmin / flowerэти значения отличаются от остальных (status = 302, lengh = 1203). Соответственно, можно сделать вывод, что именно такого результата мы и добиваемся. В итоге была еще раз обнаружена рабочая комбинация имени пользователяadminи пароляflower.

Результаты тестирования полезных нагрузок

Как защититься от брутфорса

Если предпринять меры, указанные ниже, можно защититься от атак подобного рода:

Длина пароля: в идеале длина пароля должна быть 8-16 символов. Важно избегать наиболее распространенных паролей и периодически менять.

Сложность пароля: Пароль должен содержать буквы в верхнем / нижнем регистре, должен содержать цифры и специальные символы. Пользователи должны выбирать сложные парольные фразы, а не одиночные слова. Чем сложнее пароль, тем дольше выполняется перебор.

Ограничение количества авторизаций: Ограничьте количество попыток авторизации в панели управления. Например, после трех неудачных попыток должен быть заблокирован IP на определенный период.

Двухфакторная аутентификация: Еще один способ защититься от брутфорса – двухфакторная аутентификация (или 2FA). Эта технология задействует еще один канал подтверждения авторизации (обычно при помощи телефона или электронной почты).

Капча: Установка капчи позволяет довольно просто защититься от ботов, использующих автоматизированные скрипты для авторизации.

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

Cloudflare – один из наиболее известных сервисов для защиты от брутфорса.

Резервная копия: В случае неудачного стечения обстоятельств у вас всегда должна быть свежая резервная копия и план по восстановлению работоспособности сервера.

Есть несколько плагинов для Wordpress, позволяющих настроить автоматическое резервное копирование.

Запрет на просмотр содержимого директории и регулярное обновление WordPress также помогает защититься от брутфорса.