「TIKTOUK」と名付けられた認証情報収集ツールキットが確認されました。このツールキットは、WordPressの偵察、公開されたファイルの収集、プラグインに保存された認証情報の復号、JavaScript内のシークレットのスキャンを組み合わせています。
ツールキットは2本のPythonスクリプト wp2s_poll.py と wp2s_crack.py、およびシンボル情報を削除したGo製のLinux向けクローラー jscrawl-amd64 で構成されています。
3つのコンポーネントはいずれも、中央のHTTPハブから標的を取得し、割り当てられた収集タスクを実行します。その後、ステータスレポートと抽出したデータを専用のエンドポイントへ送信します。
Incidentresponse planning
wp2s_poll.py はまず、WordPressの導入環境を特定し、REST APIの挙動を探ります。
このスクリプトは、不正な形式のパス http://: を含むバッチリクエストを送信します。あわせて、/wp/v2/categories/0 を対象とする DELETE リクエストと、/wp/v2/block-renderer/core/paragraph への POST リクエストも送ります。
研究者は、JSON形式の送信がHTTP 403で拒否された後、ツールがmultipartエンコードで同じリクエストを再試行する様子を確認しました。
multipartでのリクエストはHTTP 200を返しました。JSONからmultipartへの切り替えは、不審なWordPressの活動を調査する防御側にとって、有用なテレメトリのシグナルになり得ます。
このスクリプトはプラットフォームの検出にとどまらず、返されたページの内容から認証情報やシークレットらしき文字列もスキャンします。
これにより攻撃者は、偵察と並行して、露出したトークン、アクセスキー、設定値を機会的に収集できます。
より高機能な wp2s_crack.py は、wp-config.php.bak、.env、.git/config、backup.sql、wp-content/debug.log などの公開ファイルの取得を試みます。
サーバー側のアクセス制御が誤って設定されている場合、これらのパスからはさまざまな情報が漏えいするおそれがあります。具体的には、データベースのパスワード、WordPressの暗号化キー、デプロイのメタデータ、ソース管理のリモート情報、デバッグ出力、アプリケーションのシークレットなどです。
特に注目すべきは、TIKTOUKがWordPressの設定情報を利用して、暗号化されたメールプラグインの設定に保存された認証情報を復元できる点です。
この機能は、基盤となる暗号そのものを破るわけではありません。必要な暗号鍵が、漏えいしたWordPressの設定ファイルから入手できてしまう点を悪用しています。
リバースエンジニアリングにより、WP Mail SMTP、Easy WP SMTP、FluentSMTPそれぞれに対応した復号ルーチンが確認されました。
報告によると、このツールキットはWP Mail SMTPの設定にXSalsa20-Poly1305による復号を行います。Easy WP SMTPのレコードにはAES-256-CTRによる処理を実施します。FluentSMTPの値は LOGGED_IN_KEY を用いたAES-256-CTRで復元し、その後、該当するソルトの接尾辞を取り除きます。
この違いは運用上、重要な意味を持ちます。暗号化されたSMTP設定が防御として機能するのは、対応するWordPressのキーに外部からアクセスできない場合に限られるためです。
したがって、wp-config.php ファイルが露出すると、暗号化されたプラグイン設定が、そのまま使えるメール認証情報の平文に変わってしまいます。
さらにこのツールキットは、AWSのシークレットアクセスキーからAmazon SESのSMTPパスワードを導出します。SESへのアクセスが可能な環境であれば、攻撃者はクラウド認証情報をメール配信用の認証情報へ変換できる可能性があります。
jscrawl-amd64 クローラーは、収集の対象をWordPressのサーバーファイルの外へ広げます。
このクローラーはページと、そこからリンクされたJavaScriptリソースを取得し、クライアントに配信されるスクリプトをスキャンします。一致した情報は /v1/ingest を通じて攻撃者のハブに報告します。
LevelBlueの研究者は、このモジュール型ツールキットが、公開状態のWordPress設定データを、復元可能なSMTP、AWS、データベース、APIの認証情報に変えられると指摘しています。Web基盤の保護が不十分な組織にとって、影響の大きいリスクになると警告しています。
Incidentresponse planning
確認された検出パターンには、SendGrid、Anthropic、Amazon Bedrock、AWS形式の認証情報が含まれていました。
クライアント側のJavaScriptに、長期間有効なシークレットを含めるべきではありません。それでも、開発時の成果物、埋め込まれた設定オブジェクト、ソースマップ、誤って公開された環境変数は、依然として頻繁に見られる漏えい経路です。
中央集約型の報告設計は、このツールキットのリスクを高めています。復元された平文の認証情報を含む標的ごとのレコードは、侵害されたホストに残らず、/api/crack/report または /v1/ingest へ送信されます。
TIKTOUKの探査動作は、最近公表されたWordPressの「wp2shell」脆弱性チェーンと重なっています。
CVE-2026-60137は WP_Query の author__not_in パラメータのサニタイズに関する脆弱性です。CVE-2026-63030はREST APIのバッチエンドポイントにおけるルート混同の問題で、SQLインジェクションの脆弱性と連鎖させることで、認証なしのリモートコード実行につながる恐れがあります。
これらの脆弱性は、6.9.5より前のWordPress 6.9.xと、7.0.2より前の7.0.xに影響します。CVE-2026-60137は、6.8.6より前の6.8ブランチにも影響します。
研究者は、実際に稼働するWordPressの標的に対する攻撃成功までは実証していません。
制御された環境での実行には合成レスポンスを使用しました。そのため今回の分析は、各コンポーネントの挙動を検証したものです。認証情報が実際に窃取されたことや、エンドツーエンドの侵入が進行中であることを確認したものではありません。
防御側は、WordPressを該当する修正版(6.8.6、6.9.5、7.0.2)へ早急にアップグレードし、自動セキュリティ更新が有効なままであることを確認する必要があります。
直ちにパッチを適用できない組織は、WAFまたはリバースプロキシの層で、/wp-json/batch/v1 と ?rest_route=/batch/v1 への匿名アクセスを制限してください。
セキュリティチームは、次のようなRESTバッチリクエストを調査すべきです。http://: を含むもの、入れ子になった author_exclude パラメータを含むもの、UNION ALL SELECT 式を含むものです。特に、JSONリクエストの後にmultipartでの再試行が続く場合は要注意です。
あわせて、バックアップ、環境設定、Git、デバッグ関連ファイルへのアクセス試行を探し、/v1/ingest や /api/crack/report への外向きリクエストと突き合わせて分析してください。
最大の教訓は明快です。設定ファイルが露出すると、本来は適切に実装されたシークレットの暗号化も無力化されてしまいます。
WordPressの運用者は、Webからアクセスできるパスからバックアップファイルを取り除き、ドットファイルや設定のバックアップへのアクセスをブロックしてください。露出した可能性のある認証情報はすべてローテーションし、JavaScriptバンドルに埋め込まれたクラウド、メール、AIサービスのキーがないか監査することも必要です。
SOCのアラート調査を1件あたり21分短縮。即座に得られるIOCコンテキストで、SOCの迅速な対応を支援します: SOCにTI Lookupを導入する
翻訳元: https://gbhackers.com/tiktouk-wordpress-toolkit/