WordPressはとてもメジャーすぎるが故にとても狙われやすいCMSです。頻繁に脆弱性がよく発見されます。その為、頻繁に新しいバージョンがリリースされます。そんなセキュリティリスクが高いWordPressにフォーカスしたセキュリティスキャン「WP scan」の紹介です。悪用厳禁ツールです!
WP Scanはrubyで作られているので、まずrootでrubyをインストールします。
その前にrubyはrbenvで管理すると非常に便利なので、rbenvを入れます。
順番に実行してください。
# yum -y install gcc openssl-devel readline-devel libxml2 libxml2-devel libxslt libxslt-devel libcurl-devel patch git bzip2 # git clone https://github.com/sstephenson/rbenv.git ~/.rbenv # echo '# add rbenv' >> ~/.bash_profile # echo 'export PATH="$HOME/.rbenv/bin:$PATH"' >> ~/.bash_profile # echo 'eval "$(rbenv init -)"' >> ~/.bash_profile # source ~/.bash_profile # git clone git://github.com/sstephenson/ruby-build.git ~/.rbenv/plugins/ruby-build # cd ~/.rbenv/plugins/ruby-build # ./install.sh # rbenv -v rbenv 1.1.1-39-g59785f6
このように表示されればrbenvインストール完了です!rubyを入れる前にWP Scanを落としてきます。
# mkdir -p /root/tools # cd /root/tools # git clone https://github.com/wpscanteam/wpscan.git Cloning into 'wpscan'... remote: Enumerating objects: 631, done. remote: Counting objects: 100% (631/631), done. remote: Compressing objects: 100% (344/344), done. remote: Total 24232 (delta more 198), reused 483 (delta 134), pack-reused 23601 Receiving objects: 100% (24232/24232), 29.97 MiB | 8.86 MiB/s, done. Resolving deltas: 100% (10768/10768), done.
ここでREADME.mdを覗いてみます。
# more README.md
すると下記のような記述を探し、WP Scanに必要なRubyのバージョンを確認します。
# INSTALL ## Prerequisites: - (Optional but highly recommended: [RVM](https://rvm.io/rvm/install)) - Ruby >= 2.3 - Recommended: latest - Ruby 2.5.0 to 2.5.3 can cause an 'undefined symbol: rmpd_util_str_to_d' erro r in some systems, see [#1283](https://github.com/wpscanteam/wpscan/issues/1283) - Curl >= 7.21 - Recommended: latest - The 7.29 has a segfault - RubyGems - Recommended: latest
該当するバージョンのrubyをインストールしましょう。
# rbenv install 2.5.3 Downloading ruby-2.5.3.tar.bz2... -> https://cache.ruby-lang.org/pub/ruby/2.6/ruby-2.5.3.tar.bz2 Installing ruby-2.5.3... Installed ruby-2.5.3 to /root/.rbenv/versions/2.5.3 # rbenv rehash # rbenv global 2.5.3 # ruby -v ruby 2.5.3p105 (2018-10-18 revision 65156) [x86_64-linux]
※rbenv global x.x.xでうまくバージョンが変わらない時は rbenv local x.x.x でバージョンを変える事が出来る場合があります。
# gem install bundler && bundle install --without test Successfully installed bundler-2.0.1 Parsing documentation for bundler-2.0.1 Done installing documentation for bundler after 2 seconds 1 gem installed Don't run Bundler as root. Bundler can ask for sudo if it is needed, and installing your bundle as root will break this application for all non-root users on this machine. Could not locate Gemfile # gem install wpscan
WP scanのインストールが完了です。
そして、パターンファイルをアップデートします。
# wpscan --update
ついでに月に1回自動更新の設定を行います。 cronに下記1行を追記して、毎月2日朝4時に自動アップデートの設定をします。
# crontab -u root -e 0 0 4 2 * /root/tools/wpscan/bin/wpscan --update
これでインストール完了。使い方はまた次の機会で。