CMS Explorer

CMS Explorer

При проведении пентестов очень часто приходится иметь дело с такими известными CMS как Joomla, WordPress и Drupal. Эта тройка составляет значительную часть от общего количества используемых в сети систем управления контентом с открытым исходным кодом. Серьезные уязвимости, как правило, присутствуют только в древних версиях, поэтому на первый план выходят самостоятельно установленные плагины, безопасность которых может быть намного более далекой от идеала, чем в ядре системы.

Инструмент CMS Explorer служит для определения плагинов в перечисленных выше CMS. Он представляет собой небольшой perl-скрипт с набором списков плагинов для каждой из CMS. Наборы легко обновляются, указав ключ -update. Утилита также сканирует используемые темы оформления, но обычно это не несет никакой пользы. Чтобы отключить сканирование тем, в исходном коде нужно вручную указать значение соответствующего элемента массива ($OPTIONS{‘checkthemes’} = 0;), так как автор не предусмотрел такой опции при запуске.

Отличительной особенностью скрипта является автоматический поиск на предмет уязвимостей по базе данных OSVDB для найденных плагинов. Однако для использования поиска необходимо иметь ключ к API сервиса. Впрочем, получить его может любой желающий, пройдя регистрацию. К сожалению, присутствует одно ограничение – сервис позволяет сделать только 100 запросов в день. Получив ключ, нужно создать в папке с CMS Explorer файл osvdb.key и внести значение.

Пример работы скрипта:


cms-explorer.pl -url http://localhost/wp/2.9/ -osvdb -explore -type WordPress

*******************************************************
Beginning run against http://localhost/wp/2.9/...
Testing plugins...
Plugin Installed: wp-content/plugins/hello.php
Plugin Installed: wp-content/plugins/akismet/

*******************************************************
Running explorer...
Looking for plugin/module files...

*******************************************************
Requesting files...

*******************************************************
Summary:
Plugin Installed: wp-content/plugins/hello.php
URL http://localhost/wp/2.9rc1/wp-content/plugins/he
llo.php
SVN http://svn.wp-plugins.org/wp-content/plugins/hel
lo.phptrunk/
http://osvdb.org/22654 WordPress wp-content/plugins/hello.php Direct Re
quest Path Disclosure
http://osvdb.org/62684 WordPress wp-content/plugins/hello.php add_actio
n() Function Path Disclosure
Plugin Installed: wp-content/plugins/akismet/
URL http://localhost/wp/2.9rc1/wp-content/plugins/ak
ismet/
SVN http://svn.wp-plugins.org/wp-content/plugins/aki
smet/trunk/
http://osvdb.org/37290 Akismet for WordPress akismet.php Unspecified Is
sue
http://osvdb.org/62683 WordPress wp-content/plugins/akismet/akismet.php
add_action() Function Path Disclosure

Как можно заметить, сначала проводится перебор всех плагинов из списка, и только потом проверяется, можно ли получить листинг файлов из директории wp-content/plugins/. Почему действия производятся именно в таком порядке, а не в обратном, мне непонятно, но надеюсь к следующей версии код будет улучшен.


Обзоры bruteforce cms drupal joomla osvdb perl wordpress безопасность
Alt text

Цифровые следы - ваша слабость, и хакеры это знают.

Подпишитесь и узнайте, как их замести!

Арсений Реутов

блог о web-безопасности