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

自己完結型の環境を提供し、以下の操作を可能にします:

  • ボードへのリモートアクセス
  • ブリングアップワークフローの自動化
  • カーネルとルートファイルシステムのプロビジョニング
  • フラッシュ操作の実行
  • ラボハードウェアの安全な共有

運用モデルは意図的にシンプルです:

1 ボード => 1 Provisioner インスタンス

Provisioner はハードウェアの近くで動作し、安全な多重化インターフェースを通じて制御されたリモートアクセスを開発者に提供します。

システムコンポーネント

このプロジェクトは、以下の 2 つの主要要素で構成されています:

コンポーネント実行場所役割
Provisionerホスト / ラボノード制御プレーン、シリアルゲートウェイ、プロビジョニングサービス
goinitターゲットボードフラッシュエージェント & プロビジョニングランタイム

Provisioner がワークフローを調整し、goinit がボード上でローカルにそれらを実行します。

アーキテクチャ概要

Provisioner は 3 つの運用プレーンを橋渡しします:

  1. ユーザアクセスプレーン: SSH モニター & トンネル
  2. プロビジョニングプレーン: TFTP & HTTP アーティファクト配信
  3. ボード制御プレーン: シリアルコンソール & goinit API

これにより、ブートローダーからランタイムプロビジョニングまで継続的な制御が可能になります。

コアサブシステム

シリアルエンジン

物理コンソール接続を所有し、以下を提供します:

  • コンソール多重化
  • インタラクティブモニター
  • スクリプト自動化
  • ファイル転送
  • ロギング

シリアルは、最終的なフォールバック制御パスとして残ります。

プロビジョニングサービス

組み込みサービスがブートアーティファクトを提供します:

TFTP

  • カーネル配信
  • エンコードされたファイル名による HTTP プロキシフェッチ

HTTP

  • Rootfs イメージ
  • デバイスツリー
  • カーネルアーティファクト
  • 汎用バイナリ

SSH による制御プレーン

Provisioner は、アクセス層と制御層の両方として機能する統一 SSH エンドポイントを公開します。

すべてのリモート操作は 単一の SSH 接続で多重化 され、公開鍵認証によって管理されます。

多重化チャネルには以下が含まれます:

  • モニターシェル
  • シリアルコンソールトンネル
  • 制御 CLI
  • ファイル転送

アクセス管理:

  • 公開鍵 ID
  • ユーザーごとのトンネル有効/無効
  • 中央集権的な権限施行

したがって、SSH は以下の両方を伝送します:

  • 管理プレーン トラフィック
  • シリアルデータプレーン ストリーム

内部ルーター

Provisioner の I/O モデルの中心には ルーター があります。これは、プロデューサーとコンシューマーの間でターミナルストリームを仲介するプラグイン可能なソフトウェアアーティファクトです。

すべてのコンソールトラフィックは、サブシステム間で直接ではなく、このコンポーネントを経由して流れます。

プロデューサー / コンシューマーモデル

ルータークライアントは以下を行うことができます:

  • ターミナルデータの生成
  • ターミナルデータの消費
  • 双方向操作

例:

  • SSH モニターセッション
  • シリアルトンネル
  • 自動化スクリプト
  • ログエージェント
  • 転送ユーティリティ

人間 vs 機械クライアント

ルーターは 2 つのクライアントバリアントを区別します:

タイプ特徴例
人間インタラクティブ、ANSI 対応SSH ターミナル
機械決定論的、生 I/Oスクリプト、自動化

これにより、ユーザビリティと決定論のそれぞれに合わせたストリーム処理が可能になります。

ルーティング戦略

ユニキャスト

  • 単一受信者
  • 排他的制御セッションまたは転送に使用

マルチキャスト

  • ブロードキャスト配信
  • 監視、ロギング、オブザーバーに使用

複数のエンジニアが干渉なく同じコンソールを監視できます。

ANSI ウォッチャー

専用のプラグイン可能ウォッチャーが ANSI ターミナルのニュアンスを軽減します:

  • 制御シーケンスを監視
  • レンダリングアーティファクトを正規化
  • 自動化の破損を防止

ハードコードされたロジックではなく、プラグインとして実装されています。

モニター CLI

モニターシェルは、インタラクティブなボード制御を提供します。

root@kitploit:~
> ?  
 ? : このテキスト  
 board_stat : 最後の goinit ボードステータスを報告します。ボードは PROVISIONER_MGMT_* を出力している必要があります  
 echo : 引数をエコーバックします  
 enuser : トンネルのユーザーを有効にします  
 exec_assm : 指定された assm スクリプトをロードして実行します  
 exec_scr : 指定されたスクリプトをロードして実行します  
 exec_state : 指定されたスクリプトの状態を返します  
 exit : このシェルを終了します  
 filter : フィルターコマンド: 'filter help' と入力すると詳細が表示されます  
 help : このテキスト  
 log_serial : シリアルで送受信されたすべてを ser.log ファイルにコピーします。注意: 以前のファイルを上書きします。  
 log_serial_stop : シリアルログサブシステムを停止する必要があります。  
 send_serial : シリアル経由でファイルを送信します: send_serial <ファイル> <plain|gzip|xmodem_unix|xmodem_uboot> [宛先パス]  
 send_serial_deps : send_serial plain/gzip のリモート依存関係を確認します: stty, dd, base64, gzip, rm (または busybox)。  
 toff : snmp を使用してボードの電源を切るためのコマンド PDU  
 ton : snmp を使用してボードの電源を入れるためのコマンド PDU  
 tterm : シリアルトンネル接続を終了します  
 ulist : トンネルのユーザー状態を一覧表示します  
>

フィルターサブシステム

root@kitploit:~
filter help
使用可能: 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 <ファイル> <モード> [宛先パス]

モード:

モード方法
plainBase64
gzipBase64 + 圧縮
xmodem_unixrx による XMODEM
xmodem_ubootloadx による XMODEM

依存関係は以下で確認:

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 Calendar (オプション)

軽量の予約統合は存在しますが、プロジェクトの主要な焦点ではありません。 以下の目的のみで使用されます:

  • 時間ベースのアクセス
  • 共有ラボの予約

Provisioner は完全なラブスケジューラになることを目指していません。

ビルドと移植性

Provisioner は Go で書かれており、クロスコンパイルが容易です。

ネイティブビルド

root@kitploit:~
make

クロスコンパイル例

root@kitploit:~
GOARCH=arm64 make

外部ツールチェーンは必要ありません。

以下の環境に展開可能:

  • サーバー
  • エッジホスト
  • Raspberry Pi クラスのシステム
  • ラボゲートウェイ
ツールをダウンロード