面向 AI 编码代理的 Linux Active Directory 排查工具。协议优先,零噪音。
快速开始 • 双引擎架构 • 实机实验验证 • 演示视频 • 决策阶梯 • 改进前后对比 • 工具与用法 • 代理配置 • 传承与致谢
Tanuki 100% 即插即用。一条命令即可安装统一 CLI,并为 Claude Code、Cursor 和 Google Antigravity 配置 AI Agent Skills:
curl -sSL https://raw.githubusercontent.com/Mafifrizi/tanuki/main/install.sh | bash
irm https://raw.githubusercontent.com/Mafifrizi/tanuki/main/install.ps1 | iex
# Pipx (Isolated CLI environment)
pipx install git+https://github.com/Mafifrizi/tanuki.git
# Local repository install
pip install .
# Note for Linux (Kali, Debian, Ubuntu): If ~/.local/bin is not in your PATH:
export PATH="$HOME/.local/bin:$PATH"
# Rust binary install
cargo install --path crates/tanuki-cli
验证您的安装:
# Direct CLI binary or universal Python module
tanuki --version
python3 -m tanuki --version
tanuki doctor
tanuki ladder
tanuki triage KRB_AP_ERR_SKEW
Tanuki 提供两个互补的实现:
crates/tanuki-cli):面向操作员工作站、CI/CD 安全验证流水线和独立部署的主要高性能引擎。它编译为单个静态二进制文件,带有 #![forbid(unsafe_code)],零外部依赖,执行时间低于 2 毫秒。scripts/):一个零依赖脚本套件,仅使用 Python 标准库(struct、io、sys)。它直接在远程目标系统上运行,适用于禁止投放编译二进制文件或受端点检测监控的环境。两个引擎共享相同的 JSON schema 和解析规范。
所有协议解析器、诊断工具和 CLI 工作流均在实时虚拟化实验室环境中经过实证验证:
DC01.lab.local,IP:192.168.56.106)kraii@kraiiandreyy,IP:192.168.56.105)📺 观看演示视频: youtu.be/wqZRYmEn0eY - 跨实时域基础设施的全栈操作演练。
跨实时域基础设施的完整三幕操作生命周期的可视化验证:
| 幕 | 环境 | 目标与已验证原语 |
|---|---|---|
| 第 1 幕:域控制器设置 | Windows Server 2022(DC01) | 域发现(nltest)、SPN 审计(setspn)以及 RFC 4120 AES-256 二进制 keytab 导出(ktpass,KVNO 9)。 |
| 第 2 幕:非特权 Linux 操作员 | Kali Linux 2024(Naga) | 被动诊断(tanuki doctor)、RFC 4120 树审计(tanuki keytab)、零 root 配置合成(tanuki config)、原生 ctypes TGT 获取(tanuki auth)、票据健康检查通过(tanuki doctor)以及协议分诊(tanuki triage)。 |
| 第 3 幕:闭环验证 | Windows Server 2022(DC01) | 域控制器安全事件 ID 4768 审计成功,针对 tanuki-nhi,源自客户端 IP 192.168.56.105。 |
DC01)在域控制器上为服务账户 LAB\tanuki-nhi 使用现代 AES-256(aes256-cts-hmac-sha1-96,KVNO 9)进行官方 RFC 4120 二进制 keytab 导出:
Naga)tanuki doctor)被动、零数据包的飞行前健康诊断,执行时间为 0.96 毫秒,准确检测未配置状态、缺失的 keytab 和非活动票据缓存:
tanuki keytab)解析二进制 keytab 结构,提取 AES-256 主体,显示分层主体树,验证 KVNO 9,并提供自动化 kinit 指导:
tanuki config)生成本地 Kerberos 配置文件(/tmp/lab_krb5.conf),强制执行 RFC 4120 § 6.1 大写领域约定、零 DNS 直接 KDC IP 路由以及虚拟机监控程序时钟偏差容忍:
tanuki auth)使用 Python 标准库 ctypes(libkrb5.so.3)直接从域控制器获取 Kerberos 票据授予票据(TGT),无需 root 权限、PATH 上的 kinit 二进制文件或外部依赖:
tanuki doctor)确认活动 AES-256 Kerberos 票据缓存剩余生命周期为 9 小时 59 分 49 秒,执行时间为 1.35 毫秒,零网络发射:
tanuki triage)将战术修复命令与蓝队检测遥测(Auditd 监视规则、Windows 事件 ID 4768/4771、Sigma 规则和 Falco 签名)耦合:
DC01)通过域控制器上的 wevtutil 进行原生高效日志查询,证明账户 tanuki-nhi 源自 192.168.56.105 且票据加密类型为 0x12(aes256-cts-hmac-sha1-96)的实时事件 ID 4768 审计成功:
在提出任何分诊命令或查询之前,Tanuki 遵循 5 级操作阶梯:
Level 5 [ Deterministic Output ] --> [Target] -> [Exact Command] -> [Artifact]
▲
Level 4 [ Targeted Vectors ] --> ADCS ESC templates, RBCD, Shadow Credentials
▲
Level 3 [ Machine Identity ] --> Leverage host keytabs and service principals (LotD)
▲
Level 2 [ OPSEC Guardrails ] --> Enforce AES-256; strictly ban RC4 and password spraying
▲
Level 1 [ Local Passive First ] --> Triage /etc/krb5.keytab & SSSD KCM before network packets