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

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

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

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

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
bof — BOF(Boiboite Opener Framework)는 산업용 프로토콜 구현체와 기기를 테스트하기 위한 프레임워크입니다. | Kitploit
도구/GitHubGitHub/orange-cyberdefense/bof
IoT SecurityNetwork MappingVulnerability AnalysisExploitationSCADA/ICS SecurityInformation GatheringFuzzingPenetration TestingUtilities & Frameworks
GitHuborange-cyberdefense/bof

bof

BOF(Boiboite Opener Framework)는 산업용 프로토콜 구현체와 기기를 테스트하기 위한 프레임워크입니다.

53973년 전Kitploit 검토 완료

인기

모두 보기 →

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

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
저장소 보기웹사이트

BOF

BOF (Boiboite Opener Framework)는 현장 프로토콜 구현 및 장치를 위한 테스트 프레임워크입니다. Python 3.6+ 라이브러리로서, 지원되는 프로토콜의 프레임을 전송, 수신, 생성, 구문 분석 및 조작하는 수단을 제공합니다.

현재 라이브러리는 KNXnet/IP에 대한 발견 및 확장 테스트 기능을 제공하며, 이것이 우리의 주요 초점이지만, 다른 유형의 BMS 또는 산업용 네트워크 프로토콜로 확장할 수 있습니다. 또한 KNXnet/IP, LLDP, Profinet DCP 및 Modbus TCP에 의존하는 산업용 네트워크를 위한 멀티캐스트 및/또는 종단 간 발견 기능을 제공합니다.

산업 시스템을 대상으로 하는 것은 사람, 산업 운영 및 건물에 심각한 영향을 미칠 수 있으므로 BOF를 신중하게 사용해야 합니다.

GitHub license GitHub release

설치

PyPI에서

root@kitploit:~
pip install boiboite-opener-framework

https://pypi.org/project/boiboite-opener-framework/

수동 설치

root@kitploit:~
git clone https://github.com/Orange-Cyberdefense/bof.git

다음 명령으로 요구 사항을 설치합니다:

root@kitploit:~
pip install -r requirements.txt

프로토콜 구현은 Scapy의 형식을 사용합니다.

시작하기

BOF는 Python 3.6+ 라이브러리이며 스크립트에서 임포트해야 합니다.

root@kitploit:~
import bof
from bof.layers import profinet, knx
from bof.layers.knx import KnxPacket

BOF를 사용하는 세 가지 방법이 있으며, 레이어에 따라 모두 사용 가능하지는 않습니다:

  • 자동: 레이어의 고급 함수를 직접 임포트하거나 호출합니다. 프로토콜에 대한 지식이 필요 없습니다. 예를 들어, 검색 모듈에는 여러 산업용 네트워크 프로토콜을 사용하여 장치를 검색하는 몇 가지 함수가 포함되어 있습니다.

  • 표준: 레이어에서 패킷을 제작하여 원격 장치와 상호 작용합니다. 프로토콜에 대한 기본 지식이 필요합니다.

  • 유희: 패킷을 가지고 놀고, 프로토콜을 오용합니다(이를 통해 장치를 퍼징합니다). 최종 사용자는 프로토콜 사양을 파고들기 시작해야 합니다.

이제 BOF 사용을 시작할 수 있습니다!

TL;DR

네트워크에서 장치를 검색하는 여러 방법

  • 검색 모듈의 멀티캐스트 검색(현재 LLDP, Profinet DCP, KNX 지원):
root@kitploit:~
from bof.modules.discovery import *

devices = multicast_discovery(iface="eth0", verbose=True)
  • 레이어의 고급 함수를 사용한 장치 검색
root@kitploit:~
from bof.layers.knx import search

devices = search()
for device in devices:
    print(device)
  • 자신만의 검색 패킷 생성 및 전송:
root@kitploit:~
from bof.layers.knx import *

pkt = KNXPacket(type="search request")
responses = KNXnet.multicast(pkt, (KNX_MULTICAST_ADDR, KNX_PORT))
for response, _ in responses:
    print(KNXPacket(response))

패킷 전송 및 수신

root@kitploit:~
from bof.layers.knx import KNXnet, KNXPacket, SID
from bof import BOFNetworkError

try:
    knxnet = KNXnet().connect("192.168.1.242", 3671)
    pkt = KNXPacket(type=SID.description_request,
                    ip_address=knxnet.source_address,
                    port=knxnet.source_port)
    pkt.show2()
    response, _ = knxnet.sr(pkt)
    response.show2()
except BOFNetworkError as bne:
    pass
finally:
    knxnet.disconnect()

자신만의 패킷 제작

root@kitploit:~
from bof.layers.knx import KNXPacket, SID
from bof.layers.raw_scapy.knx import LcEMI

pkt = KNXPacket(type=SID.description_request)
pkt.ip_address = b"\x01\x01"
pkt.port = 99999 # 예, 너무 큽니다
pkt.append(LcEMI())
pkt.show2() # 이상한 출력이 나올 수 있습니다

수신 장치는 아마 응답하지 않겠지만, 적어도 BOF가 패킷을 엉망으로 만드는 것을 막지 않는다는 것을 알 수 있습니다.

Scapy와의 인터페이스

BOF는 프로토콜 구현을 위해 Scapy에 의존하며, BOF 코드 변경을 Scapy 패킷 및 필드에 반영하는 추가 레이어를 사용합니다. 왜일까요? BOF가 Scapy의 내부 동작을 약간 수정하거나 재정의할 수 있기 때문입니다.

BOF를 사용하기 위해 Scapy 사용법을 알 필요는 없지만, 알고 있다면 Scapy 패킷에 직접 상호 작용할 수도 있습니다.

root@kitploit:~
packet = KNXPacket(type=connect_request)
packet.field1 = 1 # 추가 BOF 작업 적용(예: 유형 변경)
packet.scapy_pkt.field1 = 1 # Scapy Packet 객체에 직접 접근

전체 문서

made-with-sphinx-doc

문서 링크: https://bof.readthedocs.io

HTML 사용자 매뉴얼 및 소스 코드 문서는 저장소에서 빌드할 수 있습니다:

  1. $> cd docs && make html
  2. [저장소 경로]/docs/_build/html/index.html로 이동

예제 스크립트는 examples 폴더에 있습니다.

기여

기여자를 환영합니다! BOF는 아직 진행 중인 프로젝트로, Scapy 형식의 산업용 네트워크 프로토콜 구현에 의존합니다. 먼저 Scapy에 기여하고 새로운 프로토콜("레이어")을 추가할 수 있습니다. 또는 Scapy 프로토콜을 BOF에 통합하여 기여할 수 있습니다. 문서에 방법이 설명되어 있습니다. 또한, 테스트를 더 쉽게 만들거나 프로토콜 또는 프로토콜 구현에 대한 알려진 공격을 구현하는 고급 함수를 위한 공간이 아직 있습니다.

몇 가지 사전 정보:

  • 우리는 깨끗한 코드를 선호하며, 가능한 한 PEP-8을 준수하는 기여를 기대합니다(테스트하지는 않지만). 새로운 코드는 읽기 쉽고 유지 관리가 가능해야 합니다. 그리고 기억하세요: 함수가 수행하는 작업을 설명할 때 "그리고"를 사용해야 한다면, 아마 분할할 수 있습니다.

  • 단위 테스트를 작성하고 기존 테스트가 여전히 통과하는지 확인하세요! 테스트는 tests/에 있습니다. 모든 단위 테스트를 실행하려면: python -m unittest discover -s tests

이슈 보고

버그 보고, 질문, 누락된 문서 및 새로운 기능 요청은 GitHub에서 이슈를 제출하여 해주세요. 버그의 경우 문제를 최대한 명확하게 설명해주세요.

도구 다운로드
자동표준유희
KNXXXX
LLDPX
ModbusXXX
Profinet DCPX