Как установить и запустить WPScan в Windows
WPScan — это сканер уязвимостей сайтов, работающих на WordPress. Он работает по принципу «чёрного ящика», т. е. без доступа к исходному коду. Он может быть использован для сканирования удалённых сайтов WordPress в поисках проблем безопасности.
Процесс поиска уязвимостей заключается в следующем:
- Для указанного сайта ищутся установленные плагины и темы. Поскольку на всех сайтах плагины помещены в одни и те же папки, то определить наличие плагина можно сделав запрос к определённому файлу. Также делаются попытки определить версии для плагинов и обнаруженных тем оформления.
- Если плагин найден, то в базе данных проверяется, имеются ли для него уязвимости.
- Дополнительно определяется версия WordPress и выводятся известные для этой версии уязвимости.
- Также ищутся резервные копии файлов и баз данных, анализируется файл robots.txt, выводится список пользователей и другая полезная для аудитора безопасности сайтов информация.
WPScan обычно используют на Linux, эта программа уже предустановлена на таких дистрибутивах как Kali Linux и BlackArch. WPScan написан на Ruby и может быть запущен на любой операционной системе, которая поддерживает Ruby, в том числе и Windows. При использовании WPScan в Windows имеются некоторые нюансы, о которых будет рассказано далее.
Для установки WPScan на Windows нужно начать с установки Ruby, как это описано в этой статье.
Затем выполним поиск WPScan среди пакетов gem:
gem search WPScan
Найден пакет wpscan (3.7.5), который является свежей версии WPScan. Для установки достаточно выполнить:
gem install wpscan
Теперь нужно выполнить обновление базы данных WPScan с информацией о плагинах и темах WordPress:
wpscan --update --disable-tls-checks
Если при запуске возникла ошибка «Could not open library 'libcurl.dll', 'libcurl.so.4', 'libcurl.so.4.dll'», то её решение смотрите здесь.
Для запуска сканирований сайтов на WordPress в Windows с помощью WPScan запустите команду вида:
wpscan --url https://ДОМЕН --random-user-agent --disable-tls-checks
Например, я хочу просканировать URL https://hackware.ru:
wpscan --url https://hackware.ru --random-user-agent --disable-tls-checks
Почему WPScan не показывает уязвимости. Как получить WPVulnDB API
Раньше WPScan выводил версии найденных плагинов и тем и если плагин или тема имеет уязвимости, то выводил их. Сейчас WPScan только показывает версии WordPress, плагинов и тем, но не выводит уязвимости. Вместо них в конце сканирования показаны следующие сообщения:
[!] No WPVulnDB API Token given, as a result vulnerability data has not been output. [!] You can get a free API token with 50 daily requests by registering at https://wpvulndb.com/users/sign_up.
В них сказано, что WPVulnDB API не заданы, поэтому информация об уязвимостях в выводе отсутствует. Вы можете получить бесплатный API, которые даёт право делать 50 запросов в день. Для этого достаточно зарегистрироваться по ссылке https://wpvulndb.com/users/sign_up.
Никакого подвоха нет — просто переходите, регистрируетесь и получаете свой бесплатный токен.
Затем к запускаемой команде добавьте опцию —api-token:
wpscan --url https://ДОМЕН --random-user-agent --disable-tls-checks --api-token API_КЛЮЧ
Пример сканирования без API ключа:
Дополнительный материал
- Поиск уязвимостей в сайтах на WordPress
- Анонимные сканирования с Nmap, sqlmap и WPScan через Tor
- Бесплатный онлайн сервис для сканирования WordPress с помощью WPScan: https://suip.biz/ru/?act=wpscan&color=on
- Безопасность сайтов на WordPress
Решение проблем
SSL peer certificate or SSH remote key was not OK
При обновлении базы данных может возникнуть ошибка:
[i] Updating the Database ... Scan Aborted: Unable to get https://data.wpscan.org/metadata.json.sha512 (SSL peer certificate or SSH remote key was not OK)
Такая же ошибка может возникнуть при проверке сайта, использующего HTTPS протокол:
Scan Aborted: The url supplied 'https://hackware.ru/' seems to be down (SSL peer certificate or SSH remote key was not OK)
Для исправления, добавьте к вашей команде опцию —disable-tls-checks, например:
wpscan --update --disable-tls-checks
Could not open library 'libcurl.dll', 'libcurl.so.4', 'libcurl.so.4.dll'
При запуске WPScan на Windows:
wpscan --url hackware.ru
Можно столкнуться с такой проблемой:
Traceback (most recent call last): 27: from C:/Ruby26/bin/wpscan:23:in `<main>' 26: from C:/Ruby26/bin/wpscan:23:in `load' 25: from C:/Ruby26/lib/ruby/gems/2.6.0/gems/wpscan-3.7.5/bin/wpscan:4:in `<top (required)>' 24: from C:/Ruby26/lib/ruby/site_ruby/2.6.0/rubygems/core_ext/kernel_require.rb:92:in `require' 23: from C:/Ruby26/lib/ruby/site_ruby/2.6.0/rubygems/core_ext/kernel_require.rb:92:in `require' 22: from C:/Ruby26/lib/ruby/gems/2.6.0/gems/wpscan-3.7.5/lib/wpscan.rb:8:in `<top (required)>' 21: from C:/Ruby26/lib/ruby/site_ruby/2.6.0/rubygems/core_ext/kernel_require.rb:92:in `require' 20: from C:/Ruby26/lib/ruby/site_ruby/2.6.0/rubygems/core_ext/kernel_require.rb:92:in `require' 19: from C:/Ruby26/lib/ruby/gems/2.6.0/gems/cms_scanner-0.7.1/lib/cms_scanner.rb:4:in `<top (required)>' 18: from C:/Ruby26/lib/ruby/site_ruby/2.6.0/rubygems/core_ext/kernel_require.rb:92:in `require' 17: from C:/Ruby26/lib/ruby/site_ruby/2.6.0/rubygems/core_ext/kernel_require.rb:92:in `require' 16: from C:/Ruby26/lib/ruby/gems/2.6.0/gems/typhoeus-1.3.1/lib/typhoeus.rb:2:in `<top (required)>' 15: from C:/Ruby26/lib/ruby/site_ruby/2.6.0/rubygems/core_ext/kernel_require.rb:92:in `require' 14: from C:/Ruby26/lib/ruby/site_ruby/2.6.0/rubygems/core_ext/kernel_require.rb:92:in `require' 13: from C:/Ruby26/lib/ruby/gems/2.6.0/gems/ethon-0.12.0/lib/ethon.rb:15:in `<top (required)>' 12: from C:/Ruby26/lib/ruby/site_ruby/2.6.0/rubygems/core_ext/kernel_require.rb:92:in `require' 11: from C:/Ruby26/lib/ruby/site_ruby/2.6.0/rubygems/core_ext/kernel_require.rb:92:in `require' 10: from C:/Ruby26/lib/ruby/gems/2.6.0/gems/ethon-0.12.0/lib/ethon/curl.rb:8:in `<top (required)>' 9: from C:/Ruby26/lib/ruby/gems/2.6.0/gems/ethon-0.12.0/lib/ethon/curl.rb:13:in `<module:Ethon>' 8: from C:/Ruby26/lib/ruby/gems/2.6.0/gems/ethon-0.12.0/lib/ethon/curl.rb:27:in `<module:Curl>' 7: from C:/Ruby26/lib/ruby/site_ruby/2.6.0/rubygems/core_ext/kernel_require.rb:92:in `require' 6: from C:/Ruby26/lib/ruby/site_ruby/2.6.0/rubygems/core_ext/kernel_require.rb:92:in `require' 5: from C:/Ruby26/lib/ruby/gems/2.6.0/gems/ethon-0.12.0/lib/ethon/curls/settings.rb:1:in `<top (required)>' 4: from C:/Ruby26/lib/ruby/gems/2.6.0/gems/ethon-0.12.0/lib/ethon/curls/settings.rb:2:in `<module:Ethon>' 3: from C:/Ruby26/lib/ruby/gems/2.6.0/gems/ethon-0.12.0/lib/ethon/curls/settings.rb:7:in `<module:Curl>' 2: from C:/Ruby26/lib/ruby/gems/2.6.0/gems/ffi-1.11.3-x64-mingw32/lib/ffi/library.rb:99:in `ffi_lib' 1: from C:/Ruby26/lib/ruby/gems/2.6.0/gems/ffi-1.11.3-x64-mingw32/lib/ffi/library.rb:99:in `map' C:/Ruby26/lib/ruby/gems/2.6.0/gems/ffi-1.11.3-x64-mingw32/lib/ffi/library.rb:145:in `block in ffi_lib': Could not open l (LoadError)url': �� ������ ��������� ������. . Could not open library 'libcurl.dll': �� ������ ��������� ������. . Could not open library 'libcurl.so.4': �� ������ ��������� ������. . Could not open library 'libcurl.so.4.dll': �� ������ ��������� ������.
Её суть в том, что программа не может найти необходимый ей файл libcurl.dll. Затем она пытается найти этот файл по альтернативным именам libcurl.so.4 и libcurl.so.4.dll, что тоже ей не удаётся.
Исправить проблему довольно просто — нужно скачать файл libcurl.dll. Чтобы скачать файл libcurl.dll, переходим на официальный сайт cURL и скачиваете там последнюю версию curl под Windows:
В скаченном архиве в папке bin найдите файл libcurl-x64.dll, разархивируйте его и переименуйте в libcurl.dll. Теперь этот файл нужно переместить в папку bin установленного Ruby, например, у меня эта папка C:\Ruby26\bin\.
После этого проблема исчезнет.
Связанные статьи:
- Поиск уязвимостей в сайтах на WordPress (WPScan) (89%)
- Как пользоваться Kali Linux в WSL (подсистеме Windows для Linux): подборка лучших программ (ч. 1) (88.7%)
- Атаки на JavaScript на примере обхода Social Locker for WordPress (КЕЙС) (67.9%)
- Брут-форс и эксплуатация скомпрометированных WordPress (62.3%)
- Как управлять сайтами (в том числе WordPress) с помощью бэкдора PhpSploit (62.3%)
- Скрытое управление компьютером на Windows (используя Metasploit) (RANDOM - 0.8%)