WordPressに不正アクセスされた後、管理画面にログインできない時は「パスワード再発行」だけで粘らないことが重要です。管理者権限が奪われている、wp_usersが書き換えられている、プラグインやuploads内にバックドアが残っている可能性があります。
WordPress復旧やセキュリティ対応を実務で行っている、よこやま良平です。ログイン不能の相談では、画面の症状より先にDBの管理者確認と改ざんファイルの有無を切り分けています。
- 不正アクセス後にログインできない時の初動がわかる
- phpMyAdmin等で確認すべきwp_users・wp_usermetaの見方がわかる
- wp-content/pluginsやuploads内PHPなど駆除対象の考え方がわかる
- 復旧後に再侵入を防ぐ最低限の対策がわかる
この記事では、すでに「不正アクセスの可能性が高い」「ログインできず通常操作ができない」方向けに、実務で使う順番で解説します。サーバー操作やDB操作を含むため、不安がある場合は作業前にバックアップを取得してください。
結論からいうと、ログイン不能時の復旧は「入口を止める」「DB上の管理者を確認する」「改ざんファイルを駆除する」「認証情報を総入れ替えする」の順番が安全です。
目次
WordPress不正アクセスでログインできない時の初動
最初の結論は、復旧作業より先に被害拡大を止めることです。攻撃者がまだログインできる状態でパスワードだけ変えても、別の管理者やバックドアから戻られることがあります。
まずサイトを触る人と時間を決める
複数人が同時に作業すると、正常ファイルと改ざんファイルの判断がぶれます。サーバーパネル、FTP、WordPress、DBを触る担当を一人に絞り、作業ログを時系列で残してください。
- 現在のサイト全体とDBのバックアップを取得する
- FTP・サーバーパネル・WordPress管理者のパスワード変更を予定する
- 不審な管理者アカウントを見つけても即削除せず、まず証拠として記録する
- 可能ならメンテナンス表示にして訪問者被害を止める
バックアップは復旧用ではなく比較用にも使う
感染後のバックアップは「安全な戻し先」ではありません。しかし、いつ増えたファイルなのか、どの管理者が追加されたのかを比較する材料になります。現場ではこの比較が駆除漏れ防止に役立ちます。
find wp-content/uploads -name "*.php" -o -name "*.phtml"
find wp-content/plugins -type f -mtime -14wp_usersとwp_usermetaで管理者権限を確認する
ログインできない原因が不正アクセスなら、DB上の管理者情報を確認するのが近道です。WordPressの管理者権限はwp_usersだけでなく、wp_usermetaのcapabilitiesにも保存されています。
wp_usersで不審なユーザーを探す
phpMyAdminなどでwp_usersを開き、見覚えのないuser_login、普段使わないメールアドレス、登録日時が被害時刻に近いユーザーを確認します。接頭辞がwp_ではない環境もあるため、実際のテーブル名に読み替えてください。
SELECT ID,user_login,user_email,user_registered FROM wp_users ORDER BY ID DESC;wp_usermetaでadministrator権限を確認する
攻撃者は一般ユーザーに見える名前で登録し、wp_capabilitiesにadministratorを付けていることがあります。ユーザー一覧だけで判断せず、権限メタを必ず確認します。
SELECT user_id,meta_key,meta_value FROM wp_usermeta WHERE meta_key LIKE "%capabilities%";- 不審ユーザーを削除する前にIDとメールアドレスを控える
- 自分の管理者権限まで消さない
- DB接頭辞が違う場合はwp_を実環境に合わせる
- SQLが不安なら専門家に任せる
改ざんファイルとバックドアを駆除する
DBの管理者を直しても、バックドアが残っていれば再びログイン不能になります。特にwp-content/plugins、themes、uploads内PHP、.htaccess、wp-config.phpは優先して確認します。
uploads内PHPは原則疑う
通常、画像アップロード先であるuploadsにPHPファイルは不要です。年月フォルダの奥にランダムな名前のPHPがある場合、マルウェアやバックドアの可能性があります。削除前にファイル名と更新日時を記録しましょう。
# uploads配下でPHP実行を止める例
<FilesMatch "\.(php|phtml|phar)$">
Require all denied
</FilesMatch>wp-config.phpと.htaccessの追記を確認する
wp-config.phpに見慣れないinclude、base64_decode、外部URLの読み込みがあれば要注意です。.htaccessに不自然なリダイレクトやRewriteRuleが追加され、検索流入だけ別サイトへ飛ばすケースもあります。
// 注意して確認する文字列例
base64_decode
eval(
gzinflate
assert(
include_once / require_once の不審なパス- wp-content/plugins内の見覚えのないフォルダ
- wp-content/themes内のfunctions.php末尾
- wp-content/uploads内のPHP・phtml・phar
- ドキュメントルート直下の.htaccess
- error_logに残る不審なPOSTやPHP Fatal error
復旧後に再侵入を防ぐ仕上げ
復旧の最後は、ログインできる状態に戻すことではなく、再侵入経路を閉じることです。攻撃者が知っている可能性がある認証情報はすべて変更します。
パスワードと秘密鍵を総入れ替えする
WordPress管理者、FTP/SFTP、サーバーパネル、DBユーザー、メールアドレスのパスワードを変更します。wp-config.phpの認証用ユニークキーも変更し、残っているログインセッションを無効化します。
define('AUTH_KEY', '新しいランダム文字列');
define('SECURE_AUTH_KEY', '新しいランダム文字列');
define('LOGGED_IN_KEY', '新しいランダム文字列');
define('NONCE_KEY', '新しいランダム文字列');ログインURL変更とuploads PHP禁止を入れる
再侵入対策として、不正ログインブロック、ログインURL変更、XMLRPC遮断、ユーザー名漏えい防御、uploadsフォルダPHP動作禁止を設定します。クイックレスキュー365はスキャン機能ではなく、こうした入口対策に向いています。
- 管理者ユーザーが正しい状態に戻っている
- 不審なPHPファイルとリダイレクト記述が消えている
- error_logに同じ攻撃が継続していない
- 全認証情報を変更済み
- 再発防止設定を入れた
よくある質問
完了ではありません。DB上の管理者を戻しても、pluginsやuploadsにバックドアが残っていると再発します。DB確認とファイル駆除をセットで行ってください。
多くのサイトでは不要ですが、特殊なプラグインが置くケースもゼロではありません。削除前にバックアップし、更新日時と中身を確認してから判断します。
DBやwp-config.phpを誤ると復旧が難しくなるため、現状バックアップだけ取得して専門家へ相談するのが安全です。
WordPress不正アクセスでログインできない時の復旧まとめ
不正アクセス後のログイン不能は、単なるパスワード忘れとは別物です。DBの管理者権限、wp_usermeta、改ざんファイル、.htaccess、uploads内PHPまで確認して初めて安全な復旧に近づきます。
- 最初に被害拡大を止めてバックアップを取る
- wp_usersとwp_usermetaで管理者権限を確認する
- plugins・uploads・.htaccess・wp-config.phpを確認する
- 復旧後は認証情報を総入れ替えする
- 入口対策まで入れて再発を防ぐ
WordPressの不正アクセス・乗っ取りが自分で直せない時は

ワードプレスのWordPressエラートラブル解決をしたいなら
クイックレスキューが解決します。
・WordPressが真っ白画面
・WordPressがログインできない
・ホームページのマルウェアや乗っ取り
・サイトの表示くずれ
・エラーが表示されている
これらでお悩みなら最短30分ですぐに解決します!
いまなら期間限定で
・万一改善されない場合は全額返金保証で安心!
・30日間動作保証で安心!
・初期費・調査料 0円で安心!



