WordPressのFile Managerプラグインのリモートコード実行の脆弱性が公表されました。
File Manager バージョン6.8以前を使用していた場合、connector.minimal.php
というファイルに細工したHTTPリクエストを送ると、任意のコマンドを実行される恐れがあるという内容です。
connector.minimal.php
に細工したHTTP POSTリクエストを送って、WebShell等の悪意のあるファイルをサーバーにアップロードするという攻撃が広く確認されています。
この脆弱性はバージョン6.9で修正されています。
自分が確認した範囲だと
connector.minimal.php
へのリクエストがあり、かつ、サーバーの応答コードが200系だった場合、攻撃が成功している可能性が高いconnector.minimal.php
へのリクエストがあり、かつ、サーバーの応答コードが500系だった場合、攻撃は失敗しているかもしれないが、脆弱なFile Managerを運用している可能性が高い
アクセスログのチェック
connector.minimal.phpへのリクエストの有無を確認する:
grep -i 'connector.minimal.php' *.log*
zgrep -i 'connector.minimal.php' *.gz
grep -i 'connector.minimal.php' *.log* | grep ' 200 '
zgrep -i 'connector.minimal.php' *.gz | grep ' 200 '
既知の悪意のあるIPからのアクセスの有無を確認する:
grep '185.222.57.183\|185.81.157.132\|185.81.157.112\|185.222.57.93\|185.81.157.177\|185.81.157.133' *.log*
zgrep '185.222.57.183\|185.81.157.132\|185.81.157.112\|185.222.57.93\|185.81.157.177\|185.81.157.133' *.gz
自サーバーに対してPOCスクリプトが使用されたか確認する:
grep -i '?cmd=' *.log*
zgrep -i '?cmd=' *.gz
予期しないIPからのWordPress管理画面へのアクセスの有無を確認する: (サーバーの応答コードが200の場合のみ)
grep '/wp-admin/' *.log* | grep -v '<white listed admin IP>\|<WordPess server IP>' | grep ' 200 '
zgrep '/wp-admin/' *.gz | zgrep -v '<white listed admin IP>\|<WordPess server IP>' | zgrep ' 200 '
不審なファイルへのPOST通信の確認 (WebShell検知目的、サーバーの応答コードが200の場合のみ、wp-login.phpはスキャン通信が多いので除外)grep 'POST ' *.log* | grep ' 200 ' | grep -v '<white listed admin IP>\|<WordPess server IP>' | grep -v 'wp-login.php\|wp-cron.php'
zgrep 'POST ' *.gz | zgrep ' 200 ' | zgrep -v '<white listed admin IP>\|<WordPess server IP>' | zgrep -v 'wp-login.php\|wp-cron.php'
不審なファイルのチェック
wp-content/plugins/wp-file-manager/lib/files
に不審なファイルが作成されていないか確認する:
ls -la wp-content/plugins/wp-file-manager/lib/files
既知の不審なファイルの有無を確認する:
find / -name hardfork.php
find / -name hardfind.php
find / -name x.php
対策
- File Managerを最新バージョンへアップデートする
- File Managerを特に使用していないならば、Deactivateするかアンインストールする
- Webサーバー関連のアカウントをリセットする