Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
provisioner — SBCs를 위한 프로비저닝 및 공유 시스템 | Kitploit
도구/GitHubGitHub/alessandrocarminati/provisioner
Embedded Systems SecurityNetwork MappingScripting & AutomationHardware & IoT SecurityRemote Access ToolFirmware Analysis
GitHubalessandrocarminati/provisioner

provisioner

SBCs를 위한 프로비저닝 및 공유 시스템

저장소 보기
76개월 전아직 검토되지 않음

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유

Provisioner

개요

Provisioner는 개발자 중심의 프로비저닝 도우미로, 단일 보드 컴퓨터(SBC), 특히 U-Boot 기반 플랫폼을 대상으로 합니다.

image info

다음과 같은 자체 포함 환경을 제공합니다:

  • 원격으로 보드에 접근
  • 부트업(초기화) 워크플로우 자동화
  • 커널 및 루트 파일시스템 프로비저닝
  • 플래싱 작업 실행
  • 실험실 하드웨어를 안전하게 공유

운영 모델은 의도적으로 단순합니다:

하나의 보드 => 하나의 프로비저너 인스턴스

Provisioner는 하드웨어에 근접하여 실행되며, 안전하고 다중화된 인터페이스를 통해 개발자에게 제어된 원격 접근을 제공합니다.

시스템 구성 요소

프로젝트는 두 가지 주요 요소로 구성됩니다:

구성 요소실행 위치역할
Provisioner호스트 / 실험실 노드제어 평면, 직렬 게이트웨이, 프로비저닝 서비스
goinit대상 보드플래싱 에이전트 및 프로비저닝 런타임

Provisioner는 워크플로우를 오케스트레이션하고, goinit은 보드에서 로컬로 이를 실행합니다.

아키텍처 개요

Provisioner는 세 가지 운영 평면을 연결합니다:

  1. 사용자 접근 평면: SSH 모니터 및 터널
  2. 프로비저닝 평면: TFTP 및 HTTP 아티팩트 전달
  3. 보드 제어 평면: 직렬 콘솔 및 goinit API

이를 통해 부트로더부터 런타임 프로비저닝까지 지속적인 제어가 가능합니다.

핵심 하위 시스템

직렬 엔진

물리적 콘솔 연결을 소유하고 다음을 제공합니다:

  • 콘솔 다중화
  • 대화형 모니터
  • 스크립트 자동화
  • 파일 전송
  • 로깅

직렬 연결은 궁극적인 대체 제어 경로로 남습니다.

프로비저닝 서비스

내장 서비스가 부팅 아티팩트를 제공합니다:

TFTP

  • 커널 전달
  • 인코딩된 파일 이름을 통한 HTTP 프록시 가져오기

HTTP

  • 루트 파일시스템 이미지
  • 디바이스 트리
  • 커널 아티팩트
  • 일반 바이너리

SSH를 통한 제어 평면

Provisioner는 접근 및 제어 계층 역할을 하는 통합 SSH 엔드포인트를 노출합니다.

모든 원격 상호작용은 단일 SSH 연결을 통해 다중화되며 공개 키 인증을 통해 관리됩니다.

다중화된 채널은 다음을 포함합니다:

  • 모니터 셸
  • 직렬 콘솔 터널
  • 제어 CLI
  • 파일 전송

접근 관리:

  • 공개 키 식별
  • 사용자별 터널 활성화/비활성화
  • 중앙 집중식 권한 적용

따라서 SSH는 다음을 모두 전달합니다:

  • 관리 평면 트래픽
  • 직렬 데이터 평면 스트림

내부 라우터

Provisioner의 I/O 모델의 핵심에는 라우터가 있습니다. 이는 생산자와 소비자 간의 터미널 스트림을 중개하는 플러그 가능한 소프트웨어 아티팩트입니다.

모든 콘솔 트래픽은 하위 시스템 간에 직접 흐르는 대신 이 구성 요소를 통해 흐릅니다.

생산자/소비자 모델

라우터 클라이언트는 다음을 수행할 수 있습니다:

  • 터미널 데이터 생성
  • 터미널 데이터 소비
  • 양방향 작동

예:

  • SSH 모니터 세션
  • 직렬 터널
  • 자동화 스크립트
  • 로깅 에이전트
  • 전송 유틸리티

사람 대 기계 클라이언트

라우터는 두 가지 클라이언트 변형을 구분합니다:

유형특성예
사람대화형, ANSI 인식SSH 터미널
기계결정적, 원시 I/O스크립트, 자동화

이를 통해 사용성과 결정성에 맞춰진 스트림 처리가 가능합니다.

라우팅 전략

유니캐스트

  • 단일 수신자
  • 독점 제어 세션 또는 전송에 사용

멀티캐스트

  • 브로드캐스트 전달
  • 모니터링, 로깅, 관찰자에 사용

여러 엔지니어가 간섭 없이 동일한 콘솔을 볼 수 있습니다.

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_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

외부 툴체인이 필요하지 않습니다.

다음에 배포 가능:

  • 서버
  • 엣지 호스트
  • 라즈베리 파이급 시스템
  • 실험실 게이트웨이
도구 다운로드