Organize and improve documentation of config

This commit is contained in:
Itay Mizeretz 2017-10-08 15:36:12 +03:00
parent e29f95b28e
commit a807e3f8b6
2 changed files with 84 additions and 48 deletions

View File

@ -21,56 +21,56 @@ SCHEMA = {
"enum": [
"SmbExploiter"
],
"title": "SmbExploiter"
"title": "SMB Exploiter"
},
{
"type": "string",
"enum": [
"WmiExploiter"
],
"title": "WmiExploiter"
"title": "WMI Exploiter"
},
{
"type": "string",
"enum": [
"RdpExploiter"
],
"title": "RdpExploiter (UNSAFE)"
"title": "RDP Exploiter (UNSAFE)"
},
{
"type": "string",
"enum": [
"Ms08_067_Exploiter"
],
"title": "Ms08-067 Exploiter (UNSAFE)"
"title": "MS08-067 Exploiter (UNSAFE)"
},
{
"type": "string",
"enum": [
"SSHExploiter"
],
"title": "SSHExploiter"
"title": "SSH Exploiter"
},
{
"type": "string",
"enum": [
"ShellShockExploiter"
],
"title": "ShellShockExploiter"
"title": "ShellShock Exploiter"
},
{
"type": "string",
"enum": [
"SambaCryExploiter"
],
"title": "SambaCryExploiter"
"title": "SambaCry Exploiter"
},
{
"type": "string",
"enum": [
"ElasticGroovyExploiter"
],
"title": "ElasticGroovyExploiter"
"title": "ElasticGroovy Exploiter"
},
]
},
@ -125,7 +125,7 @@ SCHEMA = {
},
"properties": {
"basic": {
"title": "Basic",
"title": "Basic - Credentials",
"type": "object",
"properties": {
"credentials": {
@ -188,7 +188,7 @@ SCHEMA = {
"title": "Local network scan",
"type": "boolean",
"default": True,
"description": "Determines whether monkey should scan its subnets additionally"
"description": "Determines whether the monkey should scan its subnets additionally"
},
"depth": {
"title": "Depth" + WARNING_SIGN,
@ -212,17 +212,23 @@ SCHEMA = {
"ClassCRange"
],
"enumNames": [
"FixedRange",
"RelativeRange",
"ClassCRange"
"Fixed Range",
"Relative Range",
"Class C Range"
],
"description": "Determines which class to use to determine scan range"
"description":
"Determines which class to use to determine scan range."
" Fixed Range will scan only specific IPs listed under Fixed range IP list."
" Relative Range will scan the <Relative range size> closest ips to the machine's IP."
" Class C Range will scan machines in the Class C network the monkey's on."
},
"range_size": {
"title": "Relative range size",
"type": "integer",
"default": 1,
"description": "Determines the size of the RelativeRange - amount of IPs to include"
"description":
"Determines the size of the RelativeRange - amount of IPs to scan"
" (Only relevant for Relative Range)"
},
"range_fixed": {
"title": "Fixed range IP list",
@ -233,7 +239,9 @@ SCHEMA = {
},
"default": [
],
"description": "List of IPs to include when using FixedRange"
"description":
"List of IPs to include when using FixedRange"
" (Only relevant for Fixed Range)"
}
}
}
@ -293,25 +301,30 @@ SCHEMA = {
"title": "Max victims to find",
"type": "integer",
"default": 30,
"description": "Determines after how many discovered machines should the monkey stop scanning"
"description": "Determines the maximum number of machines the monkey is allowed to scan"
},
"victims_max_exploit": {
"title": "Max victims to exploit" + WARNING_SIGN,
"type": "integer",
"default": 7,
"description": "Determines after how many infected machines should the monkey stop infecting"
"description":
"Determines the maximum number of machines the monkey"
" is allowed to successfully exploit"
},
"timeout_between_iterations": {
"title": "Wait time between iterations",
"type": "integer",
"default": 100,
"description": "Determines for how long (in seconds) should the monkey wait between iterations"
"description":
"Determines for how long (in seconds) should the monkey wait between iterations"
},
"retry_failed_explotation": {
"title": "Retry failed exploitation",
"type": "boolean",
"default": True,
"description": "Determines whether the monkey should retry exploiting machines it didn't successfuly exploit on previous iterations"
"description":
"Determines whether the monkey should retry exploiting machines"
" it didn't successfuly exploit on previous iterations"
}
}
}
@ -329,7 +342,8 @@ SCHEMA = {
"title": "Singleton mutex name",
"type": "string",
"default": "{2384ec59-0df8-4ab9-918c-843740924a28}",
"description": "The name of the mutex used to determine whether the monkey is already running"
"description":
"The name of the mutex used to determine whether the monkey is already running"
},
"collect_system_info": {
"title": "Collect system info",
@ -371,23 +385,6 @@ SCHEMA = {
"ElasticFinger"
],
"description": "Determines which classes to use for fingerprinting"
},
"exploiter_classes": {
"title": "Exploiter classes" + WARNING_SIGN,
"type": "array",
"uniqueItems": True,
"items": {
"$ref": "#/definitions/exploiter_classes"
},
"default": [
"SmbExploiter",
"WmiExploiter",
"SSHExploiter",
"ShellShockExploiter",
"SambaCryExploiter",
"ElasticGroovyExploiter"
],
"description": "Determines which classes to use for exploiting"
}
}
},
@ -417,19 +414,25 @@ SCHEMA = {
"title": "Dropper sets date",
"type": "boolean",
"default": True,
"description": "Determines whether the dropper should set the monkey's file date to be the same as another file"
"description":
"Determines whether the dropper should set the monkey's file date to be the same as"
" another file"
},
"dropper_date_reference_path_windows": {
"title": "Dropper date reference path (Windows)",
"type": "string",
"default": "%windir%\\system32\\kernel32.dll",
"description": "Determines which file the dropper should copy the date from if it's configured to do so on Windows (use fullpath)"
"description":
"Determines which file the dropper should copy the date from if it's configured to do"
" so on Windows (use fullpath)"
},
"dropper_date_reference_path_linux": {
"title": "Dropper date reference path (Linux)",
"type": "string",
"default": "/bin/sh",
"description": "Determines which file the dropper should copy the date from if it's configured to do so on Linux (use fullpath)"
"description":
"Determines which file the dropper should copy the date from if it's configured to do"
" so on Linux (use fullpath)"
},
"dropper_target_path_linux": {
"title": "Dropper target path on Linux",
@ -447,7 +450,9 @@ SCHEMA = {
"title": "Try to move first",
"type": "boolean",
"default": True,
"description": "Determines whether the dropper should try to move itself instead of copying itself to target path"
"description":
"Determines whether the dropper should try to move itsel instead of copying itself"
" to target path"
}
}
},
@ -515,7 +520,8 @@ SCHEMA = {
"title": "Mimikatz DLL name",
"type": "string",
"default": "mk.dll",
"description": "Name of Mimikatz DLL (should be the same as in the monkey's pyinstaller spec file)"
"description":
"Name of Mimikatz DLL (should be the same as in the monkey's pyinstaller spec file)"
}
}
}
@ -552,7 +558,9 @@ SCHEMA = {
"monkey.guardicore.com",
"www.google.com"
],
"description": "List of internet services to try and communicate with to determine internet connectivity (use either ip or domain)"
"description":
"List of internet services to try and communicate with to determine internet"
" connectivity (use either ip or domain)"
},
"current_server": {
"title": "Current server",
@ -572,11 +580,29 @@ SCHEMA = {
"title": "General",
"type": "object",
"properties": {
"exploiter_classes": {
"title": "Exploits" + WARNING_SIGN,
"type": "array",
"uniqueItems": True,
"items": {
"$ref": "#/definitions/exploiter_classes"
},
"default": [
"SmbExploiter",
"WmiExploiter",
"SSHExploiter",
"ShellShockExploiter",
"SambaCryExploiter",
"ElasticGroovyExploiter"
],
"description": "Determines which exploits to use"
},
"skip_exploit_if_file_exist": {
"title": "Skip exploit if file exists",
"type": "boolean",
"default": False,
"description": "Determines whether the monkey should skip the exploit if the monkey's file is already on the remote machine"
"description": "Determines whether the monkey should skip the exploit if the monkey's file"
" is already on the remote machine"
}
}
},
@ -612,7 +638,8 @@ SCHEMA = {
"title": "Use VBS download",
"type": "boolean",
"default": True,
"description": "Determines whether to use VBS or BITS to download monkey to remote machine (true=VBS, false=BITS)"
"description": "Determines whether to use VBS or BITS to download monkey to remote machine"
" (true=VBS, false=BITS)"
}
}
},
@ -667,7 +694,8 @@ SCHEMA = {
"title": "SMB download timeout",
"type": "integer",
"default": 300,
"description": "Timeout (in seconds) for SMB download operation (used in various exploits using SMB)"
"description":
"Timeout (in seconds) for SMB download operation (used in various exploits using SMB)"
},
"smb_service_name": {
"title": "SMB service name",

View File

@ -116,7 +116,15 @@ class ConfigurePageComponent extends React.Component {
<NavItem key={section.key} eventKey={section.key}>{section.title}</NavItem>
)}
</Nav>
{
this.state.selectedSection === 'basic_network' ?
<div className="alert alert-info">
<i className="glyphicon glyphicon-info-sign" style={{'marginRight': '5px'}}/>
The Monkey scans its subnet if "Local network scan" is ticked. Additionally the monkey will scan machines
according to its range class.
</div>
: <div />
}
{ this.state.selectedSection ?
<Form schema={displayedSchema}
formData={this.state.configuration[this.state.selectedSection]}