BlackToad、自動化ITペイロードでネットワーク操作を利用
Detection stack
- AIDR
- Alert
- ETL
- Query
概要
JUMPSECは、カスタムAutoItクリプターに隠されたRemcos RATペイロードを届けるフィッシングキャンペーンを発見しました。感染チェーンはVBSスクリプトを使用して実行 ipconfig /release の後に ipconfig /renewを行い、検出回避のためにネットワーク接続を一時的に妨害します。研究者は、このキャンペーンをナイジェリアのe犯罪エコシステムに関連付け、インフラストラクチャはモバイルISP接続の背後でホストされた動的DNSドメインに依存しています。
調査
調査は悪意のあるメールを追跡し、埋め込まれたWinRAR自己解凍アーカイブを解凍し、偽装されたAutoItインタープリターを起動するVBSローダーを特定しました。AutoItスクリプトはRemcosインプラントを復号化して実行し、回収された設定はコマンドアンドコントロールドメイン、ミューテックス値、および永続性Runキーを露出しました。研究者は、3つの動的DNSドメインとナイジェリアのIPアドレス群にインフラストラクチャをマッピングしました。
緩和策
組織は識別された動的DNSドメインおよび関連するIPレンジをブロックし、疑わしい ipconfig /release and ipconfig /renew シーケンスを監視し、AutoItまたはVBSスクリプトが生成する cmd.exeを検出すべきです。誤解を招く二重拡張子を使用するファイルには強力な実行制御を適用し、 WindowsUpdate のようなレジストリRunエントリは悪用を監視する必要があります。
対応策
この活動が検出された場合、影響を受けた端末を直ちに隔離し、Remcosプロセスを終了し、永続化に使用された悪意のあるRunキーを削除し、資格情報の窃取や後続の活動を完全に法医学的に調査します。ネットワーク停電技術およびキャンペーンに関連した特定のファイル名パターンを検出するように検出内容も更新すべきです。
graph TB %% クラス定義 classDef action fill:#99ccff classDef tool fill:#ffcc99 classDef malware fill:#ff9999 classDef data fill:#ccffcc %% ノード email_phishing[“<b>アクション</b> – <b>T1204.001 ユーザー実行: 悪性リンク</b><br/>被害者は悪意あるMediaFireリンクを含む画像付きメールを受信する。”] class email_phishing action download_payload[“<b>アクション</b> – <b>T1566.001 フィッシング: スピアフィッシング添付ファイル</b><br/>被害者は .pdf.scr に偽装された WinRAR SFX 実行ファイルをダウンロードする。”] class download_payload action file_double_ext[“<b>アクション</b> – <b>T1036.007 マスカレード: 二重拡張子</b><br/>ファイル名 <i>invoice.pdf.scr</i> は .scr 実行ファイルを隠蔽する。”] class file_double_ext action script_vbs[“<b>アクション</b> – <b>T1059.005 コマンドおよびスクリプトインタープリタ: Visual Basic</b><br/>VBS スクリプト (flvs.vbe) が cmd.exe 文字列を構築し、コマンドを実行する。”] class script_vbs action tool_autoi[“<b>ツール</b> – <b>名称</b>: AutoIt インタープリタ (.xls にリネーム)<br/><b>目的</b>: 悪性 AutoIt スクリプトを実行する。”] class tool_autoi tool script_autoi_obf[“<b>アクション</b> – <b>T1059.010 コマンドおよびスクリプトインタープリタ: AutoIt/AutoHotKey</b><br/>高度に難読化された AutoIt スクリプトが実行される。”] class script_autoi_obf action obfusc_junk[“<b>アクション</b> – <b>T1027.016 難読化されたファイルまたは情報: ジャンクコード挿入</b><br/>スクリプトには 88 MB の無意味なコメントブロックが含まれる。”] class obfusc_junk action obfusc_stripped[“<b>アクション</b> – <b>T1027.008 難読化されたファイルまたは情報: ストリップドペイロード</b><br/>ペイロードはカスタム16進エンコードを用いた大量のフィラーデータ内に格納される。”] class obfusc_stripped action malware_remcos[“<b>マルウェア</b> – <b>名称</b>: Remcos RAT<br/><b>機能</b>: リモートアクセスおよび制御。”] class malware_remcos malware c2_dns[“<b>アクション</b> – <b>T1071.004 アプリケーション層プロトコル: DNS</b><br/>暗号化TLS上で Dynamic DNS ホスト名を介して C2 サーバーと通信する。”] class c2_dns action persistence_autostart[“<b>アクション</b> – <b>T1547.014 ブートまたはログオン自動開始実行: Active Setup</b><br/>HKCU\Software\Microsoft\Windows\CurrentVersion\Run\WindowsUpdate レジストリキーを作成する。”] class persistence_autostart action trusted_util[“<b>アクション</b> – <b>T1127 信頼された開発ユーティリティによるプロキシ実行</b><br/>正規の AutoIt インタープリタを信頼されたユーティリティとして利用し、悪性コードを実行する。”] class trusted_util action deobfuscation[“<b>アクション</b> – <b>T1140 ファイルまたは情報の復号/デコード</b><br/>研究者はカスタム16進エンコードされた PE と RC4 暗号化された Remcos 設定を復号する。”] class deobfuscation action %% 接続 email_phishing –>|つながる| download_payload download_payload –>|含む| file_double_ext file_double_ext –>|起動| script_vbs script_vbs –>|読み込む| tool_autoi tool_autoi –>|実行| script_autoi_obf script_autoi_obf –>|含む| obfusc_junk script_autoi_obf –>|含む| obfusc_stripped script_autoi_obf –>|起動| malware_remcos malware_remcos –>|使用| c2_dns malware_remcos –>|確立| persistence_autostart tool_autoi –>|利用される| trusted_util obfusc_junk –>|支援| deobfuscation obfusc_stripped –>|支援| deobfuscation
攻撃フロー
検出
可能性のある永続性ポイント [ASEPs – Software/NTUSER Hive] (via registry_event)
表示
接触した可能性のある動的DNSサービス (via dns)
表示
二重拡張子を持つ悪意のある可能性のあるSCRファイル (via cmdline)
表示
IOC(HashSha256) を用いて検出: BlackToad: AutoItペイロードによるネットワーク操作
表示
IOC(HashMd5) を用いて検出: BlackToad: AutoItペイロードによるネットワーク操作
表示
IOC(SourceIP) を用いて検出: BlackToad: AutoItペイロードによるネットワーク操作
表示
IOC(DestinationIP) を用いて検出: BlackToad: AutoItペイロードによるネットワーク操作
表示
BlackToad C2通信検出 [Windowsネットワーク接続]
表示
AutoItペイロードによるBlackToadネットワーク操作 [Windowsプロセス作成]
表示
シミュレーション実行
前提条件: テレメトリー&ベースラインの事前チェックに合格している必要があります。
理論的根拠: このセクションは、検出ルールを引き金にすべく設計された敵技術(TTP)の正確な実行を詳細に示します。コマンドとストーリーは特定されたTTPを直接反映し、検出ロジックが期待する正確なテレメトリーを生成することを目指します。抽象的または無関連な例は誤診を引き起こします。
-
攻撃の概要とコマンド:
- 目標: ハードコードされたポート50240で既知の悪意のあるDDNSドメインの1つを使用してBlackToad RemcosインプラントとC2チャネルを確立します。
- ステップバイステップ:
- 選択した悪意のあるDDNSドメインを解決(
pmitm.ddns.net). - ポート50240で解決されたIPにTCPソケットを開く。
- インプラントの初期ハンドシェイクを模倣する最小の“ハートビート”ペイロードを送信する。
- ファイアウォールがアウトバウンド接続を記録することを確認するために30秒間ソケットを開いたままにする。
- 選択した悪意のあるDDNSドメインを解決(
- アウトバウンド接続は、Sigmaルールの
destination.ipリストおよびdestination.port基準に正確に一致し、検出可能なファイアウォールイベントを生成します。
-
回帰テストスクリプト:
# BlackToad C2通信シミュレーション (PowerShell) $c2Domain = "pmitm.ddns.net" # ルールに記載されたドメインの1つ $c2Port = 50240 try { # ドメインをIPに解決(DNSクエリテレメトリーを追加) $ip = [System.Net.Dns]::GetHostAddresses($c2Domain) | Where-Object { $_.AddressFamily -eq 'InterNetwork' } | Select-Object -First 1 if (-not $ip) { throw "Unable to resolve $c2Domain" } Write-Host "Resolved $c2Domain to $($ip.IPAddressToString). Connecting..." # TCP接続を開く(ファイアウォールのアウトバウンドログを生成) $client = New-Object System.Net.Sockets.TcpClient $client.Connect($ip, $c2Port) # シンプルなハートビート(16進 0x01)を送信 $stream = $client.GetStream() $payload = [byte[]](0x01) $stream.Write($payload, 0, $payload.Length) Write-Host "ハートビート送信しました。30秒間接続を維持します..." Start-Sleep -Seconds 30 $stream.Close() $client.Close() Write-Host "接続が正常に閉じられました。" } catch { Write-Error "シミュレーションに失敗しました: $_" } -
クリーンアップコマンド:
# 残っているソケットが存在する場合は閉じる Get-NetTCPConnection -RemotePort 50240 -State Established | ForEach-Object { Stop-Process -Id $_.OwningProcess -Force } # 任意: 解決されたDDNSエントリを削除するためDNSキャッシュをフラッシュ ipconfig /flushdns Write-Host "クリーンアップ完了。"