Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
provisioner — Bereitstellungs- und Freigabesystem für SBCs | Kitploit
Tools/GitHubGitHub/alessandrocarminati/provisioner
Embedded-System-SicherheitNetzwerkkartierungScripting & AutomatisierungHardware- & IoT-SicherheitRemote-Access-ToolFirmware-Analyse
GitHubalessandrocarminati/provisioner

provisioner

Bereitstellungs- und Freigabesystem für SBCs

Repository anzeigen
7vor 6 MonatenNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

Provisioner

Überblick

Provisioner ist ein entwicklerorientierter Bereitstellungsassistent für Einplatinencomputer (SBCs), insbesondere für U-Boot-basierte Plattformen.

image info

Es bietet eine eigenständige Umgebung, um:

  • Entfernt auf Boards zugreifen
  • Inbetriebnahme-Workflows automatisieren
  • Kernel und Root-Dateisysteme bereitstellen
  • Flash-Vorgänge ausführen
  • Labor-Hardware sicher teilen

Das Betriebsmodell ist bewusst einfach:

Ein Board => Eine Provisioner-Instanz

Provisioner läuft hardwarenah und bietet Entwicklern kontrollierten Fernzugriff über eine sichere, gemultiplexte Schnittstelle.

Systemkomponenten

Das Projekt besteht aus zwei primären Elementen:

KomponenteLäuft aufRolle
ProvisionerHost / Labor-KnotenSteuerungsebene, serielles Gateway, Bereitstellungsdienste
goinitZiel-BoardFlash-Agent und Bereitstellungslaufzeitumgebung

Provisioner orchestriert Workflows; goinit führt sie lokal auf dem Board aus.

Architekturübersicht

Provisioner verbindet drei Betriebsebenen:

  1. Benutzerzugriffsebene: SSH-Monitor und -Tunnel
  2. Bereitstellungsebene: TFTP- und HTTP-Artefaktauslieferung
  3. Board-Steuerungsebene: Serielle Konsole und goinit-APIs

Dies ermöglicht eine kontinuierliche Kontrolle vom Bootloader bis zur Laufzeitbereitstellung.

Kernsubsysteme

Serielle Engine

Besitzt die physische Konsolenverbindung und bietet:

  • Konsolen-Multiplexing
  • Interaktiver Monitor
  • Skript-Automatisierung
  • Dateiübertragung
  • Protokollierung

Seriell bleibt der ultimative Rückfall-Steuerungspfad.

Bereitstellungsdienste

Eingebettete Dienste stellen Boot-Artefakte bereit:

TFTP

  • Kernel-Auslieferung
  • HTTP-Proxy-Abruf über codierte Dateinamen

HTTP

  • Rootfs-Abbilder
  • Gerätebäume
  • Kernel-Artefakte
  • Generische Binärdateien

Steuerungsebene über SSH

Provisioner stellt einen einheitlichen SSH-Endpunkt bereit, der sowohl als Zugriffs- als auch als Steuerungsebene fungiert.

Alle Ferninteraktionen werden über eine einzige SSH-Verbindung gemultiplext und durch Public-Key-Authentifizierung gesteuert.

Gemultiplexte Kanäle umfassen:

  • Monitor-Shell
  • Serielle Konsolentunnel
  • Steuerungs-CLI
  • Dateiübertragungen

Zugriffsverwaltung:

  • Public-Key-Identität
  • Tunnel aktivieren/deaktivieren pro Benutzer
  • Zentrale Berechtigungsdurchsetzung

SSH überträgt daher beides:

  • Verkehr der Verwaltungsebene
  • Datenströme der seriellen Datenebene

Interner Router

Im Kern des I/O-Modells von Provisioner sitzt der Router, ein steckbares Software-Artefakt, das Terminal-Ströme zwischen Produzenten und Konsumenten vermittelt.

Der gesamte Konsolenverkehr fließt durch diese Komponente und nicht direkt zwischen Subsystemen.

Produzenten-/Konsumenten-Modell

Router-Clients können:

  • Terminaldaten produzieren
  • Terminaldaten konsumieren
  • Bidirektional arbeiten

Beispiele:

  • SSH-Monitor-Sitzungen
  • Serielle Tunnel
  • Automatisierungsskripte
  • Protokollierungsagenten
  • Übertragungsprogramme

Menschliche vs. maschinelle Clients

Der Router unterscheidet zwischen zwei Client-Varianten:

TypMerkmaleBeispiele
MenschlichInteraktiv, ANSI-bewusstSSH-Terminals
MaschinellDeterministisch, rohe E/ASkripte, Automatisierung

Dies ermöglicht eine maßgeschneiderte Stream-Behandlung für Benutzerfreundlichkeit vs. Determinismus.

Routing-Strategien

Unicast

  • Einzelner Empfänger
  • Wird für exklusive Steuerungssitzungen oder Übertragungen verwendet

Multicast

  • Broadcast-Auslieferung
  • Wird für Überwachung, Protokollierung, Beobachter verwendet

Mehrere Ingenieure können dieselbe Konsole ohne Störungen beobachten.

ANSI-Watcher

Ein dedizierter, steckbarer Watcher mildert ANSI-Terminal-Nuancen:

  • Beobachtet Steuersequenzen
  • Normalisiert Rendering-Artefakte
  • Verhindert Bruch der Automatisierung

Als Plugin implementiert, nicht als fest codierte Logik.

Monitor-CLI

Die Monitor-Shell bietet interaktive Board-Steuerung.

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  
>

Filter-Subsystem

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

Regeln können in ASCII oder HEX definiert werden:

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

Filter können:

  • Empfangene Daten abfangen
  • Ströme weiterleiten oder unterdrücken
  • Antworten einfügen

Dies ist nützlich für Boot-Automatisierung und Konsolennormalisierung.

Serielle Dateiübertragung

Provisioner unterstützt direkte serielle Dateiübertragung:

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

Modi:

ModeMethode
plainBase64
gzipBase64 + Komprimierung
xmodem_unixXMODEM über rx
xmodem_ubootXMODEM über loadx

Abhängigkeiten werden geprüft über:

root@kitploit:~
send_serial_deps

Erforderliche Programme:

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

send_console-ng-Integration

Die Übertragungs-Engine stammt von dem eigenständigen Dienstprogramm send_console-ng, adaptiert für Provisioner. Sie ermöglicht Dateiübertragungen, wenn:

  • Kein Netzwerk vorhanden ist
  • Nur eine Shell-Eingabeaufforderung verfügbar ist
  • Wiederherstellungswerkzeuge manuell übertragen werden müssen

Fähigkeiten:

  • Fernkonfiguration des Terminals
  • Komprimierung und Kodierung
  • Gepufferter Streaming
  • Abhängigkeitsprüfung

Im Vergleich zum ursprünglichen Dienstprogramm:

  • stdbuf- und cat-Abhängigkeiten entfernt
  • dd zur Portabilität eingeführt
  • XMODEM-Unterstützung hinzugefügt, wo Empfänger vorhanden sind

Dies ermöglicht Provisioner, selbst in stark degradierten Board-Zuständen zu operieren.

Automatisierung und Skripting

assm: Native Skripte

Assembler-ähnliche Expect-Engine:

  • Prompt-Erkennung
  • Deterministische Antworten
  • Byte-orientierte Ausführung

Am besten geeignet für Anmelde- und Boot-Abläufe.

exec_scr: Externe Skripte

Führt externe Programme aus, die an den seriellen Stream gebunden sind.

Modi:

ModeVerhalten
lineZeilenweise gepuffert
charBytestrom

Optionale Integrationen

Google Kalender (Optional)

Eine einfache Reservierungsintegration existiert, ist aber kein primärer Projektfokus. Verwendet nur für:

  • Zeitbasierten Zugriff
  • Gemeinsame Laborbuchung

Provisioner zielt nicht darauf ab, ein vollständiger Laborplaner zu werden.

Build und Portabilität

Provisioner ist in Go geschrieben und lässt sich leicht cross-kompilieren.

Nativer Build

root@kitploit:~
make

Cross-Kompilierungsbeispiele

root@kitploit:~
GOARCH=arm64 make

Keine externen Toolchains erforderlich.

Einsetzbar auf:

  • Servern
  • Edge-Hosts
  • Raspberry-Pi-ähnlichen Systemen
  • Labor-Gateways
Tool herunterladen