2018 年 8 月末にかけて、FireEye は、日本、韓国、中東、南ヨーロッパ、およびアジア太平洋地域のその他の国のユーザーに影響を与えるマルバタイジング キャンペーンの一環として提供されていた新しいエクスプロイト キット (EK) を特定しました。
キャンペーンの最初のインスタンスは、2018 年 8 月 24 日にドメイン finalcountdown[.]gq で確認されました。東京を拠点とする研究者「nao_sec」は、8 月 29 日にこのキャンペーンのインスタンスを特定し、自身のブログ投稿でエクスプロイト キットをFallout Exploit Kitと呼んでいます。調査の一環として、キャンペーンに関連する追加のドメイン、地域、およびペイロードを観察しました。 nao_sec のブログ投稿で言及されているように、日本で配布されている SmokeLoader 以外に、GandCrab ランサムウェアが中東で配布されていることを確認しました。これについては、このブログ投稿で焦点を当てます。
Fallout EK は、ユーザー ブラウザー プロファイルのフィンガープリントを作成し、ユーザー プロファイルが対象のターゲットと一致する場合、悪意のあるコンテンツを配信します。照合に成功すると、ユーザーは複数の 302 リダイレクトを介して正規の広告主ページからエクスプロイト キットのランディング ページ URL にリダイレクトされます。正当なドメイン、 クッション ドメイン、エクスプロイト キットのランディング ページに至る完全なチェーンを図 1 に示します。
メインの広告ページは、広告の読み込み中にクッション ドメイン リンクをプリフェッチし、ブラウザーで JavaScript が無効になっている場合に <noscript> タグを使用して別のリンクを読み込みます (図 2)。
このブログ投稿で前述していない地域では、「link rel=”dns-prefetch” href”」タグの値が異なり、広告はエクスプロイト キットに誘導されません。 302 ホップを介したリダイレクトの完全なチェーンを図 3、図 4、および図 5 に示します。
ランディング ページの URI は変化し続けており、パターンに対して一般的すぎるため、特定のパターンに基づく検出に依存する IDS ソリューションは難しくなっています。
ブラウザ/OS プロファイルとユーザーの場所に応じて、マルバタイジングはエクスプロイト キットを配信するか、ユーザーを他のソーシャル エンジニアリング キャンペーンに再ルーティングしようとします。たとえば、米国では、完全にパッチが適用された macOS システムで、マルバタイジングにより、図 6 と図 7 に示すようなソーシャル エンジニアリングの試みにユーザーがリダイレクトされます。
この戦略は、FireEye がしばらく観察してきたソーシャル エンジニアリングの試みの増加と一致しています。悪意のあるアクターは、完全にパッチが適用されたシステムや、ソフトウェアが原因でエクスプロイトの試みには理想的ではない OS/ソフトウェア プロファイルを使用しているユーザーをターゲットにするためにソーシャル エンジニアリングを使用します。脆弱性。キャンペーンに関係するマルバタイジング リダイレクトは、北米でも多くのソーシャル エンジニアリング キャンペーンで悪用されています。
FireEye Dynamic Threat Intelligence (DTI) は、このキャンペーンが政府、通信、および医療セクターの顧客からのアラートをトリガーしたことを示しています。
ランディングページ
当初、ランディング ページには VBScript の脆弱性 ( CVE-2018-8174 ) のコードのみが含まれていました。ただし、ペイロードの実行の信頼性を高めるために、Flash 埋め込みコードが後で追加されました。
ランディング ページでは、VBScript コードが Base64 でエンコードされたテキストとして「<span>」タグに保持されます。ページが読み込まれると JScript 関数が読み込まれ、次の段階の VBScript コードがデコードされ、VBScript ExecuteGlobal 関数を使用して実行されます (図 8)。
図 9 は、悪意のある VBScript コードをデコードする JScript 関数を示しています。
Flash 埋め込みコードは「noscript」タグ内にあり、スクリプトが無効になっている場合にのみ読み込まれます (図 10)。
デコードされた VBScript コードは、 CVE-2018-8174 の脆弱性を悪用し、シェルコードを実行します (図 11)。
シェルコードは、XOR されたペイロードを %temp% の場所にダウンロードし、復号化して実行します (図 12)。
ペイロード分析 (4072690b935cdbfd5c457f26f028a49c)
このマルウェアには、最初の読み込みと最終的なペイロードの実行に使用される PE ローダー コードが含まれています (図 13)。
アンパックされた DLL 83439fb10d4f9e18ea7d1ebb4009bdf7 は、マルウェアのコア機能への関数ポインタの構造を初期化することから始めます (図 14)。
次に、実行中のすべてのプロセスを列挙し、crc32 チェックサムを作成して、ブラックリストに登録されたチェックサムのリストと照合しようとします。チェックサムとそれに対応するプロセス名のリストを表 1 に示します。
CRC32 チェックサム |
プロセス名 |
99DD4432h |
vmwareuser.exe |
2D859DB4h |
vmwareservice.exe |
64340DCEh |
vboxservice.exe |
63C54474h |
vboxtray.exe |
349C9C8Bh |
Sandboxiedcomlaunch.exe |
5BA9B1FEh |
procmon.exe |
3CE2BEF3h |
regmon.exe |
3D46F02Bh |
ファイルモン.exe |
77AE10F7h |
ワイヤーシャーク.exe |
0F344E95Dh |
netmon.exe |
278CDF58h |
vmtoolsd.exe |
表 1: ブラックリストに登録されたチェックサム
いずれかのプロセスのチェックサムが一致すると、マルウェアは無限ループに入り、この時点から事実上良性になります (図 15)。
このチェックに合格すると、マルウェアが最初に「SeShutdownPrivilege」を取得し、独自のイメージ パス、OS バージョン、およびアーキテクチャ (x86/x64) をチェックする新しいスレッドが開始されます。 OS バージョン 6.3 (Windows 8.1/Windows Server 2012) の場合、次の手順が実行されます。
- 「SeTakeOwnershipPrivilege」を取得し、「C:WindowsSystem32ctfmon.exe」の所有権を取得
- WoW64 で実行している場合は、Wow64DisableWow64FsRedirection を介して WoW64 リダイレクトを無効にして、64 ビット バイナリを置き換えられるようにします。
- 「C:WindowsSystem32ctfmon.exe」をそれ自体のコピーに置き換えます
- 「ctfmon.exe」が起動しているか確認してください。そうでない場合は、レジストリ キー “RegistryMachineSOFTWAREMicrosoftWindowsCurrentVersionRun” を使用してスタートアップに自身を追加します。
- ExitWindowsEx を呼び出してシステムを再起動する
他の OS バージョンでは、次の手順が実行されます。
- 「SeTakeOwnershipPrivilege」を取得し、「C:WindowsSystem32rundll32.exe」の所有権を取得
- WoW64 で実行している場合は、Wow64DisableWow64FsRedirection を介して WoW64 リダイレクトを無効にして、64 ビット バイナリを置き換えられるようにします。
- 「C:WindowsSystem32rundll32.exe」をそれ自体のコピーに置き換えます
- レジストリ キー “RegistryMachineSOFTWAREMicrosoftWindowsCurrentVersionRun” を使用して、自身をスタートアップに追加します。
- ExitWindowsEx を呼び出してシステムを再起動する
いずれの場合も、マルウェアがシステム ファイルを正常に置換できなかった場合、表 2 に示す場所に自身をコピーし、ShellExecuteW を介して実行します。
ダンプ パス |
ダンプ名 |
%APPDATA%マイクロソフト |
{ランダムなアルファベット}.exe |
%APPDATA%MicrosoftWindowsスタート メニュープログラムスタートアップ |
{ランダムなアルファベット}.pif |
表 2: 代替ダンプ パス
実行時に、マルウェアはそれが ctfmon.exe/rundll32 として実行されているか、表 2 の実行可能ファイルとして実行されているかをチェックします。このチェックに合格すると、ダウンローダー ブランチが実行を開始します (図 16)。
複数の実行を防ぐために、ミューテックス「Alphabeam ldr」が作成されます。ここでペイロード URL のデコードが行われます。エンコードされたデータは、mov 操作によって BLOB にコピーされます (図 17)。
32 バイトのマルチ XOR キーは、図 18 に示すアルゴリズムでセットアップされます。
XOR キー(83439fb10d4f9e18ea7d1ebb4009bdf7) |
{0x25、0x24、0x60、0x67、0x00、0x20、0x23、0x65、0x6c、0x00、0x2f、0x2e、0x6e、0x69、0x00、0x2a、0x35、0x73、0x76、0x00、0x31、0x31、0x31、0x31、0x31、0x31 、0x3c、0x3f、0x79、0x78、0x00、0x3b、0x3a} |
最後に、実際のデコードは XMM レジスタを使用した PXOR を使用して行われます (図 19)。
これにより、ダウンローダ スイッチ ループが実行されます (図 20)。
表 3 は、HTTP 要求、予想される応答 (body = HTTP 応答本文)、および対応するアクションの内訳を示しています。
リクエスト # |
リクエストURL |
(期待される応答) body+0x0 |
本体+0x4 |
本体+0x7 |
アクション |
1 |
hxxp://91[.]210.104.247/update.bin |
0x666555 |
0x0 |
リクエスト #2 の URL |
リクエスト #2 でペイロードをダウンロードし、MZ と PE ヘッダーを確認し、CreateProcessW で実行します |
1 |
hxxp://91[.]210.104.247/update.bin |
0x666555 |
0x1 |
なし |
CreateProcess を介して既にダウンロードされたペイロードを実行していると思われます。ただし、機能がショートサーキットされています。代わりに、何もせず、スリープ後にループを続けます |
1 |
hxxp://91[.]210.104.247/update.bin |
0x666555 |
0x2 |
リクエスト #2 の URL |
リクエスト #2 を介してペイロードをダウンロードし、MZ および PE ヘッダーを確認し、PE ローダー モジュールを使用してネイティブ プロセス空間に手動でロードします。 |
1 |
hxxp://91[.]210.104.247/update.bin |
0x666555 |
0x3 |
なし |
PE ローダーを介してダウンロード済みのペイロードを実行していると考えられます。ただし、機能がショートサーキットされています。代わりに、何もせず、スリープ後にループを続けます |
1 |
hxxp://91[.]210.104.247/update.bin |
0x666555 |
0x4 |
リクエスト #3 の URL |
リクエスト #3 を実行する |
1 |
hxxp://91[.]210.104.247/update.bin |
なし |
なし |
なし |
10 分間スリープして、リクエスト #1 から続行する |
2 |
応答 #1 から |
PEペイロード |
なし |
なし |
以前の応答に応じて、CreateProcessW または内部 PE ローダーを介して実行します。 |
3 |
応答 #1 から |
なし |
なし |
なし |
アクションは実行されません。 10 分間スリープし、リクエスト #1 から開始します |
表 3: HTTP 要求、応答、およびアクション
リクエスト シーケンスにより、 GandCrab ランサムウェアがフェッチされ、マルウェアによって手動でメモリにロードされます。図 21 と図 22 は、GandCrab ( 8dbaf2fda5d19bab0d7c1866e0664035 ) のダウンロードと実行につながるサンプル リクエスト #1 とリクエスト #2 をそれぞれ示しています。
結論
近年、アンダーグラウンド オペレーションの逮捕と妨害により、エクスプロイト キットの活動は大幅に減少しています。それでも、エクスプロイト キットは、完全にパッチが適用されていないシステムを実行しているユーザーに重大な脅威をもたらします。現在、ユーザーがより脆弱なソフトウェアを使用する傾向にあるアジア太平洋地域では、エクスプロイト キットの活動が増加しています。一方、北米では、より単純なソーシャル エンジニアリング キャンペーンに焦点が当てられる傾向があります。
FireEye Network Securityは、この投稿で言及されているすべてのエクスプロイト、ソーシャル エンジニアリング キャンペーン、マルウェア、およびコマンド アンド コントロール通信を検出します。複数の FireEye 製品で使用されている MVX テクノロジーは、この投稿で説明されている第 1 段階および第 2 段階のマルウェアを検出します。
侵害の痕跡
ドメイン / IP / アドレス / ファイル名 |
MD5 ハッシュまたは説明 |
finalcountdown.gq、naosecgomosec.gq、 ladcbteihg.gq、dontneedcoffee.gq |
エクスプロイト キットのドメイン |
78.46.142.44、185.243.112.198 |
エクスプロイト キットの IP |
47B5.tmp |
4072690b935cdbfd5c457f26f028a49c |
hxxp:// 46.101.205.251/wt/ww.php hxxp://107.170.215.53/workt/trkmix.phpdevice=desktop&country=AT&connection.type= |
マルバタイジングとエクスプロイト キットで制御されたドメイン間で使用されるリダイレクト URL の例 |
91.210.104[.]247/update.bin |
第 2 段階のペイロードのダウンロード URL |
91.210.104[.]247/not_a_virus.dll |
8dbaf2fda5d19bab0d7c1866e0664035 第 2 段階のペイロード (GandCrab ランサムウェア) |
謝辞
このブログ投稿に貢献してくれた Hassan Faizan に感謝します。
Comments