Using the scanner

Professional Enterprise

runZero includes a standalone command-line scanner that can be used to perform network discovery without access to the internet. The scanner has the same options and similar performance characteristics to the Explorer. The scanner output file named scan.rumble.gz can be uploaded to the runZero Console through the Inventory Import menu.

The scanner works best with root privileges on Linux/macOS and Administrator privileges on Windows. Although the scanner will function without privileged access, many probe types will be unavailable. The sudo command can be used to run the scanner as root on Linux and macOS, while the tool is best run from an elevated command shell on Windows. On the Windows platform, the runZero Scanner will look for an existing npcap installation and try to install it if the software is not found. This behavior can be disabled with the --nopcap flag.

Note: Some components of the application still reference the name "Rumble" for backwards compatibility. The documentation will be updated as these are changed.

The runZero Scanner defaults to a semi-interactive terminal interface that writes multiple output files to a directory. The default directory name is rumble-[current-date]. To switch to plain text output, use the --text option. To skip artifact generation and only produce the raw JSON output file, use the flags --text -o disable --output-raw scan.rumble.

Input can be provided as arguments on the command-line or by specifying an input file using the --input (or -i) parameter. Input can consist of specific IPv4 addresses or IPv4 CIDRs. Supported formats include:

  • 10.0.0.1
  • 10.0.0.0/24
  • 10.0.0.0/255.255.255.0
  • 10.0.0.1-10.0.0.255
  • example.com
  • example.com/24

For hostnames, each IPv4 address in the response will be expanded with the optional mask.

The example below downloads and runs the scanner on a Linux x86_64 host. This URL will be different for your installation. The current download links for your organization are available from the scanner page of the runZero Console.

$ wget https://console.runzero.com/download/scanner/[unique-link]/rumble-scanner-linux-amd64.bin
$ chmod +x rumble-scanner-linux-amd64.bin
$ sudo ./rumble-scanner-linux-amd64.bin 192.168.0.0/24 -o output-dir

Please note that the hexadecimal values in the download URL are specific for your account and organization.

Performance & scope

The default speed of runZero scans is limited to 1,000 packets per second with a single pass. This setting works great for reliable wired networks without stateful firewalls between the scanning system and the destination networks. This rate can be changed via the --rate (or -r) option, with a reasonable maximum being 10000 for most networks. On slow unreliable networks, a rate of 300 with --passes set to 3 may provide better results.

A second parameter, --max-host-rate limits how many packets are sent per second to each individual host. This defaults to 40, which is low, but necessary when scanning low-power embedded devices. In cases where a small number of hosts (or a single host) should be scanned quickly, the --max-host-rate parameter can be increased to match the --rate.

The following example demonstrates a scan of 65,535 TCP ports on all hosts of the 192.168.0.0/24 subnet running at 10,000 packets per second:

$ sudo ./rumble-scanner-linux-amd64.bin 192.168.0.0/24 -r 10000 --tcp-ports 1-65535 \
  -o output-dir

Automatic web screenshots

The --screenshots option (default true) introduced in version 0.6.6 tells runZero to obtain a screenshot of all web services identified during the scan. This feature depends on the system running the Explorer having a local installation of the Google Chrome or Chromium browsers. The acquired screenshots will be reported as a base64 string, stored in the “screenshot.image” field of the containing service scan result.

runZero scanner commands and options

The runZero Scanner supports a wide range of options, including the ability to limit scans to specific ports, probes, and SNMP communities. The --help output provides basic documentation on the available options.

Commands

censys
Import Censys data files
completion
Generate the autocompletion script for the specified shell
help
Help about any command
license
Display license information
upgrade
Upgrade to the latest version of the runZero Scanner
verify
Perform an internal signature verification
version
Print the version number of runZero

Flags

--api-key string
Specify the runZero API key
--api-no-verify
Disable TLS verification for API communication
--api-url string
Specify the runZero API server hostname (default “https://console.runzero.com/api/v1.0")
--arp-fast
Enables fast mode by ARP scanning at the scan rate vs host rate
--aws-instances-access-key string
The access key for the AWS account
--aws-instances-assume-role-name string
The role to assume for all accounts in the organization for cross-account access
--aws-instances-regions string
The comma-separated list of regions for the AWS account
--aws-instances-secret-access-key string
The secret access key for the AWS account
--aws-instances-service-options string
The comma-separated list of services to sync data from (defaults,ec2,elb,elbv2,rds,lambda) (default “defaults”)
--aws-instances-site-per-account
Automatically create a new site per account
--aws-instances-site-per-vpc
Automatically create a new site per VPC
--aws-instances-token string
The session token for the AWS account
--azure-client-id string
The application ID (client ID) for the Azure account
--azure-client-secret string
The client secret for the Azure account
--azure-multi-subscription
Access all subscriptions in the directory (tenant) for the Azure account
--azure-password string
The password for the Azure account
--azure-service-options string
The comma-separated list of services to sync data from (defaults,vm,vmss,azsql,cosmos,lb,functionapp) (default “defaults”)
--azure-site-per-subscription
Automatically create a new site per subscription
--azure-subscription-id string
The subscription ID for the Azure account
--azure-tenant-id string
The directory ID (tenant ID) for the Azure account
--azure-username string
The username for the Azure account
--azuread-client-id string
The application ID (client ID) for the Azure account
--azuread-client-secret string
The client secret for the Azure account
--azuread-password string
The password for the AzureAD account
--azuread-tenant-id string
The directory ID (tenant ID) for the Azure account
--azuread-username string
The username for the AzureAD account
--bacnet-ports string
The destination ports for BACnet probes (default “46808,47808,48808”)
-b, --baseline string
Use the specified file as an asset baseline for tracking
--censys-api-url string
The API endpoint to use for Censys Search (default “https://search.censys.io”)
--censys-client-id string
The Client ID to use for Censys Search authentication
--censys-client-secret string
The Client Secret to use for Censys Search authentication
--censys-mode string
The search mode (targets or query) (default “targets”)
--censys-query string
The search string to use in query mode
--cpu string
Write a cpu profile after the scan completes
--crestron-port uint
The destination port for Crestron probes (default 41794)
--crowdstrike-api-url string
The URL used for the CrowdStrike account’s API access
--crowdstrike-client-id string
The client ID for the CrowdStrike account
--crowdstrike-client-secret string
The client secret for the CrowdStrike account
--crowdstrike-filter string
An optional Falcon Query Language (FQL) filter for imported assets
--dns-disable-meraki-detection
Disables detection of Meraki DNS interception
--dns-port uint
The destination port for DNS probes (default 53)
--dns-resolve-name string
The target hostname for DNS queries (‘off’ to disable) (default “www.google.com”)
--dns-trace-domain string
The subdomain to use for trace requests (‘off’ to disable) (default “helper.rumble.network”)
--dtls-ports string
The destination ports for DTLS probes (default “443,3391,4433,5246,5349,5684”)
--echo-report-errors
Report errors from intermediate in-scope hosts
--exclude string
Specify scan exclusions
--excludefile string
Read exclusions from an input file
-f, --fingerprints string
Use the specified directory as an alternate fingerprint database
--fingerprints-debug
Enable debug output for the fingerprint processor
--gcp-key-path string
Path to GCP service account key file
--gcp-service-options string
The comma-separated list of services to sync data from (defaults,vm,lb,cloudsql) (default “defaults”)
--gcp-site-per-project
Automatically create a new site per project
--goroutines string
Write a goroutine dump after the scan completes
--heap string
Write a heap profile after the scan completes
-h, --help
help for runZero
--host-ping
Only scan hosts that respond to a ping scan using the host-ping settings
--host-ping-arp-fast
Enables fast mode by ARP scanning at the scan rate vs host rate (host ping)
--host-ping-aws-instances-access-key string
The access key for the AWS account (host ping)
--host-ping-aws-instances-assume-role-name string
The role to assume for all accounts in the organization for cross-account access (host ping)
--host-ping-aws-instances-regions string
The comma-separated list of regions for the AWS account (host ping)
--host-ping-aws-instances-secret-access-key string
The secret access key for the AWS account (host ping)
--host-ping-aws-instances-service-options string
The comma-separated list of services to sync data from (defaults,ec2,elb,elbv2,rds,lambda) (host ping) (default “defaults”)
--host-ping-aws-instances-site-per-account
Automatically create a new site per account (host ping)
--host-ping-aws-instances-site-per-vpc
Automatically create a new site per VPC (host ping)
--host-ping-aws-instances-token string
The session token for the AWS account (host ping)
--host-ping-azure-client-id string
The application ID (client ID) for the Azure account (host ping)
--host-ping-azure-client-secret string
The client secret for the Azure account (host ping)
--host-ping-azure-multi-subscription
Access all subscriptions in the directory (tenant) for the Azure account (host ping)
--host-ping-azure-password string
The password for the Azure account (host ping)
--host-ping-azure-service-options string
The comma-separated list of services to sync data from (defaults,vm,vmss,azsql,cosmos,lb,functionapp) (host ping) (default “defaults”)
--host-ping-azure-site-per-subscription
Automatically create a new site per subscription (host ping)
--host-ping-azure-subscription-id string
The subscription ID for the Azure account (host ping)
--host-ping-azure-tenant-id string
The directory ID (tenant ID) for the Azure account (host ping)
--host-ping-azure-username string
The username for the Azure account (host ping)
--host-ping-azuread-client-id string
The application ID (client ID) for the Azure account (host ping)
--host-ping-azuread-client-secret string
The client secret for the Azure account (host ping)
--host-ping-azuread-password string
The password for the AzureAD account (host ping)
--host-ping-azuread-tenant-id string
The directory ID (tenant ID) for the Azure account (host ping)
--host-ping-azuread-username string
The username for the AzureAD account (host ping)
--host-ping-bacnet-ports string
The destination ports for BACnet probes (host ping) (default “46808,47808,48808”)
--host-ping-censys-api-url string
The API endpoint to use for Censys Search (host ping) (default “https://search.censys.io”)
--host-ping-censys-client-id string
The Client ID to use for Censys Search authentication (host ping)
--host-ping-censys-client-secret string
The Client Secret to use for Censys Search authentication (host ping)
--host-ping-censys-mode string
The search mode (targets or query) (host ping) (default “targets”)
--host-ping-censys-query string
The search string to use in query mode (host ping)
--host-ping-crestron-port uint
The destination port for Crestron probes (host ping) (default 41794)
--host-ping-crowdstrike-api-url string
The URL used for the CrowdStrike account’s API access (host ping)
--host-ping-crowdstrike-client-id string
The client ID for the CrowdStrike account (host ping)
--host-ping-crowdstrike-client-secret string
The client secret for the CrowdStrike account (host ping)
--host-ping-crowdstrike-filter string
An optional Falcon Query Language (FQL) filter for imported assets (host ping)
--host-ping-dns-disable-meraki-detection
Disables detection of Meraki DNS interception (host ping)
--host-ping-dns-port uint
The destination port for DNS probes (host ping) (default 53)
--host-ping-dns-resolve-name string
The target hostname for DNS queries (‘off’ to disable) (host ping) (default “www.google.com”)
--host-ping-dns-trace-domain string
The subdomain to use for trace requests (‘off’ to disable) (host ping) (default “helper.rumble.network”)
--host-ping-dtls-ports string
The destination ports for DTLS probes (host ping) (default “443,3391,4433,5246,5349,5684”)
--host-ping-echo-report-errors
Report errors from intermediate in-scope hosts (host ping)
--host-ping-gcp-service-options string
The comma-separated list of services to sync data from (defaults,vm,lb,cloudsql) (host ping) (default “defaults”)
--host-ping-gcp-site-per-project
Automatically create a new site per project (host ping)
--host-ping-ike-port uint
The destination port for IKE probes (host ping) (default 500)
--host-ping-insightvm-api-url string
The URL used for the InsightVM account’s API access (host ping)
--host-ping-insightvm-insecure
Set this to true to authenticate to untrusted endpoints (self-signed or no IP SAN) (host ping) (default true)
--host-ping-insightvm-minimum-risk string
Minimum risk of imported vulnerabilities (none, low, medium, high, critical) (host ping) (default “none”)
--host-ping-insightvm-minimum-severity string
Minimum severity of imported vulnerabilities (info, low, medium, high, critical) (host ping) (default “info”)
--host-ping-insightvm-password string
The password for the InsightVM account (host ping)
--host-ping-insightvm-thumbprints string
A set of IP=SHA256:B64HASH pairs to trust for authentication (host ping)
--host-ping-insightvm-username string
The username for the InsightVM account (host ping)
--host-ping-ipmi-port uint
The destination port for IPMI probes (host ping) (default 623)
--host-ping-kerberos-port uint
The destination port for kerberos probes (host ping) (default 88)
--host-ping-l2t-port uint
The destination port for L2T probes (host ping) (default 2228)
--host-ping-lantronix-port uint
The destination port for Lantronix probes (host ping) (default 30718)
--host-ping-layer2-add-targets
Set this false to skip scanning discovered targets (host ping) (default true)
--host-ping-layer2-force
Set this to true to force discovery even without local targets (host ping)
--host-ping-layer2-max-retries uint
The maximum number of retries (host ping) (default 2)
--host-ping-layer2-tcp-ports string
The TCP ports to ping for local device discovery (host ping) (default “22,80,135,179,443,3389,5040,7547,62078”)
--host-ping-layer2-udp-trace-port uint
The UDP port number to use for UDP trace requests (host ping) (default 65535)
--host-ping-ldap-base-dn string
The base DN used for LDAP searches (host ping)
--host-ping-ldap-insecure
Set this to true to authenticate to untrusted endpoints (self-signed or no IP SAN) (host ping)
--host-ping-ldap-password string
The password for the LDAP account (host ping)
--host-ping-ldap-url string
The URL used for the LDAP server (host ping)
--host-ping-ldap-username string
The username for the LDAP account (host ping)
--host-ping-max-attempts int
Set the maximum number of attempts for each probe (default 2)
--host-ping-max-ttl int
Set the default TTL on host-ping probe packets (default 255)
--host-ping-mdns-port uint
The destination port for MDNS probes (host ping) (default 5353)
--host-ping-memcache-port uint
The destination port for memcached probes (host ping) (default 11211)
--host-ping-miradore-api-key string
The API key for the Miradore account (host ping)
--host-ping-miradore-hostname string
The Miradore web console hostname (url) (host ping)
--host-ping-mssql-port uint
The destination port for MSSQL probes (host ping) (default 1434)
--host-ping-natpmp-port uint
The destination port for NATPMP probes (host ping) (default 5351)
--host-ping-nessus-access-key string
The access key for the Nessus Professional account (host ping)
--host-ping-nessus-api-url string
The URL used for the Nessus Professional account’s API access (host ping)
--host-ping-nessus-insecure
Set this to true to authenticate to untrusted endpoints (self-signed or no IP SAN) (host ping) (default true)
--host-ping-nessus-minimum-risk string
Minimum risk of imported vulnerabilities (none, low, medium, high, critical) (host ping) (default “none”)
--host-ping-nessus-minimum-severity string
Minimum severity of imported vulnerabilities (info, low, medium, high, critical) (host ping) (default “info”)
--host-ping-nessus-secret-key string
The secret key for the Nessus Professional account (host ping)
--host-ping-nessus-thumbprints string
A set of IP=SHA256:B64HASH pairs to trust for authentication (host ping)
--host-ping-netbios-port uint
The destination port for NetBIOS probes (host ping) (default 137)
--host-ping-ntp-port uint
The destination port for NTP probes (host ping) (default 123)
--host-ping-openvpn-ports string
The destination ports for OpenVPN probes (host ping) (default “1194”)
--host-ping-passes int
Set the number of passes for the host-ping phase (default 1)
--host-ping-pca-port uint
The destination port for PCAnywhere probes (host ping) (default 5632)
--host-ping-probes string
Launch a subset of the probes for the host-ping, comma-delimited (default “arp,echo,syn,connect,netbios,snmp,ntp,sunrpc,ike,openvpn,mdns”)
--host-ping-qualys-api-url string
The URL used for the Qualys account’s API access (host ping)
--host-ping-qualys-minimum-risk string
Minimum risk of imported vulnerabilities (none, low, medium, high, critical) (host ping) (default “none”)
--host-ping-qualys-minimum-severity string
Minimum severity of imported vulnerabilities (info, low, medium, high, critical) (host ping) (default “info”)
--host-ping-qualys-password string
The password for the Qualys account (host ping)
--host-ping-qualys-username string
The username for the Qualys account (host ping)
--host-ping-rdns-max-concurrent int
The maximum number of concurrent DNS lookups (host ping) (default 64)
--host-ping-rdns-timeout uint
The DNS PTR lookup timeout in seconds (host ping) (default 3)
--host-ping-rpcbind-port uint
The destination port for RPCBind probes (host ping) (default 111)
--host-ping-rpcbind-port-nfs uint
The destination port for NFS probes (host ping) (default 2049)
--host-ping-sentinelone-api-url string
The URL used for the SentinelOne account’s API access (host ping)
--host-ping-sentinelone-client-id string
The client ID for the SentinelOne account (host ping)
--host-ping-sentinelone-client-secret string
The client secret for the SentinelOne account (host ping)
--host-ping-shodan-api-key string
The key used for the Shodan account’s API access (host ping)
--host-ping-shodan-mode string
The search mode (targets or query) (host ping) (default “targets”)
--host-ping-shodan-query string
The search string to use in query mode (host ping)
--host-ping-sip-port uint
The destination port for SIP probes (host ping) (default 5060)
--host-ping-snmp-comms string
The comma-separated list of SNMP v1/v2c communities (host ping) (default “public,private”)
--host-ping-snmp-poll-interval uint
The minimum number of seconds between polling each host after initial discovery (host ping) (default 300)
--host-ping-snmp-port uint
The destination port for SNMP probes (host ping) (default 161)
--host-ping-snmp-timeout uint
The maximum number of seconds for each individual SNMP operation (host ping) (default 5)
--host-ping-snmp-v3-auth-passphrase string
The authentication passphrase (host ping)
--host-ping-snmp-v3-auth-protocol string
The authentication protocol (none, md5, sha, sha224, sha256, sha384, sha512) (host ping) (default “none”)
--host-ping-snmp-v3-context string
The optional SNMP v3 context to supply (host ping)
--host-ping-snmp-v3-privacy-passphrase string
The privacy passphrase (host ping)
--host-ping-snmp-v3-privacy-protocol string
The privacy protocol (none, des, aes, aes192, aes256, aes192c, aes256c) (host ping) (default “none”)
--host-ping-snmp-v3-username string
The username to use for SNMP v3 authentication (host ping)
--host-ping-ssdp-port uint
The destination port for UPNP/SSDP probes (host ping) (default 1900)
--host-ping-ssh-fingerprint
Enable fingerprinting using partial authentication (host ping) (default true)
--host-ping-ssh-fingerprint-username string
The username to use for partial authentication SSH fingerprinting (host ping) (default “STATUS”)
--host-ping-syn-forwarding-check
Perform an IP forwarding check as part of the scan (host ping) (default true)
--host-ping-syn-forwarding-check-target string
An external IPv4 address for the forwarding check (default:rumble) (host ping) (default “13.248.161.247”)
--host-ping-syn-max-retries uint
The maximum number of retries trace and SYN requests (host ping) (default 2)
--host-ping-syn-report-resets
Set this to true to report RST responses (host ping) (default true)
--host-ping-syn-traceroute
Perform a multi-protocol traceroute as part of the scan (host ping) (default true)
--host-ping-syn-udp-trace-port uint
The UDP port number to use for UDP trace requests (host ping) (default 65535)
--host-ping-tcp-ports string
The list of TCP ports to host-ping using the syn and connect probes (default “22,80,135,179,443,3389,5040,7547,62078”)
--host-ping-tenable-access-key string
The access key for the Tenable.io account (host ping)
--host-ping-tenable-include-unscanned
Include assets that have not been assessed for vulnerabilities (host ping)
--host-ping-tenable-minimum-risk string
Minimum risk of imported vulnerabilities (none, low, medium, high, critical) (host ping) (default “none”)
--host-ping-tenable-minimum-severity string
Minimum severity of imported vulnerabilities (info, low, medium, high, critical) (host ping) (default “info”)
--host-ping-tenable-secret-key string
The secret key for the Tenable.io account (host ping)
--host-ping-tftp-ports string
The destination ports for TFTP probes (host ping) (default “69”)
--host-ping-ubnt-port uint
The destination port for Ubiquiti probes (host ping) (default 10001)
--host-ping-verbose
Display verbose output for the host-ping
--host-ping-very-verbose
Display very verbose output for the host-ping
--host-ping-vmware-insecure
Set this to true to authenticate to untrusted endpoints (self-signed or no IP SAN) (host ping) (default true)
--host-ping-vmware-password string
The password to use for VMware SDK authentication (read-only) (host ping)
--host-ping-vmware-thumbprints string
A set of IP=SHA256:B64HASH pairs to trust for authentication (host ping)
--host-ping-vmware-username string
The username to use for VMware SDK authentication (read-only) (host ping)
--host-ping-wlan-list-poll-interval uint
The minimum number of seconds between polls of the access point list (host ping) (default 300)
--host-ping-wsd-port uint
The destination port for WSD probes (host ping) (default 3702)
--ike-port uint
The destination port for IKE probes (default 500)
-I, --import stringArray
Import existing scan data from the specified input files (‘scan.rumble’ format)
-i, --input-targets string
Read scan targets from the specified input file
--insightvm-api-url string
The URL used for the InsightVM account’s API access
--insightvm-insecure
Set this to true to authenticate to untrusted endpoints (self-signed or no IP SAN) (default true)
--insightvm-minimum-risk string
Minimum risk of imported vulnerabilities (none, low, medium, high, critical) (default “none”)
--insightvm-minimum-severity string
Minimum severity of imported vulnerabilities (info, low, medium, high, critical) (default “info”)
--insightvm-password string
The password for the InsightVM account
--insightvm-thumbprints string
A set of IP=SHA256:B64HASH pairs to trust for authentication
--insightvm-username string
The username for the InsightVM account
--ipmi-port uint
The destination port for IPMI probes (default 623)
--kerberos-port uint
The destination port for kerberos probes (default 88)
--l2t-port uint
The destination port for L2T probes (default 2228)
--lantronix-port uint
The destination port for Lantronix probes (default 30718)
--layer2-add-targets
Set this false to skip scanning discovered targets (default true)
--layer2-force
Set this to true to force discovery even without local targets
--layer2-max-retries uint
The maximum number of retries (default 2)
--layer2-tcp-ports string
The TCP ports to ping for local device discovery (default “22,80,135,179,443,3389,5040,7547,62078”)
--layer2-udp-trace-port uint
The UDP port number to use for UDP trace requests (default 65535)
--ldap-base-dn string
The base DN used for LDAP searches
--ldap-insecure
Set this to true to authenticate to untrusted endpoints (self-signed or no IP SAN)
--ldap-password string
The password for the LDAP account
--ldap-url string
The URL used for the LDAP server
--ldap-username string
The username for the LDAP account
--max-attempts int
Set the maximum number of attempts for each probe (default 3)
-G, --max-group-size int
Set the maximum number of targets to process in each group (default 4096)
-R, --max-host-rate int
Set the maximum packet rate per target (including ARP broadcast) (default 40)
--max-sockets int
Set the maximum number of concurrent sockets (default 2048)
--max-ttl int
Set the default TTL on probe packets (default 255)
--mdns-port uint
The destination port for MDNS probes (default 5353)
--memcache-port uint
The destination port for memcached probes (default 11211)
--miradore-api-key string
The API key for the Miradore account
--miradore-hostname string
The Miradore web console hostname (url)
--mssql-port uint
The destination port for MSSQL probes (default 1434)
--nameservers string
One or more nameservers to use for DNS resolution
--natpmp-port uint
The destination port for NATPMP probes (default 5351)
--nessus-access-key string
The access key for the Nessus Professional account
--nessus-api-url string
The URL used for the Nessus Professional account’s API access
--nessus-insecure
Set this to true to authenticate to untrusted endpoints (self-signed or no IP SAN) (default true)
--nessus-minimum-risk string
Minimum risk of imported vulnerabilities (none, low, medium, high, critical) (default “none”)
--nessus-minimum-severity string
Minimum severity of imported vulnerabilities (info, low, medium, high, critical) (default “info”)
--nessus-secret-key string
The secret key for the Nessus Professional account
--nessus-thumbprints string
A set of IP=SHA256:B64HASH pairs to trust for authentication
--netbios-port uint
The destination port for NetBIOS probes (default 137)
--nowait
Exit the user interface immediately upon completion
--ntp-port uint
The destination port for NTP probes (default 123)
--openvpn-ports string
The destination ports for OpenVPN probes (default “1194”)
-o, --output string
Output directory for scan results and analysis (‘disable’ to skip)
--output-raw string
Set the raw output file for scan data
--overwrite
Overwrite and replace the output directory if it already exists
--passes int
Set the number of passes for each probe (default 1)
--pca-port uint
The destination port for PCAnywhere probes (default 5632)
--probes string
Launch a subset of the probes, comma-delimited (default “defaults”)
--qualys-api-url string
The URL used for the Qualys account’s API access
--qualys-minimum-risk string
Minimum risk of imported vulnerabilities (none, low, medium, high, critical) (default “none”)
--qualys-minimum-severity string
Minimum severity of imported vulnerabilities (info, low, medium, high, critical) (default “info”)
--qualys-password string
The password for the Qualys account
--qualys-username string
The username for the Qualys account
-r, --rate int
Set the maximum packet rate for the overall scan (default 1000)
--rdns-max-concurrent int
The maximum number of concurrent DNS lookups (default 64)
--rdns-timeout uint
The DNS PTR lookup timeout in seconds (default 3)
--rpcbind-port uint
The destination port for RPCBind probes (default 111)
--rpcbind-port-nfs uint
The destination port for NFS probes (default 2049)
-S, --screenshots
Capture screenshots from scan target web services (default true)
--sentinelone-api-url string
The URL used for the SentinelOne account’s API access
--sentinelone-client-id string
The client ID for the SentinelOne account
--sentinelone-client-secret string
The client secret for the SentinelOne account
--shodan-api-key string
The key used for the Shodan account’s API access
--shodan-mode string
The search mode (targets or query) (default “targets”)
--shodan-query string
The search string to use in query mode
--sip-port uint
The destination port for SIP probes (default 5060)
--snmp-comms string
The comma-separated list of SNMP v1/v2c communities (default “public,private”)
--snmp-poll-interval uint
The minimum number of seconds between polling each host after initial discovery (default 300)
--snmp-port uint
The destination port for SNMP probes (default 161)
--snmp-timeout uint
The maximum number of seconds for each individual SNMP operation (default 5)
--snmp-v3-auth-passphrase string
The authentication passphrase
--snmp-v3-auth-protocol string
The authentication protocol (none, md5, sha, sha224, sha256, sha384, sha512) (default “none”)
--snmp-v3-context string
The optional SNMP v3 context to supply
--snmp-v3-privacy-passphrase string
The privacy passphrase
--snmp-v3-privacy-protocol string
The privacy protocol (none, des, aes, aes192, aes256, aes192c, aes256c) (default “none”)
--snmp-v3-username string
The username to use for SNMP v3 authentication
--ssdp-port uint
The destination port for UPNP/SSDP probes (default 1900)
--ssh-fingerprint
Enable fingerprinting using partial authentication (default true)
--ssh-fingerprint-username string
The username to use for partial authentication SSH fingerprinting (default “STATUS”)
--subnet-ping
Only scan subnets that have at least one active response using the subnet-ping settings
--subnet-ping-arp-fast
Enables fast mode by ARP scanning at the scan rate vs host rate (subnet ping)
--subnet-ping-aws-instances-access-key string
The access key for the AWS account (subnet ping)
--subnet-ping-aws-instances-assume-role-name string
The role to assume for all accounts in the organization for cross-account access (subnet ping)
--subnet-ping-aws-instances-regions string
The comma-separated list of regions for the AWS account (subnet ping)
--subnet-ping-aws-instances-secret-access-key string
The secret access key for the AWS account (subnet ping)
--subnet-ping-aws-instances-service-options string
The comma-separated list of services to sync data from (defaults,ec2,elb,elbv2,rds,lambda) (subnet ping) (default “defaults”)
--subnet-ping-aws-instances-site-per-account
Automatically create a new site per account (subnet ping)
--subnet-ping-aws-instances-site-per-vpc
Automatically create a new site per VPC (subnet ping)
--subnet-ping-aws-instances-token string
The session token for the AWS account (subnet ping)
--subnet-ping-azure-client-id string
The application ID (client ID) for the Azure account (subnet ping)
--subnet-ping-azure-client-secret string
The client secret for the Azure account (subnet ping)
--subnet-ping-azure-multi-subscription
Access all subscriptions in the directory (tenant) for the Azure account (subnet ping)
--subnet-ping-azure-password string
The password for the Azure account (subnet ping)
--subnet-ping-azure-service-options string
The comma-separated list of services to sync data from (defaults,vm,vmss,azsql,cosmos,lb,functionapp) (subnet ping) (default “defaults”)
--subnet-ping-azure-site-per-subscription
Automatically create a new site per subscription (subnet ping)
--subnet-ping-azure-subscription-id string
The subscription ID for the Azure account (subnet ping)
--subnet-ping-azure-tenant-id string
The directory ID (tenant ID) for the Azure account (subnet ping)
--subnet-ping-azure-username string
The username for the Azure account (subnet ping)
--subnet-ping-azuread-client-id string
The application ID (client ID) for the Azure account (subnet ping)
--subnet-ping-azuread-client-secret string
The client secret for the Azure account (subnet ping)
--subnet-ping-azuread-password string
The password for the AzureAD account (subnet ping)
--subnet-ping-azuread-tenant-id string
The directory ID (tenant ID) for the Azure account (subnet ping)
--subnet-ping-azuread-username string
The username for the AzureAD account (subnet ping)
--subnet-ping-bacnet-ports string
The destination ports for BACnet probes (subnet ping) (default “46808,47808,48808”)
--subnet-ping-censys-api-url string
The API endpoint to use for Censys Search (subnet ping) (default “https://search.censys.io”)
--subnet-ping-censys-client-id string
The Client ID to use for Censys Search authentication (subnet ping)
--subnet-ping-censys-client-secret string
The Client Secret to use for Censys Search authentication (subnet ping)
--subnet-ping-censys-mode string
The search mode (targets or query) (subnet ping) (default “targets”)
--subnet-ping-censys-query string
The search string to use in query mode (subnet ping)
--subnet-ping-crestron-port uint
The destination port for Crestron probes (subnet ping) (default 41794)
--subnet-ping-crowdstrike-api-url string
The URL used for the CrowdStrike account’s API access (subnet ping)
--subnet-ping-crowdstrike-client-id string
The client ID for the CrowdStrike account (subnet ping)
--subnet-ping-crowdstrike-client-secret string
The client secret for the CrowdStrike account (subnet ping)
--subnet-ping-crowdstrike-filter string
An optional Falcon Query Language (FQL) filter for imported assets (subnet ping)
--subnet-ping-dns-disable-meraki-detection
Disables detection of Meraki DNS interception (subnet ping)
--subnet-ping-dns-port uint
The destination port for DNS probes (subnet ping) (default 53)
--subnet-ping-dns-resolve-name string
The target hostname for DNS queries (‘off’ to disable) (subnet ping) (default “www.google.com”)
--subnet-ping-dns-trace-domain string
The subdomain to use for trace requests (‘off’ to disable) (subnet ping) (default “helper.rumble.network”)
--subnet-ping-dtls-ports string
The destination ports for DTLS probes (subnet ping) (default “443,3391,4433,5246,5349,5684”)
--subnet-ping-echo-report-errors
Report errors from intermediate in-scope hosts (subnet ping)
--subnet-ping-gcp-service-options string
The comma-separated list of services to sync data from (defaults,vm,lb,cloudsql) (subnet ping) (default “defaults”)
--subnet-ping-gcp-site-per-project
Automatically create a new site per project (subnet ping)
--subnet-ping-ike-port uint
The destination port for IKE probes (subnet ping) (default 500)
--subnet-ping-insightvm-api-url string
The URL used for the InsightVM account’s API access (subnet ping)
--subnet-ping-insightvm-insecure
Set this to true to authenticate to untrusted endpoints (self-signed or no IP SAN) (subnet ping) (default true)
--subnet-ping-insightvm-minimum-risk string
Minimum risk of imported vulnerabilities (none, low, medium, high, critical) (subnet ping) (default “none”)
--subnet-ping-insightvm-minimum-severity string
Minimum severity of imported vulnerabilities (info, low, medium, high, critical) (subnet ping) (default “info”)
--subnet-ping-insightvm-password string
The password for the InsightVM account (subnet ping)
--subnet-ping-insightvm-thumbprints string
A set of IP=SHA256:B64HASH pairs to trust for authentication (subnet ping)
--subnet-ping-insightvm-username string
The username for the InsightVM account (subnet ping)
--subnet-ping-ipmi-port uint
The destination port for IPMI probes (subnet ping) (default 623)
--subnet-ping-kerberos-port uint
The destination port for kerberos probes (subnet ping) (default 88)
--subnet-ping-l2t-port uint
The destination port for L2T probes (subnet ping) (default 2228)
--subnet-ping-lantronix-port uint
The destination port for Lantronix probes (subnet ping) (default 30718)
--subnet-ping-layer2-add-targets
Set this false to skip scanning discovered targets (subnet ping) (default true)
--subnet-ping-layer2-force
Set this to true to force discovery even without local targets (subnet ping)
--subnet-ping-layer2-max-retries uint
The maximum number of retries (subnet ping) (default 2)
--subnet-ping-layer2-tcp-ports string
The TCP ports to ping for local device discovery (subnet ping) (default “22,80,135,179,443,3389,5040,7547,62078”)
--subnet-ping-layer2-udp-trace-port uint
The UDP port number to use for UDP trace requests (subnet ping) (default 65535)
--subnet-ping-ldap-base-dn string
The base DN used for LDAP searches (subnet ping)
--subnet-ping-ldap-insecure
Set this to true to authenticate to untrusted endpoints (self-signed or no IP SAN) (subnet ping)
--subnet-ping-ldap-password string
The password for the LDAP account (subnet ping)
--subnet-ping-ldap-url string
The URL used for the LDAP server (subnet ping)
--subnet-ping-ldap-username string
The username for the LDAP account (subnet ping)
--subnet-ping-max-attempts int
Set the maximum number of attempts for each probe (default 1)
--subnet-ping-max-ttl int
Set the default TTL on subnet-ping probe packets (default 255)
--subnet-ping-mdns-port uint
The destination port for MDNS probes (subnet ping) (default 5353)
--subnet-ping-memcache-port uint
The destination port for memcached probes (subnet ping) (default 11211)
--subnet-ping-miradore-api-key string
The API key for the Miradore account (subnet ping)
--subnet-ping-miradore-hostname string
The Miradore web console hostname (url) (subnet ping)
--subnet-ping-mode string
Set the subnet-ping discovery profile: auto (default “auto”)
--subnet-ping-mssql-port uint
The destination port for MSSQL probes (subnet ping) (default 1434)
--subnet-ping-natpmp-port uint
The destination port for NATPMP probes (subnet ping) (default 5351)
--subnet-ping-nessus-access-key string
The access key for the Nessus Professional account (subnet ping)
--subnet-ping-nessus-api-url string
The URL used for the Nessus Professional account’s API access (subnet ping)
--subnet-ping-nessus-insecure
Set this to true to authenticate to untrusted endpoints (self-signed or no IP SAN) (subnet ping) (default true)
--subnet-ping-nessus-minimum-risk string
Minimum risk of imported vulnerabilities (none, low, medium, high, critical) (subnet ping) (default “none”)
--subnet-ping-nessus-minimum-severity string
Minimum severity of imported vulnerabilities (info, low, medium, high, critical) (subnet ping) (default “info”)
--subnet-ping-nessus-secret-key string
The secret key for the Nessus Professional account (subnet ping)
--subnet-ping-nessus-thumbprints string
A set of IP=SHA256:B64HASH pairs to trust for authentication (subnet ping)
--subnet-ping-net-size int
Set the subnet size to use for the subnet ping (default 256)
--subnet-ping-netbios-port uint
The destination port for NetBIOS probes (subnet ping) (default 137)
--subnet-ping-ntp-port uint
The destination port for NTP probes (subnet ping) (default 123)
--subnet-ping-openvpn-ports string
The destination ports for OpenVPN probes (subnet ping) (default “1194”)
--subnet-ping-passes int
Set the number of passes for the subnet-ping phase (default 1)
--subnet-ping-pca-port uint
The destination port for PCAnywhere probes (subnet ping) (default 5632)
--subnet-ping-probes string
Launch a subset of the probes for the subnet-ping, comma-delimited (default “arp,echo,syn,connect,netbios,snmp,ntp,sunrpc,ike,openvpn,mdns”)
--subnet-ping-qualys-api-url string
The URL used for the Qualys account’s API access (subnet ping)
--subnet-ping-qualys-minimum-risk string
Minimum risk of imported vulnerabilities (none, low, medium, high, critical) (subnet ping) (default “none”)
--subnet-ping-qualys-minimum-severity string
Minimum severity of imported vulnerabilities (info, low, medium, high, critical) (subnet ping) (default “info”)
--subnet-ping-qualys-password string
The password for the Qualys account (subnet ping)
--subnet-ping-qualys-username string
The username for the Qualys account (subnet ping)
--subnet-ping-rdns-max-concurrent int
The maximum number of concurrent DNS lookups (subnet ping) (default 64)
--subnet-ping-rdns-timeout uint
The DNS PTR lookup timeout in seconds (subnet ping) (default 3)
--subnet-ping-rpcbind-port uint
The destination port for RPCBind probes (subnet ping) (default 111)
--subnet-ping-rpcbind-port-nfs uint
The destination port for NFS probes (subnet ping) (default 2049)
--subnet-ping-sample-rate int
Set the sample rate of addresses within each subnet as a percentage (default 4)
--subnet-ping-sentinelone-api-url string
The URL used for the SentinelOne account’s API access (subnet ping)
--subnet-ping-sentinelone-client-id string
The client ID for the SentinelOne account (subnet ping)
--subnet-ping-sentinelone-client-secret string
The client secret for the SentinelOne account (subnet ping)
--subnet-ping-shodan-api-key string
The key used for the Shodan account’s API access (subnet ping)
--subnet-ping-shodan-mode string
The search mode (targets or query) (subnet ping) (default “targets”)
--subnet-ping-shodan-query string
The search string to use in query mode (subnet ping)
--subnet-ping-sip-port uint
The destination port for SIP probes (subnet ping) (default 5060)
--subnet-ping-snmp-comms string
The comma-separated list of SNMP v1/v2c communities (subnet ping) (default “public,private”)
--subnet-ping-snmp-poll-interval uint
The minimum number of seconds between polling each host after initial discovery (subnet ping) (default 300)
--subnet-ping-snmp-port uint
The destination port for SNMP probes (subnet ping) (default 161)
--subnet-ping-snmp-timeout uint
The maximum number of seconds for each individual SNMP operation (subnet ping) (default 5)
--subnet-ping-snmp-v3-auth-passphrase string
The authentication passphrase (subnet ping)
--subnet-ping-snmp-v3-auth-protocol string
The authentication protocol (none, md5, sha, sha224, sha256, sha384, sha512) (subnet ping) (default “none”)
--subnet-ping-snmp-v3-context string
The optional SNMP v3 context to supply (subnet ping)
--subnet-ping-snmp-v3-privacy-passphrase string
The privacy passphrase (subnet ping)
--subnet-ping-snmp-v3-privacy-protocol string
The privacy protocol (none, des, aes, aes192, aes256, aes192c, aes256c) (subnet ping) (default “none”)
--subnet-ping-snmp-v3-username string
The username to use for SNMP v3 authentication (subnet ping)
--subnet-ping-ssdp-port uint
The destination port for UPNP/SSDP probes (subnet ping) (default 1900)
--subnet-ping-ssh-fingerprint
Enable fingerprinting using partial authentication (subnet ping) (default true)
--subnet-ping-ssh-fingerprint-username string
The username to use for partial authentication SSH fingerprinting (subnet ping) (default “STATUS”)
--subnet-ping-syn-forwarding-check
Perform an IP forwarding check as part of the scan (subnet ping) (default true)
--subnet-ping-syn-forwarding-check-target string
An external IPv4 address for the forwarding check (default:rumble) (subnet ping) (default “13.248.161.247”)
--subnet-ping-syn-max-retries uint
The maximum number of retries trace and SYN requests (subnet ping) (default 2)
--subnet-ping-syn-report-resets
Set this to true to report RST responses (subnet ping) (default true)
--subnet-ping-syn-traceroute
Perform a multi-protocol traceroute as part of the scan (subnet ping) (default true)
--subnet-ping-syn-udp-trace-port uint
The UDP port number to use for UDP trace requests (subnet ping) (default 65535)
--subnet-ping-tcp-ports string
The list of TCP ports to subnet-ping using the syn and connect probes (default “22,80,135,179,443,3389,5040,7547,62078”)
--subnet-ping-tenable-access-key string
The access key for the Tenable.io account (subnet ping)
--subnet-ping-tenable-include-unscanned
Include assets that have not been assessed for vulnerabilities (subnet ping)
--subnet-ping-tenable-minimum-risk string
Minimum risk of imported vulnerabilities (none, low, medium, high, critical) (subnet ping) (default “none”)
--subnet-ping-tenable-minimum-severity string
Minimum severity of imported vulnerabilities (info, low, medium, high, critical) (subnet ping) (default “info”)
--subnet-ping-tenable-secret-key string
The secret key for the Tenable.io account (subnet ping)
--subnet-ping-tftp-ports string
The destination ports for TFTP probes (subnet ping) (default “69”)
--subnet-ping-ubnt-port uint
The destination port for Ubiquiti probes (subnet ping) (default 10001)
--subnet-ping-verbose
Display verbose output for the subnet-ping
--subnet-ping-very-verbose
Display very verbose output for the subnet-ping
--subnet-ping-vmware-insecure
Set this to true to authenticate to untrusted endpoints (self-signed or no IP SAN) (subnet ping) (default true)
--subnet-ping-vmware-password string
The password to use for VMware SDK authentication (read-only) (subnet ping)
--subnet-ping-vmware-thumbprints string
A set of IP=SHA256:B64HASH pairs to trust for authentication (subnet ping)
--subnet-ping-vmware-username string
The username to use for VMware SDK authentication (read-only) (subnet ping)
--subnet-ping-wlan-list-poll-interval uint
The minimum number of seconds between polls of the access point list (subnet ping) (default 300)
--subnet-ping-wsd-port uint
The destination port for WSD probes (subnet ping) (default 3702)
--syn-forwarding-check
Perform an IP forwarding check as part of the scan (default true)
--syn-forwarding-check-target string
An external IPv4 address for the forwarding check (default:rumble) (default “13.248.161.247”)
--syn-max-retries uint
The maximum number of retries trace and SYN requests (default 2)
--syn-report-resets
Set this to true to report RST responses (default true)
--syn-traceroute
Perform a multi-protocol traceroute as part of the scan (default true)
--syn-udp-trace-port uint
The UDP port number to use for UDP trace requests (default 65535)
--tcp-excludes string
The list of TCP ports to always exclude
-p, --tcp-ports string
The list of TCP ports scan using the syn and connect probes (see below for default)
--tcp-skip-protocol
Set this to skip protocol detection on TCP ports
--tenable-access-key string
The access key for the Tenable.io account
--tenable-include-unscanned
Include assets that have not been assessed for vulnerabilities
--tenable-minimum-risk string
Minimum risk of imported vulnerabilities (none, low, medium, high, critical) (default “none”)
--tenable-minimum-severity string
Minimum severity of imported vulnerabilities (info, low, medium, high, critical) (default “info”)
--tenable-secret-key string
The secret key for the Tenable.io account
--text
Force text-only mode (no console ui)
--tftp-ports string
The destination ports for TFTP probes (default “69”)
--ubnt-port uint
The destination port for Ubiquiti probes (default 10001)
--upload
Automatically upload results to the runZero Console
-u, --upload-site string
Specify the Site ID or Name to upload the raw scan results to if –upload is specified (default “Primary”)
-v, --verbose
Display verbose output
--very-verbose
Display very verbose output
--vmware-insecure
Set this to true to authenticate to untrusted endpoints (self-signed or no IP SAN) (default true)
--vmware-password string
The password to use for VMware SDK authentication (read-only)
--vmware-thumbprints string
A set of IP=SHA256:B64HASH pairs to trust for authentication
--vmware-username string
The username to use for VMware SDK authentication (read-only)
--wlan-list-poll-interval uint
The minimum number of seconds between polls of the access point list (default 300)
--wsd-port uint
The destination port for WSD probes (default 3702)

Standard ports scanned

1 7 9 13 19 21 22 23 25 37 42 43 49 53 69 70 79 80 81 82 83 84 85 88 102 105 109 110 111 113 119 123 135 137 139 143 161 179 222 264 384 389 402 407 443 444 445 465 500 502 512 513 515 523 524 540 548 554 587 617 623 631 636 689 705 771 783 873 888 902 903 910 912 921 990 993 995 998 1000 1024 1030 1035 1080 1089 1090 1091 1098 1099 1100 1101 1102 1103 1128 1129 1158 1199 1211 1220 1270 1234 1241 1300 1311 1352 1433 1440 1468 1494 1521 1530 1533 1581 1582 1583 1604 1723 1755 1811 1883 1900 2000 2049 2082 2083 2100 2103 2121 2181 2199 2207 2222 2323 2362 2375 2376 2379 2380 2381 2525 2533 2598 2601 2604 2638 2809 2947 2967 3000 3037 3050 3057 3128 3200 3268 3269 3217 3273 3299 3300 3306 3311 3312 3351 3389 3460 3500 3628 3632 3690 3780 3790 3817 4000 4092 4322 4343 4369 4433 4443 4444 4445 4567 4659 4679 4730 4786 4840 4848 5000 5022 5037 5038 5040 5051 5060 5061 5093 5168 5222 5247 5250 5275 5347 5351 5353 5355 5392 5400 5405 5432 5433 5498 5520 5521 5554 5555 5560 5580 5601 5631 5632 5666 5671 5672 5683 5800 5814 5900 5920 5938 5984 5985 5986 5988 5989 6000 6001 6002 6050 6060 6070 6080 6082 6101 6106 6112 6262 6379 6405 6502 6503 6504 6514 6542 6556 6660 6661 6667 6905 6988 7000 7001 7021 7071 7077 7080 7100 7144 7181 7210 7373 7443 7474 7510 7547 7579 7580 7676 7700 7770 7777 7778 7787 7800 7801 7879 7902 8000 8008 8009 8012 8014 8020 8023 8028 8030 8080 8081 8086 8087 8088 8089 8090 8095 8098 8099 8127 8161 8180 8205 8222 8300 8303 8333 8400 8443 8471 8488 8503 8545 8686 8787 8800 8812 8834 8880 8883 8888 8899 8901 8902 8903 8983 9000 9001 9002 9042 9060 9080 9081 9084 9090 9091 9092 9099 9100 9111 9152 9160 9200 9300 9380 9390 9391 9418 9440 9443 9471 9495 9809 9855 9524 9595 9527 9530 9600 9999 10000 10001 10008 10050 10051 10080 10098 10162 10202 10203 10443 10616 10628 11000 11099 11211 11234 11333 12174 12203 12221 12345 12397 12401 13364 13500 13838 14330 15200 15671 15672 16102 16992 16993 17185 17200 17472 17775 17776 17777 17778 17781 17782 17783 17784 17790 17791 17798 18264 18881 19300 19810 19888 20000 20010 20031 20034 20101 20111 20171 20222 20293 22222 23472 23791 23943 25000 25025 25565 25672 26000 26122 27000 27017 27019 27080 27888 28017 28222 28784 30000 31001 31099 32764 32913 34205 34443 34962 34963 34964 37718 37777 37890 37891 37892 38008 38010 38080 38102 38292 40007 40317 41025 41080 41523 41524 44334 44818 45230 46823 46824 47001 47002 48899 49152 50000 50013 50070 50090 52302 52311 55553 55580 57772 61616 62078 62514 65535

Scan outputs

The runZero Scanner generates a directory of output files by default. This directory includes the following items.

  • scan.rumble.gz: The raw scan data compressed via gzip, this can be imported or reprocessed via --import
  • assets.jsonl: The new optimized format for correlated, fingerprinted assets.
  • nmap.xml: A Nmap XML compatible data file that can be imported into various security tools.
  • urls.txt: A list of discovered web services in URL format.
  • protocols.csv: A list of protocols with their ports and URLs.
  • assets.html: A rudimentary HTML report with screenshots.
  • screenshots: A directory of raw screenshot images, headers in JSON format, and HTML bodies.
  • Various lists including addresses.txt, addresses_all.txt, hostnames.txt, and domains.txt

Raw Scan Data

The runZero Scanner raw data is stored in a file named scan.rumble.gz within the output directory. This file contains JSONL-formatted records. An example ARP response record is shown below.

{
  "type": "result",
  "host": "192.168.0.1",
  "port": "0",
  "proto": "arp",
  "probe": "arp",
  "name": "192.168.0.1",
  "info": {
    "mac": "f0:9f:c2:11:1a:13",
    "macDateAdded": "2014-12-17",
    "macVendor": "Ubiquiti Networks Inc."
  },
  "ts": 1551584126253853200
}

The info field is a JSON map of strings to strings. Multiple values are encoded using the tab character (0x09), which are otherwise escaped as \t (along with \r and \n for carriage return and line feed bytes and \x00 for null bytes). runZero scans may return more one record of the same type for the same host if multiple responses were received.

In addition to the result type, there are also records for status messages, stats, and an initial config type that contains the scan parameters.