エンタングルメントosugi3yのブログ

14年勤めた企業をやめました。映画「時の行路」尾道市実行委員

シン・すべてがNになる〜不定期連載〜パープルフォックスEK|新たなCVE、ステガノグラフィ、仮想化を攻撃フローに追加

 

パープルフォックスEK|新たなCVE、ステガノグラフィ、仮想化を攻撃フローに追加

 ガル・クリスタール 2020年10月19日

 

f:id:osugi3y:20210326063509p:plain

Executive Summary

 

・ここ数週間で、エクスプロイトキット「Purple Fox」を利用して脆弱なバージョンのInternet Explorerを攻撃しようとする行為が急増しています。

 

・調査の結果、Purple Foxは、一般に公開されているエクスプロイトコードを利用して、最近の2つのCVE(CVE-2020-1054およびCVE-2019-0808)を利用するようになりました。

 

・さらに、コード仮想化技術を用いて悪意のあるコードを隠蔽したり、ステガノグラフィを採用したりすることで、ファイアウォールによる保護や一部の検知ツールの回避を可能にする攻撃フローの変更も確認しています。

 ここ2、3年の間に、Purple Foxはその攻撃方法と配信方法を進化させてきました。2018年9月に初めて観測されたパープルフォックスは、2019年になってNSIS(Nullsoft Scriptable Install System)やエクスプロイトキット「Rig」の使用をやめ、代わりにPowerShellを採用してファイルレス実行を実現したことを後続の研究者が指摘しています。今年初め、ProofPointは、Purple FoxがCVE-2020-0674とCVE-2019-1458を武器に追加した経緯を詳しく説明しました。今回の調査では、開発者たちが再び繰り返し、特権拡大を実現するためにさらに多くのCVEを追加し、検出を回避して分析を妨げるためにステガノグラフィや仮想化技術を採用したことが明らかになりました。

 

www.weblio.jp

ペイロード配送の流れ

f:id:osugi3y:20210326065309p:plain

 

 私たちが観測した攻撃では、被害者は広告や誤ったURLをクリックすることで悪意のあるサイトに誘導されます。攻撃者は、 speedjudgmentacceleration[.]com上でマルウェアホスティングし、Internet Explorerのユーザーをターゲットにしています。

 このエクスプロイトでは、コマンドラインとしてVBScriptコードを含むmshta.exeが実行され、PowerShellが実行されます。PowerShellのコードは、次の段階のコードをダウンロードしてメモリ内で実行します。

f:id:osugi3y:20210326065607p:plain

図1:SentinelOneエージェントによる攻撃の自律的な検知の様子

 次の段階は、以前のバージョンのPurple Foxと同様のパターンです。まず、Administrator権限で実行されているかどうかをチェックします。Administrator権限で実行されている場合は、攻撃者のサイトからkey=2としてMSIパッケージを直接インストールします。そうでない場合は、まず自分自身を昇格させるために、いくつかの異なるLocal Privilege Escalation Exploitを試みます。

 New Privilege Escalation Exploits:新しい特権昇格のためのエクスプロイト

 最新のパープルフォックスの亜種では、攻撃者は2つの点を改善しました。

 新バージョンのエクスプロイトキットでは、実際の画像ファイル(key=3 & key=4)をダウンロードし、ステガノグラフィを使用して各LPEを画像に埋め込むようになりました。使用された画像の一例を以下に示します。

f:id:osugi3y:20210326070330p:plain

ダウンロード後、これをメモリ上に展開します。以下のコードは、ペイロードのデコードと実行に使用されます。

f:id:osugi3y:20210326070537p:plain

 さらに、2つの新しいエクスプロイトが、ローカルな特権昇格のために利用されるようになりました。CVE-2020-1054CVE-2019-0808です。どちらもWin32kコンポーネントカーネルエクスプロイトです。CVE-2020-1054は、今年の5月にパッチが適用されたばかりです。私たちが発見したこれらの脆弱性を悪用する攻撃者のバイナリは、それぞれ2020年8月11日と2020年9月10日にコンパイルされました。

f:id:osugi3y:20210326071058p:plain

 このコードは、コンパイルされたフォルダ名が示すように、Gitリポジトリから取得されたものです。私たちは、これらの公開リポジトリに悪用されたことをすぐに突き止めることができました。CVE-2020-1054CVE-2019-0808です。

 

 残念ながら、同じような特徴を持つバイナリを探しても、今のところ結果は出ていません。

 注目すべきは、すべてのスクリプトが、HKCU\Software\7-Zipの下にある「StayOnTop」という特定の一貫したレジストリ値をチェックしていることです。この値を設定することで、ペイロードの実行が成功したかどうかをマルウェアが判断しているようです。したがって、コンピュータのレジストリにこの値が見つかった場合、Purple Foxによる侵害が疑われます。

Rootkit Payload:ルートキットペイロード

 

 PowerShellスクリプトと特権昇格エクスプロイトの目的は、最終的にマシンにルートキットをインストールすることです。ルートキットのインストールプロセスや機能については、すでに他の研究者によって詳しく説明されていますが、今回発見した変更点を踏まえ、ペイロードに関しても新たな展開がないか確認してみました。

 新しいドメインで参照されているマルウェアのバージョンは2つあり、どちらもルートキットMSIインストーラーでした。そのうちの1つにはファイルがありませんでしたが、完全なものを分析したところ、興味深い結果が得られました。

 

インストールプロセスはほとんど変わりません。再起動後にファイルをsystem32ディレクトリに配置するためにPendingFileRenameOperationsが使用されています。しかし、MSIパッケージのCustomActionテーブルにはvbscriptコードがあり、特に以下のような実行をしています。

 

f:id:osugi3y:20210326072516p:plain

 

 ここで興味深いのは、これらのコマンドが、パープルフォックスが最初のアクセスを得るために使用している脆弱性CVE-2020-0674(Internet Explorer RCE)に対する防御方法に関するMicrosoftのアドバイザリからそのまま引用されていることです。新たに感染したマシンをその脆弱性から保護する目的は、ライバルの攻撃者を排除するためではないかと推測されます。

 MSIパッケージからマルウェアを抽出した後、このペイロードにも重要な新機能があることに気づきました:VMProtectによって保護されているのです。  

 VMProtectの使用は、PEのセクションテーブルを見ればすぐにわかります。

 

f:id:osugi3y:20210326073221p:plain

図2:「.vmp%d」セクションのエントリーポイントは、VMProtectを明確に示している

  元のコードを隠して難読化するために多くの技術を採用しているため、リバーサルが難しくなっています。

 

Unpacking VMProtect:VMProtectの開梱

  

 VMPで保護されたバイナリをリバースする際には、パックされたデータと仮想化された命令という2つの主要な障害があります。

  

 まず、バイナリの中のデータを解凍しなければなりません。そのために、素晴らしいx64dbgを使用し、ファイルを開きました。その後、VirtualProtect関数の開始点にブレークポイントを置きました。

 

 その関数の呼び出しをすべて記録したいので、「Log Text」ボックスに入力します。

f:id:osugi3y:20210326074011p:plain

 クラッシュするまで実行すると、次のような出力が得られます。

f:id:osugi3y:20210326074218p:plain

 データはおそらく仮想アドレス0x401000に展開されていることがわかるので、データが書き込まれるまでそのアドレスを監視することになります。
 プログラムを再起動した後、再びVirtualProtectにブレークポイントを置き、そのブレークポイントが8回ヒットするようにしました。そして、EIPをそのアドレスに設定し、x64dbgに内蔵されているScyllaプラグインを使って、バイナリをダンプし、インポートを修正しました。
 

f:id:osugi3y:20210326074633p:plain

 

 これにより、マルウェアの調査に役立つ多くの平文文字列を含む、より小さくデバッグ可能なDLLファイルが得られました。

 

 DLLのコードは、仮想化されたコールを使用してまだ難読化されていますが、幸いなことに、文字列の中にこれを見つけることができました。

 

f:id:osugi3y:20210326074855p:plain

 

 これは、以前に報告されたルートキットのバージョンと同様で、彼らがダウンロードしてコンパイルした公開ルートキットにすぎません。この情報から、彼らはルートキットの機能を大幅にアップグレードしていないことが推測されます。

Conclusion:結論

 エクスプロイトキット「Purple Fox」は積極的に開発中です。2018年9月から見てきたように、また私たちの調査でもそうでしたが、マルウェアの作者は、組織やセキュリティチームがタイムリーにパッチを当てられなかった脆弱性を狙うために、公開されているエクスプロイトコードを活用して、Microsoftのパッチに対応しています。また、この新しい亜種は、LPEバイナリを隠すためにステガノグラフィを採用し、コードを解析から保護するために市販のソフトウェアを利用することで、検出を回避する能力を向上させています。

Indicators of Compromise:コンプロマイズの指標

 SHA1

c82fe9c9fdd61e1e677fe4c497be2e7908476d64 CVE-2019-1458.exe
e43f98c0698551f997649c75a2bfe988f72060c0 CVE-2020-1054.exe
82af45d8c057ef0cf1a61cc43290d21f37838dd1 cve_2019_0808.exe
6cac8138f1e7e64884494eff2b01c7b1df83aef2 rootkit_from_cve_2019_0808.msi
e65c1a74275e7099347cbec3f9969f783d6f4f7d cve_2019_0808.ps1
bdeed6792463713806f39c3b5abc0d56f176e88f key1.bin
921d1beb3c48b03e20ba1ea07ea1c8f8fc97ec8e key2.bin
2c5c07c969dd715d0e696f8a8e9e6754a9114d4e key3.bin
5a680f659c91870a819ede06746f21282a4929d1 key4.bin
60f2624c39f61ec6c2eff09d463ca57d9a227b9b key5.bin
bd00f0e6e8cbe0b486fe0aad9e6e38ea606f7044 key6.bin
9ba5e84fccf1012343ba72e9584c6af3beb8b361 key7.bin
57b4eac452c2e8c73222d0915a97a63b43d391de key8.bin
57b4eac452c2e8c73222d0915a97a63b43d391de key9.bin
c21b1397d25ece8221e981eb5289c592f71ab4ca rootkit_encrypted_payload
0470d80daf464b5ea5ee80e2db18e0582f6dbfaf rootkit_x86
bc9766d405913a6162d3747a5a7d0afe1857ac88 rootkit_x64

 SHA256

079c13fbc30a32e4f0386cd53c56d68404961b8f1cd4d4fde1a1e9def42aa557 CVE-2019-1458.exe
7465b738ba31fa2fff7fef1d770ef32e43b01d49a937b3b1c11dc2e4e45fd019 CVE-2020-1054.exe
babfd8e70102479dea4f239c1ee5de463af07c73a94592b390257c5b3d2878a9 cve_2019_0808.exe
9208e853d6de61f1640822ae723e0d40730e29cef5a660419b95fd32c84c9ade rootkit_from_cve_2019_0808.msi
e30d7375f5f88847b810755f0a2cda82e8eeb084a3b989c85d6f13f6a1c01f38 cve_2019_0808.ps1
b48c61983f2d453d4d6a5ff1f2c9e0e194d7ae892a2649d7bafd267082033748 key1.bin
49d9f5aaeb6fd10d371afbebf33ffed184b22e66350a12a60cbbe34ff1fadf9e key2.bin
8392f7bc7bd93ab035e609619e0915b7e8c91288fc6eb19237c0e2019f8dcaa2 key3.bin
13b0e2769d7a0b3964c4e491f90fc4518f8e5ae4d8c37082ffe764b3a174e9a7 key4.bin
6bee844cdd424c970ff8bba22385ae4c1ae51c2b4e036ba1a217ba37e100530f key5.bin
e49327a62e4500ac23fa0b506c565350fbc9afd497198a8b4b8ae8f537146d53 key6.bin
321eeafe6a9dbd424bf9fdf7ded1ef18c7cab68fadb58cd0da5a1c74479a509f key7.bin
01662ffa9a1c637307e1d148ac2492c69d6035ca87424cbb11e44a178002abc4 key8.bin
01662ffa9a1c637307e1d148ac2492c69d6035ca87424cbb11e44a178002abc4 key9.bin
cfae7a1935f0aaf0f76322f29ad0e0fd1a77d325e55fa324a0bb19e264760800 rootkit_encrypted_payload
181551603ebebbf5924247212c0ed93b6c9c4b088e612bf04f5996c227563318 rootkit_x86
1209aece1f9f54e6422083791eb8a59df878f6959beae9e53736e3056459ab1e rootkit_x64

Domains
speedjudgmentacceleration[.]com
rawcdn[.]githack[.]cyou
dl[.]gblga[.]workers.dev
dl[.]fmhsi[.]workers.dev

  以上下記の記事をDeepLで翻訳しました。

labs.sentinelone.com