options.yaml
Purpose/Function
The options file is intended to provide the attack module options, targets, and any metadata required by the Hive.
You will receive an options.yaml after registering and creating your user in the Hive platform.
Sections
Global Variables
global_variables:
This option is used to define global variables referenced in the options file using ##VARNAME##. For example:
global_variables:
targeturl: 'https://www.darksidesecurity.io'
This can be referenced using
modules:
whatweb-template:
module: whatweb
target: '##TARGETURL##'
Please note the case for the variable when it is being used is UPPERCASE while the reference is lowercase
Configuration
The configuration section is used to tell Aphids whether to act in online or offline mode. Online mode utilizes the Hive platform. While Offline will write the output to the working directory when using aphids-cli
These are properties of:
configuration:
online: enabled
scan_group: Default-UUIDHERE
team: users
network: public
engagements:
- Hive Engagement 1
online: enabled- [REQUIRED] - Your 2 options are enabled or disablednetwork: public- [REQUIRED] - Used for specifying whether this is scanning the public net or a private network. Private networks should be named to prevent collisions. For example if you scan 10.10.10.21 on 2 different networks, in order to prevent collision between the 2 data points, the network should be specified. Standard nomenclature can be applied such as domain.local.scan_group: Default-NameHere- [OPTIONAL] - This is for grouping the individual scans modules for tracking purposes in the Hive platform.team: users- [OPTIONAL] - Used for specifying a team on a multiuser license.- engagements: List of engagements by name - this will link the scan to an engagement.
engagements:
- My Test Engagement
Modules
The most important part of the options file. This defines the scan template name or arbitrary name, the scan module to be used, and the options to be applied for arguments and target. An example that can be used here is the whatweb scan:
modules:
whatweb-some-template-name:
module: 'whatweb'
target: 'https://www.darksidesecurity.io'
args:
- '-a'
- '3'
Above is a great example of where you could substitute **##TARGETURL## for the target value of https://www.darksidesecurity.io if it is defined in the global_variables section.
The required arguments here at the top level are:
- An arbitrary name. Literally this can be anything, we prefer to use the toolname-templatename from the generator, but it can be anything.
- In the example we used
whatweb-some-template-name
The children to the name are:
module: 'nmap'- [REQUIRED] - The module name is required and must match one of the supported modules. See Module List for more details.target: 'sometarget'- [REQUIRED] - This varies per module, may betarget_tldortarget_urlor justtargetand is entirely module dependent. See the full options file sample for each supported module.args: ['-Pn', '-sV', '-A']- [REQUIRED - Sometimes] - Some applications have required arguments such as -a 3 for whatweb and should not be modified. Arguments are considered supplementary and should only be added if the user is aware of how the arguments affect the operation of the tool.parse_only: false- [OPTIONAL] - This is ONLY used when choosing to run in parse mode. For instance, you ran a scan in offline mode and want to later parse and push the results to the Hive platform.filename: filename_to_be_parsed.someoutput- [OPTIONAL] - Only used in conjunction withparse_only: trueand is used to provide the filename in the current working directory to be parsed.
Example Options
Please see the example options file that contains the majority of the currently supported tools when last published.
configuration:
online: enabled
network: public
modules:
whatweb-default-03658566:
module: whatweb
args:
- -a
- "3"
target: https://www.darksidesecurity.io
nmap-default-381f0841:
module: nmap
args:
- -A
- -sV
- -T4
- -Pn
- -p21,22,23,25,443,80,8080,8443,8000,9000,6000
target: www.darksidesecurity.io
zap2-default-8484a852:
module: zap2
args: []
target_url: https://www.darksidesecurity.io
quickscan: "true"
nuclei-default-f6a19353:
module: nuclei
args: []
target_url: https://www.darksidesecurity.io
gobuster-dir-default-686dfd7d:
module: gobuster
args:
- -k
type: dir
target: https://www.darksidesecurity.io
amass-dns-default-21ddc389:
module: amass
args:
- -passive
tld: darksidesecurity.io
nikto-web-default-148f479d:
module: nikto
args: []
target: https://www.darksidesecurity.io
wapiti-default-00682cda:
module: wapiti
args: []
target: https://www.darksidesecurity.io
Note: For offline mode change
configuration:
online: disabled
Ran it in offline mode (due to network restrictions or opsec?) and want to upload, no worries. Rerun in online mode and override the options. Re-use your existing options file and add the following under each module:
parse_only: true
filename: relative/path/from/working/directory.json
An example:
nmap-default-381f0841:
module: nmap
args:
- -A
- -sV
- -T4
- -Pn
- -p21,22,23,25,443,80,8080,8443,8000,9000,6000
target: www.darksidesecurity.io
parse_only: true
filename: aphids-nmap-output-0000000000.xml
For extra precaution you can always comment the args and target properties. The module property is required.