Skip to content
Tom edited this page Aug 3, 2016 · 6 revisions

##Table of Contents Overview
The default scenario
Scenario breakdown
Specifying attributes
Choosing a specific module

Overview

Scenarios are an XML representation of a configuration of machine(s) for SecGen to generate. This is where the user specifies which base boxes, networks, services, utilities and vulnerabilities they would like to use. There are many example scenarios availible for use.

The default scenario

The default scenario is run when no other scenario is specified. If a command line argument fails or is not completed properly SecGen will fall-back to using the default scenario.

<?xml version="1.0"?>
<scenario xmlns="http://www.github/cliffe/SecGen/scenario"
	   xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
	   xsi:schemaLocation="http://www.github/cliffe/SecGen/scenario">
	<!-- an example remote storage system, with a remotely exploitable vulnerability that can then be escalated to root -->
	<system>
		<system_name>storage_server</system_name>
		<base platform="linux"/>

		<vulnerability privilege="user" access="remote" />
		<vulnerability privilege="root" access="local" />
		<service/>

		<network type="private_network" range="dhcp"/>
	</system>
</scenario>

This scenario creates a system called 'storage_server' which uses a linux base with two vulnerabilities, a remote one which gives user privileges and a local vulnerability which gives root privileges, one service and a private network which uses dhcp.

Scenario breakdown

A Scenario can have multiple Systems, each of which can have multiple Modules, which can be of the type Base, Network, Service, Utility or Vulnerability.

Specifying attributes

SecGen allows for specifying which modules you require with varying degrees of granularity. In the default scenario the two vulnerabilities use the XML attributes to specify the type of vulnerability they would like. SecGen will try and find a module which fits the specified criteria. If multiple modules meet the requirements a valid module will be chosen at random.

Choosing a specific module

Use a specific module by using the type and the module path:
<service module_path="modules/services/unix/http/apache"/>