モンゴル政府を狙った攻撃に使われるスピアフィッシングの手法

Stages of payload execution used in this attack news

序章

FireEye は最近、モンゴル政府内の個人を標的とした巧妙なキャンペーンを観測しました。悪意のある Microsoft Word 文書でマクロを有効にした標的となった個人は、 Poison Ivyに感染した可能性があります。Poison Ivy は、キーのログ記録、画面およびビデオのキャプチャ、ファイル転送、パスワードの盗難、システム管理、トラフィック中継など。この攻撃の背後にいる攻撃者は、次のようないくつかの興味深い手法を示しました。

  1. 被害者のプロファイルに基づいてカスタマイズされた回避– キャンペーンは、公開されている手法を使用して、標的のシステムに適用された AppLocker アプリケーションのホワイトリストを回避しました。
  2. ファイルレス実行と持続性– ターゲットを絞ったキャンペーンでは、攻撃者は検出とフォレンジック調査を回避するために、ディスクへの実行可能ファイルの書き込みを回避しようとすることがよくあります。私たちが観察したキャンペーンでは、ペイロードを個々のファイルに書き込むことなく、4 段階の PowerShell スクリプトを使用していました。
  3. おとり文書– このキャンペーンは、PowerShell を使用してインターネットから無害な文書をダウンロードし、それらを別の Microsoft Word インスタンスで起動して、悪意のある活動に対するユーザーの疑いを最小限に抑えました。
攻撃サイクル

攻撃者は、ソーシャル エンジニアリングを使用して、悪意のある PowerShell ペイロードを起動する Microsoft Word ドキュメントに埋め込まれたマクロを実行するようユーザーを誘導しました。

攻撃者は、公開されている 2 つの手法、AppLocker のホワイトリスト バイパスとスクリプトを使用して、シェルコードを userinit.exe プロセスに挿入しました。悪意のあるペイロードは複数の PowerShell スクリプトに分散されており、その実行を追跡することは困難でした。 PowerShell ペイロードは、個別のスクリプト ファイルとしてディスクに書き込まれるのではなく、レジストリに格納されていました。

図 1 は、悪意のあるマクロからのペイロード実行の段階を示しています。

Stages of payload execution used in this attack
図 1: この攻撃で使用されたペイロード実行の段階
ソーシャル エンジニアリングと Macro-PowerShell レベル 1 の使用法

キャンペーンの標的は、ウェブメールにログインするための指示や州法の提案に関する情報が含まれていると主張する電子メールで Microsoft Word 文書を受け取りました。

標的となったユーザーが悪意のあるドキュメントを開くと、図 2 に示すメッセージが表示され、マクロを有効にするように求められます。

マクロを有効にしてコンテンツを表示するようユーザーに提案するルアー
図 2: マクロを有効にしてコンテンツを表示するようユーザーに提案するルアー
アプリケーション ホワイトリスト スクリプト保護のバイパス (AppLocker)

Microsoft アプリケーションのホワイトリスト ソリューション AppLocker は、不明な実行可能ファイルがシステムで実行されるのを防ぎます。 2016 年 4 月、あるセキュリティ研究者が、多くの AppLocker ポリシーで実行が許可されている正規の Microsoft 実行可能ファイルである regsvr32.exe を使用して、これをバイパスする方法を示しました。 regsvr32.exe 実行可能ファイルを使用して、SCT ファイルの URL を引数として渡すことにより、Windows スクリプト コンポーネント ファイル (SCT ファイル) をダウンロードできます。この手法は、AppLocker の制限を回避し、SCT ファイル内のコードの実行を許可します。

図 3 に示すように、regsvr32.exe を呼び出すマクロ コードに、悪意のある SCT ファイルをホストする URL が渡され、このバイパスの実装が確認されました。

regsv32.exe を介して AppLocker をバイパスする難読化解除後のコマンド
図 3: regsv32.exe を介して AppLocker をバイパスする難読化解除後のコマンド

図 4 は、AppLocker をバイパスするために使用されるコマンド ライン パラメーター全体を示しています。

AppLocker をバイパスするために使用されるコマンド ライン パラメーター
図 4: AppLocker をバイパスするために使用されるコマンド ライン パラメーター

図 5 に示すように、悪意のある SCT ファイルが WScript を呼び出して、エンコードされたコマンドを使用して PowerShell を非表示モードで起動することがわかりました。

エンコードされた PowerShell を起動するコードを含む SCT ファイルの内容
図 5: エンコードされた PowerShell を起動するコードを含む SCT ファイルの内容
SCT のデコード: おとりの起動とステージ 2 の PowerShell

PowerShell コマンドをデコードした後、PowerShell 命令の別の層を観察しました。これは次の 2 つの目的に役立ちました。

1. おとりドキュメントをインターネットからダウンロードし、Start-Process コマンドレットを使用して 2 番目の winword.exe プロセスで開くコードがありました。被害者がマクロを有効にすると、図 6 に示すおとりドキュメントが表示されます。このドキュメントには、スピア フィッシング メールで説明されている内容が含まれています。

おとりがダウンロードされ、被害者の画面で起動された
図 6: おとりがダウンロードされ、被害者の画面で起動される

2. 2 番目の winword.exe プロセスでおとりドキュメントを起動した後、PowerShell スクリプトは、f0921.ps1 という名前の別の PowerShell スクリプトをダウンロードして実行します (図 7 参照)。

おとりおとりドキュメントと第 3 段階のペイロードをダウンロードして実行する PowerShell
図 7: おとりのおとりドキュメントと第 3 段階のペイロードをダウンロードして実行する PowerShell
第 3 段階の PowerShell 永続化

第 3 段階の PowerShell スクリプトは、HKCU: ConsoleFontSecurity レジストリ キーで、エンコードされた PowerShell コマンドを base64 文字列として永続的に構成します。図 8 は、この値をレジストリに書き込むための PowerShell コマンドの一部を示しています。

エンコードされた PowerShell スクリプトでレジストリを設定するコード
図 8: エンコードされた PowerShell スクリプトでレジストリを設定するコード

図 9 は、被害者のシステムに設定されたエンコードされた PowerShell コードを含むレジストリ値を示しています。

エンコードされた PowerShell スクリプトを含むレジストリ値
図 9: エンコードされた PowerShell スクリプトを含むレジストリ値

図 10 は、PowerShell が Start-Process を使用してこのレジストリをデコードし、悪意のあるコードを実行していることを示しています。

レジストリから悪意のあるコンテンツをデコードして実行するコード
図 10: レジストリから悪意のあるコンテンツをデコードして実行するコード

第 3 段階の PowerShell スクリプトは、HKCUCurrentVersionRunSecurityUpdate という名前の別のレジストリ値も構成して、HKCU: ConsoleFontSecurity キーに格納されているエンコードされた PowerShell ペイロードを起動します。図 11 は、これらのアクションのコードを示しています。これにより、ユーザーがシステムにログインしたときに PowerShell ペイロードが実行されます。

PowerShell レジストリの永続性
図 11: PowerShell レジストリの永続性
第 4 段階の PowerShell Inject-LocalShellCode

HKCUConsoleFontSecurity レジストリには、図 12 にデコードされた第 4 段階の PowerShell スクリプトが含まれています。このスクリプトは、PowerSploit から公開されているInject -LocalShellCode PowerShell スクリプトを借用して、シェルコードを挿入します。

シェルコードを挿入するコード
図 12: シェルコードを挿入するコード
シェルコード分析

図 13 に示すように、シェルコードには、1 バイト キー (0xD4) を使用するカスタム XOR ベースの復号化ループがあります。

【必要な画像】

図 13: 復号化ループと復号化されたシェルコードの呼び出し

シェルコードが復号化されて実行されると、図 14 に示すように、Poison Ivy バックドアが userinit.exe に挿入されます。

userinit.exe へのコード インジェクションと Poison Ivy 関連の DAT ファイルへのアクセス試行
図 14: userinit.exe へのコード インジェクションと Poison Ivy 関連の DAT ファイルへのアクセス試行

復号化されたシェルコードでは、Poison Ivy に関連するコンテンツと構成も観察されました。これらのバイトを Poison Ivy の標準構成に関連付けると、次のことがわかります。

  • アクティブなセットアップ – StubPath
  • 暗号化/復号化キー – version2013
  • ミューテックス名 – 20160509

Poison Ivy の構成ダンプを図 15 に示します。

Poison Ivy 構成ダンプ
図 15: Poison Ivy 構成のダンプ
結論

Poison Ivy はしばらく前から脅威であることが証明されていますが、このバックドアの配信メカニズムは、以前に観察されたキャンペーンとは異なる、最近公開された手法を使用しています。 PowerShell と公開されているセキュリティ コントロール バイパスとスクリプトを使用することで、攻撃のほとんどのステップがメモリ内で排他的に実行され、侵害されたホストにフォレンジック アーティファクトがほとんど残りません。

FireEye HX Exploit Guard は、ここで使用されているトリックの影響を受けない動作ベースのソリューションです。悪意のあるマクロが第 1 段階の PowerShell ペイロードを呼び出そうとする攻撃サイクルの初期レベルで、この脅威を検出してブロックします。 HX には、レジストリの永続性、AppLocker のバイパス、およびこの攻撃で使用された PowerShell の悪用の後続段階に関する一般的な検出も含まれています。

 

参考: https ://www.mandiant.com/resources/blog/spear_phishing_techn

Comments

タイトルとURLをコピーしました