├── .gitignore ├── .readthedocs.yaml ├── LICENSE ├── README.md ├── bof ├── __init__.py ├── base.py ├── device.py ├── layers │ ├── __init__.py │ ├── knx │ │ ├── __init__.py │ │ ├── knx_constants.py │ │ ├── knx_functions.py │ │ ├── knx_messages.py │ │ ├── knx_network.py │ │ └── knx_packet.py │ ├── lldp │ │ ├── __init__.py │ │ ├── lldp_constants.py │ │ └── lldp_functions.py │ ├── modbus │ │ ├── __init__.py │ │ ├── modbus_constants.py │ │ ├── modbus_functions.py │ │ ├── modbus_network.py │ │ └── modbus_packet.py │ ├── profinet │ │ ├── __init__.py │ │ ├── profinet_constants.py │ │ └── profinet_functions.py │ └── raw_scapy │ │ ├── __init__.py │ │ └── knx.py ├── modules │ ├── __init__.py │ └── discovery.py ├── network.py └── packet.py ├── docs ├── Makefile ├── base.rst ├── bof.rst ├── conf.py ├── index.rst ├── layers.rst ├── make.bat ├── man │ ├── dev.rst │ ├── discovery.rst │ ├── images │ │ ├── bof_levels.drawio │ │ ├── bof_levels.png │ │ ├── bof_scapy.drawio │ │ ├── bof_scapy.png │ │ ├── boiboite.png │ │ └── knx_frame.png │ ├── knx.rst │ └── user.rst └── modules.rst ├── examples ├── discovery │ └── multicast_discovery.py ├── knx │ ├── cemi_fuzzer.py │ ├── discover.py │ ├── group_write.py │ └── search.py └── modbus │ └── discover.py ├── requirements.txt ├── setup.py └── tests ├── __init__.py ├── test_base.py ├── test_device.py ├── test_knx.py ├── test_layers ├── otter │ ├── __init__.py │ └── otter_packet.py └── raw_scapy │ ├── __init__.py │ └── otter.py ├── test_lldp.py ├── test_modbus.py ├── test_network.py ├── test_packet.py └── test_profinet.py /.gitignore: -------------------------------------------------------------------------------- 1 | *~ 2 | __pycache__ 3 | *.pyc 4 | dist 5 | docs/_build 6 | bof.log 7 | examples/*/drafts -------------------------------------------------------------------------------- /.readthedocs.yaml: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Orange-Cyberdefense/bof/HEAD/.readthedocs.yaml -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Orange-Cyberdefense/bof/HEAD/LICENSE -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Orange-Cyberdefense/bof/HEAD/README.md -------------------------------------------------------------------------------- /bof/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Orange-Cyberdefense/bof/HEAD/bof/__init__.py -------------------------------------------------------------------------------- /bof/base.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Orange-Cyberdefense/bof/HEAD/bof/base.py -------------------------------------------------------------------------------- /bof/device.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Orange-Cyberdefense/bof/HEAD/bof/device.py -------------------------------------------------------------------------------- /bof/layers/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Orange-Cyberdefense/bof/HEAD/bof/layers/__init__.py -------------------------------------------------------------------------------- /bof/layers/knx/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Orange-Cyberdefense/bof/HEAD/bof/layers/knx/__init__.py -------------------------------------------------------------------------------- /bof/layers/knx/knx_constants.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Orange-Cyberdefense/bof/HEAD/bof/layers/knx/knx_constants.py -------------------------------------------------------------------------------- /bof/layers/knx/knx_functions.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Orange-Cyberdefense/bof/HEAD/bof/layers/knx/knx_functions.py -------------------------------------------------------------------------------- /bof/layers/knx/knx_messages.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Orange-Cyberdefense/bof/HEAD/bof/layers/knx/knx_messages.py -------------------------------------------------------------------------------- /bof/layers/knx/knx_network.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Orange-Cyberdefense/bof/HEAD/bof/layers/knx/knx_network.py -------------------------------------------------------------------------------- /bof/layers/knx/knx_packet.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Orange-Cyberdefense/bof/HEAD/bof/layers/knx/knx_packet.py -------------------------------------------------------------------------------- /bof/layers/lldp/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Orange-Cyberdefense/bof/HEAD/bof/layers/lldp/__init__.py -------------------------------------------------------------------------------- /bof/layers/lldp/lldp_constants.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Orange-Cyberdefense/bof/HEAD/bof/layers/lldp/lldp_constants.py -------------------------------------------------------------------------------- /bof/layers/lldp/lldp_functions.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Orange-Cyberdefense/bof/HEAD/bof/layers/lldp/lldp_functions.py -------------------------------------------------------------------------------- /bof/layers/modbus/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Orange-Cyberdefense/bof/HEAD/bof/layers/modbus/__init__.py -------------------------------------------------------------------------------- /bof/layers/modbus/modbus_constants.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Orange-Cyberdefense/bof/HEAD/bof/layers/modbus/modbus_constants.py -------------------------------------------------------------------------------- /bof/layers/modbus/modbus_functions.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Orange-Cyberdefense/bof/HEAD/bof/layers/modbus/modbus_functions.py -------------------------------------------------------------------------------- /bof/layers/modbus/modbus_network.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Orange-Cyberdefense/bof/HEAD/bof/layers/modbus/modbus_network.py -------------------------------------------------------------------------------- /bof/layers/modbus/modbus_packet.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Orange-Cyberdefense/bof/HEAD/bof/layers/modbus/modbus_packet.py -------------------------------------------------------------------------------- /bof/layers/profinet/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Orange-Cyberdefense/bof/HEAD/bof/layers/profinet/__init__.py -------------------------------------------------------------------------------- /bof/layers/profinet/profinet_constants.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Orange-Cyberdefense/bof/HEAD/bof/layers/profinet/profinet_constants.py -------------------------------------------------------------------------------- /bof/layers/profinet/profinet_functions.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Orange-Cyberdefense/bof/HEAD/bof/layers/profinet/profinet_functions.py -------------------------------------------------------------------------------- /bof/layers/raw_scapy/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /bof/layers/raw_scapy/knx.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Orange-Cyberdefense/bof/HEAD/bof/layers/raw_scapy/knx.py -------------------------------------------------------------------------------- /bof/modules/__init__.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Orange-Cyberdefense/bof/HEAD/bof/modules/__init__.py -------------------------------------------------------------------------------- /bof/modules/discovery.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Orange-Cyberdefense/bof/HEAD/bof/modules/discovery.py -------------------------------------------------------------------------------- /bof/network.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Orange-Cyberdefense/bof/HEAD/bof/network.py -------------------------------------------------------------------------------- /bof/packet.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Orange-Cyberdefense/bof/HEAD/bof/packet.py -------------------------------------------------------------------------------- /docs/Makefile: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Orange-Cyberdefense/bof/HEAD/docs/Makefile -------------------------------------------------------------------------------- /docs/base.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Orange-Cyberdefense/bof/HEAD/docs/base.rst -------------------------------------------------------------------------------- /docs/bof.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Orange-Cyberdefense/bof/HEAD/docs/bof.rst -------------------------------------------------------------------------------- /docs/conf.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Orange-Cyberdefense/bof/HEAD/docs/conf.py -------------------------------------------------------------------------------- /docs/index.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Orange-Cyberdefense/bof/HEAD/docs/index.rst -------------------------------------------------------------------------------- /docs/layers.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Orange-Cyberdefense/bof/HEAD/docs/layers.rst -------------------------------------------------------------------------------- /docs/make.bat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Orange-Cyberdefense/bof/HEAD/docs/make.bat -------------------------------------------------------------------------------- /docs/man/dev.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Orange-Cyberdefense/bof/HEAD/docs/man/dev.rst -------------------------------------------------------------------------------- /docs/man/discovery.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Orange-Cyberdefense/bof/HEAD/docs/man/discovery.rst -------------------------------------------------------------------------------- /docs/man/images/bof_levels.drawio: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Orange-Cyberdefense/bof/HEAD/docs/man/images/bof_levels.drawio -------------------------------------------------------------------------------- /docs/man/images/bof_levels.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Orange-Cyberdefense/bof/HEAD/docs/man/images/bof_levels.png -------------------------------------------------------------------------------- /docs/man/images/bof_scapy.drawio: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Orange-Cyberdefense/bof/HEAD/docs/man/images/bof_scapy.drawio -------------------------------------------------------------------------------- /docs/man/images/bof_scapy.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Orange-Cyberdefense/bof/HEAD/docs/man/images/bof_scapy.png -------------------------------------------------------------------------------- /docs/man/images/boiboite.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Orange-Cyberdefense/bof/HEAD/docs/man/images/boiboite.png -------------------------------------------------------------------------------- /docs/man/images/knx_frame.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Orange-Cyberdefense/bof/HEAD/docs/man/images/knx_frame.png -------------------------------------------------------------------------------- /docs/man/knx.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Orange-Cyberdefense/bof/HEAD/docs/man/knx.rst -------------------------------------------------------------------------------- /docs/man/user.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Orange-Cyberdefense/bof/HEAD/docs/man/user.rst -------------------------------------------------------------------------------- /docs/modules.rst: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Orange-Cyberdefense/bof/HEAD/docs/modules.rst -------------------------------------------------------------------------------- /examples/discovery/multicast_discovery.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Orange-Cyberdefense/bof/HEAD/examples/discovery/multicast_discovery.py -------------------------------------------------------------------------------- /examples/knx/cemi_fuzzer.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Orange-Cyberdefense/bof/HEAD/examples/knx/cemi_fuzzer.py -------------------------------------------------------------------------------- /examples/knx/discover.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Orange-Cyberdefense/bof/HEAD/examples/knx/discover.py -------------------------------------------------------------------------------- /examples/knx/group_write.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Orange-Cyberdefense/bof/HEAD/examples/knx/group_write.py -------------------------------------------------------------------------------- /examples/knx/search.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Orange-Cyberdefense/bof/HEAD/examples/knx/search.py -------------------------------------------------------------------------------- /examples/modbus/discover.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Orange-Cyberdefense/bof/HEAD/examples/modbus/discover.py -------------------------------------------------------------------------------- /requirements.txt: -------------------------------------------------------------------------------- 1 | scapy==2.5.0rc1 2 | packaging 3 | 4 | -------------------------------------------------------------------------------- /setup.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Orange-Cyberdefense/bof/HEAD/setup.py -------------------------------------------------------------------------------- /tests/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/test_base.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Orange-Cyberdefense/bof/HEAD/tests/test_base.py -------------------------------------------------------------------------------- /tests/test_device.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Orange-Cyberdefense/bof/HEAD/tests/test_device.py -------------------------------------------------------------------------------- /tests/test_knx.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Orange-Cyberdefense/bof/HEAD/tests/test_knx.py -------------------------------------------------------------------------------- /tests/test_layers/otter/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/test_layers/otter/otter_packet.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Orange-Cyberdefense/bof/HEAD/tests/test_layers/otter/otter_packet.py -------------------------------------------------------------------------------- /tests/test_layers/raw_scapy/__init__.py: -------------------------------------------------------------------------------- 1 | -------------------------------------------------------------------------------- /tests/test_layers/raw_scapy/otter.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Orange-Cyberdefense/bof/HEAD/tests/test_layers/raw_scapy/otter.py -------------------------------------------------------------------------------- /tests/test_lldp.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Orange-Cyberdefense/bof/HEAD/tests/test_lldp.py -------------------------------------------------------------------------------- /tests/test_modbus.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Orange-Cyberdefense/bof/HEAD/tests/test_modbus.py -------------------------------------------------------------------------------- /tests/test_network.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Orange-Cyberdefense/bof/HEAD/tests/test_network.py -------------------------------------------------------------------------------- /tests/test_packet.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Orange-Cyberdefense/bof/HEAD/tests/test_packet.py -------------------------------------------------------------------------------- /tests/test_profinet.py: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/Orange-Cyberdefense/bof/HEAD/tests/test_profinet.py --------------------------------------------------------------------------------