Skip to main content

Native access disclosure plugins

Run command: pswcmdrun

The pswcmdrun access disclosure plugin is used with account set access requests. It allows users to run commands or scripts on multiple managed systems using managed account credentials.

When a user checks out an account set, Bravura Privilege displays a command execution window if any of the member systems support the run command operation.

Currently the following target systems support the run command operation:

  • Windows NT Server

  • Secure Shell (SSHD Host)

  • Telnet target system

  • Python Script

  • Oracle Database

  • Microsoft SQL Server

  • Sybase AES Database

  • Console Script

Additional preparation is required before pswcmdrun can run PowerShell commands on a Windows Server / workstation target. See Windows Server in the Connector Pack documentation for details.

If the plugin is enabled but an account set contains no managed system that supports the run command operation, Bravura Privilege displays the following message upon check-out:

  • "None of the checked out systems support command execution operation. Command execution interface is not available."

You can modify the following default attributes to control the behavior of pswcmdrun :

command

The command to run.

deleteexpired

Delete command output after expiration.

retry

Retry failed commands run via Transaction Monitor Service.

savecmd

Allow users to save commands.

saveresult

Retrieve command output and save on server.

Command attribute

value

%command%

replacement

By default, the command or script that the user specifies in an account set request will be used to populate the command execution window upon check-out. If you customize this value, the customized value (command or script) will be used to populate the command execution window. It overrides any command or script specified in the request.

Command prompt: pswxcmd

The pswxcmd access disclosure plugin provides users with access to managed systems by executing an external program and providing credentials. The default program is PuTTY.exe, which opens an ssh/telnet terminal to a Windows machine. The external program must meet the following requirements:

  • User credentials must be accepted as part of the arguments

  • Connection details must be accepted as part of the arguments

  • The program must be installed on the user workstation

  • The program must either exist on the full path specified as part of the “program” attribute; or if no path has been specified, the external program must be specified on the workstation system path

  • SMON HTTP URL must resolve to the server from client workstations

There are three types of command prompt controls; one is specifically for managed accounts, and the other two are for temporary group membership, where the password can either be passed onto the command line, or specified upon connection to the remote server.

You can modify the following default attributes to control the behavior of pswxcmd :

arguments

Arguments to supply to the external program. See Arguments attribute for details.

checkout expiry

If set to true, the external program closes when the user’s access checkout expires.

credentialprompt

If set to true, a user is prompted for a user name and password. They are made available for arguments as %curruser% and %currpwd% . This is enabled for use with unmanaged passwords, where the user will be prompted for a password that wil be passed on the command line to the command.

escalation hotkey key

Set the letter key for the escalation hotkey. When used with the escalation hotkey modifier, the escalation sequence is inserted.See Inserting an escalation sequence for more details.

escalation hotkey modifier

Set the modifier for the escalation hotkey. There are three options: ’Ctrl’, ’Alt’, and ’Middle click’. When used with the escalation hotkey key, the escalation sequence is inserted. See Inserting an escalation sequence for more details.

escalation sequence

The text to automatically type into the application.

escalation window name

If this window name is detected, the escalation sequence is inserted into the program. See Inserting an escalation sequence for more details.

host

The IP or DNS of server. See Domain and host values for further information about using an alternative attribute value.

impersonate

Set the impersonation level of the process. This is set to ’none’ by default. See Impersonating the checked-out account for more details.

program

External program (including full path) to execute.

window

If true, the command is executed within a display window. If false, the command is executed without a display window.

Arguments attribute

The arguments provide substitution of the password, user name, host, and other custom plugin attributes. The substitutions are as follows:

value

%host%

replacement

The domain managed system member is on, without any optional parameters.

value

%username%

replacement

The account ID for the privileged password being disclosed.

value

%password%

replacement

The password being disclosed.

value

%<custom attribute>%

replacement

If there is a “custom attribute” defined for the plugin, the value of the attribute is used.

Using custom attributes provides control over the arguments attribute. You can enable the user to override the custom attribute only, while leaving the arguments locked or hidden.

The following are examples of customizations using the pswxcmd access disclosure plugin.

Allow optional arguments

The default settings for pswxcmd execute PuTTY and connect using the privileged password. This example shows how you can add a custom attribute to allow the user to specify the port:

  1. Create an attribute named port with the following settings:

    • Integer type

    • Allow the port attribute to be overridden by the users

    • Set the minimum value to 1

    • Set the default value to 22

    • Set the port attribute to be non-empty

  2. Set the arguments attribute value to: -ssh %host% -l %username% -pw %password% -P %port%

Insert an escalation sequence

You can allow users to insert an escalation sequence into a program (such as PuTTY.exe) using a hotkey or window name.

When a user presses the escalation hotkey, the escalation sequence is automatically typed into the program. By default, the escalation hotkey is Ctrl + K.

To configure the escalation hotkey:

  1. Set the escalation sequence attribute to the text to insert into the program.

  2. Set the escalation hotkey modifier attribute to:

    • Ctrl – Pressing the Ctrl key with the escalation hotkey key automatically types the sequence. This is the default setting.

    • Alt – Pressing the Alt key with the escalation hotkey key automatically types the sequence.

    • Middle click – Middle-clicking automatically types the sequence. The escalation hotkey key attribute is ignored for this option.

  3. If using the Ctrl key or Alt key for the modifier, set a letter key (A-Z) for the escalation hotkey key attribute.

When the window name is detected, the escalation sequence is automatically typed into the program.

To configure the escalation window name:

  1. Set the escalation sequence attribute to the text to insert into the program.

  2. Set the escalation window name attribute for the window where the escalation sequence will be inserted.

    Users will not be able to use the escalation hotkey when the escalation window name attribute is defined.

Impersonating the checked-out account

You can allow the requester to run a program (such as cmd.exe) with the permissions of the checked-out account. This will essentially simulate the runas command.

Set the impersonate attribute to:

  • none – No impersonation will be performed. This is the default setting.

  • withoutprofile – Attempt to impersonate without loading the user’s profile.

  • withprofile – Attempt to impersonate and load the user’s profile.

  • netonly – Do not impersonate locally, but present the managed credentials for network authentication only.

Executing a shell script

This example shows how you can configure pswxcmd to execute a shell script:

  • Set the program attribute to: C:\windows\system32\cmd.exe .

  • Set the arguments attribute to: /C X:\ITApps\runapp.cmd %host% %password% %username%

Executing SQL*Plus

This example shows how you can configure pswxcmd to execute SQL*Plus:

  • Set the program attribute to: C:\oracle\product\10.1.0\client _1\bin\sqlplus.exe

  • Set the arguments attribute to: %username%/%password%@%host%

Changing the message to users on failure

You can change the message displayed to users in the event that the external program fails to launch by modifying the RES CONNECTION TO SERVER FAILED MSG setting in the global or managed system policy Account access request options.

PuTTY over SSH: pswxcmd

This is a preconfigured pswxcmd access disclosure plugin specifically for managed accounts. By default, this plugin is configured to execute PuTTY and connect using the user’s SSH keys instead of the privileged password.

The following requirements must be met:

  • Connection details must be accepted as part of the arguments

  • The program must be installed on the user workstation

  • The user’s private key must already be configured on the workstation

  • The program must either exist on the full path specified as part of the “program” attribute; or if no path has been specified, the external program must be specified on the workstation system path

  • SMON HTTP URL must resolve to the server from client workstations

The following attributes are available:

arguments

Arguments to supply to the external program, the %password% argument is not used.

checkout expiry

This is set to true, the external program closes when the user’s access checkout expires.

credentialprompt

This is set to false, users are not prompted to enter their credentials.

host

The IP or DNS of server.

program

External program (including full path) to execute. This is set to putty.exe by default.

window

This is set to true, the command is executed within a display window.

See Command prompt: pswxcmd for more information on modifying these attributes.

Copy: pswxcopy

The pswxcopy access disclosure plugin provides users with access to a password by copying it into the clipboard of the client workstation. By default, it is configured to clear the clipboard if the browser is closed or if the default 30 seconds expiry time for the plugin has passed.

You can modify the following default attributes to control the behavior of pswxcopy :

erase

If false, the clipboard is not cleared. If true, the clipboard is cleared after the time expires or the browser is closed.

timeout

This controls how long before the clipboard is cleared.

Remote desktop / Remote APP RDP: pswxtsvc

The pswxtsvc access disclosure plugin provides users with access to Windows server or client managed systems and RemoteApp programs using Remote Desktop Connection (RDC). The plugin provides automatic connection to the managed system without requiring the entry of administrative credentials for the managed account. You can also connect to the remote server when accessing group sets. This access disclosure plugin supports Network Level Authentication (NLA) and session monitoring.

There are two versions of the pswxtsvc access disclosure plugin:

  • Remote desktop, for remote access to a managed system’s desktop environment.

  • Remote APP RDP, for remote access to one of the managed system’s programs that can be run directly on the client’s workstation. RemoteApp must already be configured on the managed system.

    Remote APP RDP type disclosures are used for launching applications such as ssms.exe on Server X and providing users with a SQL Server Management window on their desktop that "looks local", but in fact is running on Server X.

The plugin requires the following:

  • Microsoft terminal services client (mstsc.exe) installed on the user’s workstation.

  • Terminal service enabled on the client workstation or server.

  • Firewalls configured to allow RDC (default port 3389/tcp) from user’s workstation to managed system.

  • The managed account has remote terminal service access to log on under remote terminal services.

  • SMON HTTP URL must resolve to the server from client workstations

You can modify the following default attributes to control the behavior of pswxtsvc :

checkout expiry

If set to true, the remote desktop application closes when the user’s access checkout expires.

color depth

Preferred color depth (value must be 8, 15, 16 or 24 bits per pixel).

domain

Domain of the user account that the control will connect with. The default is %host% .

host

The IP or DNS of server.

host search

If set to true, will enable searching on attribute ”host” when override is allowed for ”host”.

keyboardhook

Apply Windows key combinations to the remote connection:

  • Value: 1 - applied on the remote computer

  • Value: 2 - applied in fullscreen mode only

login from list

Display login button in list of access disclosure plugins when editable attributes exist. If set to false, the login ability is moved to the override page.

multimon

If set to true, the screen mode will be full screen and extended to all monitors, provided there is more than one monitor.

rdp port

The port to use when connecting to the host.

redirect clipboard

If set to true, will enable redirecting of the clipboard.

redirect devices

If set to true, will enable redirecting of devices.

redirect drives

If set to true, will enable redirecting of local disk drives.

redirect ports

If set to true, will enable redirecting of local ports.

redirect pos devices

If set to true, will enable redirecting of Point of Service devices.

redirect printers

If set to true, will enable redirecting of printers.

redirect smart cards

If set to true, will enable redirecting of smart cards.

The following disclosure attributes are applicable to the Remote desktop access disclosure plugin only:

administer server

If set to true, will connect to the server for remote administration.

fullscreen

If set to true, the screen mode will be full screen. If set to false, the screen mode will be windowed.

height

The desktop height used when using windowed mode.

idle timeout

Idle time before auto logoff.

multimon

If set to true, the screen mode will be full screen and extended to all monitors, provided there is more than one monitor.

smartsizing

If set to true, will enable the client computer to scale content to fit the window size.

username

An overridable attribute with support for the special value %shortid% , which retrieves the managed account’s shortid. Add this attribute manually through UI.

width

The desktop width used when using windowed mode.

The following disclosure attributes are applicable to the Remote APP RDP disclosure plugin only. You can obtain these values by viewing the contents of the RemoteApp’s .rdp file.

expand remoteapplicationcmdlineenv vars

If set to true, the server should expand environment variables in the command line arguments. This is set to false by default.

expand working dir env vars

If set to true, the server should expand environment variables in the working directory path. This is set to false by default.

remoteapplicationcmdline

The command line arguments for the RemoteApp program, if applicable.

remoteapplicationname

The RemoteApp program name.

remoteapplicationprogram

The RemoteApp program alias. (ex. —— <program> )

working directory

The working directory on the server for the RemoteApp program.

Domain and host values

The domain and host values are used to connect to the remote system. Their values may depend on how the managed system is set up, and whether it is push or local service mode, manually or automatically discovered.

The domain must be the DNS Domain Name or NetBIOS name. It should not be an IP address. The reason is that the Windows logon requires the account ID and the context (domain/local machine) to identify the administrative user. If an IP address is used in place of a proper name, the connection will fail.

Bravura Privilege gets the replacement value for %host% from the managed system’s address, or the ’name’ attribute for discovered systems. You could choose to leave the value as an IP address. Windows Server 2008 and above supports an IP address for the host.

If the address does not contain the DNS name (for example, if it is an IP address) and you want it to, you have several options:

  • If the system is local service mode, use one of the substitution values %NETBIOS% , %DNSHostname% , or %NetbiosDomain% depending on the type of account. Default is %NETBIOS% .

  • If the system is push mode, and if using the Windows NT connector, enable WINNT_EMIT_INFO and use %DNSHostname% . This allows the Windows NT connector to return the IP and DNS hostname on the reset operation.

  • If the system is push mode, and if using a scripted connector (agtssh , agtdos , agttelnet), configure the PSLang script to return the IP address and DNS hostname on the reset operation.

  • Use a managed system attribute set by the API Service ManageSystemAttrAdd function. The key-values set for the managed system can then be used for the host/domain settings.

  • Use a hardcoded value.

  • Let the user override the value.

When an user checks out a domain account, the user has the option to select from a list of domain member computers to connect to. To enable this, the ”host” attribute must have the ability to be overridden by the user, and the ”host search” attribute is set to true. As well, discovered systems must be listed from the Active Directory target.

Local service managed system values

The terminal services plugin connects to the domain set in the managed system’s address field by default.

When you install the Bravura Privilege local service, it transmits the information about the workstation, including:

  • DNS Domain name

  • NetBIOS domain name

  • Fully qualified DNS name

  • NetBIOS name

  • Physical DNS domain name

  • Physical fully qualified DNS name

  • Physical DNS host name

  • Physical NetBIOS name

You can view the information for a workstation by clicking Manage the system > Privileged access > Managed systems > < Workstation ID > , then scrolling down to the information table below the account table.

The attribute names can be used to substitute values for the domain and host attributes for the pswxtsvc ; for example you can set the domain value to %NETBIOS%, %DNSHostname%, or %NetbiosDomain%.

Changing the failure message to users

You can change the message displayed to users in the event that the external program fails to launch by modifying the RES PROGRAM PATH INVALID MSG setting in the global or managed system policy Account access request options.

Authentication prompting

If the managed system you are connecting to is configured to include a prompt for password upon connection, you may notice that the password field is already filled in. You can proceed by clicking OK ; you do not need to specify any additional information.

The password is passed from the disclosure plugin to the RDP client via Windows UI Automation (MSAA).

3207.png

If you receive a similar error and the password is not populated at all, it's possible that Windows changed the RDP dialog. If you are using a supported version of Bravura Security Fabric

Bravura Security Fabric , contact support so they can look for a possible patch.

Single sign-on authentication

You can configure SSO (single sign-on) authentication so that domain users requesting access to group sets can bypass the authentication prompt when running the pswxtsvc access disclosure plugin. SSO is implemented by using the pre-established credentials used to log onto a client computer and sending it to the remote server directly. This allows the user to access the remote server without needing to enter the password multiple times.

In order for SSO to be in effect, the client computer must be on the same domain as the remote server, and the user must log onto the client computer with their domain account.

To order to accommodate single sign-on authentication, you must configure settings on both the remote server and the client. Remote Server

The remote server must be Windows 2008/Vista or above, and it must allow connections from computers running Network Level Authentication.

To allow connections from computers running Network Level Authentication:

  1. Go to Start menu and right click on Computer.

  2. Click Properties.

  3. Click Remote settings.

  4. Select Allow connections only from computers running Remote Desktop with Network Level Authentication.

  5. Click Select Users...

  6. Click Add... to include users that will be requesting group set access to ensure they can remotely log onto the server.

  7. Click OK.

  8. Click OK again to close the system properties.

Remote Client

The remote client must be Windows XP SP3 or above, and support Network Level Authentication.

For Windows 2008/Vista+ Clients:

  1. Go to Start menu, type gpedit.msc in the search box, and click on the program to access the Local Group Policy Editor.

  2. Expand Computer Configuration \ Administrative Templates \ System \ Credentials Delegation.

  3. Double click on Allow Delegating Default Credentials.

  4. Set this object to Enabled.

  5. Click the Show... button to add servers to the list.

  6. Configure a list of trusted remote servers for SSO.

    For each server, enter a new value of TERMSRV/ < hostname > where < hostname > is the address that the pswxtsvc access disclosure plugin will use to connect to the remote server. Typically, this will be the fully qualified DNS name of the server.

    You can also simply type in TERMSRV/. < domain > to include all servers in < domain > .

For Windows XP SP3 Clients:

  1. Go to the Start menu, type regedit in the search box, and click on the program to access the Registry Editor.

    Ensure that you are comfortable and knowledgeable in the mechanics of the registry before you attempt to change any configuration settings. Contact support@bravurasecurity.com if in doubt.

  2. In HKLM \ SOFTWARE \ Policies \ Microsoft \ Windows, create a new key called CredentialsDelegation .

  3. In the newly created CredentialsDelegation key, create a DWORD value called AllowDefaultCredentials and set its value to 1.

  4. Create a new key under CredentialsDelegation called AllowDefaultCredentials .

  5. In the newly created AllowDefaultCredentials key, create a new string value.

  6. Set the name of this to some unique identifier; you may wish to simply use ”1”, ”2”, ”3”, and so on. Set the value to TERMSRV/ < hostname > , similar to above.

  7. Repeat this step for each server you want to enable SSO for.

  8. Go to HKLM \ SYSTEM \ CurrentControlSet \ Control \ Lsa and modify Security Packages by appending tspkg to it.

  9. Go to HKLM \ SYSTEM \ CurrentControlSet \ Control \ SecurityProviders and modify SecurityProviders by appending credssp.dll to it.

Display: pswxview

The pswxview access disclosure plugin provides users with access to a password by displaying it within the browser. When the secure method is enabled, Bravura Privilege uses JavaScript to decrypt the privileged password embedded in the page. If the insecure method is enabled, the browser can store passwords in plain text in the page source, and users can view the password in browsers that do not have JavaScript enabled.

You can modify the following default attributes to control the behavior of pswxview :

secure

If true, the password is only disclosed if the browser has JavaScript enabled, and the password is not selectable. If false, the password is available in plaintext for browsers without JavaScript.

timeout

This controls how long the privileged password is shown.

pwd split

Allows the password to be split amongst multiple viewers so that no single viewer sees the entire password.

Changing default font and size of viewable passwords

You modify the default font and size of viewable passwords by opening the following files:

  • <instance>\skin\widgets \ pluginctrl-end.html

  • <instance>\skin\widgets \ ie \ pluginctrl-end.html

    and editing the following lines:

passFontFamily: ‘<font_name>'
passFontSize: <font_size>

If the ie directory exists, the file in it will override the global file outside of it.

Split password view

You can split up a password amongst multiple viewers by specifying the pwd split attribute. This takes the form ”n/m” where m is the number of pieces to split the password into, and n is the number of the piece that this instance of the control should display.

For example, 1/2 will display the first half of the password, while 2/2 will display the second half. You can configure a plugin to determine what part of the password a viewer will see. See Using a plugin to define access disclosure plugin . If you don’t intend to use password splitting, you can safely delete the default pwd split attribute.

Browser driver: pswxdom

Use an alternative disclosure plugin, such as Website access disclosure plugins , as Internet Explorer is no longer a supported browser. For information about pswxdom see documentation for 12.5 or older.