Sintaxes de plugins executores
Este capítulo vai abordar todas as sintaxes de plugin e suas respectivas particularidades. Um pequeno exemplo será utilizado para facilitar o entendimento da funcionalidade. Lembre-se que o senhasegura é instalado com mais de 250 templates prontos para serem utilizados. Você também entrar em contato com o senhasegura PAM Solution para ter acesso a templates desenvolvidos pela comunidade de parceiros.
cURL
Executor para solicitações de páginas web simples. Páginas que tenham ambiente JavaScript ou eventos HTML. Este executor pode ser utilizado para sistemas legado que são baseada na arquitetura HTML4 pura.
Caso seja necessário realizar uma automação utilizando elementos de interface web que simulam ações reais do usuário, dê uma olhada no executor HTTP. Por padrão, este plugin não valida a conexão SSL e seu tempo limite padrão está definido para 10 segundos.
Sintaxe
Este plugin aceita comentários. Para fazer comentários use o caractere '#' no início da linha.
Comando | Descrição |
---|---|
set-disable-auth | Não considera usuário e senha na solicitação para fornecer HTTP Authset-disable-auth |
set-request-header ”param” ”value” | Define um parâmetro de cabeçalho para a solicitação HTTP a ser realizadaset-request-header ’mytoken’``’FF32C5E9AC1800A2’ |
set-request-param ”param” ”value” | Configura qualquer parâmetro cURL1 oara a solicitação a ser realizadaset-request-param``’CURLOPT_ENCODING’ ’ISO-8859-1’ |
set-request-content ”content” | Determina o conteúdo dos dados da solicitação. A partir desse valor é calculado o comprimento do conteúdo do cabeçalhoset-request-content``’name=Peter&surname=McAlister’ |
set-content-type ”type” | Determina o cabeçalho de definição de conteúdo da requisição. Este valor será atribuído ao header Content-length: text/TYPE;charset=”utf-8” e Accept: text/TYPE.set-content-type ’text’ |
set-request-method ”method” | Determina o tipo de requisição que será realizada. Pode ser post , put and delete methods. Checar RFC 7231 para mais detalhes.set-request-method ’GET’ |
request ”URL” | Realiza a solicitação na URL fornecidarequest ’https://www.google.com/’ |
expect ”string” | Procura por um texto dentro da resposta da requisição. Falha caso não encontre. Continua caso encontre.expect ’password changed!’ |
no-expect ”string” | Procura por um texto dentro da resposta da requisição. Continua caso não encontre. Falha caso encontre.no-expect ’password change failed!’ |
Exemplo de alteração de senha HTTP simples com cabeçalho de token
set-request-header "X-INTRANET-TOKEN" "FF32C5E9AC1800A2"
set-request-param "username" "[#AUTH_USER#]"
set-request-param "password" "[#AUTH_PASSWORD#]"
set-request-param "tgt_user" "[#USERNAME#]"
set-request-param "tgt_npassword" "[#NEW_PASSWORD#]"
set-request-method "POST"
## If 7 bytes string 1200-OK returns, the password change was accepted
expect "1200-OK"
## If 7 bytes string 9999-NOK returns, the password change has failure
no-expect "9999-NOK"
HTTP
Executor para solicitações de páginas da web complexas que exigem mais interatividade com elementos JavaScript e gatilhos de evento;
Sintaxe
Comando | Descrição |
---|---|
start-at url | Indica a url inicial da página desejada. Este comando deve estar no começo do template.start-at https://www.senhasegura.com/ |
timeout milliseconds | Duração total em milisegundos do processo como um todo. Este comando deve estar no começo do template.timeout 3000 |
useragent string | Especifica qual useragent será utilizado durante a troca de senha. Por padrão, será usado Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4183.102 Safari/537.36. Este comando deve estar no começo do template.useragent senhasegura-executor |
new-action | Indica que um novo grupo de ações será iniciado.Um grupo de ações é composto por todas as ações realizadas para um envio de página.new-action |
set-location url | Redireciona o executor para a URL indicada.set-location https://mysystem.local/admin/login.php |
test-location string | Valida a atual URL em relação à string fornecida. A string fornecida pode ser apenas um pedaço de de toda a URL. Para caso o processo seja falso.test-location /admin/login.php |
log string | Registra uma mensagem de log. Utilize para identificar as etapas no log de execução.log Starting authentication steps |
test-selector selector | Executa um teste em um seletor semelhante aos seletores jQuery. Caso não encontre o elemento, o processo é interrompido com erro.test-selector input#username |
fill selectordata | Preenche o elemento retornado pelo seletor com o valor indicado.fill input#username #USERNAME# |
click selector | Dispara o evento clicando no elemento DOM retornado pelo seletor.click inputtype=button#login |
jclick selector | Dispara o clique do evento no elemento retornado pelo seletor.jclick inputtype=button#login |
offset xy | Cria um deslocamento de posicionamento para ajustar os comandos really-click e really-fill . |
really-click selector | Dispara um clique externo na página. Assim como faz um usuário. Use o comando offset para ajustar a coordenada do elemento.really-click inputtype=button#login |
really-fill selectordata | Preenche o elemento retornado do seletor com o valor indicado através da simulação de entrada do usuário. O elemento será clicado usando o comando really-click antes de ser preenchido. Use o comando offset para ajustar a coordenada do elemento.really-fill input#username #USERNAME# |
prop selectorpropertyvalue | Altera a proprieda do elemento. Normalmente usado quando alguma classe CSS ou elemento DOM realizou uma ação really-fill ou really-click que são difíceis de serem executadas.prop input#agreement enabled true |
test-visible selector | Testa se o elemento está visível para o usuário. Interrompe a operação caso o mesmo não esteja visível.test-visible div#alert.success |
test-not-visible selector | Testa se o elemento está invisível. Interrompe a operação caso o mesmo esteja visível.test-not-visible div#alert.failure |
sleep milliseconds | Aguarde os milissegundos especificados entre uma ação e outra.sleep 1000 |
jscript jscode | Código de script JavaScript a ser executado na atual página renderizada. Use com cuidado.jscript $(’inputtype=checkbox’).prop(’checked’, true); |
O comando sleep
inseri uma ação de espera para que a ação atual seja retomada e uma nova ação seja gerada com o próximo comando (depois do período de espera).
Exemplo para console Amazon AWS
start-at https://console.aws.amazon.com/console/home
timeout 30000
user-agent "Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/60.0.3112.113 Safari/537.36"
new-action
sleep 4000
test-location /signin?redirect_uri
fill #resolving_input [#USERNAME#]
jclick #next_button
sleep 2000
new-action
fill #ap_password [#CURRENT_PASSWORD#]
click #signInSubmit-input
new-action
test-location /console/home
set-location https://signin.aws.amazon.com/updateaccount?redirect_uri=https%3A%2F%2Fconsole.aws.amazon.com%2Fbilling%2Fhome%23%2Faccount
sleep 2000
new-action
test-location /ap/cnep
jclick #cnep_1A_change_password_button-input
new-action
fill #ap_password [#CURRENT_PASSWORD#]
fill #ap_password_new [#NEW_PASSWORD#]
fill #ap_password_new_check [#NEW_PASSWORD#]
click #cnep_1D_submit_button-input
new-action
test-selector #message_success
LDAP
Este plugin pode ser utilizado para interagir com o Microsoft®Active Directory ou servidores OpenLDAP.
Sintaxe
Comando | Descrição |
---|---|
connect null ”target” | Conecta com o destino solicitado. Caso o destino não seja informado, conecta com o dispositivo associado a credencial.connect |
find ”dn” ”filter” | Localiza a única entrada a ser manipuladafind ’o=MyCompany,c=BR’ ’(username=user01)’ |
mod-add ”param” ”value” | Adiciona um atributo a entrada. Depende se o comando find já tiver sido executado com sucesso.mod-add ’memberuid’ ’username’ |
mod-del ”param” ”value” | Remove um atributo da entrada. Depende se o comando find já tiver sido executado com sucesso.mod-del ’memberuid’ ’username’ |
mod-replace ”param” ”value” | Substitui um atributo da entrada. Depende se o comando find já tiver sido executado com sucesso.mod-replace ’memberuid’ ’username’ |
bind ”dn” | Executa autenticação de servidorbind ’uname’ |
set-option ”param” ”value” | Determina o valor de uma propriedade na conexão LDAP. Veja PHP LDAP1 para a lista de seleção.set-option ’LDAP_OPT_PROTOCOL_VERSION’ ’3’ |
Exemplo de alteração de senha de usuário de domínio no Microsoft Active Directory
## LDAP protocol version
set-option LDAP_OPT_PROTOCOL_VERSION 3
## DistinguishedName of the user who will connect to the server
bind "cn=[#AUTH_USER#],CN=Users,DC=senhasegura,DC=local"
## Search the user in which the procedure will be done.
## The system will search in general scope for a user object that has
the name of the user
find "DC=senhasegura,DC=local" "(&(objectClass=user)
(sAMAccountName=[#USERNAME#]))"
## Update user password
mod-replace unicodePwd "u([#NEW_PASSWORD#])"
Exemplo para ativação de conta de usuário
## LDAP protocol version
set-option LDAP_OPT_PROTOCOL_VERSION 3
set-option LDAP_OPT_REFERRALS 3
## DistinguishedName of the user who will connect to the server
bind "CN=[#AUTH_USER#],CN=Users,DC=senhasegura,DC=local"
## Search the user in which the procedure will be done.
find "DC=senhasegura,DC=local" "(&(objectClass=user) (sAMAccountName=[#USERNAME#]))"
## Update account status
mod-replace userAccountControl 512
Para encontrar o DistinguishedName
do seu servidor, acesse a área de Funcionalidades Avançadas e siga os seguintes passos:
Clicar em View e depois em Funcionalidades Avançadas.
Vendo a lista completa de atributos do usuário, clique em Propriedades do Usuário.
Vá até a aba editor de atributos e encontre o
DistinguishedName
entre as informações.
SSH
Sintaxe
Este plugin aceita comentários. Para fazer comentários use o caractere '#' no começo da linha.
Comando | Descrição |
---|---|
set-ssh-version [1] | Determina qual versão de SSH será usada. Por padrão, será a 2.set-ssh-version 2 |
set-new-line-mode [unixwindowsmac] | Envia a característica do comando. Por padrão, será usado unix .set-new-line-mode unix |
set-read-timeout [seconds] | Tempo em segundos para o tempo limite de leitura do comando read . Por padrão, será usado 5 segundos.set-read-timeout 5 |
set-connect-timeout [seconds] | Tempo em segundos para tempo limite de conectividade. Por padrão, será usado 5 segundos.set-connect-timeout 5 |
exec ”string” | Executa o comando no dispositivo remoto.exec ’passwd myuser’ |
write ”string” | Escreve a string no dispositivo remoto. O caractere de fim de linha não será enviado. |
read ”string” | Localiza o texto indicado no output de conexão. Não aceita expressões regulares.read ’New password:’ |
expect ”string” | Localiza o texto indicado no output de conexão, permitindo o uso do caractere curinga ’*’ para pesquisas expansivas. |
expect-regex | Localiza o texto através de uma expressão.read ’[nN]ew password:’ |
sleep ”seconds” | Espera que o script seja executado dentro dos segundos fornecidos.sleep 10 |
no-expect | Procura por uma expressão para irrigar dentro da resposta do pedido. Continua caso não encontre. Para caso encontre.no-expect ’password change failed!’ |
end | Interrompe conexão com o servidor alvo.end |
Exemplo de alteração de senha de usuário Linux
## Put the language in English
expect "*#"
exec "export LC_ALL=C"
## Execute the password change for the user
expect "*#"
exec "passwd [#USERNAME#]"
## Fill in the new password
expect "*password:"
exec "[#NEW_PASSWORD#]"
## Confirm the new password
expect "*password:"
exec "[#NEW_PASSWORD#]"
## Validates if successfully changed
expect "*updated successfully"
Exemplo de alteração de senha para Apache htpasswd
expect "*#"
exec "htpasswd -bm /etc/htpasswd/.htpasswd [#USERNAME#] [#NEW_PASSWORD#]"
expect "*Updating"
expect "*#"
exec "exit"
end
Exemplo de alteração de senha para Apache Tomcat
## Changing tomcat-users.xml user entry
expect "*#"
exec "sed -i 's/<user username="[#USERNAME#]" password="[#CURRENT_PASSWORD#]"/<user username="[#USERNAME#]" password="[#NEW_PASSWORD#]"/' /etc/tomcat/tomcat-users.xml"
## Validating changing step
expect "*#"
exec "cat /etc/tomcat/tomcat-users.xml | grep 'username="[#USERNAME#]" password'"
expect "*[#NEW_PASSWORD#]*"
## Restarting tomcat
expect "*#"
exec "service tomcat restart"
## Finish the procedure
expect "*#"
exec "exit"
end
Exemplo para Red Hat JBoss Application Vault
expect "*#"
exec "/opt/wildfly/bin/vault.sh --enc-dir /opt/vault --keystore /opt/vault.keystore --keystore-password VaultK --salt $(shuf -i 10000000-99999999 -n 1) --iteration $(shuf -i 10-99 -n 1) --alias vault --vault-block [#ADD_INFO#] --attribute [#USERNAME#] --sec-attr [#NEW_PASSWORD#]"
expect "Please make note of the following:"
expect "*#"
exec "exit"
end
SSH Legacy
Sintaxe
Este plugin aceita comentários. Para fazer comentários utilize o caractere '#' no inicio da linha.
Command | Description |
---|---|
write ”command” | Encaminha a execução do comando para o servidor de destino.write ’passwd myuser’ |
exec ”command” | Similar a write |
read ”string” | Procura por um texto na resposta do pedido. Falha caso não encontre. Continua caso encontre.read ’password updated successfully’ |
expect ”string” | O mesmo do read |
expect-regex | O mesmo do read |
not-expect ”string” | Procura por um texto na resposta do pedido. Continua caso não encontre. Falha caso encontre.password unchanged |
Exemplo de troca de senha para Linux legado
## Request password change
expect "*$"
exec "sudo passwd [#USERNAME#]"
## Fill in the sudo password
expect "*:"
exec "[#AUTH_PASSWORD#]"
## Fill in the new password
expect "*password:"
exec "[#NEW_PASSWORD#]"
## Confirm the new password
expect "*password:"
exec "[#NEW_PASSWORD#]"
## Validates if successfully changed
expect "*successfully"
Telnet
Sintaxe
Comando | Descrição |
---|---|
set-username-prompt ”string” | Determina qual padrão de prompt do usuário localizar. O valor da pesquisa é um texto simples. Não é uma expressão regular.set-username-prompt ’Username:’ |
set-password-prompt ”string” | Determina qual padrão de prompt de senha localizar. O valor da pesquisa é um texto simples. Não é uma expressão regular.set-password-prompt ’Password:’ |
set-new-line-mode [unixwindowsmac] | Determina qual sistema breakline deve ser usado.set-new-line-mode ’unix’ |
set-no-authenticate | Configura o executor para pular a etapa de autenticação.set-no-authenticate |
send ”command” | Envia o comando para o servidor de destino sem inserir o caractere de quebra de linha automaticamente no final.send ’passwd’ |
exec ”command” | Envia o comando para o servidor de destino incluindo o caractere de quebra de linha no final. |
expect ”pattern” | Espera até que o texto desejado apareça.expect ’changed!’ |
end | Interrompe a conexão com o servidor de destino.end |
Exemplo para um 3com Switch 5500 Family
## Waiting username
expect "*:"
exec "[#USERNAME#]"
## Waiting password
expect "*:"
exec "[#CURRENT_PASSWORD#]"
## Enter system-view
expect "*>"
exec "system-view"
## Enter local user view
expect "*]"
exec "local-user [#USERNAME#]"
expect "*]"
exec "password cipher [#NEW_PASSWORD#]"
## Exit to user.
expect "*]"
exec "quit"
## Exit to system view.
expect "*]"
exec "quit"
expect "*>"
exec "quit"
Windows RM
O dispositivo alvo precisa da conectividade Microsoft®Windows®Remote Management habilitada e autorizada.
Sintaxe
Command | Description |
---|---|
!unsecure | Determina o uso de protocolo inseguro para troca.!unsecure |
!reload-password | Força a substituição da senha atual pelo novo valor de senha.!reload-password |
!sleep seconds | Aguarda pelo determinado número de segundos para executar o comando.!sleep 30 |
!change-password | Solicita a execução de mudança de senha do usuário alvo desta automação.!change-password |
powershell cmd | Executa o comando powershell no servidor remoto.powershell Set-ADAccountPassword -Identity``[#username#] -Reset -NewPassword (ConvertTo-SecureString``-AsPlainText ”[#NEW_PASSWORD#]” -Force) |
Exemplo para dispositivos que possuem Windows RM sobre HTTPS
## change user password
!change-password
Exemplo para dispositivos que possuem Windows RM sobre HTTP
!unsecure
## change user password
!change-password
Exemplo de alteração de senha no arquivo de configuração via PowerShell
powershell (Get-Content .Desktop\Web.config) | Foreach-Object {$_
-replace 'password=([^;"]+)','password=[#NEW_PASSWORD#]'} |
Set-Content .Desktop\Web.config
Exemplo de alteração de senha de aplicação COM + usando PowerShell
## Change user password
!change-password
## Replicate the new password into COM+ application
powershell $comAdmin = New-Object -com ("COMAdmin.COMAdminCatalog.1")[nl]$applications = $comAdmin.GetCollection("Applications")[nl]$applications.Populate()[nl]foreach ($application in $applications)[nl]{[nl]$appName = $application.Value("Name")[nl]$appIdentity = $application.Value("Identity")[nl]if ($appIdentity -eq "[#ADD_INFO#]\[#USERNAME#]") {[nl]$application.Value("Password") = "[#NEW_PASSWORD#]"[nl]$comAdmin.ShutdownApplication($appName)[nl]$applications.SaveChanges()[nl]$comAdmin.StartApplication($appName)[nl]}[nl]}
Exemplo de alteração de senha para Windows Autologon usando PowerShell
## Change user password
!change-password
## Replicate the new password into Windows registry
powershell $RegPath = "HKLM:\SOFTWARE\Microsoft\Windows NT\CurrentVersion\Winlogon"[nl]
Set-ItemProperty $RegPath "AutoAdminLogon" -Value "1" -type String[nl]
Set-ItemProperty $RegPath "DefaultDomain" -Value "[#DOMAIN#]" -type String[nl]
Set-ItemProperty $RegPath "DefaultUsername" -Value "[#USERNAME#]" -type String[nl]
Set-ItemProperty $RegPath "DefaultPassword" -Value "[#PASSWORD#]" -type String
Exemplo para IIS Website Application Pool
## Change user password
!change-password
## Replicate the new password into IIS application pool
C:\Windows\System32\inetsrv\appcmd.exe set config /section:applicationPools /"[name='[#ADD_INFO#]']".processModel.identityType:SpecificUser /"[name='[#ADD_INFO#]']".processModel.userName:[#USERNAME#] /"[name='[#ADD_INFO#]']".processModel.password:[#NEW_PASSWORD#]
Windows RPC
O dispositivo alto precisa da conectividade Microsoft®Windows®RPC habilitada e autorizada.
Sintaxe
Este executor aceita qualquer comando Microsoft®Windows®RPC e alguns comandos dedicados do senhasegura , começando com exclamação.
Command | Description |
---|---|
!netsmb-password | Solicita e execução de troca de senha para o usuário alvo desta automação.!netsmb-password |
!reload-password | Força a substituição da senha atual pelo valor da nova senha.!reload-password |
!sleep seconds | Aguarda o determinado número de segundos determinado para execução do próximo comando.!sleep 30 |
Alterar a senha de um usuário de domínio
## Changing account using executor command alias
!netsmb-password
## You can also execute a native RPC command
## net user [#USERNAME#] [#NEW_PASSWORD#] /domain
Altera a senha de um usuário local e atualizar a senha da conta do Windows do usuário local
## Change password
net user [#USERNAME#] [#NEW_PASSWORD#]
## Waiting three seconds
!sleep 3
## Update password for "Defrag"
schtasks /Change /RU [#USERNAME#] /RP [#NEW_PASSWORD#] /TN Defrag
Alterar a senha de um usuário local e atualizar a senha da conta Windows Service
## Change password
net user [#USERNAME#] [#NEW_PASSWORD#]
## Waiting three seconds
!sleep 3
sc config [#ADD_INFO#] obj= [#USERNAME#] password= [#NEW_PASSWORD#]
MySQL
Sintaxe
Você pode executar qualquer MySQL query de administrador ou até mesmo queries em bancos de dados.
Você também pode chamar funções do MySQL ou funções específicas de bancos de dados. A única limitação é chamar ou criar procedimentos armazenados.
Exemplo de troca de senha de usuário
ALTER USER '[#USERNAME#]'@'[#ADD_INFO#]' IDENTIFIED BY '[#NEW_PASSWORD#]';
FLUSH PRIVILEGES;
Oracle
Sintaxe
Você pode executar qualquer Oracle query de administrador ou até mesmo queries em bancos de dados.
Você também pode chamar funções do Oracle ou funções específicas de bancos de dados. A única limitação é chamar ou criar procedimentos armazenados.
Exemplo de troca de senha de usuário
CONN [#USERNAME#]@[#ADD_INFO#]
ALTER USER [#USERNAME#] IDENTIFIED BY [#NEW_PASSWORD#]
PostgreSQL
Sintaxe
Você pode executar qualquer PostgreSQL query de administrador ou até mesmo queries em bancos de dados.
Você também pode chamar funções do PostgreSQL ou funções específicas de bancos de dados. A única limitação é chamar ou criar procedimentos armazenados.
Exemplo de troca de senha de usuário
ALTER USER [#USERNAME#] WITH PASSWORD '[#NEW_PASSWORD#]';
SQL Server
Sintaxe
Você pode executar qualquer SQL Server query de administrador ou até mesmo queries em bancos de dados.
Você também pode chamar funções do SQL Server ou funções específicas de bancos de dados. A única limitação é chamar ou criar procedimentos armazenados.
Exemplo de troca de senha de usuário
ALTER LOGIN [#USERNAME#] WITH PASSWORD = '[#NEW_PASSWORD#]' OLD_PASSWORD = '[#CURRENT_PASSWORD#]' UNLOCK;
Tk Expect
Este plugin usa o binário TK Expect para interagir usando um poderoso interpretador stdout.
Sintaxe
Você pode usar o manual do TK Expect2 para criar seu próprio script.
Exemplo de troco de senha para IBM AS400
use telnet script
expect {
"User . ." {
send "[#USERNAME#]\t"
exp_continue
} "Password . ." {
send "[#CURRENT_PASSWORD#]\r\n"
exp_continue
} "Selection or command" {
send "chgpwd\r\n"
exp_continue
} "Current password . ." {
send "[#CURRENT_PASSWORD#]\r\n"
exp_continue
} "New password . ." {
send "[#NEW_PASSWORD#]\r"
exp_continue
} "New password (to verify)" {
send "[#NEW_PASSWORD#]\r"
exp_continue
} "Password changed successfully." {
send "\r"
exit 0
} incorrect {
send_user "FAILURE INCORRECT"
exit 1
} timeout {
send_user "FAILURE TIMEOUT"
exit 1
} eof {
send_user "FAILURE EOF"
exit 1
}
}
VMWare ESXi
Este plugin vai interagir com o console binário administrativo VMWare ESXi esxcli.
Sintaxe
A sintaxe original do comando deverá ser usada esxcli
.
Definir uma senha de usuário usando o exemplo de comando esxcli "system account set"
system account set -i '[#USERNAME#]' -p '[#NEW_PASSWORD#]' -c '[#NEW_PASSWORD#]'
x3270 IBM Terminal Emulator
Executor para mainframes IBM 3270. Você pode interagir em interfaces de aplicativos de mainframe interpretando seu design.
Sintaxe
Alguns dos comandos linux x32703 foram substituídos por apelidos de executor para tornar a integração com o senhasegura segura e fácil.
Comando | Descrição |
---|---|
timeout [segundos] | Algumas conexões de mainframes, ou algumas ações, podem travar. Para evitar essa situação, você pode configurar os segundos de tempo limite. Este tempo limite é o tempo máximo decorrido que toda a operação pode levar. Por padrão, é configurado para 5 segundos.Este comando deve ser usado antes do comando connect . timeout 300 |
sleep [segundos] | Aguarda o tempo em segundos. Use este comando se precisar esperar que o mainframe execute alguma ação. Este sleep não será enviado para o mainframe.sleep 3 |
echo [string] | Ecoa uma string nos logs de operação do executor. Esta mensagem ecoada não será enviada para o mainframe.echo Starting authentication step |
connect | Executará a conexão do mainframe para iniciar a etapa de interação, resultando em uma ação Connect .connect |
search [data][x,y,r,c] | Irá pesquisar o aplicativo de mainframe renderizado para a coordenada fornecida e comparar com a string de dados fornecida. Interromperá a execução com status de falha se não for igual.A coordenada deve ser composta por 4 variáveis de posição.O comando será traduzido para a ação Ascii .* x: Número da linha inicial começando por 0; |
- y: Coluna inicial de char começando por 0;
- r: Número de linhas a serem retornadas a partir de 1;
- c: Número de colunas a serem retornadas a partir de 1;
search SUCCESSFUL 10,17,1,10
| | search_not [data][x,y,r,c] | Semelhante asearch
. Mas irá falhar caso a string fornecida não for encontrada.search_not FAILURE 10,17,1,7
| | send [data] | Insira alguns dados para o aplicativo de destino. Este comando pode aceitar sequências de escape de string.Este comando será traduzido para a açãoString()
action.send T01281\t2918\r
| | screenshot | Irá entrar no log de operação do executor toda a tela ASCII renderizada (terminal 24x80 apenas).screenshot
| | disconnect | Realizará um desligamento da conexão do mainframe .O comando será traduzido para a açãoDisconnect()
.disconnect
|
Como trocar a senha do usuário para um exemplo de aplicativo de mainframe
timeout 350
## AUTHENTICATION STEP ##################
echo Starting connection
connect
sleep 3
echo Performing login
search USER: 20,2,1,5
send [#USERNAME#]\t[#CURRENT_PASSWORD#]\r
echo Result screen
screenshot
## PASSWORD CHANGE STEP ##################
search USER: [C] CHANGE PASSWORD 10,5,1,19
send C\r[#NEW_PASSWORD#]\t[#NEW_PASSWORD#]\r
search_not FAILURE 12,70,1,7
search SUCCESS 12,70,1,7
echo Result screen
screenshot
disconnect