aruxiee/sandunbox

GitHub: aruxiee/sandunbox

一款跨平台 Rust 沙箱隔离审计工具,通过探测系统完整性、命名空间、SECCOMP 过滤和进程令牌等参数来诊断当前环境的隔离边界与逃逸面。

Stars: 0 | Forks: 0

# ⌛ sandunbox:环境完整性诊断套件 一个轻量级、跨平台的 Rust 实用工具,旨在审计沙箱环境隔离和结构边界。它执行一系列广泛的测试,评估宿主机身份、进程权限、运行时缓解措施和容器化边界,从而为环境逃逸映射出配置档案。 ⚠️ **请注意:** 本项目严格仅用于**教育和授权的渗透测试**。对于你们可能引发的任何不当行为,我概不负责。 ## 🛡️ 技术概述 沙箱和容器隔离执行流以观察行为或节省宿主机基础设施资源。`sandunbox` 通过探测底层系统指标、AT 和内核子系统来测试这些约束。 * **覆盖范围:** 可以针对原生 Win32/NT 安全模型和 Linux namespace 层。 * **诊断:** 测试用于资源分配和操作系统约束的遥测参数。 * **分析:** 避免使用激进的定时或调试陷阱,完全专注于配置可见性。 ## 🚀 实现细节 ### 🐧 Linux 在 Linux 环境(或 WSL2)中编译。 #### 1. 环境设置 确保你拥有标准的 Rust 工具链。Linux 组件通过 `/proc` 查询原始子系统状态。 ``` # 安装 Rust curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh # 重新加载 env source $HOME/.cargo/env ``` #### 2. 编译 导航到 `sandunbox` 根文件夹并构建目标。 ``` cd sandunbox cargo build --release ``` #### 3. 验证 完成后,只需执行二进制文件即可查看你的指标。 **A. 执行:** 运行二进制文件以执行所有 Linux 特定的参数检查。 ``` ./target/release/sandunbox ``` * **观察:** 查看 network、process、mount 和 user namespace 下的活动哈希上下文,以识别容器边界。 **B. 隔离检查:** 验证二进制文件如何在标准进程过滤下检查 syscall 限制。 ``` cat /proc/self/status | grep -i Seccomp ``` * **结果矩阵:** 根据你的输出,返回 `0`(已禁用)、`1`(严格模式)或 `2`(BPF 过滤模式)。 ### 🪟 Windows 此版本通过 `windows` crate 与原生安全令牌、进程缓解策略和进程边界进行交互。 #### 1. 环境设置 * **安装 Rust:** 从 [rustup.rs](https://rustup.rs) 下载并配置 `rustup-init.exe`。 * **C++ 构建工具:** 通过 Visual Studio Installer 安装“使用 C++ 的桌面开发”工作负载。 #### 2. 编译 在 `sandunbox` 文件夹中打开终端并进行构建。 ``` cd sandunbox cargo build --release ``` #### 3. 验证 在不同的 shell 权限下执行二进制文件,以观察宿主机令牌架构的变化。 **A. 标准用户 Shell:** 在未提权的 shell 中执行编译后的二进制文件。 ``` .\target\release\sandunbox.exe ``` * **预期结果:** 配置文件输出应标记为 `System Integrity Context (SIC): Medium` 且 `UAC registry/file virtualization allowed: YES`。 **B. 提权的管理员 Shell:** 打开管理员 PowerShell 窗口并重新执行。 ``` .\target\release\sandunbox.exe ``` * **预期结果:** 输出转变为 `System Integrity Context (SIC): High`,同时 `UAC registry/file virtualization allowed` 降为 `NO`。 ## 🧩 规避矩阵 | 诊断项 | 标准宿主机配置 | 虚拟化 / 沙箱目标配置 | | --- | --- | --- | | **system integrity context (SIC)** | 通常为 `Medium` 或 `High`。 | 在现代隔离的应用程序沙箱中通常降至 `Low` 或 `Untrusted`。 | | **host active processor core allocation** | 拥有大量逻辑环境(通常 $\ge$ 4 到 8 个物理或逻辑核心)。 | 资源匮乏的配置(通常限制为 1 或 2 个逻辑实例)。 | | **system execution time continuity** | 持续的运行时间(可达数千分钟的连续运行)。 | 极少的运行时间(表明是全新的虚拟化启动快照)。 | | **UAC registry/file virtualization** | 在标准工作区中返回 `YES` 以隔离旧版路径。 | 在高度提权或强化的容器状态下返回 `NO`。 | | **syscall filtering (SECCOMP)** | 在标准 Linux 机器上通常返回 `0`(已禁用)。 | 切换为 `1` 或 `2`,表示有活动的 BPF 过滤器正在拦截 syscall。 | ## 📊 MITRE | 战术 | 技术 | ID | 应用 | | --- | --- | --- | --- | | **发现** | 系统信息发现 | **T1082** | 查询核心密度、物理 RAM 容量、系统运行时间和硬件资源。 | | **发现** | 系统网络配置发现 | **T1016** | 捕获系统运行时主机名并检查网络隔离 namespace 以进行配置分析。 | | **发现** | 进程发现 | **T1057** | 审计父进程约束、活动的 Job Objects 和 PID namespace 参数。 | | **防御规避** | 滥用提权控制机制 | **T1548** | 分析进程完整性级别、受限令牌、令牌提权状态以及 UAC 文件/注册表虚拟化状态。 | ## 🛠️ 未来改进 * **WMI 端点查询:** 集成 WMI 查询,以在不生成 CLI 子进程的情况下获取主板和 BIOS 序列号配置。 * **动态模块完整性:** 实现对核心系统库的动态验证,以识别用户态 EDR 钩子。 * **扩展 ACPI 表解析:** 读取原始 ACPI 表(`FADT`、`DSDT`)以验证底层裸机硬件来源。

Aradhya 用 ❤️ 构建

标签:Rust, Web截图, Web报告查看器, 可视化界面, 容器安全, 沙箱逃逸, 目录遍历, 系统诊断, 网络流量审计, 通知系统