Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
provisioner — Sistema de aprovisionamiento y compartición para SBCs | Kitploit
Herramientas/GitHubGitHub/alessandrocarminati/provisioner
Seguridad de Sistemas EmbebidosMapeo de RedesScripting y AutomatizaciónSeguridad de Hardware e IoTHerramienta de Acceso RemotoAnálisis de Firmware
GitHubalessandrocarminati/provisioner

provisioner

Sistema de aprovisionamiento y compartición para SBCs

Ver Repositorio
7hace 6 mesesAún no revisado

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

Provisioner

Resumen

Provisioner es un asistente de aprovisionamiento orientado a desarrolladores para ordenadores de placa única (SBCs), particularmente plataformas basadas en U-Boot.

image info

Proporciona un entorno autocontenido para:

  • Acceder a placas de forma remota
  • Automatizar flujos de trabajo de puesta en marcha
  • Aprovisionar kernels y sistemas de archivos raíz
  • Ejecutar operaciones de grabación
  • Compartir hardware de laboratorio de forma segura

El modelo operativo es intencionadamente simple:

Una placa => Una instancia de Provisioner

Provisioner se ejecuta cerca del hardware y expone acceso remoto controlado a los desarrolladores a través de una interfaz segura y multiplexada.

Componentes del Sistema

El proyecto se compone de dos elementos principales:

ComponenteSe ejecuta enRol
ProvisionerHost / nodo de laboratorioPlano de control, puerta de enlace serie, servicios de aprovisionamiento
goinitPlaca objetivoAgente de grabación y entorno de ejecución de aprovisionamiento

Provisioner orquesta los flujos de trabajo; goinit los ejecuta localmente en la placa.

Resumen de la Arquitectura

Provisioner conecta tres planos operativos:

  1. Plano de Acceso de Usuario: Monitor SSH y túneles
  2. Plano de Aprovisionamiento: Entrega de artefactos vía TFTP y HTTP
  3. Plano de Control de la Placa: Consola serie y APIs de goinit

Esto permite un control continuo desde el gestor de arranque hasta el aprovisionamiento en tiempo de ejecución.

Subsistemas Principales

Motor Serie

Posee la conexión física de consola y proporciona:

  • Multiplexación de consola
  • Monitor interactivo
  • Automatización de scripts
  • Transferencia de archivos
  • Registro de actividad (logging)

La conexión serie sigue siendo la ruta de control de último recurso.

Servicios de Aprovisionamiento

Servicios embebidos que proporcionan artefactos de arranque:

TFTP

  • Entrega del kernel
  • Obtención de proxy HTTP a través de nombres de archivo codificados

HTTP

  • Imágenes de sistema de archivos raíz
  • Árboles de dispositivos
  • Artefactos del kernel
  • Binarios genéricos

Plano de Control vía SSH

Provisioner expone un punto final SSH unificado que actúa como capa de acceso y control.

Todas las interacciones remotas están multiplexadas sobre una única conexión SSH y gobernadas mediante autenticación de clave pública.

Los canales multiplexados incluyen:

  • Shell de monitor
  • Túneles de consola serie
  • CLI de control
  • Transferencias de archivos

Gobernanza de acceso:

  • Identidad de clave pública
  • Habilitación/deshabilitación de túnel por usuario
  • Aplicación centralizada de permisos

Por lo tanto, SSH transporta tanto:

  • Tráfico del plano de gestión
  • Flujos del plano de datos serie

Enrutador Interno

En el corazón del modelo de E/S de Provisioner se encuentra el enrutador, un artefacto de software conectable que gestiona los flujos de terminal entre productores y consumidores.

Todo el tráfico de consola fluye a través de este componente en lugar de directamente entre subsistemas.

Modelo Productor / Consumidor

Los clientes del enrutador pueden:

  • Producir datos de terminal
  • Consumir datos de terminal
  • Operar bidireccionalmente

Ejemplos:

  • Sesiones de monitor SSH
  • Túneles serie
  • Scripts de automatización
  • Agentes de registro
  • Utilidades de transferencia

Clientes Humanos vs Maquinales

El enrutador distingue entre dos variantes de cliente:

TipoCaracterísticasEjemplos
HumanoInteractivo, consciente de ANSITerminales SSH
MáquinaDeterminista, E/S crudaScripts, automatización

Esto permite un manejo de flujo adaptado para usabilidad versus determinismo.

Estrategias de Enrutamiento

Unidifusión

  • Un único destinatario
  • Utilizado para sesiones de control exclusivo o transferencias

Multidifusión

  • Entrega en difusión
  • Utilizado para monitoreo, registro, observadores

Varios ingenieros pueden observar la misma consola sin interferencias.

Vigilante ANSI

Un vigilante conectable dedicado mitiga los matices del terminal ANSI:

  • Observa secuencias de control
  • Normaliza artefactos de renderizado
  • Previene roturas en automatización

Implementado como un plugin en lugar de lógica fija.

CLI del Monitor

El shell del monitor proporciona control interactivo de la placa.

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  
>

Subsistema de Filtros

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

Las reglas pueden definirse en ASCII o HEX:

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

Los filtros pueden:

  • Interceptar datos recibidos
  • Reenviar o suprimir flujos
  • Inyectar respuestas

Esto es útil para la automatización de arranque y la normalización de la consola.

Transferencia de Archivos por Serie

Provisioner soporta transferencia directa de archivos por serie:

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

Modos:

ModoMétodo
plainBase64
gzipBase64 + compresión
xmodem_unixXMODEM vía rx
xmodem_ubootXMODEM vía loadx

Dependencias verificadas mediante:

root@kitploit:~
send_serial_deps

Utilidades requeridas:

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

Integración con send_console-ng

El motor de transferencia deriva de la utilidad independiente send_console-ng, adaptada a Provisioner. Permite la transferencia de archivos cuando:

  • No existe red
  • Solo hay un prompt de shell disponible
  • Las herramientas de recuperación deben enviarse manualmente

Capacidades:

  • Configuración remota del terminal
  • Compresión y codificación
  • Flujo de datos almacenado en búfer
  • Sondear dependencias

En comparación con la utilidad original:

  • Dependencias stdbuf y cat eliminadas
  • dd introducido por portabilidad
  • Soporte XMODEM añadido donde existan receptores

Esto permite que Provisioner opere incluso en estados de placa gravemente degradados.

Automatización y Scripting

assm: Scripts Nativos

Motor de espera (expect) tipo ensamblador:

  • Coincidencia de prompts
  • Respuestas deterministas
  • Ejecución orientada a bytes

Ideal para flujos de inicio de sesión y arranque.

exec_scr: Scripts Externos

Ejecuta programas externos vinculados al flujo serie.

Modos:

ModoComportamiento
lineCon búfer de línea
charFlujo de bytes

Integraciones Opcionales

Google Calendar (Opcional)

Existe una integración ligera de reservas, pero no es un enfoque principal del proyecto. Se utiliza solo para:

  • Acceso basado en tiempo
  • Reserva compartida de laboratorio

Provisioner no pretende convertirse en un planificador completo de laboratorio.

Construcción y Portabilidad

Provisioner está escrito en Go y se compila de forma cruzada fácilmente.

Compilación nativa

root@kitploit:~
make

Ejemplos de compilación cruzada

root@kitploit:~
GOARCH=arm64 make

No se requieren cadenas de herramientas externas.

Se puede desplegar en:

  • Servidores
  • Hosts periféricos
  • Sistemas tipo Raspberry Pi
  • Puertas de enlace de laboratorio
Descargar herramienta