[CVE-2020-25213] WordPressのFile Managerプラグインの脆弱性 のメモ

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サーバー関連のアカウントをリセットする

Leave a Reply

Your email address will not be published. Required fields are marked *