Kali linux + WPScanでデフォルト状態のWordPressを脆弱性診断した結果をまとめました。
はじめに
本記事で紹介する脆弱性診断を許可を得ずに他人や団体、インフラなどへ行った場合、犯罪となる可能性が有ります。
あくまでも、本記事の内容は学習用であるため、脆弱性診断は自身のシステムに対して、自己責任で実施してください。
デフォルトで起動したWordPressの脆弱性診断をWPSCANで行います。
なお、以下の記事でインストールして起動したWordPressが対象です。
WPScanの実行結果
$ wpscan --url 診断対象のアドレス
HTTPヘッダからWebサーバの種類、バージョンが特定
[+] Headers | Interesting Entry: Server: Apache/2.4.52 (Ubuntu) | Found By: Headers (Passive Detection) | Confidence: 100%
Webサーバの種類、Apacheのバージョンが特定されました。
特にWebサーバのバージョンがばれると、そのバージョンに存在する脆弱性から攻撃を受ける危険があります。
バージョンを見せないようにすることができます。詳細は以下ページで紹介しています。
xmlrpc.phpファイルが有効
[+] XML-RPC seems to be enabled: 診断対象のアドレス/xmlrpc.php | Found By: Direct Access (Aggressive Detection) | Confidence: 100% | References: | - http://codex.wordpress.org/XML-RPC_Pingback_API | - https://www.rapid7.com/db/modules/auxiliary/scanner/http/wordpress_ghost_scanner/ | - https://www.rapid7.com/db/modules/auxiliary/dos/http/wordpress_xmlrpc_dos/ | - https://www.rapid7.com/db/modules/auxiliary/scanner/http/wordpress_xmlrpc_login/ | - https://www.rapid7.com/db/modules/auxiliary/scanner/http/wordpress_pingback_access/
xmlrpc.phpファイルが有効になっています。
xmlrpc.phpファイルは、WordPressのシステムと遠隔に通信する機能をもち、「スマホアプリからのリモート投稿」「ピンバック」「トラックバック」に使用されます。
しかしながら、DoS攻撃に悪用されてしまう可能性があるため、リモート投稿等することがなければ、無効にします。
やり方は以下のページで解説しています。
readme.htmlの削除
[+] WordPress readme found: 診断対象のアドレス/readme.html | Found By: Direct Access (Aggressive Detection) | Confidence: 100%
デフォルト状態のWordPressには、インストールしたディレクトリにreadme.htmlファイルがあり、それにアクセス可能になっています。
readme.htmlには、ログイン画面のURLなどが記載されているため、削除するのが望ましいです。
Uploadディレクトリがアクセス可能になっている
[+] Upload directory has listing enabled: 診断対象のアドレス/wp-content/uploads/ | Found By: Direct Access (Aggressive Detection) | Confidence: 100%
上記メッセージは、Uploadディレクトリにアクセス可能になってることを示します。
wp-cron.phpファイルが有効になっている
[+] The external WP-Cron seems to be enabled: 診断対象のアドレス/wp-cron.php | Found By: Direct Access (Aggressive Detection) | Confidence: 60% | References: | - https://www.iplocation.net/defend-wordpress-from-ddos | - https://github.com/wpscanteam/wpscan/issues/1299
上記メッセージは、wp-cron.phpファイルが有効になっていることを示します。
wp-cron.phpは、WordPressで「予約投稿」「バックアップ処理」「自動更新」「XML-Sitemap」などに使用されます。
通常はサイトへのアクセスがあるたびに実行されるため、アクセスが多いサイトの場合は無駄に負荷が増えてパフォーマンスが低下する可能性があります。
また、DDoS攻撃に悪用される危険性があるため、wp-cron.phpを無効化し、Webサーバー側のcronでwp-cron.phpを一定時間毎にだけ実行するようにするのがおすすめです。
WordPressのバージョンがバレる
[+] WordPress version 6.4.2 identified (Latest, released on 2023-12-06). | Found By: Emoji Settings (Passive Detection) | - 診断対象のアドレス/, Match: 'wp-includes\/js\/wp-emoji-release.min.js?ver=6.4.2' | Confirmed By: Meta Generator (Passive Detection) | - 診断対象のアドレス/, Match: 'WordPress 6.4.2'
→ WordPressのバージョンが6.4.2(診断時は最新版)
使用しているテーマ
[i] The main theme could not be detected.
デフォルト状態だと、使用されているテーマが不明という結果でした。
使用しているプラグイン
[+] Enumerating All Plugins (via Passive Methods) [i] No plugins Found.
使用しているプラグインを一覧表示します。
デフォルト状態だとプラグインは何もインストールされえていないため、何もなしという結果になりました。
Configのバックアップ
[+] Enumerating Config Backups (via Passive and Aggressive Methods) Checking Config Backups - Time: 00:00:00 <=> (137 / 137) 100.00% Time: 00:00:00 [i] No Config Backups Found. [!] No WPScan API Token given, as a result vulnerability data has not been output. [!] You can get a free API token with 25 daily requests by registering at https://wpscan.com/register
Configのバックアップは無いという結果でした。
コメント