WordPressの乗っ取りは、ログイン名を調べ、XML-RPCやログイン画面にパスワードを総当たりし、入れたら改ざんや転送を仕込む、という順番で来ます。当社が最近請け負った中小企業のコーポレートサイトには、引き継いだ翌日の深夜に管理者あての総当たりが約90回、約1か月後には問い合わせフォームに攻撃の文字列が届き、通知メールが50件以上たまりました。
この記事では2つの出来事の記録と、「乗っ取られた跡はない」と判断するまでに見た13か所を、同じ手順で確かめられる形で公開します。
この記事でわかること
- 実際に届いた攻撃の記録: 総当たり約90回(全部失敗)と、攻撃メール50件以上の正体を時刻と経路つきで示します。
- 乗っ取りが来る順番: 名前を知られる→入口を探される→入られる→居座られる、の4段階と止め方です。
- 乗っ取られたか確かめる点検表: 管理画面とGoogleのツールで見られる13か所と、跡が見つかったときの初動です。
WordPressの乗っ取りとは、管理者として入られてサイトを動かされること
WordPressの乗っ取りとは、管理者の権限を奪われ、改ざん・転送・スパム送信などにサイトを使われることです。
入り方は、ログイン名とパスワードを当てて正面から入る方法と、プラグインなどの脆弱性(プログラムの欠陥)を突く方法の2通りです。「ホームページの乗っ取り」も、WordPressのサイトなら中身は同じです。W3Techsによると、WordPressは全ウェブサイトの40.2%で使われています(2026年10月3日時点)。
乗っ取りと改ざんの違い
乗っ取りは権限を奪われた状態、改ざんはその権限でページの中身を書き換えられた結果を指します。
乗っ取られても、見た目がすぐ変わるとは限りません。JPCERT/CCの2026年4〜6月の四半期レポートには、Googlebotにだけ海外のカジノを見せるSEOポイズニングの事例が載っています。同じ期間に報告されたWebサイトの改ざんは181件で、前の四半期の90件から101%増えました。チャットツールの乗っ取りはChatworkとサーバーの乗っ取り被害の記事で扱っています。
中小企業の1割が不正アクセスを受けている
IPAの調査では、中小企業4,191社のうち419社(10.0%)が、2023年度に不正アクセスを受けたと答えています。
その419社の手口(複数回答)は、脆弱性48.0%、IDとパスワードをだまし取られた36.8%で、25.5%は「手口はわからない」でした。警察庁などの公表資料では、2025年の不正アクセスの認知は7,190件です。検挙された「他人のIDとパスワードを使う」型399件のうち最多の手口は「パスワードの設定・管理の甘さにつけ込んで入手」84件(21.1%)でしたが、前年から90件減っています。
実例:問い合わせフォームに攻撃メールが50件以上届いた
2026年10月2日の夕方、約10分のあいだに攻撃の文字列が自動で送られ、通知メールが50件以上届きました。
対象は当社が最近請け負った中小企業のコーポレートサイトです(自社検証)。下の表は、ログイン記録と通知メールから出来事を時系列に並べたものです。
| 日時(2026年) | 何が来たか | 経路 | 結果 |
|---|---|---|---|
| 9月5日 0:02〜0:18 | 管理者のログイン名あての総当たり 約90回 | XML-RPC | 全部失敗 |
| 9月15日 夜 | 別の名前でのログイン試行 1回 | XML-RPC | 失敗 |
| 10月2日 18:20 | ユーザー名が空欄の呼び出し 2回 | XML-RPC | 記録上は「成功」。ログインではない |
| 10月2日 18:26〜18:36ごろ | 攻撃の文字列を入れた問い合わせの自動送信 | 問い合わせフォーム | 通知メール50件以上。中身の変化なし |
目立ったのは10月の攻撃メールですが、乗っ取りを狙っていたのは9月の静かな総当たりのほうでした。怖く見えたほうは診断と見られ、静かなほうが本物だった、というのがこの実例の要点です(アイダイム分析)。
問い合わせフォームに届いた50件は、攻撃の文字列を試す自動送信だった
50件以上の問い合わせは人が書いたものではなく、入力欄ごとに攻撃の文字列を試す自動送信でした。
中身は、データベースを操作しようとする文字列や画面にスクリプトを埋め込もうとする文字列で、IPAが「安全なウェブサイトの作り方」で解説している攻撃を試す型でした。メールアドレス欄は例示用のドメイン(example.com)です。50件は、フォームが担当者へ送った通知メールとして届いた件数です。WAFなどで遮断された数ではありません。この日のサーバーのアクセスログはまだ見ていないため、フォーム以外へのアクセスは分かっていません。
文字列が届いたことと、侵入されたことは別です。診断ツールZAPの公式ドキュメントは、アクティブスキャン(実際に攻撃を仕掛けて弱点を探す検査)を対象への攻撃そのものと説明し、自分が所有しないサイトに使ってはいけないと書いています。診断でも攻撃でも同じ形の文字列が届くので、届いた中身ではなく、そのあとサイトに変化があったかで判断します。
ログイン記録の「成功」2件はログインではなく、診断スキャナーと見られる
10月2日18:20の「成功」2件は、ユーザー名が空欄のXML-RPCの呼び出しで、ログイン(認証)の成功ではありません。
このサイトはセキュリティ用のプラグインXO Securityでログインを記録しています。その記録に、ユーザー名が空欄の「成功」が2件ありました(IPアドレスは塗りつぶし)。

XO Security(3.11.0)とWordPress本体の公開ソースコードを読むと、WordPressはピンバック(他サイトからの言及を受け取る仕組み)のXML-RPC呼び出しを、ログインを確かめる前に記録の道具へ知らせています。記録の仕組み上、ログインを要らない呼び出しでも「成功」の行が書かれ、ユーザー名は空欄になります。本当にログインが通った行には、ユーザー名が入ります。HTTPの応答コードは、アクセスログを見ていないため確かめていません。
アクセス元が名乗るユーザーエージェントは「GMO-CyberSecurity-Platform-Scanner/1.0」で、IPアドレスの持ち主も同じグループの会社でした。GMOサイバーセキュリティ byイエラエの「ネットde診断 for Webアプリ」は、疑似攻撃を含む診断を行い、URLを登録するだけで使えると公式に説明しています。このユーザーエージェントの公式な記載は見つかっていないため、当社は「診断サービスのスキャナーと見られる」と判断しています(アイダイム分析)。誰が流した診断かは、2026年10月3日時点で確認中です。
本当の乗っ取り未遂は1か月前に来ていた
本物の未遂は9月5日の深夜で、XML-RPC経由で管理者名あてに約90回パスワードが試され、全部失敗しました。
当社が引き継いで初めてログインしたのは9月4日の夕方です。その約6時間後の0時2分から18分までの16分間、データセンターの貸しサーバーから、管理者のログイン名を指定した試行が並びました(自社検証)。通知は何も届いておらず、記録を開かなければ気づけない攻撃でした。

16分で約90回、約11秒おきの総当たり
16分間に約90回、平均すると約11秒に1回のペースで、同じログイン名に別々のパスワードが送られていました。
経路はすべてXML-RPCで、ログイン画面は使われていません。WordPress公式の文書「Brute Force Attacks」は、xmlrpc.phpが総当たりの標的になりやすく、特にsystem.multicallというメソッドが狙われると書いています。Sucuriの2015年の解説では、system.multicallを使うと1回の通信に数百のパスワードを詰め込めます。
攻撃者はログイン名を知っていて、ログイン試行回数の制限で止まった
攻撃者は最初から正しいログイン名を使っており、ログイン試行回数の制限が働いて約90回で止まりました。
試されたのは「admin」のような推測しやすい名前ではなく、実際のログイン名でした。当時は著者ページのURLに入る名前がログイン名と同じだったため、外から拾われた可能性があります。どの経路で知られたかは、ログからは分かりません。名前を知られた時点で、残る守りはパスワードと回数制限の2つだけになっていました(アイダイム分析)。
乗っ取りはこの順番でやってくる
乗っ取りは、名前を知る→入口を探す→パスワードか脆弱性で入る→居座って改ざんや転送を仕込む、の順に進みます。
手前で止めるほど、被害も手間も小さくなります。
段階ごとの手口と止め方は次の表のとおりです。
| 段階 | 主な手口 | 止め方 |
|---|---|---|
| ① 名前を知る | 著者ページ・REST API・oEmbedから名前を拾う | ログイン名と表示名を分け、3つの経路を塞ぐ |
| ② 入口を探す | xmlrpc.php・ログイン画面・古いプラグインを探す | 使っていないXML-RPCとプラグインを閉じる・消す |
| ③ 入る | 総当たり、盗んだパスワード、脆弱性の悪用 | 長いパスワード、試行回数の制限、2要素認証、更新 |
| ④ 居座る | 管理者・アプリケーションパスワード・転送の追加 | 定期点検、ログイン通知、Search Consoleの警告 |
①と②は、プラグインの設定や不要なものの削除だけで閉じられる段階です。今回請け負ったサイトでは、その両方が開いていました。
ログイン名は著者ページ・REST API・oEmbedから知られる
WordPressには、設定を変えないと外からユーザーの名前が分かる経路が3つあります。
1つ目は著者ページです。「/?author=1」のように番号でアクセスすると、公開済みの投稿がある利用者なら著者ページへ転送されます。URLに入るのはuser_nicename(URL用の名前)ですが、既定ではログイン名から作られます。2つ目はREST APIのユーザー一覧で、ログインしなくてもスラッグや表示名が返ります。3つ目はoEmbed(記事を他サイトに埋め込む仕組み)の応答で、author_urlに著者ページのURLが入ります。今回のサイトは、9月下旬にoEmbed以外を隠していました。
XML-RPCへの総当たりと、プラグインの脆弱性で入られる
入り方はパスワードの総当たりとプラグインの脆弱性の2つです。XML-RPCは総当たりの入口として狙われます。
XML-RPCは、外部のアプリからWordPressを操作するための古い仕組みです。ラックは2025年8月、XML-RPCから簡単なパスワードで投稿を試みる攻撃を観測したと注意喚起しています。Patchstackのレポート「State of WordPress Security in 2026」によると、2025年に見つかった新しい脆弱性は11,334件で、91%がプラグイン、9%がテーマでした。プラグインの選び方と更新の考え方は、WordPressプラグインのセキュリティの記事で解説しています。
入ったあとは居座って、改ざんや転送を仕込む
入った攻撃者は、管理者を増やしたり転送を仕込んだりして、パスワードを変えられても戻れるように居座ります。
居座り方には、見えない管理者やアプリケーションパスワードの追加、他サイトへの転送、検索エンジンにだけ別のページを見せる仕掛けがあります。検索結果に自社と関係のない語句が出るようになったら疑ってください。スパム対策と順位の関係は、2026年3月のスパムアップデートの記事にまとめています。
乗っ取られたか確かめる点検表
当社は13か所を見て「乗っ取られた跡はない」と判断しました。どれも管理画面かGoogleのツールで見られます。
点検は2026年10月3日、管理画面とREST APIを読むだけで行い、設定は変えていません(自社検証)。FTPでのファイルの総点検とサーバーのアクセスログは見ていないので、言えるのは「跡は見つからなかった」までです。
| 見た場所 | 見たこと | 異常の例 |
|---|---|---|
| ログインの記録 | 自分以外の成功ログイン | 知らないIPアドレスからの成功 |
| ユーザー | 管理者の人数と登録日 | 覚えのない管理者 |
| アプリケーションパスワード | 本数と最後に使われた場所 | 覚えのない名前のパスワード |
| プラグイン・テーマ・本体 | 入っているものと版 | 知らないプラグイン、古い版 |
| コードを足すプラグイン | 最近の追加と危ない関数 | 外へ通信するコード |
| メディア | 最近入ったファイルの種類 | 画像の置き場のphpファイル |
| フォームの宛先 | 送信先と差出人 | 知らない宛先の追加 |
| 転送の設定 | 転送元と転送先 | 外部サイトへの転送 |
| ページと投稿の本文 | 外部リンク・script・iframe | 見えない位置の外部リンク |
| 見る人ごとの中身 | 通常・Googlebot・検索経由で比べる | Googlebotにだけ別ページ |
| サイトマップ | 載っているURL | 作った覚えのないURL |
| バックアップの置き場 | 外から見えないか | 誰でも落とせる |
| Googleの判定 | Search Consoleとセーフブラウジング | 警告や「安全ではない」表示 |
13か所とも異常はありませんでした。上の4行で異常が出たら、その時点で「跡が見つかったら最初にやること」へ移ります。外部に頼む場合の診断の中身は、Webサイト診断の記事で整理しています。
ログイン記録・ユーザー・アプリケーションパスワードを見る
最初に、自分以外の成功ログイン、覚えのない管理者、覚えのないアプリケーションパスワードがないかを見ます。
今回のサイトでは、ログイン記録100件に当社以外の成功ログインはなく、管理者は1人、アプリケーションパスワードも当社の1本だけでした。アプリケーションパスワードはプログラムからの接続用で、公式の説明では1本ずつ取り消せます。ユーザーの編集画面の下にある一覧で、本数と最後に使われた日時を確かめてください。
プラグイン・本文・転送・見る人ごとの中身を見る
次に、プラグインから本文、転送、見る人ごとの中身まで、見覚えのない変化がないかを順に確かめます。
プラグイン7本はすべて把握しているもので、本体も最新でした。固定ページ23本と投稿8本の本文に、知らない外部リンクやscriptはありませんでした。公開ページは、普通のブラウザ、Googlebot、Google検索から来たスマホの3通りで取得し、同じ中身が返ることを確かめています。見る人で中身を変える仕掛け(クローキング)は持ち主のブラウザでは見えないので、この比較が欠かせません。
Search Consoleとセーフブラウジングで、Googleの判定を見る
Search Consoleの「セキュリティの問題」「手動による対策」とセーフブラウジングで、Googleの判定を見ます。
今回は3つとも、問題や安全ではないコンテンツは見つからないという表示でした。Googleが改ざんを検出したときの知らせは、Search Consoleに登録していないと受け取れません。
跡が見つかったら最初にやること
跡が見つかったら、記録を残し、全員のパスワードを変え、ログイン中の人を締め出してから、バックアップを取ります。
WordPress.orgのFAQ「My site was hacked」は、何をいつ見たかを記録する、全ユーザーのパスワードをリセットする、wp-config.phpの秘密鍵を作り直してログイン中の人を締め出す、掃除の前にもう一度バックアップを取る、を挙げています。変えるのはWordPressだけでなく、FTP・サーバーの管理画面・データベースのパスワードもです。掃除が終わったら更新し、パスワードをもう一度変えます。
点検で見つかった、引き継いだ時点から残っていた穴
乗っ取られた跡はなかった一方で、XML-RPCが開いたまま、2要素認証とログイン通知がオフという穴が残っていました。
もう1つ、oEmbedの応答にログイン名が出たままでした。どれも当社が請け負った時点で残っていた設定で、プラグインの設定画面から閉じられます。
使っていないXML-RPCは閉じる
使っていなかったので、XO Securityの「XML-RPCの無効化」と「ピンバックの無効化」の2つをオンにしました。
WordPress公式の「Brute Force Attacks」は、XML-RPCを使わないなら無効に、Jetpackやスマホアプリで使うなら制限と回数制限をかけるよう勧めています。XO Securityの設定画面は、「XML-RPCの無効化」だけでは認証が止まるだけで、ピンバックは動き続けると説明しています。片方だけでは半分開いたままです。2つをオンにしたあと、xmlrpc.phpへの送信が403で断られ、TOPと問い合わせページは普段どおり表示されることを確かめました。閉じる前に、外部連携でXML-RPCを使っていないかを確かめてください。
ログイン名の漏れ口を塞ぎ、2要素認証とログイン通知をオンにする
oEmbedの応答からログイン名を消し、パスワードが漏れても気づける2要素認証とログイン通知を有効にします。
oEmbedの名前は、XO Securityの「oEmbed ユーザー名の削除」で消えたことを確かめました。WordPress公式の「Hardening WordPress」は、強いパスワードに加えて2段階の認証を勧めています。ログイン通知は、ログインのたびにメールで知らせる機能です。この2つは管理者の運用に関わるため、ログインする人と相談してからオンにしてください。
問い合わせフォームにはreCAPTCHA v3を入れる
攻撃の文字列が届いた問い合わせフォームには、翌日の10月3日に、機械からの送信を断るreCAPTCHA v3を入れました。
reCAPTCHA v3は、画面に「私はロボットではありません」を出さずに送信ごとの人らしさを点数にし、機械らしい送信を断る仕組みです。Contact Form 7は5.1以降でreCAPTCHA v3に対応しています。費用は、Googleの料金表で1か月1万件の判定まで無料なので、中小企業のフォームなら無料の範囲に収まります。
ただし、止められるのはフォームへの自動送信だけです。XML-RPCやログイン画面への総当たりは別の入口なので、上の2つのスイッチとログイン試行回数の制限で止めます。また、入れてから日が浅く、同じような大量送信を実際に止めた記録はまだありません。効き目は、届くメールの数とログで追って確かめます。
更新とサーバー任せだけでは守り切れない
Patchstackによると、よく悪用された脆弱性は中央値5時間で悪用が始まります。更新待ちでは間に合わない場面があります。
脆弱性の46%は、公表された時点で修正版がなかった
Patchstackの集計では、2025年の脆弱性の46%は、公表された時点で開発者の修正版が出ていませんでした。
修正版がないあいだは、更新したくてもできません。5時間は、2025年に公開され悪用の約95%が集中した脆弱性について、攻撃量で重み付けした中央値です。月1回の更新作業では追いつけません。修正版が出るまでは、使っていないプラグインを消し、入口を閉じる、という①②の守りが効きます。
ホスティングの標準的な防御で止まった攻撃は26%
Patchstackが2025年に行った検証では、ホスティングなどの一般的な防御で止まった攻撃は26%でした。
悪用が知られた脆弱性に絞った1回目の検証では12%でした。ただしPatchstackは自社でWordPress向けの防御サービスを売る会社なので、その立場を踏まえて読む数字です。Wordfenceが2026年4〜6月に止めた総当たりは182億件で、これは同社が守る500万を超えるサイトでの数です。JPCERT/CCへの同期間の報告では、弱点を探るスキャンは2.0%にとどまり、89.3%はフィッシングサイトでした。
WordPressの乗っ取りでよくある質問
本文で扱いきれなかった疑問に答えます。
Q. 問い合わせフォームに変な文字列のメールが大量に来たら、乗っ取られたということですか?
A. それだけでは言えません。診断のスキャナーでも同じ形の文字列が届きます。点検表の順にサイトの中身を確かめてください。なお、エックスサーバーとロリポップは2025年3月に、フォームの自動返信を悪用したスパムを注意喚起しています。
Q. ログイン記録の「成功」は、入られたということですか?
A. ユーザー名の欄を見てください。今回の2件は空欄で、記録の仕組み上、ログインを要らない呼び出しでも書かれる行でした。記録の書き方はプラグインごとに違うので、道具の説明も確かめてください。ユーザー名入りの成功に覚えのないIPアドレスや時刻があれば、初動に進んでください。
Q. XML-RPCを無効にすると、困ることはありますか?
A. XML-RPCを使う連携が止まります。Jetpackやスマホアプリで使う場合、WordPress公式は無効ではなく制限を勧めています。管理画面から更新するだけのサイトなら影響はありません。
Q. ログイン名は隠せますか?
A. ログイン名そのものは管理画面から変更できません。変えるなら新しい管理者を作り、古いユーザーを消します。名前を隠しても総当たりは来るので、長いパスワードと2要素認証を合わせて使ってください。
Q. 診断のスキャナーと本物の攻撃は、どう見分けますか?
A. ユーザーエージェントは名乗りにすぎず、決め手になりません。届いたあとにサイトの中身が変わっていないかを確かめるほうが確実です。
Q. Contact Form 7のスパム対策は、何を入れればいいですか?
A. 公式サイトはAkismetを中心に複数の対策の組み合わせを勧めています。画面に出ない認証はreCAPTCHA v3かCloudflare Turnstileで、公式は理由がなければTurnstileを推奨しています。
参考情報
根拠にした資料です(2026年10月4日時点で確認)。
- Brute Force Attacks|WordPress
- Hardening WordPress|WordPress
- Application Passwords|WordPress
- get_oembed_response_data()|WordPress
- class-wp-xmlrpc-server.php|WordPress
- XO Security|WordPress.org
- FAQ My site was hacked|WordPress.org
- XML-RPCの総当たりの解説|Sucuri(2015年)
- Active Scan|ZAP
- ネットde診断 for Webアプリ|GMOサイバーセキュリティ byイエラエ
- 安全なウェブサイトの作り方|IPA
- 中小企業の情報セキュリティ対策の実態調査(2024年度)|IPA
- 不正アクセス行為の発生状況(2026年3月)|警察庁
- 四半期レポート(2026年4〜6月)|JPCERT/CC
- WordPressの利用率|W3Techs
- State of WordPress Security in 2026|Patchstack
- Q2 2026 脅威レポート|Wordfence
- 注意喚起(2025年8月26日)|ラック
- お知らせ(2025年3月18日)|エックスサーバー
- お知らせ(2025年3月5日)|ロリポップ!
- Turnstile integration|Contact Form 7

