WinorDLL64: 膨大な Lazarus 兵器庫からのバックドア?

WinorDLL64: 膨大な Lazarus 兵器庫からのバックドア?

ソースノード: 1975596

標的とされた地域、および動作とコードの重複は、このツールが悪名高い北朝鮮関連の APT グループによって使用されていることを示唆しています。

ESET の研究者は、 Wslink ダウンローダー これは 2021 年に発見されました。このペイロードは、ファイル名に基づいて WinorDLL64 と名付けられました。 WinorDLL64.dll. ファイル名を持つ Wslink WinorLoaderDLL64.dllは、他のそのようなローダーとは異なり、サーバーとして実行され、受信したモジュールをメモリ内で実行する Windows バイナリ用のローダーです。 言葉遣いが示すように、ローダーは、ペイロードまたは実際のマルウェアを、すでに侵害されているシステムにロードするためのツールとして機能します。 最初の Wslink 侵害ベクトルは特定されていません。

最初は不明だった Wslink ペイロードが、ブログ記事の公開直後に韓国から VirusTotal にアップロードされ、Wslink の一意の名前に基づく YARA ルールの XNUMX つにヒットしました。 WinorDLL64. Wslink に関しては、ESET テレメトリによる検出は、中央ヨーロッパ、北米、および中東でわずかしか確認されていません。

  WinorDLL64 ペイロードはバックドアとして機能し、特に広範なシステム情報を取得し、ファイルの抽出、上書き、削除などのファイル操作手段を提供し、追加のコマンドを実行します。 興味深いことに、Wslink ローダーによって既に確立されている接続を介して通信します。

2021 年には、Wslink が既知の攻撃者のツールであることを示唆するデータは見つかりませんでした。 しかし、ペイロードを広範囲に分析した結果、次のことが判明しました。 WinorDLL64 ターゲット地域に基づく信頼度が低く、動作とコードの両方が既知の Lazarus サンプルと重複している Lazarus APT グループに分類されます。

少なくとも 2009 年から活動しているこの悪名高い北朝鮮同盟グループは、 ソニー・ピクチャーズ エンタテインメントのハッキング そして数千万ドル 2016 年のサイバー強盗 WannaCryptor (別名 WannaCry) は 2017 年に発生し、これに対する破壊的な攻撃の長い歴史があります。 韓国の公共および重要インフラ 少なくとも 2011 年以降。US-CERT と FBI はこのグループを呼び出します。 隠しコブラ.

私たちに基づいて 幅広い知識 このグループの活動と運営について考えると、Lazarus は体系的に組織され、よく準備され、大きなツールセットを利用するいくつかのサブグループで構成される大規模なチームで構成されていると考えています。 昨年、私たちは Lazarus ツールを発見しました を利用した CVE-2021-21551 オランダの航空宇宙企業の従業員とベルギーの政治ジャーナリストを標的とする脆弱性。 これは、脆弱性の悪用として記録された最初のものでした。 このツールと脆弱性が組み合わさって、侵害されたマシン上のすべてのセキュリティ ソリューションの監視が無効になりました。 また、詳細な説明も提供しました。 仮想マシンの構造 Wslink のサンプルで使用されます。

このブログ投稿では、WinorDLL64 が Lazarus に帰属することを説明し、ペイロードの分析を提供します。

ラザロへのリンク

からの Lazarus サンプルと、動作とコードの両方に重複があることを発見しました。 ゴーストシークレット作戦バンクショットインプラント マカフィーによって説明されています。 GhostSecret と Bankshot の両方の記事に記載されているインプラントの説明には、WinorDLL64 との機能の重複が含まれており、サンプル内に一部のコードの重複が見つかりました。 このブログ投稿では、 FE887FCAB66D7D7F79F05E0266C0649F0114BA7C WinorDLL64 と比較するための GhostSecret のサンプル (1BA443FDE984CEE85EBD4D4FA7EB1263A6F1257F)、別段の指定がない限り。

以下の詳細は、Lazarus への帰属の信頼性が低いことを裏付ける事実をまとめたものです。

1.被害者学

  • AhnLab の仲間の研究者は、テレメトリで Wslink の韓国の被害者を確認しました。これは、従来の Lazarus の標的を考慮した適切な指標であり、少数のヒットしか観測されていないことを示しています。

図 1. 報告された韓国の被害者 (mstoned7 は Ahnlab の研究者)

2 マルウェア

  • McAfee によって報告された最新の GhostSecret サンプル (FE887FCAB66D7D7F79F05E0266C0649F0114BA7C) は 2018 年 2018 月のものです。 私たちは 2018 年後半に Wslink の最初のサンプルを発見し、仲間の研究者が XNUMX 年 XNUMX 月にヒットを報告しました。 したがって、これらのサンプルは比較的短い時間間隔で発見されました。
  •   PE リッチ ヘッダー 同じ開発環境と同様の規模のプロジェクトが、他のいくつかの既知の Lazarus サンプルで使用されたことを示しています (例: 70DE783E5D48C6FBB576BC494BAF0634BC304FD6; 8EC9219303953396E1CB7105CDB18ED6C568E962)。 これらの Wslink と Lazarus のサンプルのみをカバーする次のルールを使用して、この重複を見つけました。これは、重みの低い指標です。 私たちはそれらをテストしました VirusTotal のレトロハント そして私たちの内部ファイルコーパス。

rich_signature.length == 80 および
pe.rich_signature.toolid(175, 30319) == 7 および
pe.rich_signature.toolid(155, 30319) == 1 および
pe.rich_signature.toolid(158, 30319) == 10 および
pe.rich_signature.toolid(170, 30319) >= 90 および
pe.rich_signature.toolid(170, 30319) <= 108

このルールは、より読みやすく、VirusTotal で使用される次の表記に変換できます。ここでは、製品のバージョンとビルド ID を確認できます (VS2010 ビルド 30319)、使用されるソース/オブジェクト ファイルの数と種類 ([LTCG C++] ここで、LTCG は Link Time Code Generation を表し、 【ASM】, [ C ])、およびエクスポートの数 (【経験値】) ルールで:

[LTCG C++] VS2010 ビルド 30319 カウント = 7
[EXP] VS2010 ビルド 30319 count=1
[ASM] VS2010 ビルド 30319 count=10
[ C ] VS2010 ビルド 30319 カウント [ 90 .. 108 ]

  • GhostSecret の記事では、「インバウンド コントロール サーバー接続をポート 443 でリッスンする独自のデータ収集およびインプラント インストール コンポーネント」が説明されており、これはさらにサービスとして実行されました。 これは、構成によって異なるポート番号を除いて、Wslink ダウンローダーの動作を正確に説明したものです。 要約すると、実装は異なりますが、どちらも同じ目的を果たします。
  • ローダーは、使用されている商用プロテクターである Oreans の Code Virtualizer によって仮想化されます。 頻繁に ラザロによって。
  • ローダーは、 メモリモジュール モジュールをメモリから直接ロードするためのライブラリ。 このライブラリは、マルウェアによって一般的に使用されることはありませんが、Lazarus や Kimsuky などの北朝鮮関連グループの間で非常に人気があります。
  • 分析中に見つかった WinorDLL64 と GhostSecret の間のコードの重複。 結果と帰属の有意性を表 1 に示します。

表 1. WinorDLL64 と GhostSecret の類似点と、両方が同じ脅威アクターによるものであるという重要性

WinorDLL64 と GhostSecret のその他の類似点 影響
プロセッサ アーキテクチャの取得を担当するコードでのコードの重複 ロー
現在のディレクトリ操作でのコードの重複 ロー
プロセス一覧取得時のコード重複 ロー
ファイル送信時のコード重複 ロー
一覧表示プロセスにおける動作の重複 ロー
現在のディレクトリ操作での動作の重複 ロー
ファイルとディレクトリのリストでの動作の重複 ロー
ボリュームの一覧表示における動作の重複 ロー
ファイルの読み取り/書き込みにおける動作の重複 ロー
プロセスの作成における動作の重複 ロー
ファイルの安全な削除におけるかなりの動作の重複 ロー
プロセスの終了時にかなりの動作オーバーラップ ロー
システム情報の収集におけるかなりの動作の重複 ロー

ファイル送信機能のコードの重複は、図 2 と図 3 で強調表示されています。

図 2. ファイルを送信する GhostSecret

図 3. ファイルを送信する Wslink

テクニカル分析

WinorDLL64 は、広範なシステム情報を取得し、ファイル操作の手段を提供し、追加のコマンドを実行するバックドアとして機能します。 興味深いことに、ローダーによってすでに確立されている TCP 接続を介して通信し、ローダーの機能の一部を使用します。

図 4. Wslink の通信の可視化

バックドアは、XNUMX つのパラメーターを受け入れる名前のないエクスポートを XNUMX つ持つ DLL です。 以前のブログ投稿. この構造体には、TLS コンテキスト (ソケット、キー、IV) と、256 ビット AES-CBC で暗号化されたメッセージを送受信するためのコールバックが含まれており、WinorDLL64 は、確立済みの接続を介してオペレーターとデータを安全に交換できます。

次の事実から、ライブラリが実際に Wslink の一部であると確信できます。

  • 一意の構造は、どこでも期待どおりに使用されます。たとえば、TLS コンテキストやその他の意味のあるパラメータが、期待どおりの順序で正しいコールバックに提供されます。
  • DLLの名前は WinorDLL64.dll Wslinkの名前は WinorLoaderDLL64.dll.

WinorDLL64 はいくつかのコマンドを受け入れます。 図 5 は、コマンドを受信して​​処理するループを示しています。 各コマンドは一意の ID にバインドされ、追加のパラメーターを含む構成を受け入れます。

図 5. バックドアのコマンド受信ループの主要部分

ラベルを付けたコマンド リストを図 6 に示します。

図 6. コマンド リスト

表 2 には、WinorDLL64 コマンドの概要が含まれています。変更された古いカテゴリは、以前に文書化された GhostSecret 機能との関係を示しています。 変更されたカテゴリの重要な変更のみを強調しています。

表 2. バックドア コマンドの概要

カテゴリー コマンドID Functionality 説明
新作 0x03 PowerShell コマンドを実行する WinorDLL64 は、PowerShell インタープリターに、無制限に実行し、標準入力からコマンドを読み取るように指示します。 その後、バックドアは指定されたコマンドをインタープリターに渡し、出力をオペレーターに送信します。
0x09 ディレクトリを圧縮してダウンロードする WinorDLL64 は、指定されたディレクトリを再帰的に反復します。 各ファイルとディレクトリのコンテンツは個別に圧縮され、一時ファイルに書き込まれます。一時ファイルは後でオペレータに送信され、安全に削除されます。
0x0D セッションを切断する 指定されたログオン ユーザーをユーザーのリモート デスクトップ サービス セッションから切断します。 このコマンドは、パラメーターに基づいてさまざまな機能を実行することもできます。
0x0D セッションの一覧表示 被害者のデバイス上のすべてのセッションに関するさまざまな詳細を取得し、オペレーターに送信します。 このコマンドは、パラメーターに基づいてさまざまな機能を実行することもできます。
0x0E 接続時間を測定する Windows API を使用 GetTickCount 指定したホストへの接続に必要な時間を測定します。
変更された 0x01 システム情報を取得する 被害者のシステムに関する包括的な詳細を取得し、オペレーターに送信します。
0x0A ファイルを安全に削除する 指定されたファイルをランダムなデータのブロックで上書きし、各ファイルの名前をランダムな名前に変更し、最後にそれらを XNUMX つずつ安全に削除します。
0x0C プロセスを強制終了する 指定されたパターンおよび/または特定の PID と名前が一致するすべてのプロセスを終了します。
古い 0x02/0x0B プロセスを作成する 現在のユーザーまたは指定されたユーザーとしてプロセスを作成し、オプションでその出力をオペレーターに送信します。
0x05 現在のディレクトリの設定/取得 現在の作業ディレクトリのパスを設定して取得しようとします。
0x06 ボリュームの一覧表示 C: から Z: までのドライブを繰り返し、ドライブの種類とボリューム名を取得します。 このコマンドは、パラメーターに基づいてさまざまな機能を実行することもできます。
0x06 ディレクトリ内のファイルを一覧表示する 指定されたディレクトリ内のファイルを繰り返し処理し、名前、属性などの情報を取得します。このコマンドは、パラメーターに基づいてさまざまな機能を実行することもできます。
0x07 ファイルに書き込む 指定された量のデータをダウンロードして、指定されたファイルに追加します。
0x08 ファイルから読み取る 指定されたファイルが読み取られ、オペレーターに送信されます。
0x0C プロセスの一覧表示 被害者のデバイスで実行中のすべてのプロセスに関する詳細を取得し、さらに現在のプロセスの ID を送信します。

まとめ

Wslink のペイロードは、ネットワーク セッションに特に関心があるため、ファイル操作、追加のコードの実行、および後でラテラル ムーブメントに活用できる基礎となるシステムに関する広範な情報を取得するための手段を提供することに専念しています。 Wslink ローダーは、構成で指定されたポートをリッスンし、追加の接続クライアントにサービスを提供したり、さまざまなペイロードをロードしたりできます。

WinorDLL64 には、開発環境、動作、およびコードにいくつかの Lazarus サンプルとの重複が含まれています。これは、北朝鮮と連携したこの APT グループの膨大な武器からのツールである可能性があることを示しています。

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

IoC

SHA-1 ESET検出名 説明
1BA443FDE984CEE85EBD4D4FA7EB1263A6F1257F Win64/Wslink.A 検出された Wslink ペイロード WinorDll64 のメモリ ダンプ。

MITER ATT&CKテクニック

このテーブルは バージョン12 ATT&CK フレームワークのローダーからのテクニックについては再度言及せず、ペイロードについてのみ言及します。

戦術 ID 名前 説明
リソース開発 T1587.001 機能の開発:マルウェア WinorDLL64 はカスタム ツールです。
実行 T1059.001 コマンドおよびスクリプト インタープリター: PowerShell WinorDLL64 は、任意の PowerShell コマンドを実行できます。
T1106 ネイティブAPI WinorDLL64 は、 作成プロセスW & ユーザーとしてプロセスを作成W API。
防衛回避 T1134.002 アクセストークンの操作:トークンを使用してプロセスを作成する WinorDLL64 は API を呼び出すことができます WTSQueryUserToken & ユーザーとしてプロセスを作成W 偽装されたユーザーの下でプロセスを作成します。
T1070.004 インジケータの削除: ファイルの削除 WinorDLL64 は、任意のファイルを安全に削除できます。
Discovery T1087.001 アカウントの検出: ローカル アカウント WinorDLL64 は、セッションを列挙し、関連するユーザー名とクライアント名などの詳細を一覧表示できます。
T1087.002 アカウントの検出: ドメイン アカウント WinorDLL64 は、セッションを列挙し、関連するドメイン名を一覧表示することができます。
T1083 ファイルとディレクトリの検出 WinorDLL64 は、ファイルとディレクトリの一覧を取得できます。
T1135 ネットワーク共有の検出 WinorDLL64 は、共有ネットワーク ドライブを検出できます。
T1057 プロセスディスカバリー WinorDLL64 は、実行中のプロセスに関する情報を収集できます。
T1012 クエリレジストリ WinorDLL64 は、Windows レジストリを照会してシステム情報を収集できます。
T1082 システム情報の発見 WinorDLL64 は、コンピュータ名、OS と最新のサービス パック バージョン、プロセッサ アーキテクチャ、プロセッサ名、固定ドライブの容量などの情報を取得できます。
T1614 システムロケーション検出 WinorDLL64 は、被害者のデフォルトの国名を取得できます。 GetLocaleInfoW APIです。
T1614.001 システムの場所の検出: システム言語の検出 WinorDLL64 は、 GetLocaleInfoW APIです。
T1016 システムネットワーク構成の検出 WinorDLL64 は、ネットワーク アダプター情報を列挙できます。
T1049 システム ネットワーク接続の検出 WinorDLL64 は、リスニング ポートのリストを収集できます。
T1033 システム所有者/ユーザーの発見 WinorDLL64 は、セッションを列挙し、関連するユーザー、ドメイン、およびクライアント名などの詳細を一覧表示できます。
収集 T1560.002 収集されたデータのアーカイブ:ライブラリを介したアーカイブ WinorDLL64 は、 クイックルズ としょうかん。
T1005 ローカルシステムからのデータ WinorDLL64 は、被害者のデバイスでデータを収集できます。
影響 T1531 アカウント アクセスの削除 WinorDLL64 は、ログオンしているユーザーを指定されたセッションから切断できます。

タイムスタンプ:

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