Skip to main content

Configuration

BlackRainbow engagements are defined in YAML. Every field is validated at load time.

Quick Reference

target:
type: network-service
host: 192.168.1.100
label: target-env
scope:
networks:
- 192.168.1.0/24
exclude:
- 192.168.1.1

engagement:
purpose: |
Security assessment of target environment.
rules:
- No denial of service
- No data destruction
operator: your-name

plugins:
- recon
- id: credential-access
numTests: 10
severity: high
config:
wordlist: /usr/share/wordlists/rockyou.txt

strategies:
- sequential

model:
provider: ollama
model: blackrainbow
host: http://localhost:11434
temperature: 0.3

output:
report: ./reports/
capture: ./captures/
format: markdown

Config File

Default filename: blackrainbow.yaml. Override with br run --config <path>.

Generate from a template:

br init --template network     # Network/infrastructure assessment
br init --template webapp # Web application assessment
br init --template ad # Active Directory assessment

Top-Level Keys

KeyTypeRequiredDescription
targetObjectYesWhat you are testing
engagementObjectYesScope, rules, operator
pluginsListNoAttack modules to run
strategiesListNoExecution strategies
modelObjectNoAI model configuration
outputObjectNoReport and capture settings

target

Defines the assessment target.

target:
type: network-service
host: 192.168.1.100
label: target-env
port: 443
protocol: tcp
url: https://192.168.1.100
scope:
networks:
- 192.168.1.0/24
exclude:
- 192.168.1.1
FieldTypeDefaultDescription
typestringnetwork-serviceTarget type
hoststringrequiredTarget hostname or IP
labelstring--Human-readable name for reports
portinteger--Specific port to target
protocolstring--Protocol (tcp, udp)
urlstring--Full URL (for web targets)
scopeobject--Network scope constraints

Target Types

TypeUse Case
network-serviceNetwork hosts, infrastructure
web-applicationWeb applications, APIs
active-directoryAD domains
cloud-serviceCloud environments
ai-systemAI/ML endpoints
customUser-defined

scope

scope:
networks:
- 10.0.0.0/8
- 172.16.0.0/12
exclude:
- 10.0.0.1
FieldTypeDefaultDescription
networkslist of strings[]In-scope CIDRs
excludelist of strings[]Excluded hosts or CIDRs

engagement

Engagement metadata: what you are doing and what the rules are.

engagement:
purpose: |
Full security assessment of target environment.
Demonstrate attack paths from initial access to objective.
rules:
- No denial of service
- No data destruction
- No attacking out-of-scope hosts
operator: your-name
FieldTypeDefaultDescription
purposestringrequiredWhat this engagement is trying to prove
ruleslist of strings[]Rules of engagement
operatorstringunknownYour operator name

plugins

List of attack modules to run. Supports short form and long form.

Short form

Just the plugin ID:

plugins:
- recon
- credential-access
- web-exploit

Long form

Plugin ID with configuration overrides:

plugins:
- id: recon
numTests: 5
severity: medium

- id: credential-access
numTests: 10
severity: high
config:
wordlist: /usr/share/wordlists/rockyou.txt
timeout: 600

- id: web-exploit
config:
scan_type: aggressive
FieldTypeDefaultDescription
idstringrequiredPlugin ID from registry
numTestsinteger5Number of test sequences to generate
severitystringmediumMinimum severity (info, low, medium, high, critical)
configobject{}Plugin-specific configuration

File references

Load a plugin from a local file:

plugins:
- file://./my-custom-plugin.py

strategies

Execution strategies control how attack sequences are ordered and delivered.

strategies:
- sequential
StrategyBehavior
sequentialExecute in order, one at a time
parallelFan-out, multiple sequences concurrently
adaptiveDynamic reordering based on results

An empty list means sequences execute in generation order:

strategies: []

model

AI model configuration for intelligent sequencing and analysis.

model:
provider: ollama
model: blackrainbow
host: http://localhost:11434
temperature: 0.3
FieldTypeDefaultDescription
providerstringollamaModel provider
modelstringblackrainbowModel name
hoststringhttp://localhost:11434Provider API endpoint
temperaturefloat0.3Inference temperature (lower = more focused)

The model enhances plugin behavior: suggesting targeted enumeration based on discovered services, analyzing tool output for attack paths, and generating context-aware sequences.


output

Report and artifact settings.

output:
report: ./reports/
capture: ./captures/
format: markdown
FieldTypeDefaultDescription
reportstring./reports/Report output directory
capturestring./captures/Artifact capture directory
formatstringmarkdownReport format

Output formats

FormatDescription
markdownMarkdown report with embedded code blocks
jsonStructured JSON for programmatic consumption
htmlStandalone HTML report
pdfPDF report for stakeholder delivery

CLI Overrides

Override any config value from the command line:

# Override target
br run --target 10.0.0.50

# Override plugins
br run --plugins recon,credential-access

# Use a different config
br run --config engagements/webapp.yaml

# Combine
br run --target 10.0.0.50 --plugins recon --dry-run

CLI flags take precedence over config file values.


Templates

Generate a starter config:

br init --template network
br init --template webapp
br init --template ad
br init --output engagements/custom.yaml

Templates include placeholder values. Replace everything marked CHANGEME before running.