Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

黑客、渗透测试和网络安全工具,武装您的安全武器库!

Kitploit 是一个黑客、网络安全和渗透测试工具的目录。发现最新的项目更新,查找漏洞、分析系统、自动化测试并加强你的安全。

··订阅源·联系·隐私·© 2026 Kitploit

工具目录

分类

查看所有分类
Loading categories
Ledger — 一个攻击者脚本,用于追踪红队演练期间的操作变更。提供完整的审计追踪,记录更改了什么以及仍需要清理的内容。 | Kitploit
工具/GitHubGitHub/shellkraft/ledger
脚本与自动化后渗透利用渗透测试命令与控制实用工具与框架红队事件响应日志分析
GitHubshellkraft/ledger

Ledger

一个攻击者脚本,用于追踪红队演练期间的操作变更。提供完整的审计追踪,记录更改了什么以及仍需要清理的内容。

查看仓库
271523个月前Kitploit 审核通过

最受欢迎

查看全部 →

发现我们社区最常用的工具。

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Ledger — 操作变更追踪攻击者脚本

Ledger 是一个 Cobalt Strike 攻击者脚本,用于追踪每次交战期间所做的操作变更。您启用的每个服务、打开的每个防火墙规则、创建的每个账户或修改的每个注册表项,都会被记录并附有风险评分、操作者归属和清理状态。在交战结束时,您将获得一份完整的审计追踪,显示哪些内容已被更改,哪些仍需清理。


为何需要

红队交战会留下痕迹。服务被启用,账户被创建,防火墙规则被打开,注册表项被修改。如果没有结构化的日志,这些很容易被遗忘——尤其是在长时间交战或多个操作者同时工作时。

Ledger 为您提供一个运行日志,包含:

  • 每条记录及每台主机的风险评分
  • 清理追踪,确保无遗漏
  • 通过 Cobalt Strike 事件日志实现的按操作者归属
  • 导出为 JSON 或纯文本,用于事后报告
  • 当未清理的变更仍挂起时,自动发出死信标警告

安装

  1. 将 ledger.cna 复制到您的 Cobalt Strike 脚本目录中。
  2. 在菜单栏中:Cobalt Strike → 脚本管理器 → 加载 → 选择 ledger.cna。
  3. 菜单栏中将出现一个 Ledger 菜单。
  4. 现在,每个信标控制台中都可以使用 dirty 别名。

用法

所有命令均通过信标控制台使用 dirty 别名运行。


记录变更(不执行)

root@kitploit:~
dirty <CATEGORY> <command> [comment] [score]

comment 和 score 可选。如果省略,则根据类别使用合理的默认值。

root@kitploit:~
dirty RPC "sql-enablerpc lon-db-1 lon-db-2"
dirty DEFENDER "add-exclusion C:\windows\temp" "Payload staging" 8
dirty GROUP "net group 'Domain Admins' svc_backup /add /domain"
dirty USER "net user backdoor P@ssw0rd! /add"
dirty SCHEDULED_TASK "schtasks /create /tn updater /tr C:\temp\beacon.exe /sc onlogon"
image

一步执行并记录

root@kitploit:~
dirty exec <CATEGORY> <command> [comment] [score]

记录变更并立即在信标上执行该命令——一步完成,无需两步。

root@kitploit:~
dirty exec RPC "sql-enablerpc lon-db-1 lon-db-2"
dirty exec USER "net user backdoor P@ssw0rd! /add"
dirty exec DEFENDER "sc config WinDefend start= disabled"
dirty exec FIREWALL "netsh advfirewall set allprofiles state off"

dirty exec 的限制

dirty exec 内部使用 brun,它直接执行二进制文件,而不使用 cmd.exe /c 包装。这意味着:

  • 适用于真正的可执行文件:net、sc、reg、nltest、whoami、ipconfig 等。
  • 不适用于信标内置命令:sleep、cd、ls、pwd、download、upload、execute-assembly、inject 等。对于这些命令,请正常运行信标命令,并单独使用 dirty <CATEGORY> <command> 进行记录。
  • 不适用于需要 cmd.exe 的 shell 内置命令:dir、echo、set、type、管道(|)、重定向(>)等。请使用 dirty CATEGORY "shell <command>" 手动记录这些命令。
  • 从其他 .cna 文件加载的自定义 BOF 别名无法通过 dirty exec 正确调度。

查看日志

root@kitploit:~
dirty show
dirty show DEFENDER
dirty show DESKTOP-ABC123

显示所有记录的条目。可选过滤器会匹配命令、注释、类别、主机名和用户名。

image

评分摘要

root@kitploit:~
dirty score

显示每台主机的风险摘要,包括总分、待清理计数和可视化条形图。主机按分数从高到低排序。


将条目标记为已清理

root@kitploit:~
dirty clean <id>
dirty clean all
dirty clean host <hostname>

主机名匹配不区分大小写,并支持部分匹配——DESKTOP 可匹配 DESKTOP-FGN4LPG。


导出

root@kitploit:~
dirty export text
dirty export json
dirty export text DEFENDER
dirty export json DESKTOP-ABC

导出内容将写入包含 ledger.cna 的目录,并在顶部显示主机分数摘要,随后是完整变更日志。Ledger 菜单栏按钮可直接触发未过滤的导出。


帮助

root@kitploit:~
dirty help

类别与默认分数

类别默认分数默认注释
REGISTRY2注册表已修改
FIREWALL3防火墙规则已修改
SERVICE3服务配置已更改
RPC4RPC 已修改
WINRM4WinRM 已启用
SMB4SMB 签名已更改
DCOM4DCOM 已启用
RDP5RDP 已启用
SCHEDULED_TASK5计划任务已创建
DEFENDER6Defender 配置已更改
GROUP6组成员身份已修改
USER7用户账户已修改
ACL8ACL 已修改
SPN8SPN 已修改
DOMAIN_ADMIN9域管理员组已修改
TRUST9信任关系已修改

任何未列出的类别也会被接受,默认分数为 3。


风险阈值

每条记录

标签分数
低< 5
中5 – 7
高8+

合计(每台主机)

标签分数
低< 5
中5 – 9
高10 – 14
严重15+

死信标警告

当信标变为死信标且仍有未清理的 Ledger 条目挂起时,Ledger 会向所有已连接操作者可见的 Cobalt Strike 事件日志中发出红色警告:

image

每个信标仅触发一次警告,如果信标恢复并再次签入,警告会自动重置。链接(子)信标和由操作者明确终止的信标会被排除。警告时间会随信标的休眠设置而缩放——60 秒休眠约 2 分钟后触发,5 分钟休眠约 10 分钟后触发。


导出格式

文本

root@kitploit:~
LEDGER EXPORT -- 2026-05-21 19:50:34

HOST SCORE SUMMARY
================================================================================
主机  风险  分数  待清理  条形图
--------------------------------------------------------------------------------
DESKTOP-RLP4KBJ (sally *)  严重  +21  2 pend  [##########]
DESKTOP-FGN4LPG (Admin)     严重  +18  0 pend  [#########]
================================================================================

CHANGE LOG
================================================================================

[000002] 2026-05-21 19:22:56 | neo | GROUP | 中 +6 | 已清理
  主机          : DESKTOP-FGN4LPG
  用户          : Admin
  进程          : HTTP Listener_x64.exe (PID 4716)
  命令          : net group 'Domain Admins' svc_backup /add /domain
  注释          : 将 svc_backup 添加到 Domain Admins 以进行横向移动

JSON

root@kitploit:~
{
  "exported":    "2026-05-21 19:53:19",
  "host_summary": [
    {
      "host":    "DESKTOP-FGN4LPG (Admin)",
      "risk":    "CRITICAL",
      "score":   18,
      "pending": 0
    },
    {
      "host":    "DESKTOP-RLP4KBJ (sally *)",
      "risk":    "CRITICAL",
      "score":   21,
      "pending": 2
    }
  ],
  "entries": [
  {
    "id":             "000004",
    "timestamp":      "2026-05-21 19:31:36",
    "operator":       "neo",
    "beacon_id":      "1607712302",
    "computer":       "DESKTOP-RLP4KBJ",
    "beacon_user":    "sally *",
    "beacon_process": "HTTP Listener_x64.exe (PID 11540)",
    "functionality":  "USER",
    "command":        "net user svc_backup P@ssw0rd123! /add /domain",
    "comment":        "Created service account for persistence",
    "score":          7,
    "risk":           "MEDIUM",
    "cleaned":        false
  }

多操作者用法

每条记录和清理的条目都会通过 elog 广播到 Cobalt Strike 事件日志,因此所有已连接的操作者都能实时看到彼此的更改。日志在会话期间存在于团队服务器内存中。


注意事项

  • 日志仅在内存中,不会在团队服务器重启后持久保存。请在关闭前导出。
  • 导出内容将写入包含 ledger.cna 的目录。
  • 支持分数覆盖:dirty USER "net user ..." "my comment" 9 —— 最后一个参数设置显式分数。
  • 如果脚本被加载两次(例如一次通过脚本管理器,一次手动加载),会注册重复的事件处理程序。如果看到输出重复,请检查脚本管理器。
下载工具