WordPressを調査する

f:id:appleseedj073:20160812012217p:image

WordPressです。

とてもお手軽にサイトを作れるってのでお馴染みのWordPressです。でも、コイツやたらと脆弱性情報界隈を賑やかしてますよw

そんなわけで、実際にWordPressってのがどれだけ攻撃者からお手軽に狙われやすいのか調べてみます。

本日のお品書き

  1. WordPress環境の準備
  2. 調査ツール WPScanについて
  3. 調査

の流れで始めます。

1.WordPress環境の準備

WordPressの環境ってことで、いつも通りグーグル先生にお伺いを立てたらこんなサイトを紹介してくれた。

f:id:appleseedj073:20160812084307p:plainってなんて読むんだろ?w

とりあえずこちらでダウンロードさせてもらえる。

f:id:appleseedj073:20160812085057p:plain

https://bitnami.com/stack/wordpress/virtual-machine

ダウンロードしてきたらVMwareか、VirtualBoxで読み込んであげればOK

読み込んだら起動してやる。

 

f:id:appleseedj073:20160812090458p:plain

こんな感じ起動するので赤字で書いてあるように「bitnami」って入力してログインを完了する。

ubuntuのログインも求められるのでユーザー名「bitnami」とパスワードを入力。ちなみにパスワードは初回起動時に設定しろと言われるのでそこで設定したパスワードを入力。

 

f:id:appleseedj073:20160812090703p:plain

完了するとこんな感じ。あとは、接続先になるのでIPアドレスを確認しておけば準備はおしまい。

 

2.調査ツール WPScanについて

f:id:appleseedj073:20160812121427p:plain

Rubyで書かれたWordPress用の脆弱性スキャンツールで、基本的にKali Linuxを使用していればインストールを意識しなくてもコマンドラインから呼び出して使用できる。

WPScan by the WPScan Team

 

f:id:appleseedj073:20160812122103p:plain

Kali Linuxからコマンドラインで wpscan と入力することで起動。

引数を指定しない状態で入力すると簡単な使い方についての説明が表示される。

 

f:id:appleseedj073:20160812122412p:plain

ヘルプ
wpscan --help

侵入とかはナシでのチェック
wpscan --url www.example.com

50スレッド使って列挙したユーザーへ、パスワードリストを使ってのブルートフォースアタック
wpscan --url www.example.com --wordlist darkc0de.lst --threads 50

「admin」だけに、パスワードリストを使ってのブルートフォースアタック
wpscan --url www.example.com --wordlist darkc0de.lst --username admin

plug-inの表示
wpscan --url www.example.com --enumerate p

テーマの表示
wpscan --url www.example.com --enumerate t

ユーザの表示
wpscan --url www.example.com --enumerate u

Timthumbの表示
wpscan --url www.example.com --enumerate tt

HTTP proxy を使用してのチェック
wpscan --url www.example.com --proxy 127.0.0.1:8118

SOCKS5 proxy を使用してのチェック
wpscan --url www.example.com --proxy socks5://127.0.0.1:9000

カスタム・コンテンツ・ディレクトリの使用
wpscan -u www.example.com --wp-content-dir custom-content

カスタム・プラグインディレクトリの使用
wpscan -u www.example.com --wp-plugins-dir wp-content/custom-plugins

wpscanのアップデート
wpscan --update

デバッグ結果を出力
wpscan --url www.example.com --debug-output 2>debug.log

 

3.調査

 準備ができたので、調査を開始。いちお調査先をNmapで下調べ

nmap -v -A 192.168.10.15(調査対象WordPress

 

f:id:appleseedj073:20160812142351p:plain

80番ポートが空いていて、WordPress 4.5.3ってバージョンまでわかる結果が表示された。Nmap優秀w

WordPressが動いているWebサイトだと確認が取れたのでWPScanで調査開始。

wpscan --url '192.168.10.15' --enumerate

f:id:appleseedj073:20160812143900p:plain

f:id:appleseedj073:20160812143947p:plain

f:id:appleseedj073:20160812144027p:plain

f:id:appleseedj073:20160812144056p:plain

こんな感じの結果が表示される。今回、enumerateに引数を与えなかったので、全て表示されている。

プラグイン、ユーザ情報などなどが丸見え。

ちなみに表示の中で[!]で始まってるところが脆弱性情報。これをググれば、どんな脆弱性なのかがわかる。

 

せっかくなのでWPScanの攻撃的な側面としてのブルートフォースアタックも試してみる。先ほどと同じサイトにユーザを追加して、よくある脆弱なパスワードを設定した。そして、よく使われるパスワードをまとめたワードリストを用意してブルートフォースを仕掛けてみる。

wpscan --url '192.168.10.15' --wordlist ~/passlist --threads 50

※本気でブルートフォースしてみたら、時間がかかりすぎたのでパスワードを書き込んだpasslistを用意して実行

f:id:appleseedj073:20160812155049p:plain

 WPScanの機能でユーザを探し出し、ブルートフォースでパスワードまで抽出することができた。

WPScan恐るべし・・・。脆弱性のスキャンだけじゃなくパスワードまで取れるとは(; ̄O ̄)

 

せっかくだからWordPressをバージョンアップして、再度スキャンしてみた。

f:id:appleseedj073:20160812163056p:plain

f:id:appleseedj073:20160812163123p:plain

f:id:appleseedj073:20160812163151p:plain

先ほどのノーガード状態に比べるとだいぶマシになった様子。これくらいの状況で運用できるのがベターなのかな?

 

WordPress脆弱性を放置するのが、とても危険なのは理解している。でも、みんなわかっていてもバージョンアップできない理由があるという事を沖縄で学んだ。「脆弱性があるからパッチを当ててください」「バージョンアップして下さい」って言う方は簡単だけど、サイトを運営している人からするとパッチを当てた影響の確認や、バージョンアップした結果の互換性の問題などを検証し考慮しないといけない。

セキュリティについて発信していくなら、「脆弱性が見つかりましたから速やかにアップデートをして下さい」だけでなく、アップデート出来ないならば回避策なんかを提案できると良いのかな?と考える今日この頃でありました。