Skip to content
KitploitKITPLOIT
工具博客
提交
工具博客
提交

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

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

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

工具目录

分类

查看所有分类
Loading categories
Cordon — 在 Linux 上的受限文件系统视图中运行任意命令 | Kitploit
工具/GitHubGitHub/vishnunandan555/cordon
通用工具容器安全动态分析 (沙盒)脚本与自动化配置审计安全虚拟化网络安全DevSecOps供应链安全Archived
GitHubvishnunandan555/cordon

Cordon

在 Linux 上的受限文件系统视图中运行任意命令

23个月前尚未审核

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享
查看仓库

Cordon

⚠️ 项目已弃用

该项目的开发已停止,因为其他人也在做同样的想法,并且构建了更好的解决方案。
我们强烈推荐查看:Fence by Use-Tusk。

注意:此仓库最初是为 FOSS HACK 2026 创建的,但我们不幸未能及时完成。
然而,我们为 Hackathena '26 构建了一个类似的项目,并获得了 三等奖!
如果您有兴趣,可以在此处找到该仓库:A56-A5/lion。

Cordon 在 Linux 上受限制的文件系统视图中运行任何命令。它使用 Linux 命名空间(通过 bubblewrap)隐藏你的进程不需要的一切——你的主目录、SSH 密钥、AWS 凭证等等——同时仍然让命令完成其工作。

root@kitploit:~
cordon run --net=allow -- npm install
cordon run -- bash setup.sh
cordon run --profile python -- pip install -r requirements.txt

不需要 root 权限。不需要容器。不需要后台运行守护进程。


为什么?

当你运行 npm install 或 pip install 时,该代码会以你的完全用户权限执行。它可以读取 ~/.ssh/id_rsa,将其外泄到服务器,修改你拥有的文件——所有这一切都看起来只是在安装一个包。

这不是偏执。这已经发生过:

Cordon 的解决方案:即使代码是恶意的,也不要让进程看到它不应该看到的东西。


工作原理

每次 cordon run 都会创建一个全新的隔离环境:

  • /usr、/bin、/lib 被 只读挂载——程序可以运行,但不会破坏系统
  • 你的项目目录是 可写的——npm install 可以创建 node_modules/,构建可以工作
  • 如果存在 src/,则它是 只读的——源文件不能静默地被重写
  • ~/.ssh、~/.aws、HOME——默认情况下 根本不挂载
  • 网络默认 关闭,或者通过内置的域名允许列表代理使用 --net=allow 进行过滤

当进程退出时,沙箱消失。没有任何东西持久化。

代理

--net=allow 模式会启动一个内建的 Rust HTTP/HTTPS 代理,运行在随机的 localhost 端口上,并通过环境变量(HTTP_PROXY、https_proxy、npm_config_proxy 等)将其注入沙箱。它拦截 CONNECT 隧道,并在转发之前根据允许列表检查每个域名。

默认允许列表包括 registry.npmjs.org、pypi.org、crates.io、github.com。任何不在列表中的内容都会得到 403 响应——即使包的后安装脚本试图回传信息。

root@kitploit:~
# 仅能访问 npmjs.org 及其 CDN——其他都不行
cordon run --net=allow -- npm install

# 为私有仓库添加域名
cordon run --net=allow --domain my.internal.registry -- npm install

Seccomp

可选地添加系统调用过滤器:

root@kitploit:~
# 阻止 ptrace、kexec_load、mount、perf_event_open、process_vm_*
cordon run --seccomp basic --net=allow -- npm install

# 严格允许列表——仅允许已知安全的系统调用
cordon run --seccomp strict -- python3 untrusted.py

这是第二道防线。即使有东西突破了文件系统限制,它仍然无法调用 ptrace 来附加到另一个进程,或使用 perf_event_open 进行侧信道攻击。


安装

root@kitploit:~
git clone https://github.com/LORDv1shnu/Cordon
cd Cordon
bash install.sh        # 构建 release 二进制文件 → ~/.local/bin/cordon

或者手动安装:

root@kitploit:~
cargo build --release
cp target/release/cordon ~/.local/bin/

你需要安装 bubblewrap:

root@kitploit:~
sudo apt install bubblewrap    # Ubuntu/Debian
sudo dnf install bubblewrap    # Fedora
sudo pacman -S bubblewrap      # Arch

安装后首次运行:

root@kitploit:~
cordon scan    # 扫描你的系统一次,大约需要 30 秒,写入 ~/.config/cordon/system.toml
cordon check   # 完整性检查——确保一切就绪

用法

root@kitploit:~
# 基本用法
cordon run -- echo "hello"
cordon run --net=allow -- npm install
cordon run --net=allow -- pip install -r requirements.txt
cordon run --net=full -- curl https://example.com   # 无限制(不过滤)

# Seccomp
cordon run --seccomp basic --net=allow -- npm install

# GUI 应用
cordon run --gui -- code .
cordon run --gui --optional audio_pipewire --optional dbus_session -- discord

# 内置配置文件(为常见运行时预配置)
cordon run --profile node -- npm install
cordon run --profile python -- python3 script.py
cordon run --profile rust -- cargo build

# 调试被阻止的内容
cordon run --trace -- node server.js              # strace 包装器,报告被拒绝的路径
cordon add --from-trace ~/.config/cordon/logs/last-trace.log  # 批量添加缺失的路径

# 资源限制(需要 systemd)
cordon run --mem 512M --cpu 2.0 --timeout 60 -- npm install

# 干运行 / 详细模式
cordon run --dry-run -- npm install               # 打印 bwrap 命令,但不执行
cordon run --verbose -- npm install               # 运行时打印每个 bwrap 参数

项目设置(cordon.toml)

root@kitploit:~
cordon init                            # 自动检测 Cargo.toml / package.json / pyproject.toml
cordon set --net=allow                 # 持久化标志,这样你就不必每次都输入
cordon add /path/to/assets --mode ro   # 将额外的路径暴露到沙箱中
cordon edit                            # 在 $EDITOR 中打开 cordon.toml

检查与调试

root@kitploit:~
cordon check               # 健康检查:bwrap、命名空间、AppArmor、模块
cordon doctor              # 深入:内核版本、发行版怪癖、确切的修复建议
cordon status              # 显示 system.toml 中当前的内容
cordon list                # 显示下次运行时将要激活的所有挂载点
cordon log --errors        # 仅显示上次运行的日志错误
cordon syscalls --preset basic   # 列出每个 seccomp 预设阻止的内容

配置文件与可移植性

root@kitploit:~
# 命名配置文件(存储在 ~/.config/cordon/profiles.toml)
cordon profile create ci-node --net=allow --optional ld_so_cache
cordon run --profile ci-node -- npm test

# 用于可重现环境的锁定文件
cordon lock update          # 对所有挂载路径进行 SHA-256 哈希 → cordon.lock
cordon lock verify          # 检查是否有任何偏离

# 与团队共享沙箱配置
cordon export > sandbox.json
cordon import sandbox.json

Shell 集成

root@kitploit:~
# Tab 补全
cordon completions zsh > ~/.zfunc/_cordon

# 透明包装器——使 "npm" 始终在沙箱中运行
cordon wrap npm
cordon wrap pip
npm install                # 实际上运行:cordon run -- npm install "$@"
cordon unwrap npm

# 手册页
cordon man | man -l -

配置层级

有四个配置文件,按顺序应用:

CLI 标志始终优先。cordon.toml 胜于命名配置文件。二进制内置的 core.toml 在运行时无法修改。


退出代码

与 bwrap 和 shell 相同的约定。


局限性

Cordon 不是容器,不是反病毒软件,也不是 SELinux 或 AppArmor 的替代品。它限制文件系统可见性和网络访问——它不试图检测恶意软件。如果某物拥有内核漏洞,它会突破沙箱。目标是使供应链攻击变得显著更困难,而不是不可能。

另外:目前仅支持 Linux x86_64 和 aarch64。需要 bubblewrap。


技术

使用 Rust 构建。使用 bubblewrap 进行命名空间隔离,seccompiler 编译 BPF 过滤器,clap 处理 CLI,tracing 进行结构化日志记录。域名过滤代理是用纯 Rust 从头编写的(无需外部代理工具)。

→ COMMANDS.md — 完整标志参考
→ SCANNER_LOGIC.md — 系统扫描器的工作原理
→ MODULE_INFO.md — 每个源文件的说明


借助 AI 辅助构建(Gemini)。架构、安全模型和设计决策均为作者的工作。

下载工具
攻击做了什么
LiteLLM (2024)恶意 PyPI 包在 pip install 时读取 SSH 密钥和环境变量
xz-utils (2024)在安装期间通过 make 步骤注入构建时后门
event-stream (npm, 2018)被攻陷的 npm 包静默窃取比特币钱包
SolarWinds通过构建/更新管道进行的供应链攻击
层级位置谁写入
core.toml编译到二进制文件中运行时不可编辑(防篡改)
system.toml~/.config/cordon/cordon scan
profiles.toml~/.config/cordon/cordon profile create
cordon.toml项目目录cordon init / cordon set / cordon add
代码含义
0成功
1cordon 内部错误
2CLI 用法错误
125沙箱设置失败(缺少 bwrap 等)
126找到命令但在沙箱内不可执行
127在沙箱内找不到命令
N从沙箱进程转发而来