Joe Vest (Twitter: @joevest)
该攻击脚本利用信标的备注字段来指示信标的健康状态。这是通过以下方式实现的:
heartbeat_1m 用适当的图标更新备注字段计算方式为上次签入时间小于最大预期签入时间 (sleep + (sleep * .01 * jitter))
例如,一个睡眠时间为 sleep 300 20 的信标,其最大预期签入时间为 360,计算方式为 300 + (300 * .01 * 20)。
计算方式为上次签入时间大于最大预期签入时间乘以 2。这被称为“死亡时间”。
例如,一个睡眠时间为 sleep 300 20 的信标,其死亡时间为 720。
如果 beacon['alive'] 为假,则表示操作员已杀死/退出此信标,且信标已确认退出命令。
计算方式为上次签入时间大于最大预期签入时间且小于死亡时间。
这是一个已断开连接但仍被视为活动的链接信标。这些信标依赖父信标进行通信。它们不会被标记为死亡,而是标记为已暂停。目前没有很好的方法来跟踪已断开信标的进程。
以下展示了这些图标在 Cobalt Strike 客户端中的显示效果。

信标 ID 和 PID 已添加到初始信标事件日志消息中。

通过脚本管理器加载 beaconhealth.cna 文件。
在脚本控制台中使用 get_BeaconHealthCheck_settings 函数查看信标的睡眠/抖动追踪器。