WordPressWebサイトの侵入テスト

公開: 2020-03-20

WordPressは、インターネット上の多くのWebサイトに電力を供給しています。 したがって、経験豊富な攻撃者や「スクリプトキディ」がWordPressWebサイトを標的にすることを好むのは当然のことです。 あなたがウェブマスターであろうとセキュリティ専門家であろうと、WordPressウェブサイトのセキュリティ態勢を評価する任務を負っているとき、攻撃者が通常利用する一般的なセキュリティの落とし穴を認識するのに役立つ傾向があります。 適切な侵入テストツールを使用することも重要です。

この記事では、攻撃者が多くのWordPressインストールで悪用する可能性のある、いくつかの一般的なセキュリティホール、不正行為、および有用な情報について説明します。 また、WordPress侵入テストの自動化に役立つツールをいくつか紹介します。

ヘッズアップ—自分に属するシステム、または許可が与えられているシステムでのみセキュリティ侵入テストを実行します。 許可されたアクセスの制限を理解し、それらの制限内にとどまります。

一般的なWordPressのセキュリティ問題と不正行為

WordPressコードの古いバージョン

セキュリティの脆弱性を含む古いバージョンのWordPressコアを実行することは、間違いなくWordPressに関連する最も一般的なセキュリティホールの1つです。 新しいバージョンのWordPressを使用すると、最新バージョンに簡単にアップグレードできますが、古いWordPressサイトが遅れをとることは珍しくありません。

インターネット上で古いバージョンのWordPressを実行することは、時限爆弾です。 WordPressの古いバージョンの多くには、セキュリティの脆弱性が含まれています。 これらのセキュリティ問題の多くは、通常、攻撃者によって一斉に悪用されます。

WordPress Webサイトのセキュリティの脆弱性を監査する場合、これは通常、最初に確認したいことの1つです。 攻撃者にとって幸いなことに、デフォルトでは、WordPressは使用されているWordPressのバージョンを含むHTMLメタタグを追加します。

<meta name =” generator” content =” WordPress 4.8.11” />

WordPressのインストールが古いバージョンを実行していることを知っていると、攻撃者は既知の脆弱性を利用する機会を得る可能性があります。 CVEセキュリティ脆弱性データベースを使用して、WordPressコアの既知のセキュリティ問題を検索します。

WordPressのテーマとプラグインの古いバージョン

WordPressコアは非常に安全です。 何百万人ものユーザーと悪意のあるハッカーが同様にコードをテストし、徹底的にレビューします。 これは、ほとんどの場合、セキュリティの問題が攻撃者に悪用される前に発見され、修正されることを意味します。 ただし、セキュリティの脆弱性の影響を受けません。 残念ながら、これは何千ものWordPressプラグインとテーマには適用されません。

誰でもテーマまたはプラグインを送信して、WordPress管理者がダウンロードして使用できるようにすることができます。 もちろん、これは、すべてのWordPressプラグインのコーディングが不十分で、脆弱性に満ちていることを意味するものではありません。 ただし、既知の脆弱性は、WordPressの侵入テストを実施する際に注意する必要がある、WordPressへの大規模な攻撃対象領域を公開します。

脆弱なWordPressプラグインとテーマのフィンガープリントを作成するために使用する最も速く、間違いなく最も包括的なツールは、WPScanを使用することです。 WPScanは、コア、プラグイン、テーマ内の既知の脆弱性についてWordPressWebサイトをスキャンするために頻繁に使用されるオープンソースのブラックボックスWordPressセキュリティスキャナーです。

侵入テスト中にWPScanを使用する場合は、 WPScan Vulnerability Database APIキーにサインアップし、使用するように構成してください。 WPScan脆弱性データベースは、WPScanの作成者によって維持されているデータベースであり、最新の既知の脆弱性とそれぞれのバージョンが含まれています。

WPScanを使用したフィンガープリントプラグイン

WPScanの詳細とさまざまな種類のスキャンを実行する方法については、WPScanの開始を参照してください。

古いバージョンのPHPとWebサーバー

WordPressはPHPWebアプリケーションであるため、すべてのPHPセキュリティのベストプラクティスがWordPressにも適用されます。 WordPressの侵入テストでは、これが最初に探すべきことの1つです。 古いバージョンのPHPまたはWebサーバーソフトウェア(Nginx、Apache HTTPサーバー、IISなど)を実行しているWordPressインストールは、Webサイトをあらゆる種類の異なる攻撃にさらす可能性があります。

WordPressのウェブサイトが使用しているウェブサーバーとPHPのバージョンを簡単に把握できます。 多くの場合、攻撃者が行う必要があるのは、Webサイトから返されたHTTP応答ヘッダーに細心の注意を払うことだけです。 curlを使用して自分でリクエストを送信できます。

$ curl -s -D – http://167.71.67.124/ -o / dev / null | grep-i「Server \ | X-Powered-By」

応答でServerヘッダーとX-Powered- ByHTTPヘッダーを探します。

サーバー:Apache / 2.4.29(Ubuntu)
X-Powered-By:PHP / 5.5.9

Webサイトのバージョンと構成によっては、攻撃者が既知の脆弱性(https://www.cvedetails.com/vendor/74/PHP.htmlなど)を使用して、ターゲットに関する追加情報を入手できる可能性があります。 このような情報は、攻撃をエスカレートしたり、Webサーバー上で直接コマンドを実行したりするのに役立ちます。

WordPressのユーザー名の列挙

システム管理者がそれを防ぐための措置を講じていない限り、デフォルトでは、WordPressはユーザー列挙攻撃に対して脆弱です。 WordPressユーザー列挙攻撃、WordPressが特定のリクエストに応答する方法の微妙な違いを探します。 応答に応じて、攻撃者はユーザーが存在するかどうかを判断できるため、攻撃者はこの情報をより大きな攻撃の一部として使用できる可能性があります。

以下は、WordPressのユーザー名列挙攻撃を実行するWPScanのスクリーンショットです。

WPScanユーザー列挙とパスワードクラッキング

Webサーバーの構成ミス

ディレクトリリストおよびその他のWebサーバーの設定ミス

古いソフトウェアは別として、潜在的なWebサーバーの設定ミスを常に評価する必要があります。 Webサーバーの設定を誤ると、WordPressWebサイトが悪用されやすくなる可能性があります。 これは、Webサーバーが最新のソフトウェアを実行している場合でも発生する可能性があります。 一般的なWebサーバーの設定ミスは次のとおりです。

有効なディレクトリリスト

ディレクトリリストは、非常に一般的な設定ミスです。 Apache Webサーバーでは、これがデフォルトで有効になっていますが、これは役に立ちません。 ディレクトリリストは、インデックスファイルがない場合に、グラフィカルインターフェイスでWebサーバー上のファイルとディレクトリを一覧表示するだけです。

ApacheWebサーバーで有効になっているディレクトリリスト

これ自体は特に有害ではありませんが、攻撃者がWebサーバーディレクトリのコンテンツを閲覧する可能性を提供します。 これにより、彼はあなたのWebサイト上のすべてのファイルを見ることができるかもしれません。それらのほとんどは、一般にアクセス可能であってはなりませんが、バックアップ、パスワード、構成ファイルなどです。

バックアップファイル

バックアップファイルは、もう1つの非常に一般的なWebサーバーの設定ミスです。 通常、これらは、システム管理者が実稼働システム上のファイルを手動で編集するときに発生します。

機密情報を公開する可能性のあるバックアップファイルの一般的な例は、PHPファイルのバックアップコピーです。 PHPファイルには、WordPressのwp-config.phpファイルなどの重要な構成データが含まれている場合があります。

次のシナリオを考えてみましょう—WordPress管理者はwp-config.phpに変更を加える必要があります。 ベストプラクティスに従い、ファイルのコピーをWebサーバー以外の場所に保持する代わりに、ライブwp-config.phpのコピーを作成し、バックアップにwp-config.php.bakという名前を付けます。 ここで、システム管理者がこのファイルを削除するのを忘れたと仮定します。これは、私たちが思っているよりも頻繁に発生します。

攻撃者は、 http://www.example.com/wp-config.php.bakを要求するだけでファイルを読み取ることができるようになりました。 拡張子が.phpではなくなったため、攻撃者はファイルを読み取ることができます。 したがって、PHPエンジンはそれを無視し、Webサーバーはそれをテキストファイルとして提供します。 これで、攻撃者はWordPressデータベースの資格情報、シークレットトークン、およびそのファイルに保存したその他の機密性の高い構成情報を知ることができます。

一時ファイル

バックアップファイルと同様に、間違った場所にある一時ファイルは、潜在的に機密性の高いデータを公開する可能性があります。 もう一度例としてwp-config.phpを取り上げます。 システム管理者がテキストエディタを使用してこのファイルを編集する必要があり、何らかの理由でプログラムが正常に終了しなかった場合、エディタが一時ファイルを残す可能性が高くなります。 たとえば、人気のあるコマンドラインエディタVimは、拡張子が* .ext〜のバックアップファイルを* .ext.swpファイルと一緒に保存します。 swpファイルはロックファイルとして使用されます。 また、すべての元に戻す/やり直しの履歴、およびVimが必要とするその他の内部情報も含まれています。

したがって、クラッシュが発生した場合、Vimはwp-config.php.ext〜ファイルを残します。このファイルは、*。phpファイル拡張子で終わっていないため、バックアップファイルのようにプレーンテキストでアクセスできます。 この種の一時ファイルはVim専用ではありません— Emacs(別の人気のあるコマンドラインテキストエディター)も同様の一時ファイルを保存し、他の無数のツールも同様に保存します。

注意— Webサイトのファイル整合性監視プラグインを使用して、一時ファイルやバックアップファイルを含むすべてのファイル変更についてアラートを受け取ります。 このテクノロジーに精通していない場合は、WordPressのファイル整合性監視の概要をお読みください。

公開されたMySQL

これまでのところ、システム管理者が行う可能性のある最も深刻な設定ミスの1つは、WordPressMySQLデータベースサーバーをインターネットに公開したままにすることです。 なぜこれがおかしなことに聞こえるかもしれませんが、おそらくあなたが思っている以上に起こります。 以下は、インターネットに接続されたデバイスの検索エンジンであるShodanのスクリーンショットです。

MySQLサーバー用のShodanでの結果

もちろん、MySQLがインターネット上で公開されているからといって、誰かがMySQLに接続してWordPressデータベースにアクセスできるとは限りません。 ただし、特にwp-config.phpのバックアップを介してパスワードが漏洩したり、弱いパスワードを推測したりするなど、他の攻撃と組み合わせて使用​​すると、災害シナリオにつながる可能性があります。

WordPressデータベースを制御できるようになると、WordPressのインストールはゲームオーバーになります。 攻撃者が行う必要があるのは、管理者パスワードをリセットすることだけです。 次に、悪意のあるプラグインを意図的にインストールすることで、WordPress Webサイト、さらにはそれが実行されているサーバーをほぼ完全に制御します。

不要なサービスの実行

もう1つの一般的なWebサーバーの設定ミスの問題は、デフォルトの設定です。 多くの管理者はデフォルトの構成を実行し、不要なサービスを無効にしません。 ほとんどの場合、デフォルトのインストールでは多くの不要なサービスが実行されており、そのほとんどは、セキュリティで保護されていない場合、Webサーバーを攻撃にさらします。

WordPress侵入テスターとセキュリティ専門家のための侵入テストツール

ペネトレーションテスターは、さまざまなツールを使用して作業と技術を自動化します。 自動化は、セキュリティ評価/侵入テストの実行にかかる時間を短縮するのに役立ちます。

Kali Linux

使用するツールは大きく異なります。 それは個人的な好みと目前の問題に依存します。 ただし、開始するのに適した場所は、さまざまなツールを自由に使用できるようにして、プレインストールすることです。

Kali Linux

以前はBackTrackとして知られていたKaliLinuxは、オープンソースの侵入テストに最適なLinuxディストリビューションです。 Kali Linuxには、事前にインストールおよび構成されたツールのホスト全体がバンドルされています。 すぐに使い始めたい初心者ユーザーと経験豊富なペネトレーションテスターの両方に役立ちます。 Kali Linuxは無料で利用でき、仮想マシンで実行できます。

Nmap

この無料のスキャナーは、あらゆるペネトレーションテストの武器の中で最も基本的で用途の広いスキャナーの1つです。 Nmapは主にポートスキャナーです。 ただし、NSEスクリプト言語を介して、あらゆる種類のスキャンを実行するように拡張できます。

NMAPスキャナー

WPScan

WPScan(この記事の前半で説明)は、オープンソースのWordPressセキュリティスキャナーです。 WordPressコア内、およびWordPressプラグインとテーマ内の両方で、既知のWordPressの脆弱性をスキャンします。

WPScanスキャナー

WPScanは、一連のブラックボックステストを実行できます。 つまり、ソースコードにアクセスできません。 その結果、WPScanは、問題の少ないWordPressの脆弱性をすばやく正確に見つけるのに最適です。

OWASP ZAP

OWASP Zed Attack Proxy(ZAP)は、無料のオープンソースWebアプリケーション侵入テストツールです。 Open Web Application Security Project(OWASP)は、このツールを維持しています。 OWASP ZAPは、クロスサイトスクリプティング(XSS)やSQLインジェクション(SQLi)などのさまざまな脆弱性についてWebアプリケーションをテストするために特別に設計されています。 ZAPは、そのコアにプロキシがあります。 ペネトレーションテストのブラウザとWebサイトの間に配置され、2つの間で送信されたリクエストを傍受して検査します。

OWASPZAPスキャナー

ZAPは、プロキシとして機能するだけでなく、さまざまな脆弱性を自動的にテストすることもでき、さまざまな入力をファジー化することもできます。 ファジングは、セキュリティの脆弱性を明らかにすることを目的として、無効または予期しない入力がアプリケーションに提供されるセキュリティテスト手法です。

WordPressの侵入テスト–Webサイトのセキュリティ体制を評価する

WordPressのセキュリティは1回限りの修正ではありません。 これは、強化>監視>テスト>改善の4つの原則に基づく継続的なプロセスです。 ペネトレーションテストでは、テストの原則に取り組みます。 つまり、Webサイトのセキュリティ体制を確認します。 次に、調査結果に基づいてセットアップを改善するために必要な対策を講じることができます。

したがって、頻繁なWordPress Webサイト侵入テストは、セキュリティプログラムの一部である必要があります。 ペネトレーションテストを行う頻度を判断します。 Webサイトを頻繁に変更する場合は、頻繁にテストを行う必要があります。 ただし、Webサイトがめったに更新されない場合は、四半期ごとの侵入テストでうまくいきます。