vnc

Execute commands on a remote server via VNC. Uses the vncdotool library.

Note

This command caches all the settings so that they only need to be defined once.

vars:
  $SERVER_ADDRESS: 192.42.0.254
  $PORT: 5900
  $DISPLAY: 1
  $PASSWORD: password

commands:
  # creates new vnc-connection and session. If creates_session is omitted, a session named "default" is created
  - type: vnc
    cmd: capture
    filename: screenshot.png
    hostname: $SERVER_ADDRESS
    port: $PORT
    display: $DISPLAY
    password: $PASSWORD
    creates_session: my_session

  # reuses existing session "my_session
  - type: vnc
    cmd: type
    input: "echo hello world"
    session: my_session

  # closes existing session "my_session" and deletes from session store
  - type: vnc
    cmd: close
    session: my_session
cmd

One of type, key, capture, move, expectscreen, close

Type:

str

hostname

This option sets the hostname or ip-address of the remote ssh-server.

Type:

str

port

Port to connect to on the remote host.

Type:

int

Default:

5900

display

Specifies the display to use on the remote machine.

Type:

str

Default:

1

password

Specifies the password to use

Type:

str

filename

Path where a screenshot capture should be saved, or file to compare a screenshot with expectscreen.

Type:

str

maxrms

Metric to compare a screen with expectscreen. Only continue if the screen matches. Maximum RMS (root mean square) error allowed (set a small value for near-exact match)

Type:

float

input

text to type with the command type

Type:

str

key

key to press with the command key

Type:

str

x

x position to move the cursor to with the command move

Type:

int

y

y position to move the cursor to with the command move

Type:

int

creates_session

A session name that identifies the session that is created when executing this command. This session name can be used by using the option session in another vnc-command. If no creates_session name is defined and no previous session is used a session named default is created.

Type:

str

session

Reuse an existing session. This setting works only if another vnc-command was executed with the command-option creates_session

Type:

str

connection_timeout

timeout in seconds for the connection to be established

Type:

int

Default:

10

expect_timeout

timeout in seconds for a command to finish. Gets passed as an argument to the client the first time a connection is established.

Type:

int

Default:

60

Note

The connection_timeout and expect_timeout` need to be set in the first command that establishes the connection

Note

The vnc connection needs to be closed with the command close explicitely, otherwise attackmate will keep running.