目次
マルウェアの概要
本レポートでは、WordPress サイト内で検出された twMog.php に含まれる難読化された PHP コードを解析し、マルウェアの特徴・危険性・復旧方法をまとめています。本ファイルは典型的な 多層難読化型バックドア の構造を持ち、攻撃者が任意コードを実行できる危険性を確認しました。
特徴
- base64・gzip・str_rot13 など複数の難読化処理が重ねられている
- ファイル内で eval() を使用し、外部から受け取ったコードを実行可能
- WordPress のコアフォルダ以外(任意のパス)に設置され、検知を回避
- 設置されると、追加のマルウェアを次々にアップロード可能
- 攻撃者が認証無しで操作できる危険なバックドア型
無毒化したコードの一部をサンプルで表記
以下は危険な挙動(eval 等)を除去し、コメント化したうえで可読化したサンプルです。
<?php
// デコード処理(無毒化済みサンプル)
$enc = 'PD9waHAgZXZhbCgiPz4iLmJhc2U2NF9kZWNvZGUoIkpYYzVi...");
// 本来は下記のように eval される
// eval(base64_decode($enc));
// → 外部から送られた任意コードを実行する危険動作
?>
実際にはこの後に複数段階の復号処理が続き、最終的に リモートシェル を提供するコードが展開されていました。
感染ファイルの完全可読化ログ
以下は難読化を解除した全体構造の説明(安全化済み)です。
【構造】
- base64文字列を復号
- gzinflate / gzuncompress を適用
- str_rot13 による文字変換
- 終端で eval に渡す
【展開後の機能(危険部分はコメント化)】
<?php
// 攻撃者のパラメータを取得
$cmd = $_REQUEST['cmd'] ?? null;
// 本来は OSコマンドを実行
// system($cmd);
// ファイルアップロード機能
// move_uploaded_file($_FILES['file']['tmp_name'], $targetPath);
// PHPコード実行バックドア
// eval($_POST['payload']);
?>
実質的には「何でもできる」完全なリモート操作バックドアです。
危険性
- 外部からPHPコードを実行できるため、完全なサイト乗っ取りが可能
- WordPress のユーザー認証を無視して侵入可能
- シェルを通じて追加マルウェア(SEOスパム・自動リダイレクト・偽決済ページ)を設置可能
- Google広告のアカウント停止につながる
- Cloudflare やWAFをすり抜ける場合がある
- 放置すると 無限感染ループ が発生することもある
実際の感染事例
/wp-content/uploads/2023/xx/などのアップロードフォルダに設置- WordPressの更新画面が改ざんされ、勝手にログアウトが発生
- Google で「不正使用されているサイト」ポリシー違反発生
- 管理画面にログインできなくなる事例も複数
駆除と復旧の方法
- 該当ファイルの削除(twMog.php)
wp-content/uploads内の未知のPHPファイルを全削除- テーマ・プラグイン内の挿入コード確認
- WordPress コアファイルの再展開(公式から上書き)
- データベース内の不審な
wp_options・wp_postsメタを確認 - APIキー(Stripe / Google Maps / SMTP)の再発行
- サーバーログを解析して侵入経路を特定
再発防止のセキュリティ対策
- WordPress・プラグインの最新化
- 不要なプラグインを削除
- WAF(Cloudflare / mod_security)を強化
- ファイルアップロードをPHP不可に設定
wp-content/uploadsに.htaccessを設置し実行禁止- ログイン試行制限(Wordfence / AIOS)
- 定期バックアップ(Offsite)
まとめ:早期対応がSEOと信頼回復のカギ
本マルウェアは典型的なバックドア型で、外部から任意コード実行が可能という最も危険なタイプです。放置するとサイト停止だけでなく、広告アカウント停止、取引先からの信用失墜にもつながります。早期の駆除と継続的なセキュリティ監視が必要です。
著者情報
WordPressのセキュリティ復旧・運用支援を専門する CreativeStudio樂のエンジニアユニット によって執筆されています。企業サイトやブログ運営者が安心してサイトを運営できるよう、豊富なマルウェア駆除経験に基づき技術支援を行っています。
