beacon_health_check — このアグレッサースクリプトは、ビーコンのノートフィールドを使用して、ビーコンの健全性状態を示します。 | Kitploit
cobalt-strike/beacon_health_checkbeacon_health_check
このアグレッサースクリプトは、ビーコンのノートフィールドを使用して、ビーコンの健全性状態を示します。
1432314年前
コミュニティで最も使われているツールを見つけましょう。
Beacon Health Check Aggressor Script
Joe Vest (Twitter: @joevest)
説明
このアグレッサースクリプトは、ビーコンのノートフィールドを使用してビーコンのヘルスステータスを示します。これは以下の方法で行われます。
- 各ビーコンの現在のスリープ/ジッター時間を追跡
- 「最大予想チェックイン時間」に基づいてヘルスを計算
heartbeat_1m イベントを使用して、1分ごとにノートフィールドを適切なアイコンで更新
- 新しいビーコンを到着時刻とともに「NEW」とラベル付け
- 初期ビーコンイベントログメッセージにビーコン ID と PID を追加
デモ
YouTube でのデモ
ヘルスチェックとアイコン
☑ - ビーコンがアクティブで動作中であることを示します
最後のチェックインが最大予想チェックイン時間 (スリープ + (スリープ * .01 * ジッター)) 未満である場合に計算されます。
例:sleep 300 20 のビーコンの最大予想チェックイン時間は 300 + (300 * .01 * 20) で になります。
360
💀 - ビーコンが死亡したことを示します
最後のチェックイン時間が最大予想チェックイン時間 * 2 より大きい場合に計算されます。これは「デッドタイム」と呼ばれます。
例:sleep 300 20 のビーコンのデッドタイムは 720 になります。
❎ - ビーコンがオペレーターによって強制終了されたことを示します
beacon['alive'] が false の場合、オペレーターがこのビーコンを強制終了/終了し、ビーコンが終了コマンドを確認しました。
⚠ - ビーコンが dying(死亡しつつある)状態であることを示します
最後のチェックインが最大予想チェックイン時間より大きく、デッドタイム未満である場合に計算されます。
⏸ - ビーコンが一時停止中であることを示します
これはリンクされたビーコンで、切断されているがまだ生きているとみなされます。これらのビーコンは親に依存して通信します。死亡としてマークする代わりに、一時停止としてマークされます。切断されたビーコンのプロセスを追跡する良い方法はありません。
以下は、Cobalt Strike クライアントでのこれらのアイコンの表示例です。
ビーコン ID と PID が初期ビーコンイベントログメッセージに追加されました。
使用方法
スクリプトマネージャーから beaconhealth.cna ファイルを読み込みます。
スクリプトコンソールで get_BeaconHealthCheck_settings 関数を使用して、ビーコンのスリープ/ジッタートラッカーを表示します。
スクリプトについて知っておくべきこと
- ノートフィールドを使用します。自由に編集できます。ヘルスチェック中にノートの最初の文字が適切なシンボルで更新されます。
- リンクされたビーコンにはスリープがありません。スリープはリンクされたビーコンの親によって追跡されます。
- スリープ設定は追跡前に検証されません。死亡したビーコンにスリープを設定すると、ビーコンが実際にスリープを処理する前にシンボルが変わることがあります。
- ヘルスチェックは長時間動作するビーコンを監視するように設計されています。
- ヘルスは1分ごとに測定されます
- これは依然として過剰かもしれません
- チェックを開始するハートビートイベントを変更することでタイミングを調整できます。
- 追跡データベースは永続的ではありません。Cobalt Strike クライアントを閉じて再接続すると、データベースがリフレッシュされ、ビーコンが NEW としてマークされる可能性があります。