diff --git a/monkey/monkey_island/cc/ui/src/components/configuration-components/UiSchema.js b/monkey/monkey_island/cc/ui/src/components/configuration-components/UiSchema.js index 2f37ae84e..e1134e63c 100644 --- a/monkey/monkey_island/cc/ui/src/components/configuration-components/UiSchema.js +++ b/monkey/monkey_island/cc/ui/src/components/configuration-components/UiSchema.js @@ -25,6 +25,14 @@ export default function UiSchema(props) { info_box: { 'ui:field': InfoBox } + }, + fingerprinters:{ + classNames: 'config-template-no-header', + 'ui:widget': AdvancedMultiSelect, + fingerprinter_classes: { + classNames: 'config-template-no-header' + } + } } }, 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 index db3a4de1b..a0ad4818b 100644 --- a/monkey/monkey_island/cc/ui/src/services/configuration/config_schema.js +++ b/monkey/monkey_island/cc/ui/src/services/configuration/config_schema.js @@ -4,6 +4,7 @@ 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', @@ -12,7 +13,8 @@ export const SCHEMA = { 'brute_force_classes': bruteForceExploiters, 'vulnerability_classes': vulnerabilityExploiters, 'credential_collectors_classes': credentialCollectors, - 'post_breach_actions': postBreachActions + 'post_breach_actions': postBreachActions, + 'fingerprinter_classes': fingerprinterClasses }, 'properties': { 'propagation': propagationConfigurationSchema, diff --git a/monkey/monkey_island/cc/ui/src/services/configuration/definitions/exploitation_options.js b/monkey/monkey_island/cc/ui/src/services/configuration/definitions/exploitation_options.js index 6d6834ba1..e13d4ef7d 100644 --- a/monkey/monkey_island/cc/ui/src/services/configuration/definitions/exploitation_options.js +++ b/monkey/monkey_island/cc/ui/src/services/configuration/definitions/exploitation_options.js @@ -1,4 +1,5 @@ export const exploitationOptionsConfigurationSchema = { + 'title': 'Exploiters Options', 'type': 'object', 'properties': { 'http_ports': { diff --git a/monkey/monkey_island/cc/ui/src/services/configuration/definitions/fingerprinter_classes.js b/monkey/monkey_island/cc/ui/src/services/configuration/definitions/fingerprinter_classes.js new file mode 100644 index 000000000..1d4621599 --- /dev/null +++ b/monkey/monkey_island/cc/ui/src/services/configuration/definitions/fingerprinter_classes.js @@ -0,0 +1,52 @@ +export const fingerprinterClasses = { + 'title': 'Fingerprinters', + 'description': 'Fingerprint modules collect info about external services ' + + 'Infection Monkey scans.', + 'type': 'string', + 'pluginDefs': { + 'smb' : {'name':'smb', 'options':''}, + 'ssh' : {'name':'ssh', 'options':''}, + 'http' : {'name':'http', 'options':''}, + 'mssql' : {'name':'mssql', 'options':''}, + 'elastic' : {'name':'elastic', 'options':''} + }, + 'anyOf': [ + { + 'type': 'string', + 'enum': ['smb'], + 'title': 'SMB Fingerprinter', + 'safe': true, + 'info': 'Figures out if SMB is running and what\'s the version of it.' + }, + { + 'type': 'string', + 'enum': ['ssh'], + 'title': 'SSH Fingerprinter', + 'safe': true, + 'info': 'Figures out if SSH is running.' + }, + { + 'type': 'string', + 'enum': ['http'], + 'title': 'HTTP Fingerprinter', + 'safe': true, + 'info': 'Checks if host has HTTP/HTTPS ports open.' + }, + { + 'type': 'string', + 'enum': ['mssql'], + 'title': 'MSSQL Fingerprinter', + 'safe': true, + 'info': 'Checks if Microsoft SQL service is running and tries to gather ' + + 'information about it.' + }, + { + 'type': 'string', + 'enum': ['elastic'], + 'title': 'Elastic Fingerprinter', + 'safe': true, + 'info': 'Checks if ElasticSearch is running and attempts to find it\'s version.' + } + ] + +} 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 index 8b91a3cec..713ac1c82 100644 --- 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 @@ -1,23 +1,18 @@ -import {pluginConfigurationSchema} from './plugins.js'; 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', - 'additionalProperties': false, 'properties': { 'fingerprinters': { 'title': 'Fingerprinters', 'type': 'array', - 'items': pluginConfigurationSchema, - 'default': [ - {'name': 'SMBFinger', 'safe': true, 'options': {}}, - {'name': 'SSHFinger', 'safe': true, 'options': {}}, - {'name': 'HTTPFinger', 'safe': true, 'options': {}}, - {'name': 'MSSQLFinger', 'safe': true, 'options': {}}, - {'name': 'ElasticFinger', 'safe': true, 'options': {}} - ] + 'uniqueItems': true, + 'items': { + '$ref': '#/definitions/fingerprinter_classes' + } }, 'icmp': icmpScanConfigurationSchema, 'targets': scanTargetConfigurationSchema,