ペンテスターが語る攻撃者の視点 ~WordPress編 後編~ ホワイトハッカー

2018年10月31日

はじめに

前回の前編では、WordPressのメリット・デメリットや、WordPressで構築されたサイトを特定するための手法を攻撃者の視点で解説しました。

今回の後編では、前編の手法でWordPressのサイトが特定された場合、どのような攻撃が行われるか、その脅威を解説します。WordPressを脆弱な状態で使用し続けることの危険性と対策の重要性をご認識いただき、前編の内容とあわせて自社サーバの脅威対策に活用していただければと思います。

なお、本コラムに記載の内容を用いて自社管理サーバ以外の外部サーバへのアクセスおよび攻撃をすることは絶対に行わないようお願いします。
本コラムに記載の内容を外部のサーバに対して無許可で行った場合、不正アクセス禁止法違反や電子計算機等損壊業務妨害などの罪に問われる可能性があります。
検証などはご自身で管理するサーバに対してのみ実施してください。

WordPressサイトに対する主な攻撃

Webサイトは、日々数多くの攻撃を受けることになります。その中でもWordPressサイトが特に攻撃者に狙われやすい点として以下のようなものがあります。

WordPress、テーマおよびプラグインの既知の脆弱性

WordPressのバージョンは、前編で解説した管理画面等から比較的容易に特定可能であることがお分かりいただけたと思います。
そのため、具体的なバージョン情報が確認できる状態かつ、バージョンが古いものであった場合には、公開されている既知の脆弱性を悪用した攻撃を受けるリスクが高くなります。

これはWordPressに限った話ではありませんが、最新ではないバージョンのソフトウェアが使われていることを確認できた場合、攻撃者はExploitの公開情報などから取得したExploitコード(攻撃実行用のプログラム)を悪用し、サーバに対するリモートコード実行(RCE: Remote Command Execution)による不正操作や、認証を回避した不正侵入等を試みます。
また、具体的なバージョンが取得できない場合でも、攻撃者は最新の脆弱性や影響度が大きな脆弱性に対する検証コードを利用して攻撃を仕掛けてくるため、日々の脆弱性への対策は欠かせないものとなっています。

管理用ログイン画面への辞書攻撃

管理用ログイン画面が公開されている場合、辞書攻撃による不正ログインにも警戒が必要です。攻撃者の視点として、認証突破のために、以下の情報収集が可能です。

(1) リダイレクトによるユーザ名推測

「http(s)://<IPアドレス・ドメイン名>/?author=1」のようなURLにアクセスすると、リダイレクトにより、投稿者のアーカイブページに自動的に遷移します。

この際、リダイレクト先のURLが「http(s)://<IPアドレス・ドメイン名>/author/<ユーザ名>/」のような形式になり、ここからユーザ名を取得することが可能です。

【リダイレクト前】

【リダイレクト後】

(2) RSSフィードによるユーザ名推測

作成する記事に対して全体的に配慮をすべき内容ではありますが、特に、RSSフィードを提供するサイトの場合には、RSSフィードの登録用画面のHTMLソースに、以下のように作成者(多くのケースで、管理用アカウントと同一)のユーザ名が記入されているケースがあります。攻撃者は、多くのサイトで共通して利用される「/feed/」「/atom/」「/feed/atom/」といったURLへアクセスし、情報の取得を試みます。

【RSSフィードの例】

上記の例では、バージョンとユーザ名を同時に取得することが可能です。

(3) APIによるユーザ名推測

REST APIが有効となっている場合、「http(s)://<IPアドレス・ドメイン名>/wp-json/wp/v2/users/」にアクセスすることで、ユーザ名の一覧を取得することが可能です。

【REST APIの例】

また、これらのアプローチだけでなく、WordPressのデフォルトユーザ名の「admin」のような推測が容易なユーザ名の利用は、単純ながら非常に多く見受けられます。

攻撃者は、こうしてWordPressのユーザ名を取得した結果を用いて、THC hydraやMedusaといった辞書攻撃ツールによる多数のパスワード試行を実施することで、認証の突破を試みます。

WXML-RPC PingBackのDDoS攻撃への加担

WordPressでよく見つかる問題として、xmlrpc.phpが外部に公開されている際に、XML-RPC Pingback機能を不正に利用して外部サーバへの攻撃のための踏み台として悪用されることが挙げられます。

本事象の影響は、自身が外部に対する加害者となることから、対策が推奨されます。 もしWebサイトをホスティングやクラウド上に構築している場合、DDoS攻撃へ 加担したことによって、事業者から強制的にサーバ停止処置などを受ける可能性があります。

WordPressに対するスキャンツール – wpscan

これまでに解説したような観点を効率的に調査するために、脆弱性診断やペネトレーションテストにおいてはWPScanというツールを利用します。以下にスキャン実行結果の一例を記載します。

【実行結果例】

  • ユーザ名列挙
  • テーマ・プラグインの列挙

攻撃者は取得したユーザ名を基に、効率的に管理用ログイン画面への不正ログインを試みます。パスワードが初期、もしくは推測が容易な文字列の場合、認証が突破され、攻撃者によってサイトの改ざんや設定の変更などを実行される可能性が非常に高いと考えられます。

また、プラグインやテーマの種類とバージョン情報は、攻撃者にとって非常に有用な情報となり得ます。攻撃者が具体的なバージョン情報を得られた場合、プラグインやテーマの脆弱性情報を調査し、より成功確率が高い攻撃に絞って攻撃を試行することが可能になります。

最後に

今回、2回にわたってWordPressの特定方法や攻撃手法などを解説しました。本コラムで記載した内容は、いずれも広く知られている情報であり、Webサイト運営側としては常にこのような攻撃を試みる攻撃者を想定したうえで、対策を検討する必要があります。

Webサイトの管理者は、攻撃者に攻撃の余地を与えないためにも、以下のような点に注意する必要があります。

  • (1)WordPressやApache、 PHPなど、常に最新版のバージョンのソフトウェア・ミドルウェアを利用する。
  • (2)公開の必要がないファイルは.htaccess等によるアクセス制御を実施する。
  • (3)XML-RPC Pingback機能をはじめ、不必要な機能を有効にしない。
  • (4)推測が困難なパスワードを利用する(パスワードは複数の文字種を含む、できるだけ長い文字列とする)。
  • など

また、脆弱性診断やペネトレーションテストを実施することで、現状の問題点を浮き彫りにすることが可能です。脆弱性情報は日々公開されていることから、最新の脆弱性に対する対応状況を確認するため、定期的な脆弱性診断やペネトレーションテストの実施を推奨します。

繰り返しとなりますが、本コラムに記載の内容を用いて自社管理サーバ以外の外部サーバへのアクセスおよび攻撃をすることは絶対に行わないようお願いいたします。

著者プロフィール

塚本 淳史

2012年 KCCS入社
ネットワーク脆弱性診断、PCI DSS関連業務(外部スキャン業務・ペネトレーションテスト)に従事。
脆弱性診断の業務を通し、攻撃者的視点でシステムの脆弱性を全力で発掘することが趣味。
業務を通し、IT社会全体のセキュリティレベル向上を図り、クレジットカード情報を守るため日々奮闘中。

掲載されている情報は、発表日現在の情報です。最新の情報と異なる場合がありますのでご了承ください。

ページトップへ