Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
bof — BOF (Boiboite Opener Framework) é um framework de testes para implementações de protocolos industriais e dispositivos. | Kitploit
Ferramentas/GitHubGitHub/orange-cyberdefense/bof
Segurança IoTMapeamento de RedeAnálise de VulnerabilidadesExploraçãoSegurança SCADA/ICSColeta de InformaçõesFuzzingTestes de PenetraçãoUtilitários e Frameworks
GitHuborange-cyberdefense/bof

bof

BOF (Boiboite Opener Framework) é um framework de testes para implementações de protocolos industriais e dispositivos.

5397há 3 anosRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar
Ver RepositórioSite

BOF

BOF (Boiboite Opener Framework) é um framework de teste para implementações de protocolos de campo e dispositivos. É uma biblioteca Python 3.6+ que fornece meios para enviar, receber, criar, analisar e manipular frames de protocolos suportados.

A biblioteca atualmente fornece funcionalidades de descoberta e testes avançados para KNXnet/IP, que é o nosso foco, mas pode ser estendida para outros tipos de protocolos BMS ou de redes industriais. Ela também fornece funções de descoberta multicast e/ou ponta a ponta para redes industriais que utilizam KNXnet/IP, LLDP, Profinet DCP e Modbus TCP.

Por favor, note que atacar sistemas industriais pode ter um impacto severo sobre pessoas, operações industriais e edifícios, e que o BOF deve ser usado com cuidado.

GitHub license GitHub release

Instalação

A partir do PyPI

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

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

Instalação manual

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

Instale os requisitos com:

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

As implementações de protocolo usam o formato do Scapy.

Primeiros passos

BOF é uma biblioteca Python 3.6+ que deve ser importada em scripts.

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

Existem três formas de usar o BOF, nem todas disponíveis dependendo da camada:

  • Automático: Importe ou chame diretamente funções de alto nível das camadas. Nenhum conhecimento sobre o protocolo é necessário. Por exemplo, o módulo discovery contém algumas funções para descobrir dispositivos usando vários protocolos de rede industrial.

  • Padrão: Crie pacotes a partir de camadas para interagir com dispositivos remotos. Conhecimento básico sobre o protocolo é necessário.

  • Lúdico: Brinque com pacotes, use indevidamente o protocolo (nós fazemos fuzzing de dispositivos com ele). O utilizador final deve ter começado a explorar as especificações do protocolo.

Agora você pode começar a usar o BOF!

TL;DR

Várias formas de descobrir dispositivos numa rede

  • Descoberta multicast a partir do módulo discovery (atualmente com LLDP, Profinet DCP, KNX):
root@kitploit:~
from bof.modules.discovery import *

devices = multicast_discovery(iface="eth0", verbose=True)
  • Descoberta de dispositivos usando uma função de alto nível de uma camada
root@kitploit:~
from bof.layers.knx import search

devices = search()
for device in devices:
    print(device)
  • Crie e envie o seu próprio pacote de descoberta:
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))

Enviar e receber pacotes

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

Crie os seus próprios pacotes

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 # Sim, é muito grande
pkt.append(LcEMI())
pkt.show2() # Isto pode mostrar algo estranho

Um dispositivo recetor provavelmente não responderá a isso, mas pelo menos você sabe que o BOF não o impedirá de mexer nos seus pacotes.

Interface com Scapy

O BOF depende do Scapy para implementações de protocolo, com uma camada adicional que traduz o código BOF em alterações nos pacotes e campos do Scapy. Porquê? Porque o BOF pode modificar ou substituir ligeiramente o comportamento interno do Scapy.

Não precisa de saber usar o Scapy para usar o BOF; no entanto, se souber, pode interagir diretamente com o pacote Scapy também.

root@kitploit:~
packet = KNXPacket(type=connect_request)
packet.field1 = 1 # Aplicar operações adicionais do BOF (ex: alterar tipos)
packet.scapy_pkt.field1 = 1 # Acesso direto ao objeto Packet do Scapy

Documentação completa

made-with-sphinx-doc

Link para a documentação: https://bof.readthedocs.io

O manual do utilizador em HTML e a documentação do código fonte podem ser gerados a partir do repositório:

  1. $> cd docs && make html
  2. Navegue para [caminho para o repositório]/docs/_build/html/index.html

Os scripts de exemplo estão na pasta examples.

Contribuindo

Contribuições são bem-vindas! O BOF ainda é um projeto em andamento, que depende de implementações de protocolos de rede industrial no formato Scapy. Pode contribuir primeiro contribuindo para o Scapy e adicionando novos protocolos ("camadas"). Ou, pode contribuir integrando um protocolo Scapy no BOF. A documentação explica como fazê-lo. Além disso, ainda haverá espaço para funções de nível mais alto que tornarão os testes mais fáceis ou implementarão ataques conhecidos contra protocolos ou implementações de protocolos.

Aqui estão algumas coisas a saber antecipadamente:

  • Gostamos de código limpo e esperamos que as contribuições estejam o mais em conformidade possível com PEP-8 (mesmo que não testemos isso). Código novo deve ser fácil de ler e manterável. E lembre-se: se precisar de usar "e" enquanto explica o que a sua função faz, provavelmente pode dividi-la.

  • Por favor, escreva testes unitários e certifique-se de que os existentes ainda passam! Eles estão em tests/. Pode executar todos os testes unitários com: python -m unittest discover -s tests

Reportando problemas

Reporte bugs, faça perguntas ou solicite documentação em falta e novas funcionalidades submetendo um issue no GitHub. Para bugs, por favor descreva o seu problema da forma mais clara possível.

Baixar ferramenta
AutomáticoPadrãoLúdico
KNXXXX
LLDPX
ModbusXXX
Profinet DCPX