WindowsのVirtualBox Ubuntu18.04にWPScanをインストール
Oracle VirtualBox 6.1.8
ubuntu-ja-18.04.3
インストール
ます最初にWPScanのインストールに必要になるRuby等、依存関係をインストールします
$ sudo apt update $ sudo apt upgrade $ sudo apt install curl git libcurl4-openssl-dev make zlib1g-dev gawk g++ gcc libreadline6-dev libssl-dev libyaml-dev libsqlite3-dev sqlite3 autoconf libgdbm-dev libncurses5-dev automake libtool bison pkg-config ruby ruby-bundler ruby-dev -y
次にRubyGemリポジトリからWPScanをインストールします。(wget等は必要ありませんよ♪)
$ sudo gem install wpscan
これだけで正常にインストールされるはずです。まずは確認も含め、WPScanコマンドラインオプションの説明を取得してみましょう。コマンドより-h/–helpを実行します。
$ wpscan -h _______________________________________________________________ __ _______ _____ \ \ / / __ \ / ____| \ \ /\ / /| |__) | (___ ___ __ _ _ __ R \ \/ \/ / | ___/ \___ \ / __|/ _` | '_ \ \ /\ / | | ____) | (__| (_| | | | | \/ \/ |_| |_____/ \___|\__,_|_| |_| WordPress Security Scanner by the WPScan Team Version 3.8.1 @_WPScan_, @ethicalhack3r, @erwan_lr, @firefart _______________________________________________________________ Usage: wpscan [options] --url URL The URL of the blog to scan Allowed Protocols: http, https Default Protocol if none provided: http This option is mandatory unless update or help or hh or version is/are supplied -h, --help Display the simple help and exit --hh Display the full help and exit (~以下、省略~)
上記オプションに記載されていますが、念のため、アップデートは行っておきましょう。
$ wpscan --update
wpscanの使用方法
基本的な使い方
前回の記事でローカルにwordpressをインストール済みなので、それに対してスキャンしてみます。
$ wpscan --url localhost
※なお私はローカルでテストしていますが、ホスティングサービス等をご利用の場合は、localhostの部分に「http://xxxxx.com」などURLを入れてください。ちなみにhttpプロトコルとhttpsプロトコルの両方をスキャンできます。指定しない場合、デフォルトでhttpをスキャンします。
スキャナーの出力結果をファイルに保存する場合は、-o/–outputオプションを使用します。
$ wpscan --url http://localhost -o scan-test
検出モードを指定するには以下です。
$ wpscan --url http://localhost -o test --detection-mode aggressive
なお上記はaggressiveを指定した例ですが、その他にも検出モードは3つあります。
- passive : サーバーに少しリクエストしか送信しない、non-intrusive(でしゃばらない)検出モードで実行します。通常、ホームページをスキャンして脆弱性を探します。パッシブモードは、IDS / IPSソリューションによって検出される可能性が低くなります。
- aggressive : 一方このモードでは、サーバーに多くのリクエストが送信されるため、より煩わしいスキャンが実行されます。プラグインに既知の脆弱性がリンクされていない場合でも、可能なすべてのプラグインを試します。これによりサーバーの負荷が増加する可能性があります。
- mixed(default) : アグレッシブとパッシブの両方を組み合わせて使用します。
脆弱なプラグインを確認する
WordPressブログの脆弱なプラグインをスキャンするには、-e/–enumerate [OPTS]オプションと共に、vp (vulnerable plugins)、ap (all plugins)、p (plugins)を指定します。たとえば、脆弱性がリンクされているすべてのプラグインをスキャンするには以下のコマンドを実行します。
$ wpscan --url http://localhost -e vp
脆弱なテーマを確認する
上記、脆弱なプラグインをチェックしたのと同様に、脆弱なテーマをチェックする場合[OPTS]も、次のいずれかで同じことができます。vt (Vulnerable themes)、at (All themes)、t (Themes)。たとえば、既知の脆弱性のあるテーマをスキャンするには以下のコマンドを実行します。
$ wpscan --url http://localhost -e vt
WordPressユーザーの列挙
WordPressサイトにログインできるユーザーを見つけるには、基本的にユーザーIDを意味する「-e/–enumerate u」オプションをwpscanに渡します。
$ wpscan --url http://localhost -eu
パスワードのクラック/ブルートフォース攻撃
ユーザー名を列挙したら、以下に示すように、それらを再度ブルートフォース攻撃の実行を試みることができます。このプロセスは、パスワードファイルで指定されたパスワードの数(-P, –passwords FILE-PATH)と使用しているスレッドの数(-t, –max-threads VALUE)によっては少々遅くなる場合があります。たとえば管理者(admin)をブルートフォースにするには以下のコマンドを実行します。
$ wpscan --url http://localhost -P password-file.txt -U admin -t 50
複数のユーザーのパスワードの強度をテストするには、特定のユーザー名を指定せずに上記と同じコマンドを使用します。
$ wpscan --url http://localhost -P password-file.txt -t 50
検出不能モードでWordPressスキャンを実行
基本的にを意味するステルスモードでwpscanを実行(–random-user-agent –detection-mode passive –plugins-version-detection passive)するには、–stealthyオプションを指定します。
$ wpscan --url http://localhost --stealthy
WPScanについては以上です。この記事がお役に立てば幸いです。