onurogut/lethani

GitHub: onurogut/lethani

基于 Claude Code 的智能渗透测试编排器,通过并行子代理和阶段化剧本驱动从侦察到报告的完整漏洞赏金与渗透测试工作流。

Stars: 2 | Forks: 1

``` _ _ _ _ | | ___| |_| |__ __ _ _ __ (_) | |/ _ \ __| '_ \ / _` | '_ \| | | | __/ |_| | | | (_| | | | | | |_|\___|\__|_| |_|\__,_|_| |_|_| >---[ 6C 65 74 68 61 6E 69 ]-----------> every move, deliberate ``` [![License: MIT](https://img.shields.io/badge/license-MIT-1a1a1a?style=flat-square&labelColor=1a1a1a&color=8a6f3a)](LICENSE) [![Built with Claude Code](https://img.shields.io/badge/built%20with-Claude%20Code-1a1a1a?style=flat-square&labelColor=1a1a1a&color=d8b66b)](https://claude.com/claude-code) [![Status](https://img.shields.io/badge/status-alpha-1a1a1a?style=flat-square&labelColor=1a1a1a&color=c8302f)](https://github.com/onurogut/lethani/releases) [![Kali required](https://img.shields.io/badge/kali-required-1a1a1a?style=flat-square&labelColor=1a1a1a&color=557799&logo=kalilinux&logoColor=fff)](https://www.kali.org) [![Demo](https://img.shields.io/badge/demo-gif-1a1a1a?style=flat-square&labelColor=1a1a1a&color=c8302f)](examples/demo.gif)
lethani demo B["Phase 1
Reconnaissance
6 sub-agents
/recon"] B --> C["Phase 2
Automated Scan
3 sub-agents
/scan"] C --> D["Phase 3
Manual Testing
N bucketed sub-agents
/manual-test"] D --> E["Phase 4
Chaining
single thread / /chain"] E --> F["Phase 5
Reporting
single thread / /report"] classDef phase fill:#1a1a1a,stroke:#d4af37,stroke-width:2px,color:#f5f5f5; class A,B,C,D,E,F phase; ``` 每个阶段以 3-5 个要点回顾结束。P1/严重性 发现会在 立即呈现,无需等待阶段结束。 一个完整的虚构演练 —— 阶段 0 到阶段 5,包含实际 输出和最终报告 —— 位于 [`examples/walkthrough.md`](examples/walkthrough.md)。 ## 授权模型 lethani 将操作员的调用视为授权。`behavior_rules.md` §1 明确指出: - `engagements//scope.md` 文件是授权记录。 - 按照设计,去除了在每次 kali-ssh 调用上的重新确认。 - 只有**对操作方资源不可逆的操作**在运行前会 询问:`rm -rf`、`git push --force`、删除测试目录、 编辑 `.claude/settings.json`。 如果你想要更严格的模型(始终确认、工单门控等),请编辑 `behavior_rules.md` 的 §1 和 `.claude/settings.json` 中的 SessionStart 钩子 —— 两者都简单且自包含。 ## 保持更新 lethani **不会自动更新。** 按照设计,更新由操作员主动发起 —— 在你不知情的情况下自行变异的安全工具是一个隐患。 ### 如果你作为插件安装 ``` /plugin update lethani ``` 在 Claude Code 内部。插件管理器会在 配置的分支(通常是 `main`)上拉取最新的 commit。它不会运行 Kali 侧的更新。 当上游仓库发生变化时,没有推送通知。要了解 新版本,请在 GitHub 上关注该仓库 ([Releases page](https://github.com/onurogut/lethani/releases))。 ### 如果你克隆为工作区 ``` cd ~/lethani ./00_infra/scripts/update.sh ``` 辅助脚本运行 `git pull --ff-only`,打印当前版本, 显示最近的几次学习模式补丁,并在 `setup-kali.sh` 发生更改时发出警告(在这种情况下,你需要在 Kali 上重新运行它以获取 新工具)。 ### Kali 侧 `update.sh` 不会自动触碰 Kali。当 `setup-kali.sh` 更改时 (新的 go install、新的 apt 软件包、新的字典路径): ``` scp 00_infra/scripts/setup-kali.sh talon-kali:/tmp/ ssh talon-kali "bash /tmp/setup-kali.sh" ``` 该脚本是幂等的 —— 重新运行只会安装新的部分。 ### 通过学习模式获取剧本补丁 `/learn` 提出补丁建议,但未经你的批准绝不写入任何内容。每一个 应用的补丁都会记录到 `00_infra/_changelog.md` 中,包含日期、 触及的剧本和源 URL —— 这样你就可以审计更改了什么以及 为什么。 ### 可选:定时更新 默认是**仅手动** —— 基于上述安全工具的考虑。如果你想要 便利,`setup-host.sh` 结束时会有一个交互式提示: ``` [lethani:host] Set up automatic lethani updates? (n = manual only) 1) Weekly — Mondays 09:00 local 2) Daily — every day 09:00 local 3) On Claude launch — background update each time you start Claude here 4) No, I'll update manually with update.sh > ``` 你可以随时改变主意: ``` ./00_infra/scripts/setup-auto-update.sh # interactive menu ./00_infra/scripts/setup-auto-update.sh weekly # Mondays 09:00 ./00_infra/scripts/setup-auto-update.sh daily # every day 09:00 ./00_infra/scripts/setup-auto-update.sh on-claude # SessionStart hook ./00_infra/scripts/setup-auto-update.sh off # remove ./00_infra/scripts/setup-auto-update.sh status # show current state ``` 每周/每日模式会在标记的注释 (`# BEGIN/END lethani auto-update`)之间安装一个 cron 条目 —— 可以手动安全删除,或通过 `off` 子命令移除。输出记录在 `~/.lethani-update.log` 中。 `on-claude` 模式会修补 `.claude/settings.json`,以在你 在此工作区中打开 Claude Code 时在后台触发 `update.sh`。 更新永远不会阻塞你的会话;它们以分离方式运行并记录到同一个 文件中。 ### 当上游仓库获得 commit 时 在你主动拉取或执行 `/plugin update` (或者如果你选择了上述定时 cron,当你的定时 cron 触发时)之前,你的机器上什么也不会发生。你的本地更改 永远不会推送到上游,除非你发起一个 PR。lethani 一旦你克隆它就属于你。 ### 健康检查 / “是否有新版本?” 如果你将 lethani 安装为插件,SessionStart 钩子 (`plugin/hooks/hooks.json`)会**自动**运行 `check-update.sh --quiet`,在你每次打开 Claude Code 时。该脚本仅在 需要采取行动时才会打印内容 —— 更新的版本、过期的 学习模式运行(>7 天),或队列中待处理的补丁。否则 你的会话将静默开启。 要在任何时候强制输出完整报告: ``` /lethani-check ``` 该斜杠命令: - 打印你已安装的版本与最新的 GitHub 发布标签 - 告诉你正确的更新命令(插件或工作区路径) - 报告自上次 `/learn` 运行以来的天数以及任何待处理的补丁 或者从 shell 中运行: ``` ./plugin/00_infra/scripts/check-update.sh ``` 当你启用 自动更新时,cron 任务也会在 `--quiet` 模式下调用同一个脚本, 因此每周日志只会在 确实有事情可做时才会产生输出。 ### 学习模式自动获取(可选) `/learn-fetch` 是 `/learn` 的无人值守版本:它获取来源, 应用严格的质量标准,并将存活的补丁**存**到 `00_infra/_pending_patches.md` 中,而不应用任何内容。当你下次 打开 Claude Code 时,运行: ``` /learn-pending ``` ……以查看队列并通过 `apply 1,3,5` 或 `apply all` 选择性应用。获取是自动化的;编辑决定仍然取决于你。 通过 `setup-auto-update.sh` 连接每周的自动获取 —— cron 条目 已经链式调用了 `update.sh` + `check-update.sh`,未来的开关将 把 `claude -p "/learn-fetch"` 添加到同一次运行中。 ## 免责声明 lethani 仅用于**授权的安全测试**:范围内的漏洞赏金计划、 签约的渗透测试、CTF 和你自己的基础设施。 你负责在调用它之前验证授权。剧本和工具 对合法性不作任何判断 —— 这是你需要做的。 如果你不确定是否拥有授权,请勿运行 lethani。 ## 许可证 [MIT](LICENSE)。使用、修改、派生、商业发布 —— 均可;请保留 源代码分发中的版权声明。
标签:AI安全工具, AI智能体, Bug Bounty众测, CISA项目, Claude Code插件, Docker部署, FTP漏洞扫描, IP 地址批量处理, Linux远程操作, MCP协议, Offensive Security, SSH远程连接, 侦察扫描, 内存分配, 多智能体协作, 安全报告生成, 安全编排, 密码管理, 应用安全, 插件系统, 攻击链编排, 无线安全, 渗透测试框架, 网络安全, 网络安全审计, 自动化渗透测试, 自动化漏洞扫描, 逆向工具, 防御, 防御加固, 隐私保护