全 Rust 实现的 Active Directory 利用框架:LDAP/SMB/Kerberos 枚举、攻击图路径查找、Kerberoasting、NTLM 中继、票据伪造、DCSync 以及报告生成,全部集成于一个静态二进制文件中。
Active Directory 利用框架。
所有王座终将倾覆。Overthrone 确保如此。
这是什么 · 安装 · 字典 · 命令 · 向导用法 · 架构 · 功能 · 示例 · 常见问题
你知道在中世纪战争中,攻下一座城堡需要攻城工程师、侦察兵、骑兵、弓箭手、坑道兵,以及一个从内部打开城门的人吗?Active Directory 渗透测试正是如此,只不过城堡变成了财富 500 强公司,城门变成了配置错误的组策略,而那个“内部的人”是一个自 Windows Server 2008 还被认为很现代以来就从未轮换过、密码为 Password123! 的服务账户。
Overthrone 是一个全谱系 AD 红队框架,处理整个杀伤链——从“我有网络访问权限和一个梦想”到“我拥有这片林中每一个域,这里有一份 47 页的 PDF 可以证明。”用 Rust 构建,因为 C2 框架也值得拥有内存安全,也因为在内网行动中调试 use-after-free 漏洞正是你产生信任问题(既包括对 Active Directory 的信任,也包括个人的信任)的方式。
这不是一个扫描器。这不是一个“用 Rust 重写 Mimikatz”的工具。这不是另一个你稍微一碰就崩溃的 Python 封装。这是完整的攻城引擎。一个二进制文件。极少的运行时依赖*。所有的悔恨(留给蓝队)。
简写: 每个命令都可以用
overthrone和ovt执行。因为人生苦短,能用 3 个字符搞定的事何必敲 10 个。ovt wizard=overthrone wizard。对 Active Directory 犯下同样的战争罪行,更少的按键。
⚠️ 弃用通知: 早期测试版中的
ovt auto-pwn命令已被移除,由ovt wizard取代。如果你的肌肉记忆还在敲auto-pwn,别担心——你的手指会适应的。向导正是 auto-pwn 长大后一直想成为的样子:交互式、可恢复、Q-learning 优化,并且支持按阶段暂停/批准,这样你就不会在演示期间不小心执行 DCSync。
*该二进制文件静态链接了约 35 个 Rust crate(Tokio、ldap3、kerberos_asn1 等)——没有 Python,没有 .NET,没有 JVM。SMB 文件操作、smbclient 风格的 shell(ovt smb shell)、RPC(ovt rpc、rpcclient 命令集)以及远程执行全部运行在内置的纯 Rust SMB2 客户端上;外部 smbclient 二进制仅在主机上内置客户端无法协商时作为最后手段的回退方案使用。
sequenceDiagram
participant Op as Operator
participant CLI as overthrone-cli
participant PILOT as overthrone-pilot
participant REAPER as overthrone-reaper
participant HUNTER as overthrone-hunter
participant FORGE as overthrone-forge
participant CORE as overthrone-core
participant DC as Domain Controller
Note over Op,DC: Phase 0: Initial Access (T1078)
Op->>CLI: ovt enum / scan / kerberos commands
CLI->>CORE: TCP/TLS connect to target
Note over CLI,DC: Phase 1: Discovery & Enumeration (T1087, T1069, T1482)
CLI->>REAPER: enum_all(target, domain, credentials)
REAPER->>CORE: LDAP bind + paginated search
CORE->>DC: LDAP query (port 389/636)
DC-->>CORE: RootDSE + namingContexts
CORE->>DC: Search base DN: users, groups, computers
DC-->>CORE: LDAP entries with attributes
CORE-->>REAPER: Structured ADData
Note over REAPER: Enrich: LAPS v1/v2 decrypt, GPP decrypt,<br/>Snaffler share crawl, ADCS template scan
REAPER-->>CLI: ADData { users, groups, trusts, ACLs,<br/>GPOs, LAPS, SPNs, delegations }
Note over CLI,DC: Phase 2: Attack Graph Analysis (TA0007)
CLI->>CORE: build_graph(ADData)
CORE->>CORE: petgraph DiGraph construction<br/>30+ edge types with weighted costs
CORE->>CORE: Reverse Dijkstra from Domain Admins
CORE-->>CLI: AttackGraph + shortest paths to goal
Note over CLI: Output: Path from current position to DA,<br/>broken down hop-by-hop with technique
Note over CLI,DC: Phase 3: Credential Access (T1558, T1110)
CLI->>HUNTER: kerberoast(SPN accounts)
HUNTER->>CORE: TGS-REQ for each SPN
CORE->>DC: TCP:88 → Kerberos TGS exchange
DC-->>CORE: TGS-REP with encrypted ticket
CORE-->>HUNTER: ServiceTicket hash (etype 17/18/23)
HUNTER->>HUNTER: Offline crack: embedded wordlist +<br/>rayon parallel + rule engine
HUNTER-->>CLI: CrackedCredentials
CLI->>HUNTER: password_spray(userlist, candidates)
HUNTER->>CORE: Kerberos AS-REQ for each user
CORE->>DC: pre-auth attempt (TCP:88)
DC-->>CORE: KDC error or success
CORE-->>HUNTER: SprayResult { valid, locked, exists }
HUNTER-->>CLI: SprayResults with lockout-safe delay
Note over CLI,DC: Phase 4: Lateral Movement (T1550, T1021)
CLI->>CORE: exec(target, command, method)
CORE->>DC: Method: PsExec → SVCCTL named pipe
CORE->>DC: Method: SmbExec → SCM over SMB
CORE->>DC: Method: WinRM → WSMan HTTP/5985
CORE->>DC: Method: WmiExec → DCOM (Windows only)
DC-->>CORE: Command output (stdout/stderr)
CORE-->>CLI: ExecResult { output, pid, exit_code }