Пентест WordPress своими руками

    К сожалению, нигде не нашел упоминания в постах на Хабре о замечательной утилите — WPScan, которая просто безумно помогает с пентестом блогов на WordPress. Этот пост о ней и еще одной утилите, которые помогут даже ничего не знающему в безопасности IT'шнику провести пентест блога на WordPress.

    # ./wpscan.rb
    _______________________________________________________________
            __          _______   _____
            \ \        / /  __ \ / ____|
             \ \  /\  / /| |__) | (___   ___  __ _ _ __
              \ \/  \/ / |  ___/ \___ \ / __|/ _` | '_ \
               \  /\  /  | |     ____) | (__| (_| | | | |
                \/  \/   |_|    |_____/ \___|\__,_|_| |_|
    
            WordPress Security Scanner by the WPScan Team
                        Version v2.1r1c1a6d2
         Sponsored by the RandomStorm Open Source Initiative
     @_WPScan_, @ethicalhack3r, @erwan_lr, @gbrindisi, @_FireFart_
    _______________________________________________________________
    


    Обзор


    Вообще, все довольно подробно изложено на официальном сайте — wpscan.org, можно обойтись одной ссылкой. Здесь, скорее, просто русскоязычный обзор и опыт использования этого инструмента.

    Данная утилита собирает данные о всех известных уязвимостях в WordPress (как в самом движке, так и во всех его плагинах) и на базе этого проверяет блог. Список возможностей:

    • Определение версии WordPress;
    • Перебор пользователей и их паролей (многопоточно);
    • Перебор установленных модулей (список модулей берется с сайта wordpress, более 2220);
    • Перебор установленных тем, включая timthumb.

    В целом всё. Следует отметить, что к каждому найденному плагину/теме выводится список известных уязвимостей.

    Установка


    Самый просто способ — поставить, например, Kali Linux (или BackBox Linux, BackTrack Linux, Pentoo, SamuraiWTF), обновить, запустить. А так требования:

    • Ruby => 1.9
    • RubyGems
    • Git

    Windows не поддерживается.

    Debian/Ubuntu
    sudo apt-get install libcurl4-gnutls-dev libopenssl-ruby libxml2 libxml2-dev libxslt1-dev ruby-dev

    git clone github.com/wpscanteam/wpscan.git

    cd wpscan

    sudo gem install bundler && bundle install --without test development

    Fedora
    sudo yum install gcc ruby-devel libxml2 libxml2-devel libxslt libxslt-devel libcurl-devel

    git clone github.com/wpscanteam/wpscan.git

    cd wpscan

    sudo gem install bundler && bundle install --without test development

    Archlinux
    pacman -Syu ruby

    pacman -Syu libyaml

    git clone github.com/wpscanteam/wpscan.git

    cd wpscan

    sudo gem install bundler && bundle install --without test development

    gem install typhoeus

    gem install nokogiri

    Mac OSX
    git clone github.com/wpscanteam/wpscan.git

    cd wpscan

    sudo gem install bundler && bundle install --without test development


    Использование


    Запуск без параметров расскажет сам за себя:

    ruby ./wpscan.rb --help
    
    -Do 'non-intrusive' checks ...
    ruby ./wpscan.rb --url www.example.com
    
    -Do wordlist password brute force on enumerated users using 50 threads ...
    ruby ./wpscan.rb --url www.example.com --wordlist darkc0de.lst --threads 50
    
    -Do wordlist password brute force on the 'admin' username only ...
    ruby ./wpscan.rb --url www.example.com --wordlist darkc0de.lst --username admin
    
    -Enumerate installed plugins ...
    ruby ./wpscan.rb --url www.example.com --enumerate p
    
    -Enumerate installed themes ...
    ruby ./wpscan.rb --url www.example.com --enumerate t
    
    -Enumerate users ...
    ruby ./wpscan.rb --url www.example.com --enumerate u
    
    -Enumerate installed timthumbs ...
    ruby ./wpscan.rb --url www.example.com --enumerate tt
    
    -Use a HTTP proxy ...
    ruby ./wpscan.rb --url www.example.com --proxy 127.0.0.1:8118
    
    -Use a SOCKS5 proxy ... (cURL >= v7.21.7 needed)
    ruby ./wpscan.rb --url www.example.com --proxy socks5://127.0.0.1:9000
    
    -Use custom content directory ...
    ruby ./wpscan.rb -u www.example.com --wp-content-dir custom-content
    
    -Use custom plugins directory ...
    ruby ./wpscan.rb -u www.example.com --wp-plugins-dir wp-content/custom-plugins
    
    -Update ...
    ruby ./wpscan.rb --update
    
    -Debug output ...
    ruby ./wpscan.rb --url www.example.com --debug-output 2>debug.log
    

    Обычно, я сначала запускаю просто с параметром -u, потом перебираю плагины/timthumb файлы, потом пользователей и их пароли (запущенных в screen на каждого юзера). Словари для перебора:



    Для защиты от перебора ставим различные плагины, которые легко находятся в маркете.

    Также проверяем, доступна ли регистрация (возможно, забыли отключить). Имеется ввиду, что на ресурсе не должна быть предусмотрена регистрация (PR блог) — localhost/wp-login.php?action=register

    В целом по WP всё.

    Пробегаемся блогу еще DirBuster, возможно, забыли удалить какие-нибудь тестовые, отладочные файлы (а может и не только). Он по словарям (в комплекте) перебирает все подряд в htdocs (это круче, в данном случае, чем nikto). С ним тоже есть немало «историй успеха» :)


    Периодически обновляем wpscan (git pull) и проверяем свой scope :) Безопасных вам ресурсов!
    По каким еще движкам интересен пентест?

    Только зарегистрированные пользователи могут участвовать в опросе. Войдите, пожалуйста.

    Метки:
    Digital Security 113,19
    Безопасность как искусство
    Поделиться публикацией
    Комментарии 14
    • –2
      Ну утилита полезная, но писать ради нее отдельный пост… Таким образом, мы будем иметь по посту на описание половины инструментов из того же BT, Kali. Тем более, что на практике все куда замысловатее, нежели перебор плагинов)
      • 0
        Я сам очень долго сомневался, стоит ли) раньше так и делал — делал обзор скоупом.
      • 0
        Эдакий мазохизм.
        Зачем брутить свой же ресурс, если у вас есть их пароли, хоть и не в плейнтекст. Брут хешей — гораздо более быстрое занятие. А все левые файлы успешно закрываются ЧПУ.
        • 0
          Согласен. Я тут скорее со своей стороны описал, что нужно проверить чей-то ресурс.
          • –3
            Если проверка «легальна», то такие тулзы не нужны, по причине доступа к админке и полной информации о ресурсе, если Вы преследуете корыстные цели, то «пентест» подобными программами ничуть не лучше кручения скуль хавиджем. Решают руки и голова, а не средства автоматизации, которые загадят все логи.
            • 0
              Вы серьезно? Кто когда дает доступ к базе при пентесте? За время моего опыта (несколько лет) — никогда такого не было.
              • 0
                Я отталкивался от контекста
                Для защиты от перебора ставим различные плагины, которые легко находятся в маркете.

                Это ж как вы будете ставить плагины без доступа? Нормальный аудит делается с доступом к исходникам, для определения тех. же бекдоров, вы пытались затронуть в статье темы и пентеста и защиты и проверки на оставленные файлы.
                • +1
                  Это был совет администраторам.
                  Т.е. blackbox тестирование — это что-то ненормальное? И вообще, не было нигде слова про аудит, было про пентест.
                  P.S. А плагины я советовал ставить админам.
              • 0
                Это всего лишь средство определения плагинов(сам пентест же многоуровневый процесс), может вы предложите более лучшие альтернативы при black-box'e? Не вижу связи с хавиджем.
                • +1
                  Вы не правы, очень часто автоматизация решает, когда у тебя этих блогов штук 50, и все на разных хостингах, и ключики от доступа у разных команд разработчиков и системщиков. При этом блоги плодятся-живут, юзеры постоянно создаются/удаляются. Лишним такой, дополнительный скан не повредит. Учитывая, что время идет и еще кучу плагинов понаставят, которые со временем устаревают и становятся опасными.
              • 0
                Далеко не всегда пентестерам предоставляют доступ к исходникам/субд и тд(не говоря уже о том, что «пентестеры» не всегда проверяют сайт санкционированно с владельцами).
                • –3
                  чуть выше описал этот вариант. Тем кто «пентестит» сайты подобными утилитами надо отрывать руки.
                  • +3
                    Правильно. Пусть их взломщики ковыряют, нежели пентестеры. А то вдруг ещё возьмут и — какой ужас! — сообщат информацию о найденных уязвимостях владельцу сайта, а он их возмёт, да закроет.

                    Да ещё и бесплатно. Кошмарно!

              • 0
                Ну да, чтоб защитить свой бложег — это чересчур)
                Пароли и доступы итак известны. Это если другу помочь ;-)

                Только полноправные пользователи могут оставлять комментарии. Войдите, пожалуйста.

                Самое читаемое