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
bof — BOF (Boiboite Opener Framework) ist ein Test-Framework für Implementierungen industrieller Protokolle und Geräte. | Kitploit
Tools/GitHubGitHub/orange-cyberdefense/bof
IoT-SicherheitNetzwerkkartierungSchwachstellenanalyseExploitationSCADA/ICS-SicherheitInformationsbeschaffungFuzzingPenetrationstestsDienstprogramme & Frameworks
GitHuborange-cyberdefense/bof

bof

BOF (Boiboite Opener Framework) ist ein Test-Framework für Implementierungen industrieller Protokolle und Geräte.

539vor 1 JahrVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
Repository anzeigenWebseite

BOF

BOF (Boiboite Opener Framework) ist ein Test-Framework für Feldprotokoll-Implementierungen und -Geräte. Es ist eine Python-3.6+-Bibliothek, die Mittel bereitstellt, um Frames der unterstützten Protokolle zu senden, zu empfangen, zu erstellen, zu parsen und zu manipulieren.

Die Bibliothek bietet derzeit Discovery- und erweiterte Testfunktionen für KNXnet/IP, das unseren Schwerpunkt bildet, lässt sich aber auf andere Arten von BMS- oder industriellen Netzwerkprotokollen erweitern. Sie bietet auch Multicast- und/oder End-to-End-Discovery-Funktionen für industrielle Netzwerke, die auf KNXnet/IP, LLDP, Profinet DCP und Modbus TCP basieren.

Bitte beachten Sie, dass das Ausrichten auf industrielle Systeme schwerwiegende Auswirkungen auf Menschen, industrielle Abläufe und Gebäude haben kann und dass BOF mit Vorsicht verwendet werden muss.

GitHub license GitHub release

Installation

Von PyPI

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

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

Manuelle Installation

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

Installieren Sie die Abhängigkeiten mit:

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

Die Protokollimplementierungen verwenden das Format von Scapy.

Erste Schritte

BOF ist eine Python-3.6+-Bibliothek, die in Skripte importiert werden sollte.

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

Es gibt drei Möglichkeiten, BOF zu verwenden, die je nach Layer nicht alle verfügbar sind:

  • Automatisiert: Importieren oder rufen Sie direkt Funktionen höherer Ebene aus den Layern auf. Keine Kenntnisse über das Protokoll erforderlich. Beispielsweise enthält das Discovery-Modul einige Funktionen, um Geräte mithilfe verschiedener industrieller Netzwerkprotokolle zu entdecken.

  • Standard: Erstellen Sie Pakete aus Layern, um mit entfernten Geräten zu interagieren. Grundkenntnisse über das Protokoll erforderlich.

  • Spielerisch: Spielen Sie mit Paketen, nutzen Sie das Protokoll zweckentfremdet (wir fuzzen damit Geräte). Der Endbenutzer sollte bereits begonnen haben, sich in die Spezifikationen des Protokolls einzuarbeiten.

Jetzt können Sie mit der Verwendung von BOF beginnen!

TL;DR

Mehrere Möglichkeiten, Geräte in einem Netzwerk zu entdecken

  • Multicast-Discovery aus dem Discovery-Modul (derzeit mit LLDP, Profinet DCP, KNX):
root@kitploit:~
from bof.modules.discovery import *

devices = multicast_discovery(iface="eth0", verbose=True)
  • Geräte-Discovery mithilfe einer High-Level-Funktion eines Layers
root@kitploit:~
from bof.layers.knx import search

devices = search()
for device in devices:
    print(device)
  • Erstellen und senden Sie Ihr eigenes Discovery-Paket:
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))

Senden und Empfangen von Paketen

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()

Erstellen Sie Ihre eigenen Pakete

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 # Yes it's too large
pkt.append(LcEMI())
pkt.show2() # This may output something strange

Ein Empfängergerät wird darauf wahrscheinlich nicht antworten, aber zumindest wissen Sie, dass BOF Sie nicht davon abhält, mit Ihren Paketen herumzuspielen.

Schnittstelle zu Scapy

BOF stützt sich für Protokollimplementierungen auf Scapy, mit einer zusätzlichen Schicht, die BOF-Code in Änderungen an Scapy-Paketen und -Feldern übersetzt. Warum? Weil BOF das interne Verhalten von Scapy leicht modifizieren oder überschreiben kann.

Sie müssen nicht wissen, wie man Scapy verwendet, um BOF zu nutzen; wenn Sie es jedoch können, können Sie auch direkt mit dem Scapy-Paket interagieren.

root@kitploit:~
packet = KNXPacket(type=connect_request)
packet.field1 = 1 # Applying additional BOF operations (ex: change types)
packet.scapy_pkt.field1 = 1 # Direct access to Scapy Packet object

Vollständige Dokumentation

made-with-sphinx-doc

Link zur Dokumentation: https://bof.readthedocs.io

Das HTML-Benutzerhandbuch und die Quellcode-Dokumentation können aus dem Repository erstellt werden:

  1. $> cd docs && make html
  2. Navigieren Sie zu [path to repository]/docs/_build/html/index.html

Beispielskripte befinden sich im Ordner examples.

Mitwirken

Mitwirkende sind willkommen! BOF ist noch ein laufendes Projekt, das auf industriellen Netzwerkprotokollimplementierungen im Scapy-Format basiert. Sie können zunächst beitragen, indem Sie zu Scapy beitragen und neue Protokolle („Layer“) hinzufügen. Oder Sie können beitragen, indem Sie ein Scapy-Protokoll in BOF integrieren. Die Dokumentation erklärt, wie das geht. Darüber hinaus gibt es weiterhin Raum für Funktionen höherer Ebene, die Tests erleichtern oder bekannte Angriffe gegen Protokolle oder Protokollimplementierungen umsetzen.

Hier ein paar Dinge, die Sie vorher wissen sollten:

  • Wir mögen sauberen Code und erwarten, dass Beiträge so weit wie möglich PEP-8-konform sind (auch wenn wir es nicht testen). Neuer Code sollte leicht lesbar und wartbar sein. Und denken Sie daran: Wenn Sie beim Erklären, was Ihre Funktion tut, „und“ verwenden müssen, können Sie sie wahrscheinlich aufteilen.

  • Bitte schreiben Sie Unit-Tests und stellen Sie sicher, dass die vorhandenen weiterhin bestehen! Sie befinden sich in tests/. Sie können alle Unit-Tests ausführen mit: python -m unittest discover -s tests

Probleme melden

Melden Sie Fehler, stellen Sie Fragen oder fordern Sie fehlende Dokumentation und neue Funktionen an, indem Sie ein Issue auf GitHub einreichen. Beschreiben Sie Ihr Problem bei Fehlern bitte so klar wie möglich.

Tool herunterladen
AutomatisiertStandardSpielerisch
KNXXXX
LLDPX
ModbusXXX
Profinet DCPX