Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
provisioner — Système de provisionnement et de partage pour SBCs | Kitploit
Outils/GitHubGitHub/alessandrocarminati/provisioner
Sécurité des Systèmes EmbarquésCartographie RéseauScripting et AutomatisationSécurité Matériel et IoTOutil d'Accès à DistanceAnalyse de Micrologiciel
GitHubalessandrocarminati/provisioner

provisioner

Système de provisionnement et de partage pour SBCs

Voir le dépôt
7il y a 6 moisPas encore vérifié

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Provisioner

Aperçu

Provisioner est un assistant de provisionnement orienté développeur pour les ordinateurs monocartes (SBC), en particulier les plateformes basées sur U-Boot.

informations sur l'image

Il fournit un environnement autonome pour :

  • Accéder aux cartes à distance
  • Automatiser les workflows de mise en service
  • Provisionner les noyaux et les systèmes de fichiers racine
  • Exécuter des opérations de flashage
  • Partager le matériel de laboratoire en toute sécurité

Le modèle opérationnel est intentionnellement simple :

Une carte => Une instance de Provisioner

Provisioner s'exécute près du matériel et expose un accès distant contrôlé aux développeurs via une interface sécurisée et multiplexée.

Composants du système

Le projet est composé de deux éléments principaux :

ComposantExécuté surRôle
ProvisionerHôte / nœud de laboPlan de contrôle, passerelle série, services de provisionnement
goinitCarte cibleAgent de flashage & environnement d'exécution de provisionnement

Provisioner orchestre les workflows ; goinit les exécute localement sur la carte.

Architecture générale

Provisioner sert de pont entre trois plans opérationnels :

  1. Plan d'accès utilisateur : Moniteur SSH et tunnels
  2. Plan de provisionnement : Livraison d'artefacts par TFTP et HTTP
  3. Plan de contrôle de la carte : Console série et API goinit

Cela permet un contrôle continu, du chargeur d'amorçage au provisionnement à l'exécution.

Sous-systèmes principaux

Moteur série

Possède la connexion console physique et fournit :

  • Multiplexage de console
  • Moniteur interactif
  • Automatisation de scripts
  • Transfert de fichiers
  • Journalisation

La liaison série reste le chemin de contrôle de repli ultime.

Services de provisionnement

Les services intégrés fournissent les artefacts de démarrage :

TFTP

  • Livraison du noyau
  • Récupération par proxy HTTP via des noms de fichiers encodés

HTTP

  • Images du système de fichiers racine
  • Arbres de périphériques
  • Artefacts du noyau
  • Binaires génériques

Plan de contrôle via SSH

Provisioner expose un point de terminaison SSH unifié agissant à la fois comme couche d'accès et de contrôle.

Toutes les interactions à distance sont multiplexées sur une seule connexion SSH et gouvernées par l'authentification par clé publique.

Les canaux multiplexés incluent :

  • Shell du moniteur
  • Tunnels de console série
  • CLI de contrôle
  • Transferts de fichiers

Gouvernance d'accès :

  • Identité par clé publique
  • Activation/désactivation du tunnel par utilisateur
  • Application centralisée des permissions

SSH transporte donc à la fois :

  • Le trafic du plan de gestion
  • Les flux du plan de données série

Routeur interne

Au cœur du modèle d'E/S de Provisioner se trouve le routeur, un artefact logiciel enfichable qui agit comme courtier pour les flux de terminal entre producteurs et consommateurs.

Tout le trafic console transite par ce composant plutôt que directement entre sous-systèmes.

Modèle producteur/consommateur

Les clients du routeur peuvent :

  • Produire des données de terminal
  • Consommer des données de terminal
  • Fonctionner de manière bidirectionnelle

Exemples :

  • Sessions moniteur SSH
  • Tunnels série
  • Scripts d'automatisation
  • Agents de journalisation
  • Utilitaires de transfert

Clients humains vs machines

Le routeur distingue deux variantes de clients :

TypeCaractéristiquesExemples
HumainInteractif, compatible ANSITerminaux SSH
MachineDéterministe, E/S brutesScripts, automatisation

Cela permet une gestion adaptée des flux pour l'utilisabilité vs le déterminisme.

Stratégies de routage

Unicast

  • Destinataire unique
  • Utilisé pour les sessions de contrôle exclusives ou les transferts

Multicast

  • Diffusion générale
  • Utilisé pour la surveillance, la journalisation, les observateurs

Plusieurs ingénieurs peuvent observer la même console sans interférence.

Observateur ANSI

Un observateur enfichable dédié atténue les nuances des terminaux ANSI :

  • Observe les séquences de contrôle
  • Normalise les artefacts de rendu
  • Empêche les perturbations de l'automatisation

Implémenté comme un plugin plutôt que comme une logique codée en dur.

CLI du moniteur

Le shell du moniteur offre un contrôle interactif de la carte.

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  
>

Sous-système de filtrage

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

Les règles peuvent être définies en ASCII ou en HEX :

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

Les filtres peuvent :

  • Intercepter les données reçues
  • Transmettre ou supprimer des flux
  • Injecter des réponses

Ceci est utile pour l'automatisation du démarrage et la normalisation de la console.

Transfert de fichiers série

Provisioner prend en charge le transfert direct de fichiers série :

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

Modes :

ModeMéthode
plainBase64
gzipBase64 + compression
xmodem_unixXMODEM via rx
xmodem_ubootXMODEM via loadx

Dépendances vérifiées via :

root@kitploit:~
send_serial_deps

Utilitaires requis :

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

Intégration avec send_console-ng

Le moteur de transfert est dérivé de l'utilitaire autonome send_console-ng, adapté dans Provisioner. Il permet le transfert de fichiers lorsque :

  • Aucun réseau n'existe
  • Seule une invite de shell est disponible
  • Des outils de récupération doivent être poussés manuellement

Capacités :

  • Configuration du terminal distant
  • Compression et encodage
  • Diffusion en continu par mémoire tampon
  • Sondage des dépendances

Comparé à l'utilitaire d'origine :

  • Dépendances stdbuf et cat supprimées
  • dd introduit pour la portabilité
  • Prise en charge de XMODEM ajoutée là où des récepteurs existent

Cela permet à Provisioner de fonctionner même dans des états de carte gravement dégradés.

Automatisation et scripts

assm : Scripts natifs

Moteur de type expect :

  • Correspondance d'invite
  • Réponses déterministes
  • Exécution orientée octet

Idéal pour les flux de connexion et de démarrage.

exec_scr : Scripts externes

Exécute des programmes externes liés au flux série.

Modes :

ModeComportement
lineTamponné par ligne
charFlux d'octets

Intégrations optionnelles

Google Agenda (Optionnel)

Une intégration légère de réservation existe mais n'est pas un objectif principal du projet. Utilisée uniquement pour :

  • Accès basé sur le temps
  • Réservation partagée en laboratoire

Provisioner ne vise pas à devenir un planificateur de laboratoire complet.

Construction et portabilité

Provisioner est écrit en Go et se compile facilement en croisé.

Construction native

root@kitploit:~
make

Exemples de compilation croisée

root@kitploit:~
GOARCH=arm64 make

Aucune chaîne d'outils externe requise.

Déployable sur :

  • Serveurs
  • Hôtes de périphérie
  • Systèmes de classe Raspberry Pi
  • Passerelles de laboratoire
Télécharger l’outil