Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
bof — BOF (Boiboite Opener Framework) è un framework di test per implementazioni di protocolli industriali e dispositivi. | Kitploit
Strumenti/GitHubGitHub/orange-cyberdefense/bof
Sicurezza IoTMappatura della ReteAnalisi delle VulnerabilitàExploitSicurezza SCADA/ICSRaccolta InformazioniFuzzingPenetration TestingUtilità e Framework
GitHuborange-cyberdefense/bof

bof

BOF (Boiboite Opener Framework) è un framework di test per implementazioni di protocolli industriali e dispositivi.

5391 anno faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
Vedi RepositorySito web

BOF

BOF (Boiboite Opener Framework) è un framework di testing per implementazioni di protocolli di campo e dispositivi. È una libreria Python 3.6+ che fornisce i mezzi per inviare, ricevere, creare, analizzare e manipolare frame dei protocolli supportati.

Attualmente la libreria fornisce funzionalità di discovery e test estesi per KNXnet/IP, che è il nostro focus, ma può essere estesa ad altri tipi di protocolli BMS o di rete industriale. Fornisce inoltre funzioni di discovery multicast e/o end-to-end per reti industriali basate su KNXnet/IP, LLDP, Profinet DCP e Modbus TCP.

Si noti che prendere di mira sistemi industriali può avere un grave impatto su persone, operazioni industriali ed edifici e che BOF deve essere usato con cautela.

GitHub license GitHub release

Installazione

Da PyPI

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

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

Installazione manuale

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

Installa i requisiti con:

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

Le implementazioni dei protocolli usano il formato di Scapy.

Per iniziare

BOF è una libreria Python 3.6+ che dovrebbe essere importata negli script.

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

Ci sono tre modi per usare BOF, non tutti disponibili a seconda del layer:

  • Automated: Importa o chiama direttamente funzioni di alto livello dai layer. Non è richiesta alcuna conoscenza del protocollo. Ad esempio, il modulo discovery contiene alcune funzioni per scoprire dispositivi usando diversi protocolli di rete industriale.

  • Standard: Costruisci pacchetti dai layer per interagire con dispositivi remoti. È richiesta una conoscenza di base del protocollo.

  • Playful: Gioca con i pacchetti, usa impropriamente il protocollo (fuzziamo i dispositivi con esso). L'utente finale dovrebbe aver iniziato a esplorare le specifiche del protocollo.

Ora puoi iniziare a usare BOF!

TL;DR

Diversi modi per scoprire dispositivi su una rete

  • Scoperta multicast dal modulo discovery (attualmente con LLDP, Profinet DCP, KNX):
root@kitploit:~
from bof.modules.discovery import *

devices = multicast_discovery(iface="eth0", verbose=True)
  • Scoperta di dispositivi usando una funzione di alto livello di un layer
root@kitploit:~
from bof.layers.knx import search

devices = search()
for device in devices:
    print(device)
  • Crea e invia il tuo pacchetto di discovery:
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))

Inviare e ricevere pacchetti

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

Costruisci i tuoi pacchetti

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

Un dispositivo destinatario probabilmente non risponderà, ma almeno sai che BOF non ti impedirà di pasticciare con i tuoi pacchetti.

Interfacciarsi con Scapy

BOF si basa su Scapy per le implementazioni dei protocolli, con un layer aggiuntivo che traduce il codice BOF in modifiche sui pacchetti e campi di Scapy. Perché? Perché BOF può modificare o sovrascrivere leggermente il comportamento interno di Scapy.

Non è necessario saper usare Scapy per usare BOF; tuttavia, se lo sai, sei libero di interagire direttamente anche con il pacchetto Scapy.

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

Documentazione completa

made-with-sphinx-doc

Link alla documentazione: https://bof.readthedocs.io

Il manuale utente HTML e la documentazione del codice sorgente possono essere generati dal repository:

  1. $> cd docs && make html
  2. Vai a [path to repository]/docs/_build/html/index.html

Gli script di esempio sono nella cartella examples.

Contribuire

I contributori sono i benvenuti! BOF è ancora un progetto in corso, che si basa su implementazioni di protocolli di rete industriale in formato Scapy. Puoi contribuire prima contribuendo a Scapy e aggiungendo nuovi protocolli ("layer"). Oppure puoi contribuire integrando un protocollo Scapy in BOF. La documentazione spiega come farlo. Inoltre, ci sarà ancora spazio per funzioni di livello superiore che renderanno i test più facili o implementeranno attacchi noti contro protocolli o implementazioni di protocolli.

Ecco alcune cose da sapere in anticipo:

  • Ci piace il codice pulito e ci aspettiamo che i contributi siano il più possibile conformi a PEP-8 (anche se non lo testiamo). Il nuovo codice dovrebbe essere facilmente leggibile e manutenibile. E ricorda: se hai bisogno di usare "e" mentre spieghi cosa fa la tua funzione, probabilmente puoi dividerla.

  • Per favore scrivi Unit test e assicurati che quelli esistenti passino ancora! Si trovano in tests/. Puoi eseguire tutti i unit test con: python -m unittest discover -s tests

Segnalazione di problemi

Segnala bug, fai domande o richiedi documentazione mancante e nuove funzionalità aprendo una issue su GitHub. Per i bug, descrivi il tuo problema nel modo più chiaro possibile.

Scarica lo strumento
AutomatedStandardPlayful
KNXXXX
LLDPX
ModbusXXX
Profinet DCPX