To add an exploit one has to go through a similar process as with the hardware profile, but in the case of the exploits, there are more options to provide and set.

If a new exploit needs a new hardware support then you first need to add a hardware profile, otherwise, you should use the default hardware profile.

To add an actual exploit profile you need to go through the following process:

  1. Create an exploit {name}.yaml file and name it as you wish. For example, exploit1337.yaml should be stored in the exploits directory
  2. Then you need to add the description of the exploit in YAML to the file which should have the following structure, see example 1:
name: "internalblue_CVE_2018_5383_Invalid"
author: "Internalblue team"
type: "PoC"
mass_testing: true
bt_version_min: 2.0
bt_version_max: 5.2
hardware: "nexus5"
command: "./internalblue_CVE_2018_5383_Invalid.sh"
parameters:
  - name: "target"
	name_required: false
	type: "str"
	help: "Target MAC address"
	required: true
	is_target_param: true
	parameter_connector: " "
  - name: "directory"
	name_required: false
	type: "str"
	help: "Directory to save output"
	required: true
	is_target_param: false
	parameter_connector: " "
log_pull:
  in_command: true
  pull_parameter: "directory"
directory:
  change: true
  directory: "modules/tools/custom_exploits"

3. With that you added an exploit, and you can verify that with the following command

sudo -E env PATH=$PATH bluekit -l
  1. If your exploit is not a DoS proof of concept, then we would ask you to add the following wrapper
    1. Call report_vulnerable function from the bluekit package when the exploit worked and a target device is vulnerable. Add data you want to save in the toolkit logs.
from bluekit.report import report_not_vulnerable, report_vulnerable, report_error

report_vulnerable("STRING YOU WANT TO APPEAR IN THE LOGS")
  • Call report_not_vulnerable function from bluekit package when the device is not vulnerable. Add the data you want to save in the toolkit logs.
from bluekit.report import report_not_vulnerable, report_vulnerable, report_error

report_not_vulnerable("STRING YOU WANT TO APPEAR IN THE LOGS")
  • For other codes please consult the documentation

LEAVE A REPLY

Please enter your comment!
Please enter your name here