# OSP v1

Module for communication to a daemon speaking Open Scanner Protocol version 1

class gvm.protocols.ospv1.Osp(connection, *, transform=None)
  connect()

    Initiates a protocol connection

    Normally connect is not called directly. Either it is called automatically when sending a protocol command or when using a with statement.

  delete_scan(scan_id=None)

    Delete a finished scan.

    Parameters

      scan_id (str) – UUID identifier for a finished scan.

    Returns

      Response from server.

    Return type

      str

  disconnect()

    Disconnect the connection

    Ends and closes the connection.

  static get_protocol_version()

    Determine the Open Scanner Protocol version.

    Returns

      Implemented version of the Open Scanner Protocol

    Return type

      tuple

  get_scanner_details()

    Return scanner description and parameters.

  get_scans(scan_id=None, details=True, pop_results=False)

    Get the stored scans.

    Parameters

      - scan_id (str, optional) – UUID identifier for a scan.

      - details (boolean, optional) – Whether to get full scan reports. Default: True

      - pop_results (boolean, optional) – results. Default: False

    Returns

      Response from server.

    Return type

      str

  get_version()

    Get the version of the OSPD server which is connected to.

  get_vts(vt_id=None)

    Return information about vulnerability tests, if offered by scanner.

    Parameters

      vt_id (str, optional) – UUID identifier for a vulnerability test.

    Returns

      Response from server.

    Return type

      str

  help()

    Get the help text.

  is_connected()

    Status of the current connection

    Return type

      `bool`

    Returns

      True if a connection to the remote server has been established.

  send_command(cmd)

    Send a command to the remote server

    If the class is not connected to the server yet the connection will be established automatically.

    Parameters

      cmd (str) – Command as string to be send over the connection to the server.

    Returns

      The actual returned type depends on the set transform.

      Per default - if no transform is set explicitly - the response is returned as string.

    Return type

      any

  start_scan(scan_id=None, parallel=1, target=None, ports=None, targets=None, scanner_params=None, vt_selection=None)

    Start a new scan.

    Parameters

      - scan_id (str, optional) – UUID identifier for a running scan.

      - parallel (int, optional) – Number of parallel scanned targets. Default 1.

      - target (dict, optional) – Deprecated. Please use targets instead.

      - targets (list, optional) – List of dictionaries. See example.

      - ports (str, optional) – Deprecated. Ports to use for target parameter.

      - scanner_params – (dict, optional): Dictionary of scanner parameters.

      - vt_selection – (dict, optional): Vulnerability tests to select. See example.

    Returns

      Response from server.

    Return type

      str

    Examples

    Scanner Parameters:

        scanner_parameters = {
            'scan_param1': 'scan_param1_value',
            'scan_param2': 'scan_param2_value',
        }

    Targets:

        targets = [{
            'hosts': 'localhost',
            'ports': '80,43'
        }, {
            'hosts': '192.168.0.0/24',
            'ports': '22',
        }, {
            'credentials': {
                'smb': {
                    'password': 'pass',
                    'port': 'port',
                    'type': 'type',
                    'username': 'username',
                }
            }
        }]

    VT Selection:

        vt_selection = {
            'vt1': {},
            'vt2': {'value_id': 'value'},
            'vt_groups': ['family=debian', 'family=general']
        }

  stop_scan(scan_id)

    Stop a currently running scan.

    Parameters

      scan_id (str) – UUID identifier for a running scan.

    Returns

      Response from server.

    Return type

      str