4个版本

0.1.3 2024年7月9日
0.1.2 2024年6月27日
0.0.22 2024年6月26日

464认证

Download history 79/week @ 2024-06-08 189/week @ 2024-06-15 406/week @ 2024-06-22 55/week @ 2024-06-29 106/week @ 2024-07-06 6/week @ 2024-07-13

每月400 次下载

AGPL-3.0

160KB
4K SLoC

  ____          _                          _ _ _
 / ___|___ _ __| |__   ___ _ __ ___       | (_) |__
| |   / _ \ '__| '_ \ / _ \ '__/ _ \ _____| | | '_ \
| |__|  __/ |  | |_) |  __/ | | (_) |_____| | | |_) |
 \____\___|_|  |_.__/ \___|_|  \___/      |_|_|_.__/

Crates.io docs.rs Language Rust

Active Directory渗透测试中执行与Kerberos协议相关的多个任务的库。

此仓库从 https://gitlab.com/Zer1i0/cerbero 克隆,并已转换为库格式。我打算添加更多功能/进一步清理代码 -- 请查看下面的 待办事项 部分。

目录

  1. 安装
  2. 函数
  3. 待办事项
  4. 致谢

安装

要在项目中使用此库,您可以通过 cargo add

cargo add cerbero-lib

函数

询问

ask 函数允许从KDC(Active Directory环境中的域控制器)检索Kerberos票据(TGT/TGS)。此外,它还执行使用S4U2Self和S4U2Proxy Kerberos扩展获取票据的请求。

(在此处查看 ask 示例 这里

AsRepRoast

asreproast 函数可用于发现不需要预先认证的用户并检索用于与hashcat或john破解的票据。

(在此处查看 asreproast 示例 这里

Brute

brute 函数通过执行TGT请求以根据KDC响应发现用户凭据。这种暴力破解技术允许您发现

  • 有效的用户名/密码对
  • 有效的用户名
  • 过期的密码
  • 被阻止或禁用的用户

此攻击应谨慎执行,因为在同一用户多次执行错误认证尝试的情况下可能会阻止用户帐户。

(在此处查看 brute 示例 这里

Convert

convert 函数可以将票据文件在 krb(Windows)和 ccache(Linux)格式之间进行转换。

(查看 convert 示例 这里)

制作

craft 函数允许制作金票和银票。

(查看 craft 示例 这里)

哈希

hash 模块包含从用户密码计算 Kerberos 密钥(密码哈希)的函数。

(查看 hash 示例 这里)

Kerberoast

kerberoast 函数可以用来获取一个(可能可破解的)密码哈希,用于已设置 SPN 的帐户。

为了格式化票据的加密部分以便由 hashcat 或 john 破解,你需要提供一个包含用户服务的文件。文件中的每一行必须具有以下格式之一

  • 用户
  • /用户
  • 用户:spn
  • /用户:spn

当没有指定服务 SPN 时,则使用 NT-ENTERPRISE 主。这也可以用于暴力破解有服务的用户。

(查看 kerberoast 示例 这里)

待办事项

[!note]

  • 清理代码,clippy 认为某些函数的参数太多 + 大型 Result 类型
  • 从 lib.rs 中删除一些允许
  • 显著改进文档,包括 README 和示例目录
  • 添加 SID 查找模块并改进需要它们的函数
  • 通过 LSA 为 WindowsVault 实现适当的票据转储

致谢

这项工作基于其他人的出色工作

依赖项

~10–53MB
~818K SLoC