WordPressを調査する
WordPressです。
とてもお手軽にサイトを作れるってのでお馴染みのWordPressです。でも、コイツやたらと脆弱性情報界隈を賑やかしてますよw
そんなわけで、実際にWordPressってのがどれだけ攻撃者からお手軽に狙われやすいのか調べてみます。
本日のお品書き
-
WordPress環境の準備
-
調査ツール WPScanについて
-
調査
の流れで始めます。
1.WordPress環境の準備
WordPressの環境ってことで、いつも通りグーグル先生にお伺いを立てたらこんなサイトを紹介してくれた。
ってなんて読むんだろ?w
とりあえずこちらでダウンロードさせてもらえる。
https://bitnami.com/stack/wordpress/virtual-machine
ダウンロードしてきたらVMwareか、VirtualBoxで読み込んであげればOK
読み込んだら起動してやる。
こんな感じ起動するので赤字で書いてあるように「bitnami」って入力してログインを完了する。
ubuntuのログインも求められるのでユーザー名「bitnami」とパスワードを入力。ちなみにパスワードは初回起動時に設定しろと言われるのでそこで設定したパスワードを入力。
完了するとこんな感じ。あとは、接続先になるのでIPアドレスを確認しておけば準備はおしまい。
2.調査ツール WPScanについて
Rubyで書かれたWordPress用の脆弱性スキャンツールで、基本的にKali Linuxを使用していればインストールを意識しなくてもコマンドラインから呼び出して使用できる。
Kali Linuxからコマンドラインで wpscan と入力することで起動。
引数を指定しない状態で入力すると簡単な使い方についての説明が表示される。
ヘルプ
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)
80番ポートが空いていて、WordPress 4.5.3ってバージョンまでわかる結果が表示された。Nmap優秀w
WordPressが動いているWebサイトだと確認が取れたのでWPScanで調査開始。
wpscan --url '192.168.10.15' --enumerate
こんな感じの結果が表示される。今回、enumerateに引数を与えなかったので、全て表示されている。
各プラグイン、ユーザ情報などなどが丸見え。
ちなみに表示の中で[!]で始まってるところが脆弱性情報。これをググれば、どんな脆弱性なのかがわかる。
せっかくなのでWPScanの攻撃的な側面としてのブルートフォースアタックも試してみる。先ほどと同じサイトにユーザを追加して、よくある脆弱なパスワードを設定した。そして、よく使われるパスワードをまとめたワードリストを用意してブルートフォースを仕掛けてみる。
wpscan --url '192.168.10.15' --wordlist ~/passlist --threads 50
※本気でブルートフォースしてみたら、時間がかかりすぎたのでパスワードを書き込んだpasslistを用意して実行
WPScanの機能でユーザを探し出し、ブルートフォースでパスワードまで抽出することができた。
WPScan恐るべし・・・。脆弱性のスキャンだけじゃなくパスワードまで取れるとは(; ̄O ̄)
せっかくだからWordPressをバージョンアップして、再度スキャンしてみた。
先ほどのノーガード状態に比べるとだいぶマシになった様子。これくらいの状況で運用できるのがベターなのかな?
WordPressの脆弱性を放置するのが、とても危険なのは理解している。でも、みんなわかっていてもバージョンアップできない理由があるという事を沖縄で学んだ。「脆弱性があるからパッチを当ててください」「バージョンアップして下さい」って言う方は簡単だけど、サイトを運営している人からするとパッチを当てた影響の確認や、バージョンアップした結果の互換性の問題などを検証し考慮しないといけない。
セキュリティについて発信していくなら、「脆弱性が見つかりましたから速やかにアップデートをして下さい」だけでなく、アップデート出来ないならば回避策なんかを提案できると良いのかな?と考える今日この頃でありました。