Skip to content

Scanning Engine v2 - Module - Service Simple

Overview

Targeting

Configuration

Only the publicly-available configuration keys that can be set in a job's module invocations will be described below. Additional configuration keys may exist, but not be shown here because they are restricted to specific users or because they are permanently set as a static value. If no keys have (required) after their names then invocations of this module need not contain a config key.

Named Keys

addresses-only

Discard hostnames once they are resolved to addresses.

  • Type: boolean

alternative-probes

Name of custom probes file, previously submitted by customer.

  • Type: string

blocklist-files (required)

File of addresses, hostnames, and CIDR blocks that are blocked.

  • Type: list(string)

buffer-size

Maximum size of probe response in bytes.

  • Type: integer
  • Default: 1024

connect-timeout

Timeout for each connection, in seconds.

  • Type: float
  • Default: 1.5

custom-probes

List of user-defined probes.

  • Type: list(string)

debug

Run module with a debugging configuration.

  • Type: boolean

disable-extraction

Disable additional extraction of data in case of failure matching.

  • Type: boolean

max-v4

Maximum number of resolved IPv4 addresses to use.

  • Type: integer

max-v6

Maximum number of resolved IPv6 addresses to use.

  • Type: integer

no-probe-output

When printing a response, do not include the probe that generated it.

  • Type: boolean

no-probe-stats

Disable general and probe-specific statistics.

  • Type: boolean

probe-order

Probe ID that should be attempted before the default algorithm.

  • Type: list(string)

probe-rarity

Select rarity level of probes: light, probable, default, or all.

  • Type: string
  • Default: default

Values for this configuration key must be one the following:

  • light
  • probable
  • default
  • all

read-timeout

Timeout for socket reads, in seconds.

  • Type: float
  • Default: 1.5

request-timeout

Maximum timeout for each DNS request. (e.g., '10m', '1h', '1s', '1h10m')

  • Type: string

resolution-timeout

Maximum timeout for DNS resolution of each target. (e.g., '10m', '1h', '1s', '1h10m')

  • Type: string

resolver-address

Custom DNS resolver address to use.

  • Type: string

resolver-concurrency

Number of concurrent goroutines to use when resolving targets.

  • Type: integer

single-address

Use a single address from the DNS resolution.

  • Type: boolean

ssl

Use SSL/TLS-wrapped connections from the start.

  • Type: boolean

targeting-timeout

Maximum duration allowed for parsing and resolving all targets. (e.g., '10m', '1h', '1s', '1h10m')

  • Type: string

unsafe

Enable unsafe probes.

  • Type: boolean

workers

Number of workers (threads) to run.

  • Type: integer
  • Default: 128

Schemas

The schema for the body object of all results generated with .task.module_name equal to service-simple can be found here. The schema for results is available both in standalone and bundled form.

Examples

These are examples of the .body object for results with .task.module_name equal to service-simple.

SSH with GitHub

This example was generated with the GitHub SSH server.

{
  "service": {
    "directive": "softmatch",
    "name": "ssh",
    "extrainfo": "protocol 2.0",
    "method": "probe_matching"
  },
  "probe": {
    "info": {
      "name": "NULL"
    },
    "data": {
      "sent": "",
      "recv": "SSH-2.0-babeld-fdcea1d49\\r\\n"
    },
    "stats": {
      "probing_delta": 1.552104,
      "matching_delta": 0.022824
    }
  },
  "state": {
    "state": "open"
  },
  "total_delta": 1.624969
}

SMTP over TLS with GMail

This example was generated with the GMail's SMTP server.

{
  "service": {
    "directive": "match",
    "name": "ssl/smtp",
    "product": "Google gsmtp",
    "hostname": "smtp.gmail.com",
    "method": "probe_matching"
  },
  "probe": {
    "info": {
      "name": "NULL"
    },
    "data": {
      "sent": "",
      "recv": "220 smtp.gmail.com ESMTP ca18e2360f4ac-82a1a2f081csm481931539f.10 - gsmtp\\r\\n"
    },
    "stats": {
      "probing_delta": 1.667336,
      "matching_delta": 0.007133
    }
  },
  "state": {
    "state": "open"
  },
  "total_delta": 3.501181
}

DNS with Google

This example was generated with the Google's Public DNS server.

{
  "service": {
    "directive": "match",
    "name": "domain",
    "product": "ISC BIND",
    "extrainfo": "generic dns response: SERVFAIL",
    "cpe": [
      "cpe:/a:isc:bind"
    ],
    "method": "probe_matching"
  },
  "probe": {
    "info": {
      "name": "DNSVersionBindReq"
    },
    "data": {
      "sent": "\\x00\\x06\\x01\\x00\\x00\\x01\\x00\\x00\\x00\\x00\\x00\\x00\\x07version\\x04bind\\x00\\x00\\x10\\x00\\x03",
      "recv": "\\x00\\x06\\x81\\x82\\x00\\x01\\x00\\x00\\x00\\x00\\x00\\x00\\x07version\\x04bind\\x00\\x00\\x10\\x00\\x03"
    },
    "stats": {
      "probing_delta": 1.536557,
      "matching_delta": 0.002018
    }
  },
  "state": {
    "state": "open"
  },
  "total_delta": 1.538956
}

FTP with FreeBSD

This example was generated with the FreeBSD FTP server.

{
  "service": {
    "directive": "match",
    "name": "ftp",
    "product": "vsftpd",
    "version": "2.0.8 or later",
    "cpe": [
      "cpe:/a:vsftpd:vsftpd"
    ],
    "method": "probe_matching"
  },
  "probe": {
    "info": {
      "name": "Help"
    },
    "data": {
      "sent": "HELP\\r\\n",
      "recv": "220 This is ftp0.tuk.freebsd.org - hosted at MetaPeer http://www.metapeer.com\\r\\n530 Please login with USER and PASS.\\r\\n"
    },
    "stats": {
      "probing_delta": 1.577337,
      "matching_delta": 0.002341
    }
  },
  "state": {
    "state": "open"
  },
  "total_delta": 4.968575
}

Changelog

  • YYYY-MM-DD: Initial public release of documentation.