FortiGuard Labs 脅威リサーチ

不死身のSmokeLoader、古い脆弱性を悪用してハンティングを継続

投稿者 James Slaughter | 2022年11月8日

脆弱性を管理し改善することは、組織内で取り組む最も困難な問題の1つです。多くのソリューション、ウォッチリスト、警告は、企業やエンドユーザーが、既知のセキュリティ脆弱性に対して確実にパッチを適用できるように設計されています。

残念ながら、ツールが利用可能であっても、チームが事前に最新情報の警告を受けていても、タイムリーにパッチが適用されなかったり、まったく適用されないことも多くあります。これは通常、時代遅れのソフトウェア、チームの過剰な負担、怠慢、能力不足などに起因しており、脅威アクターもこのことを知っています。パッチの適用は、しばしば退屈で面倒な作業です。パッチの適用が遅かったり、一貫性がなかったり、ずさんな対応となっている組織は、悪用可能な足がかりを探す脅威アクターに門戸を開いており、被害者になることが多くあります。

代表的な例として、CVE-2017-0199CVE-2017-11882は、ほぼ5年以上前に報告されていますが、現在でも悪用されています。さらに悪いことに、この2つの脆弱性は、長い間、公式のパッチが提供されていましたが、悪用は続いています。

このブログでは、この2つのCVEを悪用するマルウェア亜種であるSmokeLoaderの配布チェーンに関する最新の事例を検証します。SmokeLoader(Dofoilとも呼ばれる)は、2011年以来、さまざまな形で市場で入手可能です。主な目的は、他のマルウェアファミリーの配布をサポートすることで、Trickbotなどが挙げられます。最新のサンプルではzgRATをドロップします。これは、SmokeLoaderが通常配布するものと比較して珍しいペイロードを持っています。

影響を受けるプラットフォーム: Windows
影響を受けるユーザー:     Windowsユーザー
影響:             別の目的の他のマルウェアを配布する可能性
深刻度レベル:         

攻撃の個々の要素について

以下のセクションでは、最初のEメール、添付ファイル、実行ファイルなど、攻撃の個々の要素について検証します。

フィッシングメール

このマルウェアは、多くのフィッシング詐欺のストーリーと同様、最初に、出荷の日付が正しいか、注文書を確認するよう受信者を促して誘導します。このEメールの送信先は、台湾の大手通信会社がホストするWebメールのアドレスでした。また、このフィッシングメールの送信者も同じサービスを使用していたため、メッセージの正確な発信元を追跡できませんでした。奇妙なことですが、おそらくこのメールがフィッシング詐欺であることを伝えるために、この送信者は受信者のアドレスになりすまして、送信者のアドレスとして使用していました。

本文は、中国語と英語が混在しており、完全な署名と連絡先の詳細を示して、可能な限り正当に見えるよう工夫されていました。

図1:フィッシングメール

図2:フィッシングメールの英訳

図1に示すとおり、このEメールには、「Purchase Order FG-20220629.xlsx」ファイルが添付されています。このファイルを開くと、感染プロセスが開始します。

Purchase Order FG-20220629.xlsx

図3:受信者に表示されるスプレッドシート

ファイルを開くと、「保護されたコンテンツの表示」に関するピクセル画像、およびMicrosoftの偽の説明が記載された一般的な画面が表示されます。

このスプレッドシートは、マクロが含まれておらず、内部を注意深く見る必要があります。「Sheet2」はロックアイコンがあり、シートは暗号化または保護されている可能性があることを示しています。Didier Stevensのoledumpなどのツールを利用すると、このような状況に有用です。

図4:oledumpの出力に暗号化されたストリームが表示

oledumpを実行した結果、ファイルに暗号化されたストリームが存在し、注目すべき内容が含まれている可能性が高いことが明らかになりました。Didier Stevensが提供する別のツール「 – msoffcrypto-crack.py」を利用すると、よく使われる明白なパスワードの有無をチェックできます。

図5:msoffcrypto-crack.pyの出力に、ファイルのパスワードを表示

この例の表示では、「VelvetSweatshop」が返されています。興味深いことに、これは実際、Excelで認識できるデフォルトのドキュメントパスワードとなっています。データの暗号化は可能ですが、ユーザーには、ファイルにアクセスためのパスワード入力は促されません。

上述した2つのツールを、パイプ(|)を使用して組み合わせることで、問題のOLEストリームの範囲が完全に復号化され、攻撃の次のステージのターゲットが表示されます。この段階では、この攻撃に関連する2つのエクスプロイトのうち、1つ目のCVE-2017-0199が使用されます。また、埋め込みリンクが含まれており、192[.]227[.]129[.]26から「receipt.doc」ファイルのダウンロードを試みます。

図6:CVE-2017-0199の利用後のスプレッドシートの最終的なターゲット

図7:ファイルの奇妙さは、Exifデータから明白

「receipt.doc」の初期分析の結果、奇妙な点が明らかになりました。図7に示すように、Exiftool(ファイルのメタデータの検証ツール)を「receipt.doc」に対して実行すると、エラーが返されます。ファイルを開いて直接見てみると、試行されている範囲の情報がわかります。

図8:ユーザーに表示される「receipt.doc」の外観

このファイルがMicrosoft Wordドキュメントでなく、リッチテキストファイル(RTF)であることはすぐにわかります。このファイルは、上述した2つの脆弱性のうち、2つ目のCVE-2017-11882を悪用しています。これは、Microsoftの数式エディタのスタックオーバーフローの脆弱性で、脆弱なシステム上でリモートコードを実行することができます。

図9:CVE-2017-11882の利用後のスプレッドシートの最終的なターゲット

「receipt.doc」は、再度、192[.]227[.]129[.]26にアクセスし、vbc.exeをダウンロードします。これがSmokeLoaderです。

vbc.exe

このファイルの先頭は「vbc.exe」で始まり、OSで表示されるように詳細を見ると、このファイル自身は、Microsoft .NETの実行ファイルとして表示されます。

図10:基本的な「vbc.exe」実行ファイルの詳細

このファイルのメタデータを確認すると、基本的なレベルの記述の誤りが見られます。

図11:「vbc.exe」を示すExifデータ、真の目的を難読化

このファイルは「WinRAR」と記述されています(正規のファイル圧縮・アーカイブソフトウェア)。また、元のファイル名と現在のファイル名が一致しておらず、これまでの状況から考えると、非常に不審です。

この実行ファイルを.NETのデバッガやIDEで表示すると、プログラムの実行目的と方法の詳細が明白になります。

図12:「vbc.exe」の最終的なターゲット

URL「sorathlions[.]com/wp-content/Vymxn_Zfbgctbp[.]jpg」への接続が試みられます。

図13:非常に短い間に複数回の接続を示すパケットキャプチャ

接続できない場合、何回も再試行します。ただし、これらの試行は非常に速いペースで実行されるため(1分に数回)、このURLへの単調で絶え間ない接続試行を考えると、検知は可能だと思われます。

図14:「vbc.exe」がC2への接続に成功すると、上記のコマンドを実行します

接続が成功すると、リモートの場所から「Vymxn_Zfbgctbp.jpg」ファイルをプルし、図14のコマンドが実行されます。

Vymxn_Zfbgctbp.jpg

図12と図14のコードから、「Vymxn_Zfbgctbp.jpg」は見た目どおりの画像ファイルでない可能性があることを示しています。

図15:Exifデータにより、「Vymxn_Zfbgctbp.jpg」が画像でないことを確認

このファイルのメタデータを確認すると、圧縮されたGZipアーカイブであることがわかります。図12は、このファイルをメモリ上に解凍するコードを示し、このことを裏付けています。また、このファイルは、7Zipなどの一般的なツールを使用して手動で解凍することもできます。

図16:「Vymxn_Zfbgctbp.jpg」を手動で解凍できることを示すデモ

図17:ドロップされる最終的なファイルはDLLです

図17に示すように、「vbc.exe」で実行される.NET DLLファイルがドロップされます。

DLL

このDLLは高度に難読化されています。ただし、主要な名前空間、クラス、エントリ関数を見つけることは可能です。

図18:主な名前空間

このDLLの難読化されてない一部の文字列から、FortiGuard LabsはこのサンプルはzgRATであると考えています。zgRATのサンプルは2021年にさかのぼります。これは、確立されている他の系統と比較すると、少し珍しいマルウェアの亜種です。

この特定のサンプルは、外部との通信を試みることなく、大半はアイドル状態で、これ以上の攻撃的な活動は実行しません。

結論

2017年に発見されたCVE-2017-0199とCVE-2017-11882は、現在でもさまざまなマルウェアキャンペーンで活発に利用されています。このことは、マルウェア作成者は現在でも目的を達成するために、しばしば公開されてから数年経つような古い脆弱性を利用しており、対象のソリューションが未修正であることに依存していることを示しています。

SmokeLoaderは他の脅威と比較して相対的に寿命が長く、存在し続けており、近い将来に、衰える兆候は見られません。

フォーティネットのソリューション

このブログに記載されているサンプルは、以下のアンチウイルス(AV)シグネチャによって検知されます。

VBA/Agent.BMW!tr.dldr

MSOffice/CVE_2017_11882.B!exploit

MSIL/Agent.MJR!tr.dldr

MSIL/Injector.VZX!tr

FortiGuard IPSは、CVE-2017-0199に関連するすべての既知のエクスプロイトに対して、以下のシグネチャで保護します。

                MS.Office.RTF.File.OLE.autolink.Code.Execution

FortiGuard IPSは、CVE-2017-11882に関連するすべての既知のエクスプロイトに対して、以下のシグネチャで保護します。

MS.Office.EQNEDT32.EXE.Equation.Parsing.Memory.Corruption

ネットワークベースのすべてのURLは、Webフィルタリングクライアントによって保護されます。

フォーティネットでは、フィッシングの脅威を理解し検知できるように、ユーザーへのトレーニングをサポートする複数のソリューションを提供しています。

FortiPhishフィッシングシミュレーションサービスは、実世界のシミュレーションを利用することで、企業や組織は、フィッシングの脅威に対するユーザーの意識や注意に関するテストを行ったり、ユーザーが標的型のフィッシング攻撃に遭遇した際の適切な行動を強化することができます。

また、これらの保護に加えて、当社では、企業や組織のエンドユーザーに、当社のNSE trainingNSE 1 – Information Security Awarenessトレーニングを受講してもらうことをお勧めしています。インターネット上の脅威に関するモジュールが含まれており、エンドユーザーはさまざまなタイプのフィッシング攻撃を自身で特定し保護する方法を学ぶことができます。

IOC(Indicators of Compromise:侵害指標)

ファイル名

SHA256

Purchase Order FG-20220629.xlsx

eef3295bada101787ae4f1ebc92e17fc2c6cd8c39389a745c45943a019637ca1

receipt.doc

a1f59ebe9e8311267d831da649a8df44a3d747e9cf75e64a259b2fd917d2f587

vbc.exe

3223ae2c88753ce7268fa02213b76bdaf690ac37ec411ea8b7925c3b31e8822f

Vymxn_Zfbgctbp.jpg

104f88876b4d7c963d47afa63cfbb516d20e1cf9858d739f9c4023142b223fe2

Vymxn_Zfbgctbp.dll

4e4e32f6259b82e6b932ab81172c22560ec2ac46e85543d4851637a63eaace3e

ネットワークIOC(Indicators of Compromise:侵害指標):

sorathlions[.]com

dhemgldxkv[.]com

afrocalite[.]com

108[.]60[.]212[.]220