サイバーセキュリティはじめました

ハニーポット(T-POT)の検証や攻撃の実験など、サイバーセキュリティに関して少しずつ勉強しています。

WPScanの使用方法 (OWASP Nagoya 第4回ハンズオンセミナーの復習)

昨日、受講したOWASP Nagoya 第4回ハンズオンセミナーの内容を忘れる前に復習します。

今日は、WordPress脆弱性診断を行う「WPScan」の復習です。

 

※ここで紹介する脆弱性診断は、興味本位で他者のWebサイトに対して実行してはいけません。実行する場合は、サーバ管理者、ホスティング事業者など、すべての関係者に許可をとった上で実施してください。

 

 

f:id:tk-secu:20180408225350p:plain

実行環境

実行環境として、Ruby2.1.9(推奨:2.5.0)、Curl7.21(推奨:最新)、RubyGems(推奨:最新)が必要となっています。

 

インストール手順

Kali Linuxにプリインストールされていますので、Kali Linuxを使用できる方は、そちらの方が手っ取り早いかもしれませんね。

その他のインストール方法だと、Dockerのイメージを取得してインストールするのが簡単かもしれません。

https://docs.docker.com/engine/installation/

 

実行方法

インストールしたwpscan.rbを実行するだけで、脆弱性診断を実施することができます。

オプション

--update

 データベースを最新バージョンに更新します。

--url | -u <ターゲットのURL>

 スキャンするWordPressのURL /ドメイン

--force | -f

 WPScanに、リモートサイトがWordPressを実行しているかどうかをチェックしないようにします。

--enumerate | -e <オプション>

 オプションの内容を列挙する。

 <オプション>

  u

   ID1~10までのユーザ名を列挙する。

  u[10-20]

   ID10~20までのユーザ名を列挙する。([ ]も記載する必要あり)

  vp

   脆弱なプラグインのみ列挙する。

  ap

   すべてのプラグインを列挙する。(長時間かかる可能性あり)

  tt

   timthumbsを列挙する。

  vt

   脆弱なテーマのみ列挙する。

  at

   すべてのテーマを列挙する。(長時間かかる可能性あり)

他にも多数のオプションがありますが、主に使用するのはこの程度かと思います。

オプションの詳細は、

./wpscan.rb --help

で確認できます。

脆弱性診断

侵入を試行しない単純なスキャン

./wpscan.rb -u "対象のURL"

f:id:tk-secu:20180408232605p:plain

脆弱性の個数や、脆弱性の情報が表示されます。

Title行に脆弱性の種類、Fixed欄に脆弱性が解消されたバージョンが表示されています。

 

プラグインのスキャン

./wpscan.rb -u "対象のURL" -e vp

f:id:tk-secu:20180408232950p:plain

脆弱性のあるプラグインのみ表示されます。

こちらも、脆弱性の種類と、脆弱性が解消されたバージョンが表示されます。

 

ユーザ名の調査

./wpscan.rb -u "対象のURL" -e u

f:id:tk-secu:20180408233135p:plain

使用しているユーザ名の一覧を取得できます。今回は、adminのみ使用しているため、1行だけの表示となります。

[!]の項目で、adminを使用していることに対して注意文も表示されています。

 

ブルートフォース攻撃

./wpscan.rb -u "対象のURL" -w (パスワードファイル) -U (ユーザ名)

f:id:tk-secu:20180408233434p:plain

ユーザ名に「admin」を指定してチェックしたところ、パスワードが判明した瞬間です。

単純なパスワードだと、このように簡単に破られてしまいます。