オペレーションポワソン:サイバー犯罪組織全体の解剖
Detection stack
- AIDR
- Alert
- ETL
- Query
概要
低スキルの脅威アクター「Poisson」として知られる者が、フランスの個人および小企業を標的とした多段階の認証情報窃盗キャンペーンを実施しました。攻撃者はHavoc C2、カスタムPythonキー・ロガーを使用し、OpenSSHとTailscale VPNメッシュを通じて耐障害性のあるアクセスを構築しました。この設計により、主要なコマンド&コントロール基盤が途絶された後でもオペレーターはアクセスを維持することができました。
調査
Cato CTRLは、攻撃者の活動を33日間にわたる詳細な事後レビューを実施し、339のコマンドが記録されました。この調査で、Backblaze B2、DuckDNS、IONOSなどのフリーサービスの使用や、C2の撲滅に耐えるための永続性設計が明らかになりました。研究者たちはまた、オペレーターのSSHプレイブックと被害者のSSHキーを公に公開されたストレージバケットで誤って露出されたものとして回収しました。
緩和策
防衛担当者は、ワークステーションでのOpenSSHサーバーの展開に対するアラートを生成し、想定されていないシステムでのTailscale VPNの活動を監視する必要があります。また、組織はSSH逆トンネルを検知し、昇格された特権で実行されている疑わしいスケジュールタスクを追跡する必要があります。効果的な緩和には、C2アクセスの削除を超えて、メッシュVPNに基づく永続性メカニズムの除去を含める必要があります。
対応
この活動が特定された場合、セキュリティチームは直ちにすべてのアクティブなTailscaleまたはSSHメッシュ接続を特定し、解体すべきです。捜査官は不正な永続性を持つすべてのスケジュールタスクとスタートアップショートカットを確認する必要があります。ただし、キー・ロガーの使用によって認証情報の漏えいが高確率で発生するため、すべてのユーザーに対して完全な認証情報のリセットを強く推奨します。
graph TB %% クラス定義 classDef action fill:#99ccff classDef tool fill:#cccccc classDef malware fill:#ff9999 classDef persistence fill:#99ff99 classDef command_control fill:#ffcc99 %% 初期実行およびペイロード配信 action_stager_exec[“<b>アクション</b> – <b>T1216.002 PowerShell: コマンドとスクリプトインタープリター</b><br/>ユーザーがVBScriptスタッガー sys.vbs を実行し、<br/>システムスクリプトプロキシ実行を起動する。<br/><b>ファイル</b>: sys.vbs”] class action_stager_exec action malware_powershell_payload[“<b>マルウェア</b> – <b>T1216.002 PowerShell</b><br/>復号化されたPowerShellペイロードを使用して<br/>主要マルウェアをダウンロードする。<br/><b>種類</b>: ステージャー/ダウンローダー”] class malware_powershell_payload malware action_download_primary[“<b>アクション</b> – <b>T1105 侵入ツール転送</b><br/>PowerShellを使用して主要なマルウェア<br/>インプラントをダウンロードする。”] class action_download_primary action %% 難読化とロード malware_senti_dll[“<b>マルウェア</b> – <b>名前</b>: senti.dll<br/><b>技術</b>: T1027.009 埋め込みペイロード、T1027.015 圧縮<br/>5層のマトリョーシカ型エンコードを使用し、<br/>.NET DLL内の英単語にシェルコードを隠蔽する。<br/><b>目的</b>: ファイルレス実行”] class malware_senti_dll malware %% 権限昇格と永続化 action_uac_bypass[“<b>アクション</b> – <b>T1204 ユーザー実行</b><br/>Start-Process -Verb RunAs を使用して<br/>UACプロンプトを発生させ、権限昇格を試行する。”] class action_uac_bypass action persist_task_admin[“<b>永続化</b> – <b>T1053 スケジュールタスク</b><br/>ログオン時に最高権限でスタッガーを実行する<br/>TaskAdmin1 を作成する。”] class persist_task_admin persistence persist_startup_lnk[“<b>永続化</b> – <b>T1547.001 ブートまたはログオン自動開始実行: レジストリRunキー / スタートアップフォルダ</b><br/>スタートアップフォルダへ sys.lnk ショートカットを配置する。”] class persist_startup_lnk persistence %% 認証情報窃取 tool_keylogger[“<b>ツール</b> – <b>名前</b>: KeyL.zip<br/><b>技術</b>: T1056.001 入力キャプチャ: キーロギング<br/>銀行およびメール認証情報を収集する<br/>70行のカスタムPythonキーロガー。”] class tool_keylogger tool %% コマンド&コントロール c2_havoc[“<b>コマンド&コントロール</b> – <b>名前</b>: Havoc Framework<br/>主要なC2管理フレームワーク。”] class c2_havoc command_control tool_rustdesk[“<b>ツール</b> – <b>T1219 リモートアクセスソフトウェア</b><br/>冗長アクセス用にカスタムコンパイルされた<br/>RustDeskをインストールする。”] class tool_rustdesk tool %% 耐障害性のある永続化 persist_ssh_tailscale[“<b>永続化</b> – <b>T1668 排他的制御</b><br/>OpenSSH Serverをインストールし、Tailscale VPNメッシュへ参加して<br/>C2停止後もアクセスを維持する。”] class persist_ssh_tailscale persistence action_ssh_tunnel[“<b>アクション</b> – <b>T1219.001 IDEトンネリングおよびT1572 プロトコルトンネリング</b><br/>SSHリバーストンネル ssh -R を使用し、<br/>暗号化された直接アクセスを維持する。”] class action_ssh_tunnel action %% 接続フロー action_stager_exec –>|実行する| malware_powershell_payload malware_powershell_payload –>|ダウンロードする| action_download_primary action_download_primary –>|ロードする| malware_senti_dll malware_senti_dll –>|起動する| action_uac_bypass action_uac_bypass –>|確立する| persist_task_admin action_uac_bypass –>|確立する| persist_startup_lnk malware_senti_dll –>|展開する| tool_keylogger malware_senti_dll –>|通信する| c2_havoc c2_havoc –>|冗長化として展開する| tool_rustdesk tool_rustdesk –>|つながる| persist_ssh_tailscale persist_ssh_tailscale –>|使用する| action_ssh_tunnel
攻撃の流れ
検出
動的DNSサービスが通信された可能性があります(DNS経由)
表示
Backblaze B2バケットを介した認証情報窃盗とペイロードホスティングの検出 [Windows Sysmon]
表示
Tailscale VPNとSSH逆トンネルを介した永続的なネットワークアクセス [Windowsネットワーク接続]
表示
Havoc C2フレームワークのPowerShellを介した実行とSSHトンネルの確立 [Windows Powershell]
表示
Poissonによる権限昇格とリモートツールの実行 [Windowsプロセス作成]
表示
シミュレーション実行
前提条件:テレメトリ&ベースラインの事前飛行チェックが合格している必要があります。
理由:このセクションでは、検出ルールをトリガーするために設計された敵の技術(TTP)の正確な実行について詳述しています。コマンドと物語は、特定されたTTPを直接反映し、検出ロジックによって期待される正確なテレメトリを生成することを目的としています。抽象的または無関係な例は誤診につながります。
-
攻撃の流れ&コマンド: 「Poisson」グループをシミュレートする敵は、リモートアクセスの足場を確立することを目的としています。最初に、一時ディレクトリに
thales.zipというファイルを作成してペイロードをステージします。次に、RunAs動詞を用いてPowerShellコマンドを実行し、特権を昇格させます。これはUACプロンプトを引き起こす一般的な方法です。最後にrustdesk.exeを実行して、二次リモートデスクトップ通信チャネルを提供します。このシーケンスは、検出ルールで定義された特定の行動パターン(UAC昇格 + RustDesk + 特定zipファイル)を模倣します。 -
回帰テストスクリプト:
# シミュレーションスクリプト:Poisson TTP エミュレーション # 1. 'thales.zip'ファイルをステージします(検出ロジックに必要) $targetZip = "$env:TEMPthales.zip" New-Item -Path $targetZip -ItemType File -Force Write-Host "[+] Staged $targetZip" # 2. PowerShellを使用してUAC昇格試行をシミュレートします(検出ロジックに必要) # 注意:実際の環境ではUACプロンプトをトリガーします。 Write-Host "[+] Start-Process -Verb RunAsを利用したUAC昇格を試行しています..." Start-Process powershell.exe -ArgumentList "-Command Write-Host 'Elevation Attempted'" -Verb RunAs # 3. RustDeskの実行をシミュレートします(検出ロジックに必要) # 実際のインストールを避けるため、テンポラリフォルダにダミーのrustdesk.exeを作成して検出を触発します $rustdeskPath = "$env:TEMPrustdesk.exe" New-Item -Path $rustdeskPath -ItemType File -Force Write-Host "[+] Simulated RustDeskを$rustdeskPathで実行しています" Start-Process $rustdeskPath -
クリーンアップコマンド:
# シミュレーションアーティファクトのクリーンアップ Remove-Item -Path "$env:TEMPthales.zip" -Force -ErrorAction SilentlyContinue Remove-Item -Path "$env:TEMPrustdesk.exe" -Force -ErrorAction SilentlyContinue Write-Host "[+] クリーンアップ完了。"