デッドグリフで中東の空を捕食するステルスファルコン

デッドグリフで中東の空を捕食するステルスファルコン

ソースノード: 2899203

中東は長年にわたり、高度持続型脅威 (APT) の温床としての評判を維持してきました。 ESET Researchは、この地域に拠点を置く著名な顧客のシステム上で不審なアクティビティを定期的に監視している最中に、Deadglyphと名付けた非常に洗練された未知のバックドアを発見しました。 この名前は、バックドアで見つかったアーティファクト (たとえば、 0xDEADB001、にも示されています REF_Ref111452440h 1
)、ホモの存在と相まってグリフ 攻撃。 私たちの知る限り、これは、これまで文書化されていなかったこのバックドアの初の公開分析であり、顕著な高度さと専門知識を示すグループによって使用されています。 ターゲティングと追加の証拠に基づいて、Deadglyph は Stealth Falcon APT グループによるものであると確信しています。

Deadglyph のアーキテクチャは次のもので構成されているため、独特です。 連携コンポーネント - 64 つはネイティブ xXNUMX バイナリ、もう XNUMX つは .NET アセンブリです。 マルウェアは通常、そのコンポーネントに XNUMX つのプログラミング言語のみを使用するため、この組み合わせは異例です。 この違いは、これら XNUMX つのコンポーネントが別々に開発されていると同時に、それらが使用する異なるプログラミング言語の独自の機能も活用していることを示している可能性があります。 混合コードはナビゲートやデバッグがより困難になるため、異なる言語を利用して分析を妨げる可能性もあります。

従来のバックドア コマンドはバックドア バイナリには実装されていません。 代わりに、追加モジュールの形式でコマンド アンド コントロール (C&C) サーバーから動的に受信されます。 このバックドアには、検出を回避するための多くの機能も備えています。

このブログ投稿では、Deadglyph を詳しく調べ、このバックドア、その目的、および入手したいくつかの追加コンポーネントの技術分析を提供します。 Deadglyph に関する調査結果も、 LABScon 2023 会議。

ブログ投稿の要点:

  • ESET Research は、Deadglyph と名付けた、珍しいアーキテクチャを備えた洗練されたバックドアを発見しました。
  • 主要コンポーネントは、マシン固有のキーを使用して暗号化されます。
  • 従来のバックドア コマンドは、C&C サーバーから受信した追加モジュールを介して実装されます。
  • 多くのモジュールのうち、プロセス クリエーター、ファイル リーダー、情報コレクターの XNUMX つを取得しました。
  • Deadglyph は Stealth Falcon グループのものであると考えられます。
  • さらに、関連するシェルコード ダウンローダーも見つかりました。 Deadglyph のインストールに使用される可能性があると考えられます。

分析された侵入の被害者は、スパイ目的で侵害された中東の政府機関です。 VirusTotal で見つかった関連サンプルも、この地域、特にカタールからファイル スキャン プラットフォームにアップロードされました。 対象地域は地図上に次のように表示されます。 REF_Ref143614671h フィギュア 1
.

デッドグリフフィギュア_01
図 1. Deadglyph の被害者。 関連サンプルはカタールから VirusTotal にアップロードされました (濃い色)

Stealth Falcon (Project Raven または FruityArmor としても知られる) は、アラブ首長国連邦に関連する脅威グループです。 MITREによると。 2012 年から活動を開始したステルス ファルコンは、中東の政治活動家、ジャーナリスト、反体制派を標的にすることで知られています。 最初に発見され、説明されたのは、 シチズンラボを出版した、 分析 2016 年のスパイウェア攻撃キャンペーンの様子。

2019年XNUMX月にロイター通信が発表した。 調査報告書 元 NSA 工作員を雇用し、ステルス ファルコンと同じ種類の標的を狙っているとされるプロジェクト、プロジェクト レイブンについて。 同じ標的と攻撃に言及したこれら XNUMX つの報告書に基づいて、アムネスティ・インターナショナルは 締結しました (に示されている REF_Ref144978712h フィギュア 2
) ステルス ファルコンとプロジェクト レイヴンは実際には同じグループであるということです。

デッドグリフ 図 2
図 2. Claudio Guarnieri が Stealth Falcon を Project Raven に接続

私たちは2019年XNUMX月に、 公開された研究 Stealth Falcon によるものと思われる、異常な手法を使用したバックドアで、 バックグラウンドインテリジェント転送サービス、C&C通信用。 私たちはここで、ステルス ファルコンのスパイ活動ツールセットにおそらく最も新しく追加されたものについての詳細な分析の結果を明らかにします。

デッドグリフ バックドア

Deadglyph の読み込みチェーンは、図に示すように複数のコンポーネントで構成されています。 REF_Ref144978760h フィギュア 3
。 最初のコンポーネントはレジストリ シェルコード ローダーで、レジストリからシェルコードをロードします。 この抽出されたシェルコードは、バックドアのネイティブ x64 部分、つまりエグゼキュータをロードします。 その後、Executor はバックドアの .NET 部分、つまり Orchestrator をロードします。 特に、システムのディスク上にファイルとして存在する唯一のコンポーネントは、ダイナミック リンク ライブラリ (DLL) の形式である初期コンポーネントです。 残りのコンポーネントは暗号化され、バイナリ レジストリ値内に保存されます。

デッドグリフフィギュア_02
図 3. Deadglyph ロード チェーン コンポーネント

最初の侵害ベクトルの正確な方法はまだ決定されていませんが、インストーラー コンポーネントがさらなるコンポーネントの展開とシステム内での永続性の確立に関与しているのではないかと考えられます。

このセクションの残りの部分では、各コンポーネントを分析します。

レジストリシェルコードローダー

Deadglyph の最初のコンポーネントは、単一のエクスポートを含む小さな DLL です。 1。 このコンポーネントは次を使用して永続化されます Windows Management Instrumentation (WMI) イベント サブスクリプション レジストリ シェルコード ローダーとして機能します。 コマンドライン経由で実行されます rundll32 C:WINDOWSSystem32pbrtl.dll,#1.

レジストリ シェルコード ローダーは、RC4 を使用して、Windows レジストリ内に保存されている暗号化されたシェルコードへのパスを復号化することで動作を開始します。 このパスは被害者ごとに一意であると思われます。 ここで分析したケースでは、レジストリ パスは次のとおりでした。

SoftwareClassesCLSID{5abc7f42-1112-5099-b082-ce8d65ba0c47}cAbRGHLg

ルート レジストリ キーは次のいずれかです hklm or フク、現在のプロセスが昇格された特権で実行されているかどうかに応じて異なります。 同じロジックが他のコンポーネントにも見られます。

これに続いて、ローダーは、 未加工の SMBIOS ファームウェア テーブル。 このキーを使用して、シェルコードをロード、復号化してから実行します。 このキー導出アプローチでは、ローダーが別のコンピューターで実行された場合に適切な復号化が行われないことが保証されることを強調することが重要です。

興味深いことに、ローダーはその中のフラグによって構成することもできます。 .data セクションでは、マシン固有のキーではなく、ハードコーディングされたキーを使用してシェルコードを復号化します。

Microsoft Corporation を模倣したホモグリフ攻撃を発見しました。 バージョン情報 このおよび他の PE コンポーネントのリソース。 この方法では、元の文字と視覚的には似ていますが、この場合は同一ではない別個の Unicode 文字、特にギリシャ大文字の San (U+03FA、Ϻ) とキリル小文字の O (U+043E、о) を使用します。 ϺICRоsоフィートコーポレーションоラティーоn.

レジストリのシェルコード

レジストリ シェルコードは XNUMX つの部分で構成され、復号化ルーチンと暗号化された本体で構成されます。 まず、復号化ルーチンは、暗号化された本文の各バイトを左に XNUMX 回転します (ROL0x01)。 その後、この復号化された本体に制御が移ります。 復号化された本体は PE ローダーと PE ファイルで構成され、後者はバックドアのネイティブ部分を表す Executor です。 このローダーは、関連する PE ファイルの解析とロードを担当します。

執行者

Executor は Deadglyph バックドアのネイティブ x64 部分であり、次のことを行います。

  • その設定をロードし、
  • .NET ランタイムを初期化します。
  • バックドアの埋め込み .NET 部分 (オーケストレーター) をロードします。
  • オーケストレーターのライブラリとして機能します。

まず、 .data セクションは AES 復号化されています。 構成には、暗号化キー、安全性と回避の設定、後続のコンポーネントのエントリ ポイントなどのさまざまなパラメータが含まれます。

初回実行時に、これら XNUMX つのデフォルト構成は Windows レジストリ内に保存され、以降の実行時にそこから読み込まれて、更新の実装が可能になります。 各構成のレジストリ パスは次の形式で生成されます。

{HKCU|HKLM}ソフトウェアクラスCLSID{ }(デフォルト)

は生成された GUID であり、各被害者に固有です。

これに続いて、.NET ランタイムが初期化され、Executor RC4 がオーケストレーターとして知られるバックドアの .NET 部分を復号化します。 オーケストレーターは .rsrc エグゼキューターのセクション。 この構成では、Orchestrator の実行メソッドをエントリ ポイントとして指定します。 さらに、Orchestrator による Executor の機能へのアクセスを容易にするために、独特の構造が提供されています。

Orchestrator を起動すると、Executor は Orchestrator のサポート ライブラリとして機能します。 Executor には多くの興味深い関数が含まれています。 次のセクションでは、Orchestrator およびさらに読み込まれたモジュールによるそれらの使用状況のコンテキストで、それらのいくつかについて説明します。

オーケストレーター

.NET で書かれた Orchestrator は、Deadglyph バックドアの主要コンポーネントです。 このコンポーネントの主な役割には、C&C サーバーとの通信の確立とコマンドの実行が含まれ、多くの場合、Executor の仲介役割によって容易に実行されます。 前述のコンポーネントとは対照的に、Orchestrator は難読化されており、.NET Reactor を使用しています。 内部的には、バックドアは次のように呼ばれます。 エージェント、これは、さまざまなエクスプロイト後のフレームワークにおけるクライアント部分の一般名です。

初期化

Orchestrator はまず、その構成と、それぞれ独自の構成セットを伴う XNUMX つの組み込みモジュールをリソースから読み込みます。 これらのリソースは、 空気を抜く 圧縮されて AES 暗号化されています。 これらは、リソース名に SHA-1 ハッシュ化された ID によって参照されます。 これらのリソースの概要は、次のとおりです。 REF_Ref111452440h 1
.

表 1. オーケストレーターのリソース

 

リソース名

ID(XNUMX進数)

ID (XNUMX進数)

説明

43ed9a3ad74ed7ab74c345a876b6be19039d4c8c

2570286865

0x99337711

オーケストレーターの構成。

3a215912708eab6f56af953d748fbfc38e3bb468

3740250113

0xDEEFB001

ネットワークモジュール。

42fb165bc9cf614996027a9fcb261d65fd513527

3740250369

0xDEEFB101

ネットワークモジュールの構成。

e204cdcf96d9f94f9c19dbe385e635d00caaf49d

3735924737

0xDEADB001

タイマーモジュール。

abd2db754795272c21407efd5080c8a705a7d151

3735924993

0xDEADB101

タイマーモジュールの構成。

Orchestrator と組み込みモジュールの構成は XML 形式で保存されます。 Orchestrator 構成の例を以下に示します。 REF_Ref111452611h
フィギュア 4
.

デッドグリフフィギュア_04
図 4. オーケストレーターの構成

Orchestrator 構成エントリの説明は、次のとおりです。 REF_Ref111452782h 2
.

表 2. オーケストレーター構成エントリー

キー

説明

k


モジュール構成の永続化に使用される AES キー。

a


ネットワークモジュールの初期化メソッド名。

b


不明なネットワーク モジュール関連のフラグ。

c


タイマーモジュールの初期化メソッド名。

d


リソースに対するマシン固有の AES キー (システム UUID) の使用を有効にするフラグ。

p


ネットワークモジュールのリソースID。

t


タイマーモジュールのリソースID。

リソース コンポーネントがロードされた後、個別のタスクを実行するために複数のスレッドが作成されます。 これらのスレッドの XNUMX つは、Executor 内に実装された機能である環境チェックを実行する役割を果たします。 別のスレッドは、C&C サーバーとの定期的な通信の確立に専念し、コマンドの取得を可能にします。 最後に、受信したコマンドを実行し、その後生成された出力を C&C サーバーに送信するために、XNUMX つのスレッドのセットが使用されます。

環境チェック スレッドは、実行中のプロセスを監視して、不要なプロセスを特定します。 このスレッドは、プロセス名の XNUMX つの異なるリストを使用して動作します。 最初のリストにあるプロセスが検出された場合、不要なプロセスが存在しなくなるまで C&C 通信とコマンドの実行が一時停止されます。 XNUMX 番目のリストに一致するプロセスがある場合、バックドアはすぐに終了し、自身をアンインストールします。

分析されたインスタンスではどちらのリストも構成されていないため、通常どのプロセスがチェックされるのかはわかりません。 おそらく、不審なアクティビティを検出してバックドアの発見につながる可能性のある分析ツールを回避することを目的としていると考えられます。

コミュニケーション

オーケストレーターは、C&C 通信にタイマーとネットワークという XNUMX つの組み込みモジュールを利用します。 Orchestrator と同様に、これらのモジュールは .NET Reactor で難読化されています。 両方のモジュールの構成は、Orchestrator によって提供されます。 Orchestrator 内には、モジュールのプリセット構成が含まれています。 オプションで、Orchestrator は更新された構成バージョンをレジストリからロードすることもできます。

{HKCU|HKLM}ソフトウェアクラスCLSID{ }

バックドアには、通信に関する興味深い安全対策が含まれています。 バックドアが、Executor 内で構成された事前定義されたしきい値を超える期間にわたって C&C サーバーとの通信を確立できない場合、自己アンインストール メカニズムがトリガーされます。 この時間しきい値は時間単位で指定され、今回のケースでは XNUMX 時間に設定されました。

このアプローチには XNUMX つの目的があります。 一方で、アクセスできないサーバーに対する冗長なネットワーク要求の生成を防ぎます。 一方で、オペレーターがバックドアの制御を失った場合、その後の検出の可能性は低くなります。

タイマーモジュール

この小さなモジュールは、設定可能な間隔で指定されたコールバックを実行します。 これは、オーケストレーターがネットワーク モジュールと組み合わせて使用​​し、C&C サーバーと定期的に通信します。 ネットワーク ログに検出可能なパターンが作成されるのを防ぐために、実行間隔は、構成で指定されたパーセンテージに基づいてランダム化されます。 分析された例では、間隔は 20 分に設定され、ランダム性のために ±XNUMX% の変動が導入されました。

定期的な通信で検出可能なネットワーク パターンを回避する別の方法は、C&C サーバーに送信されるリクエストの生成にあります。 Executor に実装されたこのメカニズムには、リクエスト内にランダムなバイトで構成されるさまざまな長さのパディングが含まれるため、さまざまなサイズのリクエストが生成されます。

ネットワークモジュール

ネットワーク モジュールは、その構成で指定された C&C サーバーとの通信を実装します。 HTTP(S) POST リクエストを使用してデータを C&C サーバーに送信できます。 特に、プロキシ構成の詳細を取得するためのいくつかのメカニズムを提供します。 この機能は、インターネットに直接アクセスできない環境に重点を置く可能性があることを示唆しています。

復号化された (および美化された) 設定の例を以下に示します。 REF_Ref144978805h フィギュア 5
.

デッドグリフフィギュア_06
図5. ネットワークモジュール構成

構成エントリには、ネットワーク通信に関する詳細 (C&C URL、HTTP ユーザー エージェント、およびオプションでプロキシ構成) が含まれます。

C&C サーバーと通信するときは、暗号化されたコンテンツを含むカスタム バイナリ プロトコルが HTTPS の下で使用されます。

コマンド

オーケストレーターは C&C サーバーからタスクの形式でコマンドを受け取り、実行のためにキューに入れられます。 処理されるタスクは XNUMX 種類あります。

  • オーケストレーターのタスク、
  • 実行タスク、および
  • タスクをアップロードします。

最初の XNUMX 種類は C&C サーバーから受信され、XNUMX 番目はコマンドとエラーの出力をアップロードするために内部で作成されます。

オーケストレーターのタスク

オーケストレーター タスクでは、ネットワーク モジュールとタイマー モジュールの構成を管理したり、保留中のタスクをキャンセルしたりする機能が提供されます。 Orchestrator タスクの概要を以下に示します。 REF_Ref111101783h 3
.

表 3. オーケストレーターのタスク

タイプ

説明

0x80


ネットワークおよびタイマーモジュールの構成を設定します。

0x81


ネットワークおよびタイマーモジュールの構成を取得します。

0x82


タスクをキャンセルします。

0x83


すべてのタスクをキャンセルします。

実行者のタスク

Executor タスクは、バックドアを管理し、追加のモジュールを実行する機能を提供します。 従来のバックドア機能がバイナリ自体に本質的に存在していないことは注目に値します。 代わりに、これらの関数は C&C サーバーから PE ファイルまたはシェルコードの形式で取得されます。 バックドアの可能性の全容は、その真の機能を効果的に解放するこれらの追加モジュールがなければ未知のままです。 モジュールタスクの概要を以下に示します。 REF_Ref117677179h 4
これには、特定されたいくつかのモジュールに関する詳細が含まれています。 同様に、 REF_Ref117677188h 5
に、Executor に関連する管理タスクの概要を示します。

表 4. 実行タスク - モジュール

タイプ

説明

0x??–0x63


未知の

0x64


ファイルリーダー

0x65


未知の

0x66


未知の

0x67


未知の

0x68


未知の

0x69


プロセス作成者

0x6A


未知の

0x6B


未知の

0x6C


情報コレクター

0x6D


未知の

0x6E


未知の

表 5. 実行者のタスク – 管理

タイプ

説明

0x6F-0x76

実装されていません

0x77

Executor 構成を設定する

0x78

Executor 構成の取得

0x79-0x7C

実装されていません

0x7D

アップデイト

0x7E

やめます

0x7F

アンインストールする

Executor 構成を設定するコマンドは、以下を変更できます。

  • 不要なプロセスのリスト、
  • C&C 通信障害の時間しきい値、および
  • 追加モジュールの実行の制限時間。
モジュール

C&C サーバーから XNUMX つの固有のモジュールを取得することができました。これらのモジュールはそれぞれ、異なる Executor タスク タイプに対応しています。以下に示します。 REF_Ref117677179h 4 08D0C9EA79F9BACE118C8200AA004BA90B02000000080000000E0000005F005200650066003100310037003600370037003100370039000000
。 入手可能な情報に基づいて、合計 XNUMX ~ XNUMX 個のモジュールがあると推定されます。 モジュールは実際にはバックドア コマンドであるため、実行する基本操作が XNUMX つあり、オプションで出力を返します。 取得したモジュールは、名前のないエクスポート (通常の) が XNUMX つある DLL です。 1)、必要な API 関数を解決し、main 関数を呼び出します。

モジュールを実行すると、Windows API およびカスタム Executor API を解決できる API 解決機能が提供されます。 Windows API は、API とその DLL の名前から計算された DWORD ハッシュによって参照されます。 小さなハッシュ値 (<41) は、Executor API 関数を参照して特別に処理されます。 Executor API は、モジュールからアクセスできる合計 39 の関数で構成されています。 これらの関数は、次のようなさまざまな操作に関係します。

  • ファイル操作、
  • 暗号化とハッシュ、
  • 圧縮、
  • PE搭載、
  • トークンの偽装にアクセスし、
  • ユーティリティ。

このセクションの残りの部分では、取得したモジュールについて説明します。

プロセス作成者

モジュール 0x69 指定されたコマンド ラインを新しいプロセスとして実行し、結果の出力をオーケストレーターに返します。 プロセスは別のユーザーの下で作成でき、その実行時間を制限できます。 注目すべきは、異常な ジョブAPI このモジュールの機能で使用されます。

このモジュールはコマンドラインで提供されました cmd.exe /c タスクリスト /v.

これは自動的に発行されるアイドル コマンドとして機能し、オペレータは侵害されたコンピュータで何か興味深いことが起こるのを待つと想定しています。

情報コレクター

モジュール 0x6C WMI クエリを通じてコン​​ピューターに関する広範な情報を収集し、それを Orchestrator に返します。 以下に関する情報が収集されます。

  • オペレーティング·システム、
  • ネットワークアダプター、
  • インストールされているソフトウェア、
  • ドライブ、
  • サービス、
  • ドライバー、
  • プロセス
  • ユーザーは、
  • 環境変数、および
  • セキュリティソフト。
ファイルリーダー

モジュール 0x64 指定されたファイルを読み取り、その内容をオーケストレーターに返します。 オプションで、読み取り後にファイルを削除できます。

このモジュールは、被害者の Outlook データ ファイルを取得するために使用されていることが確認されました。

c:ユーザーAppDataLocalMicrosoftOutlookoutlook.ost.

シェルコードダウンローダーによるチェーン

Deadglyph を調査する過程で、カタールから VirusTotal にアップロードされた、期限切れの証明書で署名され、タイムスタンプ付きの副署名のない疑わしい CPL ファイルを発見しました。 詳しく調べると、この CPL ファイルが多段階シェルコード ダウンローダーとして機能し、Deadglyph とコードの類似点を共有していることが明らかになりました。 ローディング チェーンを次のように示します。 REF_Ref143693067h フィギュア 6
.

デッドグリフフィギュア_03
図 6. シェルコード ダウンローダーのロード チェーン

最初の段階として機能する初期形式では、このファイルには 。伍長 拡張子 (コントロール パネル ファイル) であり、ダブルクリック アクションで実行することを目的としています。 この方法で実行すると、埋め込まれたシェルコードは XOR 復号化され、実行中のプロセスがチェックされて、後続の注入に適したホスト プロセスが特定されます。

If avp.exe (Kaspersky エンドポイント セキュリティ プロセス) が実行中である、 %windir%system32UserAccountBroker.exe 使用されている。 それ以外の場合は、デフォルトのブラウザが使用されます。 次に、ホスト プロセスを一時停止状態で作成し、メイン スレッドをハイジャックしてシェルコードを挿入し、スレッドを再開します。

第 XNUMX 段階のシェルコードは XNUMX つの部分で構成されます。 シェルコードの最初の部分は、Deadglyph で採用されているのと同じ独自のハッシュ計算手法を使用して API ハッシュを解決し、プロセス名を含む文字列を復号します。 これは、第 XNUMX 段階のファイルを上書きし、その後消去するというタスクを実行する自己削除スレッドを開始します。 これに続いて、シェルコードは現在アクティブなプロセスを検査し、セキュリティ ソリューションをターゲットにします。

指定されたプロセスのいずれかが検出された場合、シェルコードは優先度が最も低いスリーパー スレッドを作成します (THREAD_PRIORITY_IDLE)、操作を終了するまで 60 秒間アクティブなままにすることができます。 この間隔は、セキュリティ ソリューションで採用されている特定の検出メカニズムを回避するための予防措置として実装されている可能性があります。 最後に、シェルコードはコードの XNUMX 番目の部分の実行を呼び出します。

シェルコードの XNUMX 番目の部分は、ステージ XNUMX で埋め込み PE ファイルをロードし、序数を使用してそのエクスポートを呼び出します。 1.

XNUMX 番目のステージである DLL は、.NET ローダーとして機能し、その中にペイロードが含まれています。 .rsrc のセクションから無料でダウンロードできます。

ペイロードをロードするために、.NET ランタイムが初期化されます。 .NET の初期化中に、Windows を回避することを目的としていると思われる XNUMX つの興味深いテクニックが実行されます。 マルウェア対策スキャン インターフェイス (AMSI) スキャン:

  • .NET ローダーは一時的にフックします。 GetモジュールハンドルW ロードされた状態でインポートする clr.dll、電話をかけながら ICorRuntimeHost::Start。 フックは次の場合に戻り値を改ざんします。 GetモジュールハンドルW で呼び出されます NULL。 セクションのないダミー PE へのポインタを返します。
  • 次に、微妙にパッチを適用します。 AmsiInitialize インポート名文字列 .rdata ロードされたセクション clr.dll 〜へ aMSIi初期化する.

XNUMX 番目の段階は、ConfuserEx で難読化された .NET アセンブリで、シェルコード ダウンローダーとして機能します。 まず、リソースから設定を XML 形式で XOR 復号化します。 抽出された構成の美化されたバージョンが次のように表示されます。 REF_Ref143695453h フィギュア 7
。 構成エントリには、ネットワーク通信およびブロックリストに登録されたプロセスに関連する詳細が含まれます。

デッドグリフフィギュア_05
図 7. シェルコード ダウンローダーの構成

続行する前に、実行中のプロセスを構成のブロックリストに登録されたプロセスのリストと照合してチェックします。 一致が検出された場合、実行は停止します。 分析されたインスタンスでは、このブロックリストが設定されていないことに注意することが重要です。

次に、設定で指定されたパラメータ (URL、ユーザー エージェント、およびオプションでプロキシ) を使用して、HTTP GET リクエストを C&C サーバーに送信し、シェルコードを取得します。 残念ながら、調査中に C&C サーバーからシェルコードを取得できませんでした。 それにもかかわらず、取得されるコンテンツは潜在的に Deadglyph のインストーラーとして機能する可能性があるという仮説を立てています。

これに続いて、取得されたシェルコードが新しく作成されたスレッド内で実行されます。 シェルコード スレッドの実行が終了するまで待機した後、シェルコード ダウンローダーはディレクトリにあるすべてのファイルを削除します。 %WINDIR%ServiceProfilesLocalServiceAppDataLocalTempTfsStoreTfs_DAV.

最後に、20 秒の間隔の後に後続のコマンドを使用して自身の削除を試行し、その後操作を終了して終了します。

cmd.exe の選択 /CY /N /DY /T 20 & Del /f /q

この連鎖では、この自己削除は意味がありません。 これは、シェルコード ダウンローダーが独立した実行可能ファイルとして動作するのではなく、挿入された後にブラウザーまたはシステム プロセス内で実行されるという事実によるものです。 また、最初のファイルは XNUMX 段階目までにすでに削除されています。 この観察は、シェルコード ダウンローダーがこのチェーンの排他的なペイロードではなく、他の操作でも個別に使用される可能性があることを示唆しています。

まとめ

私たちは、Stealth Falcon グループが使用する洗練されたバックドアを発見し、分析しました。これを Deadglyph と名付けました。 これは珍しいアーキテクチャを持ち、そのバックドア機能は追加モジュールの形で C&C によって提供されます。 私たちはこれらのモジュールのうち XNUMX つを入手することに成功し、Deadglyph の全機能の一部を明らかにしました。

特に、Deadglyph は、システム プロセスの継続的な監視やランダム化されたネットワーク パターンの実装など、さまざまな対抗検出メカニズムを備えています。 さらに、バックドアは、特定の場合に検出される可能性を最小限に抑えるために、それ自体をアンインストールすることができます。

さらに、私たちの調査により、VirusTotal 上で魅力的な多段階シェルコード ダウンローダー チェーンが発見されました。 おそらくこのダウンローダー チェーンが Deadglyph のインストール プロセスで利用されているのではないかと考えられます。

WeLiveSecurityで公開されている調査に関するお問い合わせは、次のURLまでお問い合わせください。 Threatintel@eset.com.
ESET Research は、非公開の APT インテリジェンス レポートとデータ フィードを提供します。 本サービスに関するお問い合わせは、 ESET脅威インテリジェンス ページで見やすくするために変数を解析したりすることができます。

IoC

SHA-1

ファイル名

検出

説明

C40F1F46D230A85F702DAA38CFA18D60481EA6C2

pbrtl.dll

Win64/デッドグリフ.A

レジストリ シェルコード ローダー。

740D308565E215EB9B235CC5B720142428F540DB

無し

Win64/デッドグリフ.A

Deadglyph バックドア – 実行者。

1805568D8362A379AF09FD70D3406C6B654F189F

無し

MSIL/デッドグリフ.A

Deadglyph バックドア – オーケストレーター。

9CB373B2643C2B7F93862D2682A0D2150C7AEC7E

無し

MSIL/デッドグリフ.A

オーケストレーター ネットワーク モジュール。

F47CB40F6C2B303308D9D705F8CAD707B9C39FA5

無し

MSIL/デッドグリフ.A

オーケストレーター タイマー モジュール。

3D4D9C9F2A5ACEFF9E45538F5EBE723ACAF83E32

無し

Win64/Deadglyph.A.gen

プロセス作成モジュール。

3D2ACCEA98DBDF95F0543B7C1E8A055020E74960

無し

Win64/デッドグリフ.A

ファイルリーダーモジュール。

4E3018E4FD27587BD1C566930AE24442769D16F0

無し

Win64/デッドグリフ.A

情報収集モジュール。

7F728D490ED6EA64A7644049914A7F2A0E563969

無し

Win64/インジェクター.MD

シェルコード ダウンローダー チェーンの第 XNUMX 段階。

鑑定書

シリアルナンバー

00F0FB1390F5340CD2572451D95DB1D92D

拇印

DB3614DAF58D041F96A5B916281EA0DC97AA0C29

対象CN

RHM株式会社

被験者O

RHM株式会社

被験者L

セントオールバンズ

科目

ハートフォードシャー州

被験者C

GB

メール

rhm@rhmlimited[.]co.uk

から有効

2021-03-16 00:00:00

有効

2022-03-16 23:59:59

C&Cサーバー

IP

ドメイン

最初に見た

コメント

185.25.50[。]60

チェサンドリンクス[.]com

2021-08-25

Deadglyph C&C サーバー。

135.125.78[。]187

easymathpath[.]com

2021-09-11

Deadglyph C&C サーバー。

45.14.227[。]55

ジョイナスヘルス[.]com

2022-05-29

シェルコード ダウンローダー C&C サーバー。

MITER ATT&CKテクニック

このテーブルは バージョン13 MITER ATT&CKフレームワークの

戦術

ID

名前

説明

リソース開発

T1583.001

インフラストラクチャの取得:ドメイン

Stealth Falcon は、C&C サーバーのドメインを登録し、コード署名証明書を取得しています。

T1583.003

インフラストラクチャの取得:仮想プライベートサーバー

Stealth Falcon は、C&C サーバーに VPS ホスティング プロバイダーを使用しました。

T1587.001

機能の開発:マルウェア

Stealth Falcon は、カスタム ローダーや Deadglyph バックドアなどのカスタム マルウェアを開発しました。

T1588.003

機能の取得:コード署名証明書

Stealth Falcon はコード署名証明書を取得しました。

実行

T1047

Windowsの管理の実装

Deadglyph は WMI を使用して読み込みチェーンを実行します。

T1059.003

コマンドおよびスクリプトインタープリター:Windowsコマンドシェル

シェルコードダウンローダーが使用するもの cmd.exeを それ自体を削除します。

T1106

ネイティブAPI

Deadglyph モジュールは次を使用します。 作成プロセスW および ユーザーとしてプロセスを作成W 実行するための API 関数。

T1204.002

ユーザーの実行:悪意のあるファイル

シェルコード ダウンローダー チェーンを使用するには、ユーザーがダブルクリックして実行する必要があります。

固執

T1546.003

イベント トリガーによる実行: Windows Management Instrumentation イベント サブスクリプション

初期の Deadglyph ローダーは、WMI イベント サブスクリプションを使用して永続化されます。

防衛回避

T1027

難読化されたファイルまたは情報

Deadglyph コンポーネントは暗号化されます。 Deadglyph Orchestrator と組み込みモジュールは .NET Reactor で難読化されています。

シェルコード ダウンローダーは ConfuserEx で難読化されています。

T1070.004

インジケータの削除: ファイルの削除

Deadglyph 自体をアンインストールできます。

シェルコード ダウンローダー チェーンはそれ自体を削除し、WebDAV キャッシュ内のファイルを削除します。

T1112

レジストリを変更する

Deadglyph は、その構成と暗号化されたペイロードをレジストリに保存します。

T1134

アクセストークン操作

Deadglyph は別のユーザーになりすますことができます。

T1140

ファイルまたは情報の難読化/デコード

Deadglyph は暗号化された文字列を復号します。

シェルコード ダウンローダー チェーンは、そのコンポーネントと構成を復号化します。

T1218.011

システム バイナリ プロキシの実行: Rundll32

初期の Deadglyph ローダーは次を使用して実行されます。 rundll32.exe.

T1480.001

実行ガードレール: 環境キーイング

Deadglyph は、システム UUID から派生したマシン固有のキーを使用して暗号化されます。

T1562.001

防御を損なう: ツールの無効化または変更

シェルコード ダウンローダーはパッチを適用することで AMSI スキャンを回避します clr.dll 記憶にあります。

T1620

リフレクションコードの読み込み

Deadglyph は、カスタム PE ローダーを使用してモジュールを反射的にロードします。

Discovery

T1007

システムサービスディスカバリ

A Deadglyph モジュールは、WMI クエリを使用してサービスを検出します Win32_Service から * を選択します。

T1012

クエリレジストリ

シェルコード ダウンローダー チェーンは、デフォルトのブラウザーのレジストリを照会します。

T1016

システムネットワーク構成の検出

Deadglyph モジュールは、WMI クエリを使用してネットワーク アダプターを検出します。 SELECT * FROM Win32_NetworkAdapter および SELECT * FROM Win32_NetworkAdapterConfiguration where InterfaceIndex=%d.

T1033

システム所有者/ユーザーの発見

Deadglyph モジュールは WMI クエリを使用してユーザーを検出します SELECT * FROM Win32_UserAccount.

T1057

プロセスディスカバリー

Deadglyph モジュールは、WMI クエリを使用してプロセスを検出します SELECT * FROM Win32_Process.

T1082

システム情報の発見

Deadglyph モジュールは、WMI クエリを使用して、OS バージョン、ドライブ、環境変数、ドライバーなどのシステム情報を検出します。

T1518

ソフトウェアディスカバリー

Deadglyph モジュールは、WMI クエリを使用してインストールされているソフトウェアを検出します SELECT * FROM Win32_Product.

T1518.001

ソフトウェアの発見: セキュリティ ソフトウェアの発見

Deadglyph モジュールは WMI クエリを使用してセキュリティ ソフトウェアを検出します SELECT * FROM AntiVirusProduct, SELECT * FROM AntiSpywareProduct および SELECT * FROM ファイアウォール製品.

シェルコード ダウンローダー チェーンは、実行中のプロセスのセキュリティ ソリューションをチェックします。

収集

T1005

ローカルシステムからのデータ

Deadglyph にはファイルを読み取るためのモジュールがあります。

コマンドおよび制御

T1071.001

アプリケーション層プロトコル:Webプロトコル

Deadglyph とシェルコード ダウンローダーは、HTTP プロトコル経由で C&C サーバーと通信します。

T1090

プロキシ

Deadglyph とシェルコード ダウンローダーは、C&C 通信に HTTP プロキシを使用できます。

T1573.001

暗号化されたチャネル:対称暗号化

Deadglyph は AES を使用して C&C 通信を暗号化します。

exfiltration

T1041

C2チャネルを介した浸透

Deadglyph は、流出に C&C チャネルを使用します。

タイムスタンプ:

より多くの 私たちはセキュリティを生きる