重要なポイント
- REF2754侵入セットは、複数のPEローダー、バックドア、PowerShellランナーを活用します
- SPECTRALVIPERは、PEの読み込みとインジェクション、ファイルのアップロードとダウンロード、ファイルとディレクトリの操作、トークンの偽装機能を提供する、高度に難読化された、これまで公開されていなかったx64バックドアです
- 私たちは、REF2754をベトナムを拠点とする侵入セットに起因させ、Canvas Cyclone/APT32/OceanLotusの脅威アクターと連携しています
前文
Elastic Security Labsは、REF2754数カ月前からベトナムの大手上場企業を標的とした侵入を追跡してきました。 この期間中に、私たちのチームは、国家関連の攻撃者によって組織的に使用されている新しいマルウェアを発見しました。
この調査では、以下について説明します。
- SPECTRALVIPERマルウェア
- P8LOADERマルウェアローダー
- マルウェア「POWERSEAL」
- REF2754のキャンペーンと侵入分析
実行フロー
最初に記録されたイベントは、以前に侵害されたエンドポイントから SMB 経由でドロップされた System サービスによるファイル (C:\Users\Public\Libraries\dbg.config) の作成でした。 攻撃者は、実行中のプロセスからメモリ メタデータを収集するために使用される SysInternals ProcDump ユーティリティの名前を、Windows デバッガ ユーティリティ ( windbg.exe ) に偽装するように変更しました。 攻撃者は、名前が変更された ProcDump アプリケーションに -md フラグを付けて使用することで、悪意のあるコードを含む署名されていない DLL である dbg.config をロードしました。
ProcDump LOLBAS 手法 では、引数に有効なプロセスが必要であることに注意してください。したがって、 winlogon.exe が引数に含まれている間は、有効なプロセスであるために使用されており、ProcDump による収集の対象になっているわけではありません。
署名されていない DLL (dbg.config) DONUTLOADERシェルコードが含まれていて、 それをMicrosoft Remote Session Message Serverのsessionmsg.exeに挿入しようとしました。 DONUTLOADERは、SPECTRALVIPERバックドアをロードするように設定されており、最終的には状況依存のP8LOADERまたはPOWERSEALマルウェアファミリをロードするように設定されていました。 以下は、REF2754侵入セットの実行フローです。
私たちのチームも上記と同様のワークフローを観察しましたが、悪意のある実行をプロキシするための手法は異なります。 1 つの例では、Internet Explorer プログラム ( ExtExport.exe ) を利用して DLL をロードし、別の手法では、正規のアプリケーション( nslookup.exe )を使用して悪意のある DLL ( dnsapi.dll ) をサイドローディングしました。
これらの手法とマルウェアファミリは、REF2754侵入セットを構成しています。
SPECTRALVIPERコード解析
Overview
調査中に、これまで発見されていなかったバックドアマルウェアファミリーが観察され、SPECTRALVIPERと名付けられました。 SPECTRALVIPERは、C ++でコーディングされ、高度に難読化された64ビットWindowsバックドアです。 2つの異なる通信モードで動作し、HTTPまたはWindows名前付きパイプを介してメッセージを受信できます。
分析を通じて、次の機能を特定しました。
- PEローディング/インジェクション :SPECTRALVIPERは、x86アーキテクチャとx64アーキテクチャの両方をサポートする実行可能ファイルをロードおよびインジェクトできます。 この機能により、正当なプロセス内で悪意のあるコードを実行できます。
- トークンの偽装 :マルウェアは、セキュリティトークンを偽装する能力を持っており、昇格された権限を付与し、特定のセキュリティ対策をバイパスします。 これにより、機密性の高いリソースへの不正アクセスや操作が可能になります。
- ファイルのダウンロード/アップロード : SPECTRALVIPERは、侵害されたシステムとの間でファイルをダウンロードおよびアップロードできます。 これにより、攻撃者はデータを盗み出したり、感染したマシンに追加の悪意のあるペイロードを配信したりできます。
- ファイル/ディレクトリの操作 :バックドアは、侵害されたシステム上のファイルとディレクトリを操作することができます。 これには、ファイルやディレクトリの作成、削除、変更、移動が含まれ、攻撃者は被害者のファイルシステムを広範囲に制御できます。
実行フロー
使ってみる
SPECTRALVIPERは、PE実行可能ファイルまたはDLLファイルとしてコンパイルできます。 マルウェアを PE として起動するには、 .\spectralviper.exe を実行するだけで簡単に実行できます。
ただし、マルウェアがDLLである場合、観察されたサンプルのsqlite3などの既知のエクスポートを使用して、正当なライブラリに偽装しようとします。
SPECTRALVIPERのエントリーポイントは、これらのエクスポートに隠されています。 適切なものを見つけるために、PowerShellと rundll-ngを使用してそれらをブルートフォースコールできます。 以下に示すPowerShellコマンドは、マルウェア機能を起動するものが見つかるまで、各SPECTRALVIPERエクスポートを for ループで呼び出します。
for($i=0; $i -lt 20; $i++){.\rundll-ng\rundll64-ng.exe ".\7e35ba39c2c77775b0394712f89679308d1a4577b6e5d0387835ac6c06e556cb.dll" "#$i"}
実行時に、バイナリは HTTP モードまたはパイプ モードのいずれかで動作し、ハードコードされた構成によって決まります。
パイプモード
パイプモードでは、SPECTRALVIPERはハードコードされた名前で名前付きパイプを開き、受信コマンド(この例では \.\pipe\raSeCIR4gg)を待ちます。
この名前付きパイプにはセキュリティ属性がないため、すべてのユーザーがアクセスできます。 これは興味深いことですが、セキュリティで保護されていない名前付きパイプは、この実行モードを中断する方法として、共存する脅威アクター(SPECTRALVIPERオペレーターに既知または知られていない)または防御チームによって追い越される可能性があるためです。
ただし、このパイプと通信するには、特定のプロトコルが必要です。 SPECTRALVIPERは、AESで暗号化された名前付きパイプを介して送信されるコマンドの暗号化と復号化に必要なキーを交換するために 、Diffie-Helman キー交換プロトコル を実装しています。
HTTP mode
HTTPモードでは、マルウェアは n 秒ごとにC2にビーコンを送信し、間隔は 10 秒から 99 秒の範囲でランダムに生成されます。
デバッガーを使用すると、バイナリにハードコーディングされたドメインが含まれている場合は、名前付きパイプの代わりに HTTP チャネルを使用するようにバイナリに強制できます。
以下はHTTPリクエストの例です。
リクエストには、ホストが収集した情報を含む Cookie ヘッダー「 euconsent-v2 」が含まれています。 この情報はRSA1024非対称暗号化を使用して暗号化され、Base64 を使用して base64 でエンコードされます。 以下は、暗号化前のCookieコンテンツの例です。
この例では、最初の値「 H9mktfe2k0ukk64nZjw1ow== 」は、通信データを暗号化するためにサーバーと共有されるランダムに生成されたAESキーであると考えています。
コマンド
SPECTRALVIPERのサンプルを分析しているときに、 33 と 36 のハンドラを含むコマンドハンドラテーブルを発見しました。
次に、識別されたコマンドの一覧を表に示します。
ID | 名前 |
---|---|
2 | ダウンロードファイル |
3 | ファイルをアップロード |
5 | ビーコンインターバルの設定 |
8 | CreateRundll32ProcessAndHollow |
11 | InjectShellcodeInProcess |
12 | CreateProcessAndInjectShellcode |
13 | インジェクションPEInProcess |
14 | CreateProcessAndHollow |
20 | CreateRundll32ProcessWithArgumentAndInjectPE |
81 | StealProcessToken |
82 | 偽装ユーザー |
83 | 自分に戻す |
84 | AdjustPrivileges |
85 | GetCurrentUserName (現在のユーザー名) |
103 | リストファイル |
106 | リスト実行プロセス |
108 | コピーファイル |
109 | 削除ファイル |
110 | CreateDirectory(ディレクトリを作成) |
111 | ムーブファイル |
200 | RunDLLInOwnProcess (英語) |
SPECTRALVIPERとの対話プロセスを高速化するために、通信プロトコルをバイパスし、独自のバックドアをバイナリに注入しました。 このバックドアは、メッセージを受信するとソケットを開き、ハンドラーを呼び出します。
AdjustPrivilegesコマンドが実行されると、プロセスの現在の権限レベルに応じて、マルウェアは次の権限リストを設定しようとします。
防御回避
コードの難読化
バイナリコードは、各関数を初期ロジックをカプセル化するマルチレベルのダミー関数に分割することにより、大幅に難読化されています。 さらに、これらの関数の制御フローも、制御フローのフラット化を使用して難読化されます。 制御フローのフラット化 は、クリーンなプログラム構造を削除し、ループ内にブロックを並べて配置する難読化手法であり、switchステートメントを使用してプログラムのフローを制御します。
次に示すのは、関数が複雑であるにもかかわらず、強調表示されたパラメーター p_a1 が返されるだけの 2 次レベルの ID 関数の例です。
文字列の難読化
SPECTRALVIPERの文字列は、カスタム構造とAES復号化を使用して難読化されます。 キーはハードコードされており (" \x00\x01\x02\x03\x04\x05\x06\x07\x08\x09\x0a\x0b\x0c\x0d\x0e\x0f" )、IV は暗号化された文字列構造に含まれています。
マルウェアをインストルメント化し、そのAES復号化関数を呼び出すことで、文字列を復号化できます。
まとめ
SPECTRALVIPERは、Elastic Security Labsによる侵入分析中に発見されたx64バックドアです。 これは、実行可能ファイルまたは DLL としてコンパイルでき、通常は既知のバイナリ エクスポートを模倣します。
これにより、プロセスの読み込み/挿入、トークンの偽装、およびファイル操作が可能になります。 AES暗号化とDiffie-HellmanまたはRSA1024キー交換を備えた暗号化された通信チャネル(HTTPおよび名前付きパイプ)を利用します。
すべてのサンプルは、同じ難読化ツールを使用して、さまざまなレベルのハードニングで高度に難読化されています。
静的分析と動的分析を通じて収集した情報を使用して、VirusTotalの他のいくつかのサンプルを特定することができました。 上記のデバッグ プロセスを使用して、これらのサンプルの C2 インフラストラクチャも収集することができました。
P8LOADER
Overview
以下で説明するポータブル実行可能ファイル (PE) は、C++ で記述された Windows x64 PE ローダーであり、エクスポートの 1 つである P8exit にちなんで P8LOADER と名付けられています。
ディスカバリ
P8LOADERは、有効なWindowsプロセス RuntimeBroker.exeの実行によって裏付けのないシェルコードアラートが生成されたときに最初に発見されました。 バッキングされていない実行可能セクション ( フローティング コード) は、コードがディスク上のファイルにマップされるときに表示されるような "Image" ではなく "Private" に設定されたコード セクションの種類の結果です。 これらの種類のメモリ領域から始まるスレッドは異常であり、悪意のあるアクティビティの適切な指標です。
バックアップされていない実行可能イベントの詳細については、Joe Desimone による研究出版物「 Hunting in Memory 」を参照してください。
実行フロー
ローダーは、ファイルまたはメモリから PE バイナリを独自のプロセス メモリにロードする機能を持つ 2 つの関数をエクスポートします。
実行する PE は、従来の PE 読み込みアルゴリズム (セクションの読み込み、インポートの解決、再配置の適用) で VirtualAlloc メソッドを使用してメモリに読み込まれます。
次に、PE のエントリ ポイントを開始アドレスとして新しいスレッドが割り当てられます。
最後に、ロードされたPEのSTDOUTハンドルがパイプに置き換えられ、バイナリの出力をローダーロギングシステムにリダイレクトする方法として読み取りパイプスレッドが作成されます。
ロードされた PE 出力をリダイレクトするだけでなく、ローダーは API インターセプト メカニズムを使用して、ロードされたプロセスの特定の API をフックし、それに対する呼び出しをログに記録し、名前付きパイプ (名前としてランダムに生成された UUID 文字列を使用) を介してデータを送信します。
PE のインポート テーブルのフックは、インポート解決時に、最初にインポートされた関数アドレスを独自のスタブに置き換えることによって行われます。
防御回避
文字列の難読化
P8LOADER では、C++ テンプレートベースの難読化手法を使用して、コンパイル時にランダムに選択された一連の異なるアルゴリズムを使用してエラーを不明瞭にし、文字列をデバッグします。
これらの文字列は、ローダーの機能と機能に関する貴重な情報を提供するため、分析を妨げるために難読化されています。
まとめ
P8LOADERは、新しく発見されたx64 Windowsローダーで、ファイルまたはメモリからPEを実行するために使用されます。 このマルウェアは、ロードされたPE出力をロギングシステムにリダイレクトし、PEインポートをログインポート呼び出しにフックすることができます。
POWERSEALコード解析
Overview
この侵入中に、埋め込まれた文字列に基づいてPOWERSEALと呼ばれる軽量の.NET PowerShellランナーが観察されました。 SPECTRALVIPERが正常にデプロイされた後、POWERSEALユーティリティを使用して、提供されたPowerShellスクリプトまたはコマンドを起動します。 このマルウェアは、システムコール( NtWriteVirtualMemory )を利用して防御ソリューション(AMSI / ETW)を回避します。
防御回避
Windows イベント トレーシング (ETW) は、ユーザー モード アプリケーションとカーネル モード ドライバーによって発生したイベントをトレースしてログに記録するメカニズムを提供します。 Anti Malware Scan Interface (AMSI) は、データ、アプリケーション、およびワークロードのマルウェア保護を強化します。 POWERSEALは、これらのテクノロジーをメモリにパッチを適用するために、よく知られた一般に利用可能なバイパスを採用しています。 これにより、成功の可能性が高まり、検出可能なフットプリントが減少します。
たとえば、POWERSEAL は、Microsoft Defender の署名をバイパスするために、 AMSI のフックを解除してバイパスする一般的なアプローチ を採用しています
PowerShell を起動する
POWERSEALの主な機能は、PowerShellを実行することです。 次の POWERSEAL のソース コードでは、POWERSEAL が PowerShell を使用してスクリプトと引数 ( command ) を実行していることがわかります。 スクリプトと引数は脅威アクターによって提供され、環境内では観察されていません。
まとめ
POWERSEALは、さまざまなオープンソースの攻撃的なセキュリティツールから自由に借用した新しい専用のPowerShellランナーであり、防御回避が組み込まれた合理化されたパッケージで攻撃機能を提供します。
キャンペーンと敵対者のモデリング
Overview
REF2754は、ベトナム国内の国家的に重要な大企業に対する継続的なキャンペーンです。 このキャンペーンのマルウェア実行チェーンはDONUTLOADERで開始されますが、これまで報告されていなかったツールを利用し続けます。
- SPECTRALVIPERは、PEの読み込みとインジェクション、ファイルのアップロードとダウンロード、ファイルとディレクトリの操作、トークンの偽装、名前付きパイプとHTTPコマンドと制御をもたらす難読化されたx64バックドアです
- P8LOADER、難読化されたWindows PEローダーにより、攻撃者は被害者のエンドポイント上の一部のログを最小化および難読化することができます。
- POWERSEALは、PowerShellツールを使用する際の防御回避を強化するためにETWおよびAMSIバイパスが組み込まれたPowerShellランナーです
Elastic Security Labsは、このキャンペーンがベトナムの国家関連の脅威によって実行されていると、中程度の確信を持って結論付けています。
被害者学
SPECTRALVIPER YARAシグネチャを使用して、SPECTRALVIPERインプラントに感染した2番目の環境で2つのエンドポイントを特定しました。 この環境については、 2022 年にElasticセキュリティラボの調査で REF4322について説明しました。
被害者REF4322はベトナムを拠点とする金融サービス会社です。 Elasticセキュリティラボが初めてこの被害者と活動グループについて取り上げたのは2022年のことでした。
REF2754被害者は、ベトナムを拠点とする大規模なアグリビジネスであると特定されています。
VirusTotalのさらなる第三者情報によると、この調査の最後に入手可能なYARAルールのレトロハンティングに基づいて、ベトナムを拠点とする被害者が他にもいることが示されています。 「レトロハント」のヒットは合計8回でした。
- すべて手動でスペクトラルバイパーであることが確認されました
- すべてのサンプルのサイズは 1.59MB から 1.77MB でした
- すべてのVirusTotalサンプルは、最初にベトナムから提出されました
一部のサンプルは以前にファーストパーティコレクションで同定されましたが、一部は私たちにとって新しいものでした。
「VT submitter」に頼りすぎると、分析上の制限が生じることに注意してください。 この第三者による報告メカニズムは、循環報告の懸念や、使用されるGEOを変更するVPNの使用、および仮説の不注意な補強の対象となる可能性があります。 この場合、これは明らかに非VN起源のサンプルを見つけようとして使用されましたが、成功しませんでした。
本稿執筆時点では、被害者として知られているのは全員、ベトナム国内に物理的に存在し、主にベトナム国内で事業を行っている大規模な公開企業です。
キャンペーン分析
REF4322環境との重複は、ごく最近、2023年4月20日に発生しました。 これらのエンドポイントの1つは以前にPHOREALインプラントに感染しており、もう1つのエンドポイントはPIPEDANCEに感染していました。
これらのSPECTRALVIPER感染は、名前付きパイプ( \.\pipe\ydZb0bIrT )を介した着信接続を待つように設定されたハードコードされたドメインとは対照的に、パイプモードで設定されました。
このアクティビティは、アクセスの引き継ぎ、またはあるツールから別のツールへのスワップアウトのように見えます。
PIPEDANCEマルウェアの詳細な内訳に興味がある場合は、 以前の調査 をチェックして、今後の予定にご期待ください。
エクスプロイト後の意図した影響の収集は限られていますが、本質的に推測的ですが、マルウェア、インプラント、および技術的能力に基づく動機評価は、初期アクセスの達成、永続性の維持、および情報収集目的のバックドアとしての動作を示しています。
REF4322、REF2754、およびC2に使用されたVirusTotalから収集されたサンプルからのドメインはすべて昨年登録されており、最新のものは2023年4月下旬に登録されています。
ドメイン: | 作成: |
---|---|
stablewindowsapp[.]com | 2022-02-10 |
webmanufacturers[.]com | 2022-06-10 |
トップペーパーサービス[.]コム | 2022-12-15 |
hosting-wordpress-services[.]com | 2023-03-15 |
appointmentmedia[.]com | 2023-04-26 |
これらのドメインに関連付けられた IP の GEO はグローバルに分散されており、Sectigo、Rapid SSL、および Let's Encrypt 証明書を使用します。 さらなるインフラ分析では、登録日以外に注目すべきものは何も発見されず、キャンペーンのタイムボックスが得られます。 最近のappointmentmedia[.]comの場合、このキャンペーンはまだ進行中であり、将来の侵入のために新しいドメインが登録されている可能性があります。
キャンペーンの関連付け
Elastic Security Labsは、REF4322とREF2754の両方の活動グループが、ベトナムの国家関連の脅威によって計画および実行されたキャンペーンを表していると、中程度の確信を持って結論付けています。 私たちの分析によると、この活動グループは、Canvas Cyclone、APT32、およびOCEANLOTUSの脅威グループの以前の報告と重複しています。
上記および以前のレポートで述べたように、REF4322被害者は、企業買収および旧国有企業の資本を管理する金融機関です。
REF2754被害者は、ベトナムの食料生産と流通のサプライチェーンにおいてシステム的に重要な大規模なアグリビジネスです。 進行中の都市化、汚染、COVID-19のパンデミック、気候変動は、ベトナムの食料安全保障にとっての課題となっています。 データポイントとして、2023年3月、ベトナム首相は、2030年までにベトナムの透明性、責任、持続可能性に向けたフードシステム変革に関する国家行動計画 を承認しました 。 その全体的な目標は、生産、加工、流通、消費を含む食料システムを、地域の利点に基づく透明性、責任、持続可能性に向けて変革することです。国家の食料と栄養の安全保障を確保するため。人々の収入と生活水準を向上させるため。自然災害や伝染病を予防し、制御するため。環境を保護し、気候変動に対応するため。そして最後に、2030年までにベトナムと世界の持続可能な開発目標の展開に貢献すること。 これらすべては、食料安全保障が国家政策の重点点であり、REF2754の被害者がベトナムの戦略的目標と交差しているため、脅威アクターにとって魅力的な標的となっていることを浮き彫りにしています。
REF4322とREF2754に対する被害者の全国的な戦略的利益に加えて、両方の被害者は、同様の展開手法、インプラント管理、および命名規則を使用して、DONUTLOADER、P8LOADER、POWERSEAL、およびSPECTRALVIPERマルウェアファミリに感染していました。
REF4322で利用可能な金融取引記録にアクセスできる脅威グループと、REF2754のための国家戦略的な食品安全政策を組み合わせることで、規制当局の報告では得られない管理能力、汚職、外国の影響、または価格操作についての洞察が得られます。
ダイヤモンドモデル
Elasticセキュリティは 、ダイヤモンドモデル を使用して、敵対者、能力、インフラストラクチャ、および侵入の被害者間の高レベルの関係を記述します。 ダイヤモンドモデルは、単一の侵入で最も一般的に使用され、インシデント間の関係を作成する方法としてアクティビティスレッド(セクション8)を活用しますが、敵対者中心(セクション7.1.4)です アプローチは(雑然とした)単一のダイヤモンドを可能にする。
観察された敵対者の戦術と手法
Elasticは、MITRE ATT&CKフレームワークを使用して、企業ネットワークに対してAdvanced Persistent Threatが使用する一般的な戦術、手法、手順を文書化しています。
戦術(Tactics)
戦術は、テクニックまたはサブテクニックの理由を表します。 それは敵の戦術的な目標であり、行動を実行する理由です。
テクニック/サブテクニック(Techniques / Sub Techniques)
テクニックとサブテクニックは、敵がアクションを実行することによって戦術的な目標を達成する方法を表します。
- ホスト情報の収集
- 被害者のネットワーク情報を収集する
- ネットワーク共有の検出
- リモート・システム検出
- ファイルとディレクトリの検出
- プロセス検出
- システム・サービス・ディスカバリー
- システム所有者/ユーザーの検出
- プロセスインジェクション
- マスカレード
- アプリケーション層プロトコル:Webプロトコル
- アクセストークンの操作:トークンの作成と偽装
検知のロジック
予防
この調査出版物で取り上げたすべてのマルウェアは、Elastic Defendに保護機能が含まれています。
ヤラ
Elasticセキュリティは、このアクティビティを識別するためのYARAルールを作成しました。 以下は、SPECTRALVIPER、POWERSEAL、およびP8LOADERを識別するためのYARAルールです
rule Windows_Trojan_SpectralViper_1 {
meta:
author = "Elastic Security"
creation_date = "2023-04-13"
last_modified = "2023-05-26"
os = "Windows"
arch = "x86"
category_type = "Trojan"
family = "SpectralViper"
threat_name = "Windows.Trojan.SpectralViper"
reference_sample = "7e35ba39c2c77775b0394712f89679308d1a4577b6e5d0387835ac6c06e556cb"
license = "Elastic License v2"
strings:
$a1 = { 13 00 8D 58 FF 0F AF D8 F6 C3 01 0F 94 44 24 26 83 FD 0A 0F 9C 44 24 27 4D 89 CE 4C 89 C7 48 89 D3 48 89 CE B8 }
$a2 = { 15 00 8D 58 FF 0F AF D8 F6 C3 01 0F 94 44 24 2E 83 FD 0A 0F 9C 44 24 2F 4D 89 CE 4C 89 C7 48 89 D3 48 89 CE B8 }
$a3 = { 00 8D 68 FF 0F AF E8 40 F6 C5 01 0F 94 44 24 2E 83 FA 0A 0F 9C 44 24 2F 4C 89 CE 4C 89 C7 48 89 CB B8 }
$a4 = { 00 48 89 C6 0F 29 30 0F 29 70 10 0F 29 70 20 0F 29 70 30 0F 29 70 40 0F 29 70 50 48 C7 40 60 00 00 00 00 48 89 C1 E8 }
$a5 = { 41 0F 45 C0 45 84 C9 41 0F 45 C0 EB BA 48 89 4C 24 08 89 D0 EB B1 48 8B 44 24 08 48 83 C4 10 C3 56 57 53 48 83 EC 30 8B 05 }
$a6 = { 00 8D 70 FF 0F AF F0 40 F6 C6 01 0F 94 44 24 25 83 FF 0A 0F 9C 44 24 26 89 D3 48 89 CF 48 }
$a7 = { 48 89 CE 48 89 11 4C 89 41 08 41 0F 10 01 41 0F 10 49 10 41 0F 10 51 20 0F 11 41 10 0F 11 49 20 0F 11 51 30 }
$a8 = { 00 8D 58 FF 0F AF D8 F6 C3 01 0F 94 44 24 22 83 FD 0A 0F 9C 44 24 23 48 89 D6 48 89 CF 4C 8D }
condition:
5 of them
}
rule Windows_Trojan_SpectralViper_2 {
meta:
author = "Elastic Security"
creation_date = "2023-05-10"
last_modified = "2023-05-10"
os = "Windows"
arch = "x86"
category_type = "Trojan"
family = "SpectralViper"
threat_name = "Windows.Trojan.SpectralViper"
reference_sample = "d1c32176b46ce171dbce46493eb3c5312db134b0a3cfa266071555c704e6cff8"
license = "Elastic License v2"
strings:
$a1 = { 18 48 89 4F D8 0F 10 40 20 0F 11 47 E0 0F 10 40 30 0F 11 47 F0 48 8D }
$a2 = { 24 27 48 83 C4 28 5B 5D 5F 5E C3 56 57 53 48 83 EC 20 48 89 CE 48 }
$a3 = { C7 84 C9 0F 45 C7 EB 86 48 8B 44 24 28 48 83 C4 30 5B 5F 5E C3 48 83 }
$s1 = { 40 53 48 83 EC 20 48 8B 01 48 8B D9 48 8B 51 10 48 8B 49 08 FF D0 48 89 43 18 B8 04 00 00 }
$s2 = { 40 53 48 83 EC 20 48 8B 01 48 8B D9 48 8B 49 08 FF D0 48 89 43 10 B8 04 00 00 00 48 83 C4 20 5B }
$s3 = { 48 83 EC 28 4C 8B 41 18 4C 8B C9 48 B8 AB AA AA AA AA AA AA AA 48 F7 61 10 48 8B 49 08 48 C1 EA }
condition:
2 of ($a*) or any of ($s*)
}
rule Windows_Trojan_PowerSeal_1 {
meta:
author = "Elastic Security"
creation_date = "2023-03-16"
last_modified = "2023-05-26"
os = "Windows"
arch = "x86"
category_type = "Trojan"
family = "PowerSeal"
threat_name = "Windows.Trojan.PowerSeal"
license = "Elastic License v2"
strings:
$a1 = "PowerSeal.dll" wide fullword
$a2 = "InvokePs" ascii fullword
$a3 = "amsiInitFailed" wide fullword
$a4 = "is64BitOperatingSystem" ascii fullword
condition:
all of them
}
rule Windows_Trojan_PowerSeal_2 {
meta:
author = "Elastic Security"
creation_date = "2023-05-10"
last_modified = "2023-05-10"
os = "Windows"
arch = "x86"
category_type = "Trojan"
family = "PowerSeal"
threat_name = "Windows.Trojan.PowerSeal"
license = "Elastic License v2"
strings:
$a1 = "[+] Loading PowerSeal"
$a2 = "[!] Failed to exec PowerSeal"
$a3 = "AppDomain: unable to get the name!"
condition:
2 of them
}
rule Windows_Trojan_P8Loader {
meta:
author = "Elastic Security"
creation_date = "2023-04-13"
last_modified = "2023-05-26"
os = "Windows"
arch = "x86"
category_type = "Trojan"
family = "P8Loader"
threat_name = "Windows.Trojan.P8Loader"
license = "Elastic License v2"
strings:
$a1 = "\t[+] Create pipe direct std success\n" fullword
$a2 = "\tPEAddress: %p\n" fullword
$a3 = "\tPESize: %ld\n" fullword
$a4 = "DynamicLoad(%s, %s) %d\n" fullword
$a5 = "LoadLibraryA(%s) FAILED in %s function, line %d" fullword
$a6 = "\t[+] No PE loaded on memory\n" wide fullword
$a7 = "\t[+] PE argument: %ws\n" wide fullword
$a8 = "LoadLibraryA(%s) FAILED in %s function, line %d" fullword
condition:
5 of them
}
参照資料
上記の研究を通じて、以下のことが参照されました。
- https://www.elastic.co/security-labs/hunting-memory
- https://www.elastic.co/security-labs/phoreal-malware-targets-the-southeast-asian-financial-sector
- https://www.elastic.co/security-labs/twice-around-the-dance-floor-with-pipedance
- https://www.microsoft.com/en-us/security/blog/2020/11/30/threat-actor-leverages-coin-miner-techniques-to-stay-under-the-radar-heres-how-to-spot-them/
- https://learn.microsoft.com/en-us/microsoft-365/security/intelligence/microsoft-threat-actor-naming
観測
すべてのオブザーバブルは、ECS形式とSTIX形式の両方で、結合されたzipバンドルで ダウンロード することもできます。
この研究では、次の観測量について議論しました。
Observable | タイプ | 名前 | 参考 |
---|---|---|---|
56d2d05988b6c23232b013b38c49b7a9143c6649d81321e542d19ae46f4a4204 | SHA-256の | - | スペクトラルバイパー 以下の1.dllに関連しています |
d1c32176b46ce171dbce46493eb3c5312db134b0a3cfa266071555c704e6cff8 | SHA-256の | 1.dll | SPECTRALVIPER |
7e35ba39c2c77775b0394712f89679308d1a4577b6e5d0387835ac6c06e556cb | SHA-256の | asdgb.exe | SPECTRALVIPER |
4e3a88cf00e0b4718e7317a37297a185ff35003192e5832f5cf3020c4fc45966 | SHA-256の | Settings.db | SPECTRALVIPER |
7b5e56443812eed76a94077763c46949d1e49cd7de79cde029f1984e0d970644 | SHA-256の | Microsoft.MicrosoftEdge_8wekyb3d8bbwe.pkg | SPECTRALVIPER |
5191fe222010ba7eb589e2ff8771c3a75ea7c7ffc00f0ba3f7d716f12010dd96 | SHA-256の | UpdateConfig.json | SPECTRALVIPER |
4775fc861bc2685ff5ca43535ec346495549a69891f2bf45b1fcd85a0c1f57f7 | SHA-256の | Microsoft.OneDriveUpdatePackage.mca | SPECTRALVIPER |
2482c7ececb23225e090af08feabc8dec8d23fe993306cb1a1f84142b051b621 | SHA-256の | ms-certificates.sst (英語) | SPECTRALVIPER |
stablewindowsapp[.]com | ドメイン | n/a | C2 |
webmanufacturers[.]com | ドメイン | n/a | C2 |
トップペーパーサービス[.]コム | ドメイン | n/a | C2 |
hosting-wordpress-services[.]com | ドメイン | n/a | C2 |
appointmentmedia[.]com | ドメイン | n/a | C2 |