Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
provisioner — Система развертывания и совместного использования для SBC | Kitploit
Инструменты/GitHubGitHub/alessandrocarminati/provisioner
Безопасность встроенных системКартирование сетиСкриптинг и автоматизацияБезопасность оборудования и IoTИнструмент Удаленного ДоступаАнализ Прошивок
GitHubalessandrocarminati/provisioner

provisioner

Система развертывания и совместного использования для SBC

Репозиторий
76 месяцев назадЕщё не проверено

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

Provisioner

Обзор

Provisioner — это инструмент для подготовки одноплатных компьютеров (SBC), ориентированный на разработчиков, особенно на платформах на базе U-Boot.

image info

Он предоставляет самодостаточную среду для:

  • удалённого доступа к платам
  • автоматизации процессов начальной настройки
  • развёртывания ядер и корневых файловых систем
  • выполнения операций прошивки
  • безопасного совместного использования лабораторного оборудования

Модель работы намеренно проста:

Одна плата => Один экземпляр Provisioner

Provisioner работает близко к оборудованию и предоставляет разработчикам контролируемый удалённый доступ через защищённый мультиплексированный интерфейс.

Компоненты системы

Проект состоит из двух основных элементов:

КомпонентЗапускается наРоль
ProvisionerХост / лабораторный узелПлоскость управления, последовательный шлюз, сервисы развёртывания
goinitЦелевая платаАгент прошивки и среда выполнения развёртывания

Provisioner координирует рабочие процессы; goinit выполняет их локально на плате.

Обзор архитектуры

Provisioner связывает три операционные плоскости:

  1. Плоскость пользовательского доступа: SSH-монитор и туннели
  2. Плоскость развёртывания: доставка артефактов через TFTP и HTTP
  3. Плоскость управления платой: последовательная консоль и API goinit

Это обеспечивает непрерывное управление от загрузчика до развёртывания во время выполнения.

Основные подсистемы

Последовательный движок

Владеет физическим подключением консоли и предоставляет:

  • мультиплексирование консоли
  • интерактивный монитор
  • автоматизацию скриптов
  • передачу файлов
  • ведение журнала

Последовательный интерфейс остаётся основным резервным каналом управления.

Сервисы развёртывания

Встроенные сервисы предоставляют загрузочные артефакты:

TFTP

  • доставка ядра
  • получение через HTTP-прокси с помощью закодированных имён файлов

HTTP

  • образы корневых файловых систем
  • деревья устройств
  • артефакты ядра
  • универсальные бинарные файлы

Плоскость управления через SSH

Provisioner предоставляет единую SSH-точку, выступающую в качестве как уровня доступа, так и уровня управления.

Все удалённые взаимодействия мультиплексируются через одно SSH-соединение и управляются аутентификацией по открытому ключу.

Мультиплексированные каналы включают:

  • оболочка монитора
  • туннели последовательной консоли
  • CLI управления
  • передача файлов

Управление доступом:

  • идентификация по открытому ключу
  • включение/отключение туннеля для каждого пользователя
  • централизованное применение разрешений

Таким образом, SSH переносит как:

  • трафик плоскости управления
  • потоки данных последовательного интерфейса

Внутренний маршрутизатор

В сердце модели ввода-вывода Provisioner находится маршрутизатор — подключаемый программный компонент, который управляет потоками терминала между производителями и потребителями.

Весь консольный трафик проходит через этот компонент, а не напрямую между подсистемами.

Модель производитель/потребитель

Клиенты маршрутизатора могут:

  • генерировать данные терминала
  • потреблять данные терминала
  • работать в обоих направлениях

Примеры:

  • сеансы SSH-монитора
  • последовательные туннели
  • скрипты автоматизации
  • агенты регистрации
  • утилиты передачи

Клиенты: человек и машина

Маршрутизатор различает два типа клиентов:

ТипХарактеристикиПримеры
ЧеловекИнтерактивный, поддерживает ANSISSH-терминалы
МашинаДетерминированный, сырой ввод-выводСкрипты, автоматизация

Это позволяет адаптировать обработку потоков для удобства использования или детерминизма.

Стратегии маршрутизации

Unicast

  • один получатель
  • используется для эксклюзивных сеансов управления или передачи

Multicast

  • широковещательная доставка
  • используется для мониторинга, регистрации, наблюдателей

Несколько инженеров могут наблюдать за одной и той же консолью без помех.

ANSI-наблюдатель

Выделенный подключаемый наблюдатель смягчает нюансы ANSI-терминалов:

  • отслеживает управляющие последовательности
  • нормализует артефакты отображения
  • предотвращает сбои автоматизации

Реализован как плагин, а не как жестко закодированная логика.

CLI монитора

Оболочка монитора обеспечивает интерактивное управление платой.

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_unixXMODEM через rx
xmodem_ubootXMODEM через loadx

Зависимости проверяются через:

root@kitploit:~
send_serial_deps

Требуемые утилиты:

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

Интеграция с send_console-ng

Движок передачи произошёл от автономной утилиты send_console-ng, адаптированной в Provisioner. Он обеспечивает передачу файлов, когда:

  • нет сети
  • доступно только приглашение оболочки
  • инструменты восстановления необходимо отправить вручную

Возможности:

  • удалённая настройка терминала
  • сжатие и кодирование
  • буферизованная потоковая передача
  • проверка зависимостей

По сравнению с оригинальной утилитой:

  • удалены зависимости stdbuf и cat
  • добавлен dd для портативности
  • добавлена поддержка XMODEM при наличии приёмников

Это позволяет Provisioner работать даже в сильно деградированных состояниях платы.

Автоматизация и скриптинг

assm: Нативные скрипты

Движок expect, подобный ассемблеру:

  • сопоставление с приглашением
  • детерминированные ответы
  • побайтовое выполнение

Лучше всего подходит для процессов входа и загрузки.

exec_scr: Внешние скрипты

Выполняет внешние программы, привязанные к последовательному потоку.

Режимы:

РежимПоведение
lineБуферизованный по строкам
charБайтовый поток

Дополнительные интеграции

Google Календарь (опционально)

Существует лёгкая интеграция с бронированием, но это не основная цель проекта. Используется только для:

  • доступа на основе времени
  • бронирования общей лаборатории

Provisioner не стремится стать полноценным планировщиком лаборатории.

Сборка и переносимость

Provisioner написан на Go и легко кросс-компилируется.

Нативная сборка

root@kitploit:~
make

Примеры кросс-компиляции

root@kitploit:~
GOARCH=arm64 make

Внешние цепочки инструментов не требуются.

Разворачивается на:

  • серверах
  • пограничных узлах
  • системах класса Raspberry Pi
  • лабораторных шлюзах
Скачать инструмент