From 1445bcf4ad72c7c8360b8c91e4bc567a91cdc3d4 Mon Sep 17 00:00:00 2001 From: vakarisz Date: Thu, 14 Jul 2022 17:05:54 +0300 Subject: [PATCH] UI: Reorganize and simplify configuration schema --- .../ui/src/components/pages/ConfigurePage.js | 2 +- .../src/components/ui-components/InfoPane.js | 4 +- .../services/configuration/configSchema.js | 45 ++++++++++++++ .../services/configuration/config_schema.js | 58 ----------------- ..._collectors.js => credentialCollectors.js} | 3 +- .../src/services/configuration/credentials.js | 60 ------------------ .../custom_pbas.js => customPBAs.js} | 3 +- .../configuration/definitions/exploitation.js | 26 -------- .../configuration/definitions/network_scan.js | 21 ------- ...tion_options.js => exploitationOptions.js} | 3 +- ...ploiter_classes.js => exploiterClasses.js} | 4 +- .../{definitions => }/plugins.js | 0 ...breach_actions.js => postBreachActions.js} | 3 +- .../configuration/propagation/credentials.js | 62 +++++++++++++++++++ .../configuration/propagation/exploitation.js | 24 +++++++ .../fingerprinterClasses.js} | 4 +- .../icmp_scan.js => propagation/icmpScan.js} | 4 +- .../configuration/propagation/networkScan.js | 22 +++++++ .../propagation.js | 13 ++-- .../scanTarget.js} | 3 +- .../tcp_scan.js => propagation/tcpScan.js} | 3 +- .../{definitions => }/ransomware.js | 4 +- 22 files changed, 187 insertions(+), 184 deletions(-) create mode 100644 monkey/monkey_island/cc/ui/src/services/configuration/configSchema.js delete mode 100644 monkey/monkey_island/cc/ui/src/services/configuration/config_schema.js rename monkey/monkey_island/cc/ui/src/services/configuration/{definitions/credential_collectors.js => credentialCollectors.js} (92%) delete mode 100644 monkey/monkey_island/cc/ui/src/services/configuration/credentials.js rename monkey/monkey_island/cc/ui/src/services/configuration/{definitions/custom_pbas.js => customPBAs.js} (94%) delete mode 100644 monkey/monkey_island/cc/ui/src/services/configuration/definitions/exploitation.js delete mode 100644 monkey/monkey_island/cc/ui/src/services/configuration/definitions/network_scan.js rename monkey/monkey_island/cc/ui/src/services/configuration/{definitions/exploitation_options.js => exploitationOptions.js} (76%) rename monkey/monkey_island/cc/ui/src/services/configuration/{definitions/exploiter_classes.js => exploiterClasses.js} (98%) rename monkey/monkey_island/cc/ui/src/services/configuration/{definitions => }/plugins.js (100%) rename monkey/monkey_island/cc/ui/src/services/configuration/{definitions/post_breach_actions.js => postBreachActions.js} (98%) create mode 100644 monkey/monkey_island/cc/ui/src/services/configuration/propagation/credentials.js create mode 100644 monkey/monkey_island/cc/ui/src/services/configuration/propagation/exploitation.js rename monkey/monkey_island/cc/ui/src/services/configuration/{definitions/fingerprinter_classes.js => propagation/fingerprinterClasses.js} (95%) rename monkey/monkey_island/cc/ui/src/services/configuration/{definitions/icmp_scan.js => propagation/icmpScan.js} (73%) create mode 100644 monkey/monkey_island/cc/ui/src/services/configuration/propagation/networkScan.js rename monkey/monkey_island/cc/ui/src/services/configuration/{definitions => propagation}/propagation.js (54%) rename monkey/monkey_island/cc/ui/src/services/configuration/{definitions/scan_target.js => propagation/scanTarget.js} (96%) rename monkey/monkey_island/cc/ui/src/services/configuration/{definitions/tcp_scan.js => propagation/tcpScan.js} (86%) rename monkey/monkey_island/cc/ui/src/services/configuration/{definitions => }/ransomware.js (97%) diff --git a/monkey/monkey_island/cc/ui/src/components/pages/ConfigurePage.js b/monkey/monkey_island/cc/ui/src/components/pages/ConfigurePage.js index a948eaec4..4cb057269 100644 --- a/monkey/monkey_island/cc/ui/src/components/pages/ConfigurePage.js +++ b/monkey/monkey_island/cc/ui/src/components/pages/ConfigurePage.js @@ -17,7 +17,7 @@ import ConfigImportModal from '../configuration-components/ImportConfigModal'; import applyUiSchemaManipulators from '../configuration-components/UISchemaManipulators.tsx'; import HtmlFieldDescription from '../configuration-components/HtmlFieldDescription.js'; import CONFIGURATION_TABS_PER_MODE from '../configuration-components/ConfigurationTabs.js'; -import {SCHEMA} from '../../services/configuration/config_schema.js'; +import {SCHEMA} from '../../services/configuration/configSchema.js'; import {reformatConfig} from '../configuration-components/ReformatHook'; const CONFIG_URL = '/api/agent-configuration'; diff --git a/monkey/monkey_island/cc/ui/src/components/ui-components/InfoPane.js b/monkey/monkey_island/cc/ui/src/components/ui-components/InfoPane.js index 21e71e29f..98a14be66 100644 --- a/monkey/monkey_island/cc/ui/src/components/ui-components/InfoPane.js +++ b/monkey/monkey_island/cc/ui/src/components/ui-components/InfoPane.js @@ -12,8 +12,8 @@ const WarningType = { MULTIPLE: 2 } -function getDefaultPaneParams(refString, registry, isUnsafeOptionSelected) { - let configSection = getObjectFromRegistryByRef(refString, registry); +function getDefaultPaneParams(items, isUnsafeOptionSelected) { + let configSection = items; return ( { title: configSection.title, diff --git a/monkey/monkey_island/cc/ui/src/services/configuration/configSchema.js b/monkey/monkey_island/cc/ui/src/services/configuration/configSchema.js new file mode 100644 index 000000000..fbb619d18 --- /dev/null +++ b/monkey/monkey_island/cc/ui/src/services/configuration/configSchema.js @@ -0,0 +1,45 @@ +import PROPAGATION_CONFIGURATION_SCHEMA from './propagation/propagation.js'; +import CREDENTIAL_COLLECTORS from './credentialCollectors.js'; +import POST_BREACH_ACTIONS from './postBreachActions.js'; +import RANSOMWARE_SCHEMA from './ransomware'; +import CUSTOM_PBA_CONFIGURATION_SCHEMA from './customPBAs'; + +export const SCHEMA = { + 'title': 'Monkey', + 'type': 'object', + 'properties': { + 'propagation': PROPAGATION_CONFIGURATION_SCHEMA, + 'post_breach_actions': { + 'title': 'Post-breach actions', + 'type': 'array', + 'uniqueItems': true, + 'items': POST_BREACH_ACTIONS + }, + 'custom_pbas': CUSTOM_PBA_CONFIGURATION_SCHEMA, + 'payloads': RANSOMWARE_SCHEMA, + 'credential_collectors': { + 'title': 'Credential collectors', + 'type': 'array', + 'uniqueItems': true, + 'items': CREDENTIAL_COLLECTORS, + 'default': [ + 'MimikatzCollector', + 'SSHCollector' + ] + }, + 'advanced': { + 'title': 'Advanced', + 'type': 'object', + 'properties':{ + 'keep_tunnel_open_time': { + 'title': 'Keep tunnel open time', + 'format': 'float', + 'type': 'number', + 'default': 30, + 'description': 'Time to keep tunnel open before going down after last exploit (in seconds)' + } + } + } + }, + 'options': {'collapsed': true} +} diff --git a/monkey/monkey_island/cc/ui/src/services/configuration/config_schema.js b/monkey/monkey_island/cc/ui/src/services/configuration/config_schema.js deleted file mode 100644 index 6700e5e4a..000000000 --- a/monkey/monkey_island/cc/ui/src/services/configuration/config_schema.js +++ /dev/null @@ -1,58 +0,0 @@ -import {customPBAConfigurationSchema} from './definitions/custom_pbas.js'; -import {ransomwareSchema} from './definitions/ransomware.js'; -import {propagationConfigurationSchema} from './definitions/propagation.js'; -import {bruteForceExploiters, vulnerabilityExploiters} from './definitions/exploiter_classes.js'; -import {credentialCollectors} from './definitions/credential_collectors.js'; -import {postBreachActions} from './definitions/post_breach_actions.js'; -import {fingerprinterClasses} from './definitions/fingerprinter_classes.js' - -export const SCHEMA = { - 'title': 'Monkey', - 'type': 'object', - 'definitions': { - 'brute_force_classes': bruteForceExploiters, - 'vulnerability_classes': vulnerabilityExploiters, - 'credential_collectors_classes': credentialCollectors, - 'post_breach_actions': postBreachActions, - 'fingerprinter_classes': fingerprinterClasses - }, - 'properties': { - 'propagation': propagationConfigurationSchema, - 'post_breach_actions': { - 'title': 'Post-breach actions', - 'type': 'array', - 'uniqueItems': true, - 'items': { - '$ref': '#/definitions/post_breach_actions' - } - }, - 'custom_pbas': customPBAConfigurationSchema, - 'payloads': ransomwareSchema, - 'credential_collectors': { - 'title': 'Credential collectors', - 'type': 'array', - 'uniqueItems': true, - 'items': { - '$ref': '#/definitions/credential_collectors_classes' - }, - 'default': [ - 'MimikatzCollector', - 'SSHCollector' - ] - }, - 'advanced': { - 'title': 'Advanced', - 'type': 'object', - 'properties':{ - 'keep_tunnel_open_time': { - 'title': 'Keep tunnel open time', - 'format': 'float', - 'type': 'number', - 'default': 30, - 'description': 'Time to keep tunnel open before going down after last exploit (in seconds)' - } - } - } - }, - 'options': {'collapsed': true} -} diff --git a/monkey/monkey_island/cc/ui/src/services/configuration/definitions/credential_collectors.js b/monkey/monkey_island/cc/ui/src/services/configuration/credentialCollectors.js similarity index 92% rename from monkey/monkey_island/cc/ui/src/services/configuration/definitions/credential_collectors.js rename to monkey/monkey_island/cc/ui/src/services/configuration/credentialCollectors.js index 5f73c33ac..ba7b4a77b 100644 --- a/monkey/monkey_island/cc/ui/src/services/configuration/definitions/credential_collectors.js +++ b/monkey/monkey_island/cc/ui/src/services/configuration/credentialCollectors.js @@ -1,4 +1,4 @@ -export const credentialCollectors = { +const CREDENTIAL_COLLECTORS = { 'title': 'Credential Collectors', 'description': 'Click on a credential collector to find out what it collects.', 'type': 'string', @@ -23,3 +23,4 @@ export const credentialCollectors = { } ] } +export default CREDENTIAL_COLLECTORS diff --git a/monkey/monkey_island/cc/ui/src/services/configuration/credentials.js b/monkey/monkey_island/cc/ui/src/services/configuration/credentials.js deleted file mode 100644 index 9ab1dbf79..000000000 --- a/monkey/monkey_island/cc/ui/src/services/configuration/credentials.js +++ /dev/null @@ -1,60 +0,0 @@ -export const CREDENTIALS = { - 'title': 'Credentials', - 'type': 'object', - 'properties': { - 'exploit_user_list': { - 'title': 'Exploit user list', - 'type': 'array', - 'uniqueItems': true, - 'items': {'type': 'string'}, - 'default': [], - 'description': 'List of user names that will be used by exploiters that need ' + - 'credentials, like SSH brute-forcing.' - }, - 'exploit_password_list': { - 'title': 'Exploit password list', - 'type': 'array', - 'uniqueItems': true, - 'items': {'type': 'string'}, - 'default': [], - 'description': 'List of passwords that will be used by exploiters that need ' + - 'credentials, like SSH brute-forcing.' - }, - 'exploit_lm_hash_list': { - 'title': 'Exploit LM hash list', - 'type': 'array', - 'uniqueItems': true, - 'items': {'type': 'string'}, - 'default': [], - 'description': 'List of LM hashes to use on exploits using credentials' - }, - 'exploit_ntlm_hash_list': { - 'title': 'Exploit NTLM hash list', - 'type': 'array', - 'uniqueItems': true, - 'items': {'type': 'string'}, - 'default': [], - 'description': 'List of NTLM hashes to use on exploits using credentials' - }, - 'exploit_ssh_keys': { - 'title': 'SSH key pairs list', - 'type': 'array', - 'uniqueItems': true, - 'default': [], - 'items': { - 'type': 'object', - 'properties': { - 'public_key': { - 'title': 'Public Key', - 'type': 'string' - }, - 'private_key': { - 'title': 'Private Key', - 'type': 'string' - } - } - }, - 'description': 'List of SSH key pairs to use, when trying to ssh into servers' - } - } -} diff --git a/monkey/monkey_island/cc/ui/src/services/configuration/definitions/custom_pbas.js b/monkey/monkey_island/cc/ui/src/services/configuration/customPBAs.js similarity index 94% rename from monkey/monkey_island/cc/ui/src/services/configuration/definitions/custom_pbas.js rename to monkey/monkey_island/cc/ui/src/services/configuration/customPBAs.js index 06d51a304..e8c5933ae 100644 --- a/monkey/monkey_island/cc/ui/src/services/configuration/definitions/custom_pbas.js +++ b/monkey/monkey_island/cc/ui/src/services/configuration/customPBAs.js @@ -1,4 +1,4 @@ -export const customPBAConfigurationSchema = { +const CUSTOM_PBA_CONFIGURATION_SCHEMA = { 'title': 'Custom PBA', 'properties': { 'linux_command': { @@ -49,3 +49,4 @@ export const customPBAConfigurationSchema = { } } } +export default CUSTOM_PBA_CONFIGURATION_SCHEMA; diff --git a/monkey/monkey_island/cc/ui/src/services/configuration/definitions/exploitation.js b/monkey/monkey_island/cc/ui/src/services/configuration/definitions/exploitation.js deleted file mode 100644 index fdbd04401..000000000 --- a/monkey/monkey_island/cc/ui/src/services/configuration/definitions/exploitation.js +++ /dev/null @@ -1,26 +0,0 @@ -import {exploitationOptionsConfigurationSchema} from './exploitation_options.js'; - -export const exploitationConfigurationSchema = { - 'title': 'Exploiters', - 'type': 'object', - 'description': 'Choose which exploiters the Monkey will attempt.', - 'properties': { - 'brute_force': { - 'title': 'Brute force exploiters', - 'type': 'array', - 'uniqueItems': true, - 'items': { - '$ref': '#/definitions/brute_force_classes' - } - }, - 'vulnerability': { - 'title': 'Vulnerability Exploiters', - 'type': 'array', - 'uniqueItems': true, - 'items': { - '$ref': '#/definitions/vulnerability_classes' - } - }, - 'options': exploitationOptionsConfigurationSchema - } -}; diff --git a/monkey/monkey_island/cc/ui/src/services/configuration/definitions/network_scan.js b/monkey/monkey_island/cc/ui/src/services/configuration/definitions/network_scan.js deleted file mode 100644 index 713ac1c82..000000000 --- a/monkey/monkey_island/cc/ui/src/services/configuration/definitions/network_scan.js +++ /dev/null @@ -1,21 +0,0 @@ -import {icmpScanConfigurationSchema} from './icmp_scan.js'; -import {scanTargetConfigurationSchema} from './scan_target.js'; -import {tcpScanConfigurationSchema} from './tcp_scan.js'; - -export const networkScanConfigurationSchema = { - 'title': 'Network analysis', - 'type': 'object', - 'properties': { - 'fingerprinters': { - 'title': 'Fingerprinters', - 'type': 'array', - 'uniqueItems': true, - 'items': { - '$ref': '#/definitions/fingerprinter_classes' - } - }, - 'icmp': icmpScanConfigurationSchema, - 'targets': scanTargetConfigurationSchema, - 'tcp': tcpScanConfigurationSchema - } -} diff --git a/monkey/monkey_island/cc/ui/src/services/configuration/definitions/exploitation_options.js b/monkey/monkey_island/cc/ui/src/services/configuration/exploitationOptions.js similarity index 76% rename from monkey/monkey_island/cc/ui/src/services/configuration/definitions/exploitation_options.js rename to monkey/monkey_island/cc/ui/src/services/configuration/exploitationOptions.js index e13d4ef7d..4995fb575 100644 --- a/monkey/monkey_island/cc/ui/src/services/configuration/definitions/exploitation_options.js +++ b/monkey/monkey_island/cc/ui/src/services/configuration/exploitationOptions.js @@ -1,4 +1,4 @@ -export const exploitationOptionsConfigurationSchema = { +const EXPLOITATION_OPTIONS_CONFIGURATION_SCHEMA = { 'title': 'Exploiters Options', 'type': 'object', 'properties': { @@ -13,3 +13,4 @@ export const exploitationOptionsConfigurationSchema = { } } } +export default EXPLOITATION_OPTIONS_CONFIGURATION_SCHEMA; diff --git a/monkey/monkey_island/cc/ui/src/services/configuration/definitions/exploiter_classes.js b/monkey/monkey_island/cc/ui/src/services/configuration/exploiterClasses.js similarity index 98% rename from monkey/monkey_island/cc/ui/src/services/configuration/definitions/exploiter_classes.js rename to monkey/monkey_island/cc/ui/src/services/configuration/exploiterClasses.js index bc7137fa1..3d03679b3 100644 --- a/monkey/monkey_island/cc/ui/src/services/configuration/definitions/exploiter_classes.js +++ b/monkey/monkey_island/cc/ui/src/services/configuration/exploiterClasses.js @@ -1,4 +1,4 @@ -export const bruteForceExploiters = { +export const BRUTE_FORCE_EXPLOITERS = { 'title': 'Brute force exploiters', 'description': 'Click on exploiter to get more information about it.' + '\u26A0' @@ -68,7 +68,7 @@ export const bruteForceExploiters = { ] } -export const vulnerabilityExploiters = { +export const VULNERABILITY_EXPLOITERS = { 'title': 'Vulnerability exploiters', 'description': 'Click on exploiter to get more information about it.' + '\u26A0 Note that using unsafe exploits may cause craches of the exploited ' + diff --git a/monkey/monkey_island/cc/ui/src/services/configuration/definitions/plugins.js b/monkey/monkey_island/cc/ui/src/services/configuration/plugins.js similarity index 100% rename from monkey/monkey_island/cc/ui/src/services/configuration/definitions/plugins.js rename to monkey/monkey_island/cc/ui/src/services/configuration/plugins.js diff --git a/monkey/monkey_island/cc/ui/src/services/configuration/definitions/post_breach_actions.js b/monkey/monkey_island/cc/ui/src/services/configuration/postBreachActions.js similarity index 98% rename from monkey/monkey_island/cc/ui/src/services/configuration/definitions/post_breach_actions.js rename to monkey/monkey_island/cc/ui/src/services/configuration/postBreachActions.js index e0606b8d1..8429dfb21 100644 --- a/monkey/monkey_island/cc/ui/src/services/configuration/definitions/post_breach_actions.js +++ b/monkey/monkey_island/cc/ui/src/services/configuration/postBreachActions.js @@ -1,4 +1,4 @@ -export const postBreachActions = { +const POST_BREACH_ACTIONS = { 'title': 'Post-Breach Actions', 'description': 'Runs scripts/commands on infected machines. These actions safely simulate what ' + 'an adversary might do after breaching a new machine. Used in ATT&CK and Zero trust reports.', @@ -109,3 +109,4 @@ export const postBreachActions = { } +export default POST_BREACH_ACTIONS; diff --git a/monkey/monkey_island/cc/ui/src/services/configuration/propagation/credentials.js b/monkey/monkey_island/cc/ui/src/services/configuration/propagation/credentials.js new file mode 100644 index 000000000..63c0f44ae --- /dev/null +++ b/monkey/monkey_island/cc/ui/src/services/configuration/propagation/credentials.js @@ -0,0 +1,62 @@ +const CREDENTIALS = { + 'title': 'Credentials', + 'type': 'object', + 'properties': { + 'exploit_user_list': { + 'title': 'Exploit user list', + 'type': 'array', + 'uniqueItems': true, + 'items': {'type': 'string'}, + 'default': [], + 'description': 'List of user names that will be used by exploiters that need ' + + 'credentials, like SSH brute-forcing.' + }, + 'exploit_password_list': { + 'title': 'Exploit password list', + 'type': 'array', + 'uniqueItems': true, + 'items': {'type': 'string'}, + 'default': [], + 'description': 'List of passwords that will be used by exploiters that need ' + + 'credentials, like SSH brute-forcing.' + }, + 'exploit_lm_hash_list': { + 'title': 'Exploit LM hash list', + 'type': 'array', + 'uniqueItems': true, + 'items': {'type': 'string'}, + 'default': [], + 'description': 'List of LM hashes to use on exploits using credentials' + }, + 'exploit_ntlm_hash_list': { + 'title': 'Exploit NTLM hash list', + 'type': 'array', + 'uniqueItems': true, + 'items': {'type': 'string'}, + 'default': [], + 'description': 'List of NTLM hashes to use on exploits using credentials' + }, + 'exploit_ssh_keys': { + 'title': 'SSH key pairs list', + 'type': 'array', + 'uniqueItems': true, + 'default': [], + 'items': { + 'type': 'object', + 'properties': { + 'public_key': { + 'title': 'Public Key', + 'type': 'string' + }, + 'private_key': { + 'title': 'Private Key', + 'type': 'string' + } + } + }, + 'description': 'List of SSH key pairs to use, when trying to ssh into servers' + } + } +} + +export default CREDENTIALS; diff --git a/monkey/monkey_island/cc/ui/src/services/configuration/propagation/exploitation.js b/monkey/monkey_island/cc/ui/src/services/configuration/propagation/exploitation.js new file mode 100644 index 000000000..39a8dac17 --- /dev/null +++ b/monkey/monkey_island/cc/ui/src/services/configuration/propagation/exploitation.js @@ -0,0 +1,24 @@ +import EXPLOITATION_OPTIONS_CONFIGURATION_SCHEMA from '../exploitationOptions.js'; +import {BRUTE_FORCE_EXPLOITERS, VULNERABILITY_EXPLOITERS} from '../exploiterClasses'; + +const EXPLOITATION_CONFIGURATION_SCHEMA = { + 'title': 'Exploiters', + 'properties': { + 'brute_force': { + 'items': BRUTE_FORCE_EXPLOITERS, + 'title': 'Brute force exploiters', + 'type': 'array', + 'uniqueItems': true, + }, + 'vulnerability': { + 'items': VULNERABILITY_EXPLOITERS, + 'title': 'Vulnerability Exploiters', + 'type': 'array', + 'uniqueItems': true, + }, + }, + 'options': EXPLOITATION_OPTIONS_CONFIGURATION_SCHEMA, + 'type': 'object' +}; + +export default EXPLOITATION_CONFIGURATION_SCHEMA; diff --git a/monkey/monkey_island/cc/ui/src/services/configuration/definitions/fingerprinter_classes.js b/monkey/monkey_island/cc/ui/src/services/configuration/propagation/fingerprinterClasses.js similarity index 95% rename from monkey/monkey_island/cc/ui/src/services/configuration/definitions/fingerprinter_classes.js rename to monkey/monkey_island/cc/ui/src/services/configuration/propagation/fingerprinterClasses.js index 1d4621599..51cba1708 100644 --- a/monkey/monkey_island/cc/ui/src/services/configuration/definitions/fingerprinter_classes.js +++ b/monkey/monkey_island/cc/ui/src/services/configuration/propagation/fingerprinterClasses.js @@ -1,4 +1,4 @@ -export const fingerprinterClasses = { +const FINGERPRINTER_CLASSES = { 'title': 'Fingerprinters', 'description': 'Fingerprint modules collect info about external services ' + 'Infection Monkey scans.', @@ -50,3 +50,5 @@ export const fingerprinterClasses = { ] } + +export default FINGERPRINTER_CLASSES; diff --git a/monkey/monkey_island/cc/ui/src/services/configuration/definitions/icmp_scan.js b/monkey/monkey_island/cc/ui/src/services/configuration/propagation/icmpScan.js similarity index 73% rename from monkey/monkey_island/cc/ui/src/services/configuration/definitions/icmp_scan.js rename to monkey/monkey_island/cc/ui/src/services/configuration/propagation/icmpScan.js index 25d72b21c..3937b6428 100644 --- a/monkey/monkey_island/cc/ui/src/services/configuration/definitions/icmp_scan.js +++ b/monkey/monkey_island/cc/ui/src/services/configuration/propagation/icmpScan.js @@ -1,4 +1,4 @@ -export const icmpScanConfigurationSchema = { +const ICMP_SCAN_CONFIGURATION_SCHEMA = { 'title': 'Ping scanner', 'type': 'object', 'properties': { @@ -10,3 +10,5 @@ export const icmpScanConfigurationSchema = { } } } + +export default ICMP_SCAN_CONFIGURATION_SCHEMA; diff --git a/monkey/monkey_island/cc/ui/src/services/configuration/propagation/networkScan.js b/monkey/monkey_island/cc/ui/src/services/configuration/propagation/networkScan.js new file mode 100644 index 000000000..ecd7643cc --- /dev/null +++ b/monkey/monkey_island/cc/ui/src/services/configuration/propagation/networkScan.js @@ -0,0 +1,22 @@ +import ICMP_SCAN_CONFIGURATION_SCHEMA from './icmpScan.js'; +import SCAN_TARGET_CONFIGURATION_SCHEMA from './scanTarget.js'; +import FINGERPRINTER_CLASSES from './fingerprinterClasses'; +import TCP_SCAN_CONFIGURATION_SCHEMA from './tcpScan'; + +const NETWORK_SCAN_CONFIGURATION_SCHEMA = { + 'title': 'Network analysis', + 'type': 'object', + 'properties': { + 'fingerprinters': { + 'title': 'Fingerprinters', + 'type': 'array', + 'uniqueItems': true, + 'items': FINGERPRINTER_CLASSES + }, + 'icmp': ICMP_SCAN_CONFIGURATION_SCHEMA, + 'targets': SCAN_TARGET_CONFIGURATION_SCHEMA, + 'tcp': TCP_SCAN_CONFIGURATION_SCHEMA + } +} + +export default NETWORK_SCAN_CONFIGURATION_SCHEMA; diff --git a/monkey/monkey_island/cc/ui/src/services/configuration/definitions/propagation.js b/monkey/monkey_island/cc/ui/src/services/configuration/propagation/propagation.js similarity index 54% rename from monkey/monkey_island/cc/ui/src/services/configuration/definitions/propagation.js rename to monkey/monkey_island/cc/ui/src/services/configuration/propagation/propagation.js index 3099876dc..6df67ff3e 100644 --- a/monkey/monkey_island/cc/ui/src/services/configuration/definitions/propagation.js +++ b/monkey/monkey_island/cc/ui/src/services/configuration/propagation/propagation.js @@ -1,11 +1,13 @@ -import {exploitationConfigurationSchema} from './exploitation.js'; -import {networkScanConfigurationSchema} from './network_scan.js'; +import NETWORK_SCAN_CONFIGURATION_SCHEMA from './networkScan.js'; +import CREDENTIALS from './credentials'; +import EXPLOITATION_CONFIGURATION_SCHEMA from './exploitation'; -export const propagationConfigurationSchema = { +const PROPAGATION_CONFIGURATION_SCHEMA = { 'title': 'Propagation', 'type': 'object', 'properties': { - 'exploitation': exploitationConfigurationSchema, + 'exploitation': EXPLOITATION_CONFIGURATION_SCHEMA, + 'credentials': CREDENTIALS, 'maximum_depth': { 'title': 'Maximum scan depth', 'type': 'integer', @@ -18,6 +20,7 @@ export const propagationConfigurationSchema = { 'Monkey propagating too far, '+ 'if the "Local network scan" is enabled' }, - 'network_scan': networkScanConfigurationSchema + 'network_scan': NETWORK_SCAN_CONFIGURATION_SCHEMA } } +export default PROPAGATION_CONFIGURATION_SCHEMA; diff --git a/monkey/monkey_island/cc/ui/src/services/configuration/definitions/scan_target.js b/monkey/monkey_island/cc/ui/src/services/configuration/propagation/scanTarget.js similarity index 96% rename from monkey/monkey_island/cc/ui/src/services/configuration/definitions/scan_target.js rename to monkey/monkey_island/cc/ui/src/services/configuration/propagation/scanTarget.js index ba2c769e6..8d81b10e4 100644 --- a/monkey/monkey_island/cc/ui/src/services/configuration/definitions/scan_target.js +++ b/monkey/monkey_island/cc/ui/src/services/configuration/propagation/scanTarget.js @@ -1,4 +1,4 @@ -export const scanTargetConfigurationSchema = { +const SCAN_TARGET_CONFIGURATION_SCHEMA = { 'title': 'Network', 'type': 'object', 'properties': { @@ -68,3 +68,4 @@ export const scanTargetConfigurationSchema = { } } +export default SCAN_TARGET_CONFIGURATION_SCHEMA; diff --git a/monkey/monkey_island/cc/ui/src/services/configuration/definitions/tcp_scan.js b/monkey/monkey_island/cc/ui/src/services/configuration/propagation/tcpScan.js similarity index 86% rename from monkey/monkey_island/cc/ui/src/services/configuration/definitions/tcp_scan.js rename to monkey/monkey_island/cc/ui/src/services/configuration/propagation/tcpScan.js index abfdc709d..74070d452 100644 --- a/monkey/monkey_island/cc/ui/src/services/configuration/definitions/tcp_scan.js +++ b/monkey/monkey_island/cc/ui/src/services/configuration/propagation/tcpScan.js @@ -1,4 +1,4 @@ -export const tcpScanConfigurationSchema = { +const TCP_SCAN_CONFIGURATION_SCHEMA = { 'title': 'TCP scanner', 'type': 'object', 'properties': { @@ -19,3 +19,4 @@ export const tcpScanConfigurationSchema = { } } } +export default TCP_SCAN_CONFIGURATION_SCHEMA; diff --git a/monkey/monkey_island/cc/ui/src/services/configuration/definitions/ransomware.js b/monkey/monkey_island/cc/ui/src/services/configuration/ransomware.js similarity index 97% rename from monkey/monkey_island/cc/ui/src/services/configuration/definitions/ransomware.js rename to monkey/monkey_island/cc/ui/src/services/configuration/ransomware.js index fa46d03c9..ea0262b69 100644 --- a/monkey/monkey_island/cc/ui/src/services/configuration/definitions/ransomware.js +++ b/monkey/monkey_island/cc/ui/src/services/configuration/ransomware.js @@ -1,4 +1,4 @@ -export const ransomwareSchema = { +const RANSOMWARE_SCHEMA = { 'title': 'Payloads', 'properties': { 'encryption': { @@ -63,3 +63,5 @@ export const ransomwareSchema = { } } } + +export default RANSOMWARE_SCHEMA;