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

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

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

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

工具目录

分类

查看所有分类
Loading categories
provisioner — 用于SBC的配置与共享系统 | Kitploit
工具/GitHubGitHub/alessandrocarminati/provisioner
嵌入式系统安全网络映射脚本与自动化硬件与物联网安全远程访问工具固件分析
GitHubalessandrocarminati/provisioner

provisioner

用于SBC的配置与共享系统

查看仓库
7466个月前尚未审核

最受欢迎

查看全部 →

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

探索所有工具

浏览我们的工具集合

查看所有工具 →
分享

Provisioner

概述

Provisioner 是一个面向开发者的单板计算机(SBC)配置助手,特别是基于U-Boot的平台。

image info

它提供了一个独立的环境,用于:

  • 远程访问开发板
  • 自动化上电引导流程
  • 配置内核和根文件系统
  • 执行烧录操作
  • 安全共享实验室硬件

操作模型有意保持简单:

一块开发板 => 一个Provisioner实例

Provisioner 运行在硬件附近,并通过一个安全的多路复用接口向开发者提供受控的远程访问。

系统组件

该项目由两个主要元素组成:

组件运行位置角色
Provisioner主机/实验室节点控制平面、串行网关、配置服务
goinit目标开发板烧录代理与配置运行时

Provisioner 编排工作流;goinit 在开发板上本地执行它们。

架构概述

Provisioner 桥接三个操作平面:

  1. 用户访问平面:SSH 监控器与隧道
  2. 配置平面:TFTP 与 HTTP 工件交付
  3. 板级控制平面:串行控制台与 goinit API

这允许从引导加载程序到运行时配置的持续控制。

核心子系统

串行引擎

拥有物理控制台连接,并提供:

  • 控制台多路复用
  • 交互式监控器
  • 脚本自动化
  • 文件传输
  • 日志记录

串行仍然是最终的备用控制路径。

配置服务

嵌入的服务提供启动工件:

TFTP

  • 内核交付
  • 通过编码文件名实现的 HTTP 代理获取

HTTP

  • 根文件系统镜像
  • 设备树
  • 内核工件
  • 通用二进制文件

通过 SSH 的控制平面

Provisioner 暴露一个统一的 SSH 端点,同时充当访问层和控制层。

所有远程交互都通过单个 SSH 连接进行多路复用,并通过公钥认证进行管理。

多路复用通道包括:

  • 监控器 shell
  • 串行控制台隧道
  • 控制 CLI
  • 文件传输

访问治理:

  • 公钥身份
  • 按用户启用/禁用隧道
  • 集中权限执行

因此 SSH 负载包括:

  • 管理平面流量
  • 串行数据平面流

内部路由器

Provisioner I/O 模型的核心是路由器,它是一个可插拔的软件构件,负责在生产者和消费者之间代理终端流。

所有控制台流量都通过此组件流动,而不是直接在子系统之间流动。

生产者/消费者模型

路由器的客户端可以:

  • 生成终端数据
  • 消费终端数据
  • 双向操作

示例:

  • SSH 监控器会话
  • 串行隧道
  • 自动化脚本
  • 日志代理
  • 传输工具

人类与机器客户端

路由器区分两种客户端变体:

类型特性示例
人类交互式,支持 ANSISSH 终端
机器确定性,原始 I/O脚本,自动化

这允许针对可用性 vs 确定性进行定制的流处理。

路由策略

单播

  • 单个接收者
  • 用于独占控制会话或传输

多播

  • 广播交付
  • 用于监控、日志记录、观察者

多个工程师可以同时查看同一控制台而互不干扰。

ANSI 观察器

一个专用的可插拔观察器用于减轻 ANSI 终端细微问题:

  • 观察控制序列
  • 规范化渲染伪影
  • 防止自动化中断

实现为插件而不是硬编码逻辑。

监控 CLI

监控器 shell 提供交互式开发板控制。

root@kitploit:~
> ?  
 ? : this text  
 board_stat : report last goinit board stat; board must have printed PROVISIONER_MGMT_*  
 echo : echoes back the argument  
 enuser : enable user for tunnel  
 exec_assm : Load and executes the specified assm script  
 exec_scr : Load and executes the specified script  
 exec_state : returns the state of the specified script  
 exit : exit this shell  
 filter : Filter commands: type 'filter help' for more info  
 help : this text  
 log_serial : copies in a file ser.log all sent and received from the serial. Note: overwrites previous.  
 log_serial_stop : Requires serila log subsystem to stop.  
 send_serial : send file over serial: send_serial <file> <plain|gzip|xmodem_unix|xmodem_uboot> [dest_path]  
 send_serial_deps : check remote deps for send_serial plain/gzip: stty, dd, base64, gzip, rm (or busybox).  
 toff : command PDU using snmp to turn off the board  
 ton : command PDU using snmp to turn on the board  
 tterm : terminate serial tunnel connection  
 ulist : list user state for tunnel  
>

过滤子系统

root@kitploit:~
filter help
available: enable, disable, default, show, add, remove, help

规则可以用 ASCII 或 HEX 定义:

root@kitploit:~
filter add ascii Hello Hello World 
filter add hex 48656c6c6f 48656c6c6f 576f726c64

过滤器可以:

  • 拦截接收到的数据
  • 转发或抑制流
  • 注入响应

这对于启动自动化和控制台规范化非常有用。

串行文件传输

Provisioner 支持直接串行文件传输:

root@kitploit:~
send_serial <file> <mode> [dest_path]

模式:

模式方法
plainBase64
gzipBase64 + 压缩
xmodem_unix通过 rx 的 XMODEM
xmodem_uboot

依赖项检查通过:

root@kitploit:~
send_serial_deps

所需工具:

  • stty
  • dd
  • base64
  • gzip
  • rm / busybox

send_console-ng 集成

传输引擎源自独立工具 send_console-ng,后经改编集成到 Provisioner 中。 它支持在以下情况下进行文件传输:

  • 没有网络
  • 仅有一个 shell 提示符可用
  • 必须手动推送恢复工具

能力:

  • 远程终端配置
  • 压缩与编码
  • 缓冲流传输
  • 依赖探测

与原工具相比:

  • 移除了 stdbuf 和 cat 依赖
  • 引入了 dd 以提高可移植性
  • 添加了在接收方存在时的 XMODEM 支持

这使得 Provisioner 即使在开发板状态严重恶化的情况下也能运行。

自动化与脚本

assm:本地脚本

类汇编的期望引擎:

  • 提示符匹配
  • 确定性响应
  • 面向字节的执行

最适合登录和启动流程。

exec_scr:外部脚本

执行与串行流绑定的外部程序。

模式:

模式行为
line行缓冲
char字节流

可选集成

Google 日历(可选)

存在轻量级的预约集成,但并非项目主要关注点。 仅用于:

  • 基于时间的访问
  • 共享实验室预约

Provisioner 的目标不是成为一个完整的实验室调度器。

构建与可移植性

Provisioner 使用 Go 编写,易于交叉编译。

本地构建

root@kitploit:~
make

交叉编译示例

root@kitploit:~
GOARCH=arm64 make

不需要外部工具链。

可部署于:

  • 服务器
  • 边缘主机
  • Raspberry Pi 类系统
  • 实验室网关
下载工具
通过 loadx 的 XMODEM