Operações automatizadas
Introdução
Este manual irá explicar um dos módulos mais importantes dentro do ambiente do senhasegura . O módulo de Execuções.
Muitas funcionalidades do senhasegura necessitam desempenhar tarefas assíncronas em sistemas alvos, sistemas esses que por sua vez operam com protocolos comuns ou interfaces que podem ser facilmente gerenciada pelo senhasegura através de plugins (que serão explicados nesse manual).
Levando em consideração esses cenários descritos acima, o módulo senhasegura Execuções irá centralizar todas as operações comuns que visem executar comandos ou que interajam com sistemas remotos. Mantendo todos os módulos client notificados, proporcionando uma trilha de auditoria rica, logs, retentativas diante de erros e dashboards com dados importantes para aumentar a governança segura dos clientes.
A quem este manual se destina?
O Manual do módulo de Execuções foi escrito para familiarizar deployers, usuários e administradores de sistemas que necessitem requisitar, executar, monitorar e auditar execuções remotas assíncronas sobre informações privilegiadas, realizadas através do senhasegura .
O que você precisa entender primeiro
Este manual exige que o leitor já tenha tido experiência prévia com o senhasegura e tenha uma instância da solução com pelo menos um dispositivo e uma credencial registrada. Antes de continuar a ler, caso você ainda não possua experiência, consulte o seguinte conteúdo:
- Getting Started Cookbook: Este cookbook explica de maneira simples o uso do do senhasegura desde a instalação até o uso de funções básicas.
Símbolos usados neste cookbook
Este livro usa os seguintes símbolos para destacar informações que devem ser levadas em consideração para o melhor uso de senhasegura :
Info - Informações úteis que podem tornar o uso da solução mais dinâmico.
Caution - Ações e itens que não podem ser ignorados.
commands
: Dados que devem ser inseridos da mesma forma como descrito neste livro.- URLs : Caminhos para acessar páginas da web.
<KEYS>
: Caminhos de teclado que serão usados para realizar ações.
O módulo de Execuções
Como dito anteriormente na introdução, o módulo de Execuções possui vários outros módulos do senhasegura como client. Por exemplo, o módulo pode ser usado para:
Troca de senha automatizada no senhasegura PAM Proxy;
Quando o período válido expira;
Quando a opção "apenas texto" é requisitada pelo usuário;
Quando foi utilizada numa sessão proxy;
Quando foi requisitada por alguma Aplicação WebService A2A ;
Quando a credencial pai iniciou uma corrente de ação de mudanças;
Ativação ou inativação de credencial através pelo senhasegura PAM Proxy;
Quando algum usuário precisa começar uma sessão proxy utilizando uma credencial bloqueada;
Quando algum usuário precisa começar uma sessão proxy utilizando uma credencial JIT;
Quando algum usuário termina uma sessão proxy;
Quando uma tarefa automatizada precisa ser iniciada no Módulo de Execuções;
A execução da tarefa pode ser acionada por algum usuário;
O agendamento da execução de tarefa acionou a execução;
Quando um certificado SSL, gerenciado pelo Módulo Certificate Manager, necessita de alguma ação;
Uma solicitação de certificado deve ser liberada;
Um certificado deve ser associado a um CA específico ou a um CA comercial;
Um certificado precisa ser revogado;
Um certificado precisa ser publicado;
Para uma melhor compreensão, recomendamos a leitura dos manuais específicos.
Através do módulo de Execuções o usuário terá o controle sobre as seguintes ações:
Solicitar alteração de informações privilegiadas;
Rastrear operações de informações privilegiadas;
Detalhar tentativas de alteração de informações privilegiadas;
Solicitar uma reconciliação de informação privilegiada;
Configurar automação de operações de informações privilegiadas;
Saber os parâmetros de mudança de informações privilegiadas;
Criação de novos templates para alteração de informações privilegiadas;
Separar dispositivos e credenciais através de perfis;
Configurar automações encadeadas;
Para realizar suas funções, o módulo Execuções pode ser dividido em três entidades principais.
Operação
Uma operação representando que uma tarefa confirmada para ser feita. A operação é registrada pelo módulo client, o qual define a credencial alvo da operação, dispositivo e hora de início. Uma operação é composta por um Sistema e uma informação privilegiada alvos, um Executor e um Template.
Executor
Também conhecido como plugin, representa o protocolo ou mecanismo que será utilizado para conectar e interagir com o sistema alvo. O sistema poder ser um servidor SSH, um Widows sobre RPC, um site, um servidor web, um provedor Cloud, ou qualquer outro sistema interativo!
Templates
São os código-fonte da tarefa que será executada. Os templates possuem uma sintaxe particular que é definida pelo Executor, porém, cada template pode ser composto usando algumas máscaras representando Credenciais, Chaves SSH, Dispositivos, Certificados, DevOps Secrets ou valores de Usuário definido. Estas máscaras serão substituídas no momento da execução.
Cada um das três entidades mencionas acima serão explicadas uma a uma neste manual. Mas agora, vamos dar uma olhada no gráfico para entender melhor como elas interagem:
Conforme demostrado na imagem, a origem do gatilho solicitará uma execução assincrônica para o módulo de execução. Conforme afirmado anteriormente, muitos módulos podem solicitar esta execução.
Um gatilho pode ser o usuário que solicitou uma visualização de senha, a credencial usada em uma sessão de proxy, um período de validade de senha que expirou, a solicitação do administrador para alterar um grande número de credenciais e gatilhos específicos de outros módulos.
Esta solicitação ficará registrada como uma operação no módulo de Execuções, e quando o tempo determinado pelo client for atingido, a operação será executada.
Neste exemplo a operação é composta por um Executor, para realizar a interface com o sistema alvo, um Template contendo as interações que devem ser feitas, e uma Credencial alvo que será afetada pelo template de comandos no sistema alvo.
Ao final da operação, o resultado será gravado no senhasegura e o módulo solicitante será notificado. Todos os detalhes da operação, do início ao fim, serão gravados nos relatórios do módulo client e também no módulo de Execuções. As mensagens SYSLOG/SIEM serão ecoadas e dashboards serão atualizados para garantir a governança corporativa.
Operação encadeada usando esquema de credencial pai e filha
O senhasegura permite que Administradores criem uma operação encadeada simples usando a configuração e lógica de credencial pai-filha. Neste esquema, quando a credencial pai tem sua senha alterada com sucesso, o módulo Execuções irá registrar e agendar operações para troca de senha para todas as credenciais filhas. Cada credencial pode ser configurada com um executor e um template específico.
O resultado da operação filha não afetará o resultado da operação pai, nem de outras operações filha.
Templates
Templates são componentes importantes do senhasegura . Eles são instruções passo a passo para realizar mudanças de sistema.
O administrador do sistema, ou qualquer outro usuário com devida permissão, está apto a criar novos templates de acordo com suas respectivas necessidades e executá-los em seus dispositivos que tenham conectividade compatível com o senhasegura .
o senhasegura vem instalado com mais de 250 templates prontos para serem utilizados. E dentro do senhasegura PAM Solution nossos clientes e parceiros podem se atualizar com mais templates desenvolvidos pelo time do senhasegura e a comunidade de parceiros.
Para ver a lista com todos os templates, vá para o menu: Executions ➔ Settings ➔ Templates.
Registrando um template
Clique no botão Novo template na tela que irá aparecer, preencha os seguintes campos:
Nome do template: Nome para melhor identificação;
Executor: Comunicação tecnológica entre o senhasegura e o dispositivo alvo. Falaremos melhor sobre este tópico mais adiante;
Tipo de execução: Tipo de troca para qual o modelo será usado. Pode ser qualquer ação acionada por módulos de cliente de execução instalados;
Ativo?: Indica se o template de troca está disponível para uso ou não;
Conteúdo do template: Uma área de texto para se compor o script de instrução. Apresentaremos todas as sintaxes do Executor posteriormente;
Clique no botão Salvar para completar o cadastro:
Modificando um template
Para modificar um template de execução de troca de senha, clique no botão Alterar template na no registro.
Templates recebem uma versão incremental, que pode ser identificada no relatório dos mesmos na coluna Versão.
Você tem acesso a versões anteriores, bem como aos dados de usuários que modificaram o template, através da ação de cadastro "Histórico de mudança de template".
Compondo um template
Todo plugin executor tem sua própria sintaxe. Mas você pode usar algumas propriedades curingas para serem substituídas por credenciais e valores de propriedades reais de dispositivos. A substituição irá ocorrer no momento em que a operação for executada. Qual dispositivo e credencial estarão disponíveis para uso no momento da operação será definido pelo próprio módulo client.
Estas propriedades serão substituídas de acordo com as regras do módulo client. Propriedades que representam troca de senha apenas serão consideradas pelas operações de troca de senha. Por exemplo, operações Task Manager apenas substituirão propriedades de caracteres curinga de conexão.
[#USERNAME#]: Nome de usuário da credencial que terá sua senha alterada;
[#NEW_PASSWORD#]: A nova senha que você deseja que a credencial use;
[#CURRENT_PASSWORD#]: A senha atual usada pela credencial;
[#AUTH_USER#]: Nome de usuário da credencial que será autenticada na estação/sistema/servidor para realizar a troca;
[#AUTH_PASSWORD#]: Senha da credencial que se autenticará para realizar a mudança;
[#AUTH_DOMAIN#]: Domínio da credencial que se autenticará para executar a mudança;
[#ADD_INFO#]: Informações adicionais de credencial;
[#IP#]: O IP do dispositivo de credencial que terá a senha alterada;
[#HOSTNAME#]: O hostname do dispositivo de credencial que terá a senha alterada;
[#DOMAIN#]: O domínio do dispositivo de credencial que terá a senha alterada;
[#SERVER_PATH#]: Caminho do servidor de credenciais que terá a senha alterada;
Executores
Os templates serão executados apenas quando o artefato alvo (por exemplo, a credencial a ser trocada) estiver configurado como um executor e com um template para ser utilizado. Para cada template há apenas um executor. Os Executores do senhasegura representam quais protocolos e sistemas de conectividade e suas respectivas habilidades de interagir nativamente.
O objetivo deste capítulo é apresentar os plugins oferecidos pelo senhasegura e como usá-los para executar tarefas automatizadas e como criar templates para estas tarefas.
Gatilhos padrão do Executor
Um gatilho é uma ação que ocorre no módulo client. Esta ação pode ser executada pelo plugin Executor, suportado pelo tecnologia do módulo client. Essa arquitetura permite que nossos desenvolvedores criem novos plugins e gatilhos para todo sistema alvo que suporte alguma forma de interação automatizada.
Por padrão, o senhasegura já vem com os seguintes gatilhos para iniciar a execução de uma operação:
Gatilhos PAM;
Habilitar credencial: Habilita uma credencial bloqueada para um dispositivo alvo. Também pode ser utilizado para realizar a criação de uma credencial JIT;
Desabilitar credencial: Desabilita uma credencial alvo depois da mesma ser utilizada em uma sessão senhasegura Proxy . Também pode ser utilizada para realizar destruição de uma credencial JIT;
Troca de senha: Troca alguma credencia ou segredo de Chave SSH;
Nuvem e DSM;
AWS OpsWorks : Usado no senhasegura DSM para fornecer credenciais e gerenciamento de segredos no AWS OpsWorks ;
Automação de Gerenciamento Secreto: tarefas de gerenciamento de segredo do senhasegura Cloud;
Aprovisionamento de usuários;
Novo grupo: Criação de novo grupo em um sistema alvo;
Novo usuário: Criação de usuário em um sistema alvo;
Deletar grupo: Deletar grupo em um sistema alvo;
Deletar usuário: Deletar usuário em um sistema alvo;
Deletar usuário em um grupo: Remover um usuário de um grupo em um sistema alvo;
Gerenciamento de certificados;
Desabilitar certificado: Revogar um certificado alvo SSL em um dispositivo alvo;
Publicação de certificados: Publicar um certificado alvo SSL em um dispositivo alvo;
Task Manager;
- Task Manager: Automatizar tarefas em um dispositivo alvo que possam ser agendadas ou executadas a pedido do usuário;
Plugins executores
Todo executor pode interagir com algum sistema. As camadas de abstração do senhasegura permitem que nosso time de desenvolvedores criem novos executores com o objetivo de alcançar protocolos, provedores de nuvem, APIs, interfaces de sites, comandos OS, etc. Vamos dar uma olhada no resumo dos executores.
Ambientes web
cURL: Executor para solicitações de páginas web simples. Páginas que não tenham ambiente JavaScript ou eventos HTML. Você pode utilizar esse executor para sistemas legados que possuam arquitetura HTML4 pura;
HTTP: Executor para solicitações de páginas web complexas onde há mais interatividade usando elementos JavaScript e acionadores de eventos são necessários;
Selenium: Executor para páginas web complexas onde o executor HTTP não dê suporte. Saiba mais em Executor Selenium.
Protocolos diversos
LDAP: Interatividade com navegações e operações em servidores LDAP;
SSH: Execução de comandos através de uma conexão SSH;
SSH Legacy: Execução de comando via conexão SSH a partir de dispositivos legado que possuam versões antigas de SSH;
Telnet: Execução de comandos via uma conexão Telnet;
Ambientes Windows
Windows RM: Interatividade com dispositivos Windows através Windows RM;
Windows RPC: Interatividade com dispositivos Windows através do Windows RPC. Inclusive, é possível executar comandos via PowerShell;
Bancos de dados
O senhasegura pode interagir com um grande número de bancos de dados. Caso necessário, a implementação pode ser solicitada a nossa equipe Comercial ou de Suporte. Por padrão, o senhasegura vem instalado com apenas os quatro principais fornecedores de bancos de dados.
MySQL: Execução de comandos em um banco de dados MySQL
Oracle: Execução de comandos em um banco de dados Oracle
PostgreSQL: Execução de comandos em um banco de dados PostgreSQL
SQL Server: Execução de comandos em um banco de dados SQL Server
Produtos específicos e binários
Tk Expect: Interatividade binária no dispositivo binário via conexão SSH ou Telnet. Perfeito para interagir em aplicações de linha de comando onde a interface precisa ser interpretada;
VMWare ESXi: Troca de senhas usando VMWare ESXi client;
x3270 IBM Terminal Emulator: Conector para mainframes IBM 3270. Você pode interagir em interfaces de aplicativos de mainframe interpretando seu design;
Executor Selenium
Selenium é uma solução de automação de aplicações web criada com o objetivo de apoiar times durante testes automatizados, simulando um usuário.
Para informações acesse a documentação oficial do Selenium (em inglês).
Através deste executor é possível a criação de templates utilizando scripts em Python para automatizar as troca de senha em aplicações web, como, Instagram, Facebook, Gmail etc..
Para usuários que não possuam afinidade com a linguagem Python, é possível utilizar a extensão Selenium IDE para Google Chrome ou Firefox. Enquanto o usuário navega pela aplicação web, todos os passos e informações inseridas são capturadas, e convertida em um script que pode ser utilizado como template no senhasegura.
Para saber mais sobre o Selenium IDE, consulte a página oficial em https://www.selenium.dev/selenium-ide/docs/en/introduction/getting-started (em inglês).
Criar template para executor Selenium
A criação de templates para o executor Selenium é dividida em duas etapas:
- Gravação do passo a passo do template utilizando o Selenium IDE
- Criação do template no senhasegura
Gravar passo a passo com Selenium IDE
Para criação do template, nós iremos utilizar a extensão Selenium IDE para navegadores. Ele automatiza a criação do template gravando todos os cliques e preenchimento de campos enquanto o usuário navega pelo site.
Após instalar a extensão em seu navegador, siga os passos abaixo:
- Em seu navegador, clique no ícone para abrir a extensão Selenium IDE.
- Na janela que abrir, clique na opção Record a new test in a new project.
- Insira um nome para seu projeto no campo PROJECT NAME. Por exemplo: Reddit.
- Clique no botão OK.
- No campo BASE URL, insira a URL da página de login do site para o qual deseja criar o template. Por exemplo: https://www.reddit.com/account/login/.
- Clique no botão START RECORDING. Isso fará com o endereço inserido na BASE URL sejá aberto em uma nova janela. A partir deste ponto, todos os cliques e informações inseridas nos campos serão capturadas pelo Selenium IDE.
- A partir de agora, preencha todos os campos que o template deverá seguir. No nosso exemplo do Reddit, os passos são:
- Preencher os campos de usuário e senha, e clicado no botão de log in.
- Navegar até a página de Troca de senha.
- Preencher os campos Senha anterior, Nova senha, Confirmar nova senha e clicar no botão Salvar.RECOMENDAÇÃO
Recomendamos que como forma de validação da nova senha, após alterá-la, seja feito um logout e um novo login com ela para garantir que a troca foi realizada com sucesso.
- Após realizados todos os passos para a troca da senha no site para o qual deseja criar o template, retorne à janela do Selenium IDE.
- No canto superior-direito, clique no ícone Stop recording e preencha o campo TEST NAME. Por exemplo: Reddit password change.
- Na lateral-esquerda, clique no teste que criou com o botão direito do mouse e escolha a opção Export.
- Dentre as opções apresentadas, selecione a linguagem Python pytest e clique no botão Export.
- Salve o arquivo em seu computador.
Para que a automação funcione corretamente, o site no qual deseja executar o template não pode possuir multifator de Autenticação habilitado.
Você pode validar seu script clicando na ação Run current test no Selenium IDE antes de exportá-lo. Para isso, será necessário alterar a coluna Value das senhas, pois elas foram alteradas no processo de criação do script.
Criar template no senhasegura
Agora que temos o arquivo com os passos que o template deverá possuir, vamos adicioná-lo ao senhasegura. Para isso, siga os passos abaixo:
- Abra o arquivo
.py
que salvou na etapa anterior em qualquer editor de textos. Pode ser até mesmo o Bloco de notas. No nosso exemplo do Reddit, o conteúdo será parecido com o seguinte:
Abrir código
# Generated by Selenium IDE
import pytest
import time
import json
from selenium import webdriver
from selenium.webdriver.common.by import By
from selenium.webdriver.common.action_chains import ActionChains
from selenium.webdriver.support import expected_conditions
from selenium.webdriver.support.wait import WebDriverWait
from selenium.webdriver.common.keys import Keys
from selenium.webdriver.common.desired_capabilities import DesiredCapabilities
class TestRedditpasswordchange():
def setup_method(self, method):
self.driver = webdriver.Chrome()
self.vars = {}
def teardown_method(self, method):
self.driver.quit()
def test_redditpasswordchange(self):
self.driver.get("https://www.reddit.com/account/login/")
self.driver.set_window_size(1920, 1030)
self.driver.find_element(By.ID, "loginUsername").click()
self.driver.find_element(By.ID, "loginUsername").send_keys("username")
self.driver.find_element(By.ID, "loginPassword").click()
self.driver.find_element(By.ID, "loginPassword").send_keys("OldPassword")
self.driver.find_element(By.ID, "loginPassword").send_keys(Keys.ENTER)
self.driver.get("https://reddit.com/change_password")
self.driver.find_element(By.ID, "old_password").click()
self.driver.find_element(By.ID, "old_password").send_keys("OldPassword")
self.driver.find_element(By.ID, "password").click()
self.driver.find_element(By.ID, "password").send_keys("NewPassword")
self.driver.find_element(By.ID, "password2").click()
self.driver.find_element(By.ID, "password2").send_keys("NewPassword")
self.driver.find_element(By.ID, "password2").send_keys(Keys.ENTER)
WebDriverWait(driver, 30).until(expected_conditions.presence_of_element_located((By.XPATH, "//button[@id=\'USER_DROPDOWN_ID\']")))
- Copie o conteúdo a partir da linha onde está o endereço inserido em BASE URL. No nosso exemplo, será a partir da linha 22:
Abrir código
self.driver.get("https://www.reddit.com/account/login/")
self.driver.set_window_size(1920, 1030)
self.driver.find_element(By.ID, "loginUsername").click()
self.driver.find_element(By.ID, "loginUsername").send_keys("username")
self.driver.find_element(By.ID, "loginPassword").click()
self.driver.find_element(By.ID, "loginPassword").send_keys("OldPassword")
self.driver.find_element(By.ID, "loginPassword").send_keys(Keys.ENTER)
self.driver.get("https://reddit.com/change_password")
self.driver.find_element(By.ID, "old_password").click()
self.driver.find_element(By.ID, "old_password").send_keys("OldPassword")
self.driver.find_element(By.ID, "password").click()
self.driver.find_element(By.ID, "password").send_keys("NewPassword")
self.driver.find_element(By.ID, "password2").click()
self.driver.find_element(By.ID, "password2").send_keys("NewPassword")
self.driver.find_element(By.ID, "password2").send_keys(Keys.ENTER)
WebDriverWait(driver, 30).until(expected_conditions.presence_of_element_located((By.XPATH, "//button[@id=\'USER_DROPDOWN_ID\']")))
- Para poder usar este template no senhasegura, basta substituir os campos pelas variáveis que devem ser preenchidas automaticamente durante o processo de troca de senha. Veja um exemplo:
Abrir código
self.driver.get("https://www.reddit.com/account/login/")
self.driver.set_window_size(1920, 1030)
self.driver.find_element(By.ID, "loginUsername").click()
self.driver.find_element(By.ID, "loginUsername").send_keys("[#USERNAME#]")
self.driver.find_element(By.ID, "loginPassword").click()
self.driver.find_element(By.ID, "loginPassword").send_keys("[#CURRENT_PASSWORD#]")
self.driver.find_element(By.ID, "loginPassword").send_keys(Keys.ENTER)
self.driver.get("https://reddit.com/change_password")
self.driver.find_element(By.ID, "old_password").click()
self.driver.find_element(By.ID, "old_password").send_keys("[#CURRENT_PASSWORD#]")
self.driver.find_element(By.ID, "password").click()
self.driver.find_element(By.ID, "password").send_keys("[#NEW_PASSWORD#]")
self.driver.find_element(By.ID, "password2").click()
self.driver.find_element(By.ID, "password2").send_keys("[#NEW_PASSWORD#]")
self.driver.find_element(By.ID, "password2").send_keys(Keys.ENTER)
WebDriverWait(driver, 30).until(expected_conditions.presence_of_element_located((By.XPATH, "//button[@id=\'USER_DROPDOWN_ID\']")))
- Agora seu código já está pronto para ser utilizado em seu template de troca de senha. Selecione o executor Selenium ao Criar seu template
Variáveis dos templates
Confira a lista de variáveis que você pode utilizar em seus templates de troca de senha.
Variável | Descrição |
---|---|
[#USERNAME#] | Username da credencial |
[#CURRENT_PASSWORD#] | Valor da senha atual |
[#NEW_PASSWORD#] | Valor da nova senha |
[#AUTH_USER#] | Username da credencial para autenticação |
[#AUTH_PASSWORD#] | Senha da credential para autenticação |
[#AUTH_DOMAIN#] | Domínio da credencial para autenticação |
[#ADD_INFO#] | Informações adicionais da credencial |
[#IP#] | IP do dispositivo |
[#HOSTNAME#] | Hostname do dispositivo |
[#DOMAIN#] | Domínio da credencial |
[#SERVER_PATH#] | Caminho do servidor |
Funções que você pode utilizar eu seus templates
Você pode utilizar em seu template todos os comandos disponíveis para a classe driver.*
(ou self.driver.*
). Confira a lista de comandos disponíveis na documentação oficial do Selenium (em inglês).
Confira a lista de funções que podem ser utilizadas em seu template:
Função | Descrição |
---|---|
self.driver.* | Comandos para manipulação dos elementos do navegador simulando o usuário. Pode ser utilizado como diver.* também. Exemplo de uso: self.driver.get("https://instagram.com") Saiba mais em: selenium.dev/pt-br/documentation/webdriver/browser/ |
WebDriverWait | Faz o Driver aguardar até que uma condição seja verdadeira. Você pode utilizá-lo para verificar se algum elemento da página já foi carregado, como, por exemplo, algum campo do formulário de login. Exemplo de uso: WebDriverWait(self.driver, 30).until(expected_conditions.presence_of_element_located((By.ID, "username"))) Saiba mais em: selenium.dev/pt-br/documentation/webdriver/waits/ |
ActionChains | ActionChains são uma maneira de automatizar interações de baixo nível, como movimentos do mouse, ações do botão do mouse, pressionamento de tecla e interações do menu de contexto. Isso é útil para realizar ações mais complexas, como passar o mouse e arrastar e soltar. Exemplo de uso: ActionChains(driver).move_to_element(menu).click(hidden_submenu).perform() Saiba mais em: selenium-python.readthedocs.io/api.html#module-selenium.webdriver.common.action_chains |
Imprime uma mensagem durante a execução do template. Você pode utilizá-lo para fazer marcações durante a execução. Exemplo de uso: print("Sua mensagem aqui") Saiba mais em: docs.python.org/pt-br/3/tutorial/inputoutput.html | |
timeout | Aguarda por um tempo determinado em segundos antes de continuar a execução. Exemplo de uso: timeout(15) |
O ciclo de mudança de senha
Registrando uma credencial
O limite de Credenciais que podem ser cadastradas no senhasegura depende da tipo de licença que foi contratada. Para mais informações, entre em contato com o Suporte do senhasegura .
A credencial pode ser cadastrada via atalho no menu de ações rápidas, ou por meio do relatório de credenciais.
Para cadastrar uma credencial é obrigatório preencher os campos Nome de usuário, Tipo de senha e Dispositivo. Vamos entender melhor cada aba do fomulário e seus respectivos campos.
Credenciais configurações gerais
Na aba informações nós temos os seguintes campos:
Nome de usuário: É o nome de usuário da credencial. Deve coincidir com o da credencial no sistema remoto;
Tipo de senha: É o tipo de credencial. Você pode registrar novos tipos através do menu Settings ➔ Credentials ➔ Credential types.
O tipo Usuário de domínio habilita o uso de proxy da credencial em outros dispositivos. Mas é necessário informar o domínio no campo Domínio ;
Domínio: Domínio da credencial;
Dispositivo: Dispositivo que detém a credencial;
Informação adicional: Informação adicional que complementa o uso da credencial no dispositivo alvo. Este campo está disponível para uso de troca automatizada de senha, RemoteApp macros, e conexões de banco de dados; No caso de conexões de banco de dados, o nome do banco de dado deve preenchido neste campo;
Status: Indica se a credencial está disponível para uso;
Senha: Senha da credencial de até 256 caracteres; Se a troca de senha automatizada estiver configurada, este limite de caracteres será reduzido para 70 para evitar a repetição de caracteres;
Definir senha atual: Indicativo que o usuário deseja alterar o valor da senha que já está cadastrada no senhasegura . Para novos cadastros, é permitida a edição da senha;
Mostrar senha: Exibe a senha durante a edição;
Gerar senha: Irá gerar uma senha aleatória respeitando a força da senha descrita na tabela abaixo do formulário;
Tags: Identificadores para segregação de credenciais;
Note que há um campo chamado Política de senha. Nós falaremos sobre isso. Por ora, entenda que o senhasegura calcula a força da senha a partir dos atributos do dispositivo e da credencial que está sendo cadastrada. E essa política de senha determina como a senha aleatória será gerada em trocas automatizadas.
Configuração de execução
Na aba Configurações de execução iremos configurar o procedimento de troca automática de senha de credencial. Estes atributos serão vistos na prática mais adiante quando falarmos sobre o ciclo de mudança automática de senha.
Credencial pai: Credencial pai que inicia o processo de alteração automática de senha desta credencial.
Funciona como uma cadeia de mudança de senha, onde a mudança de uma credencial pai inicia o processo de todas as suas credenciais filho.
A existência de uma credencial pai não impede que a credencial filha seja alterada manual ou automaticamente;
Configurações de troca de senha automática de credencial
Habilitar troca automática: Selecione para habilitar troca automática de credencial;
Plugin da troca: Plugin utilizado para conectar e executar a troca no no dispositivo.
Este plugin está vinculado a vários protocolos de conexão. Não há validação de que o dispositivo está com sua conectividade ativa;
Template de troca: Template que será executado pelo plugin executor.
infoO senhasegura é instalado com mais de 250 templates prontos para serem utilizados. E através do nosso senhasegura PAM Solution nossos cliente e parceiros podem ser atualizados com mais templates desenvolvidos pelo time do senhasegura e comunidade de parceiros.
Configurações de status de credencial
Controle de status de credencial: Indica se o senhasegura deve controlar o status da credencial antes e depois de utilizada pelo usuário;
Plugin de ativação: Plugin usado para conectar e executar as etapas de ativação de credencial no dispositivo;
Template de ativação: Template que será usado para ativar a credencial;
Plugin de desativação: Plugin usado para conectar e executar as etapas de inativação de credencial no dispositivo;
Template de desativação: Template que será usado para desativar a credencial;
Configurações de autenticação de execução
Usar própria credencial para conectar: Indica se a própria credencial deve ser utilizada para conectar com o dispositivo para realizar a troca de senha;
Credencial de autenticação: Caso a própria credencial não seja utilizada para realizar a troca automatizadas, você deverá indicar qual credencial será usada para se conectar ao dispositivo; Você pode usar uma credencial para se conectar ao dispositivo e ainda usar sua credencial de destino para realizar a alteração. Isso é possível devido ao sistema de templates;
Como você deve ter notado, o módulo de Execuções, responsável pela automação e gerenciamento de templates, foi mencionado nesta aba.
Configurações adicionais
Na aba Configurações adicionais é onde estão as configurações de credenciais mais recentes relacionadas a outras funcionalidades. A mais prominente delas é a configuração Macros/RemoteApp.
Identificadores (para web services): Alias para identificar a credencial quando acionada via A2A web services;
Usuário dono da credencial: Usuário dono da credencial. Quando determinado, o usuário proprietário sempre terá acesso à credencial e poderá fazer alterações nela;
Caminho do servidor: Caminho que é usado em templates de troca de senha quando a credencial é registrada em um arquivo físico;
Ainda na aba de Configurações adicionais também existe a opção (não obrigatória) de definir a criticidade da credencial selecionando uma das seguintes opções: Alta, Média ou Baixa.
Configurações de sessão
Nesta aba você pode configurar o uso desta credencial em sessões de proxy.
Nas caixas em Conectividade você pode selecionar com quais protocolos esta credencial pode ser usada. O dispositivo alvo também precisa ser configurado com um ou mais protocolos selecionados para habilitar esta credencial para uso de proxy.
Configurações de aplicação remota
Ainda em Configurações de sessão você pode configurar RemoteAPP para esta credencial.
Restringir o acesso apenas a aplicativos remotos: Se ativo, a credencial poderá ser usada apenas para sessões proxy RemoteApp. Você não pode usar uma sessão de proxy que forneça a área de trabalho ou terminal do dispositivo. Isso não impede a retirada da senha;
Macro de automação RemoteApp (grade): Você pode relacionar quais macros RemoteApp estão vinculadas à credencial e disponíveis para usuários proxy;
infoPara a lista completa de protocolos e portas suportados, veja: Especificação Técnica.
Usar própria credencial para conectar: Indica se a mesma credencial será usada para autenticar o dispositivo alvo e o RemoteApp;
Credencial de autenticação: Se a credencial de autenticação no dispositivo for diferente da credencial do RemoteApp, indique qual credencial será usada para a etapa de autenticação;
Dispositio de autenticação: O dispositivo onde a credencial será autenticada e o macro será rodado. Caso preenchido, o dispositivo de credencial original que estamos registrando será ignorado;
Campos adicionais para autenticação de múltiplos fatores (grid): Campos adicionais para autenticação em websites. Alguns sites requerem muitas informações adicionais para que a etapa de login seja completada. Você pode dar um alias aos valores para complementar o script de autenticação da web;
Observações: Observações gerais sobre credenciais;
Para completar o cadastro da credencial aperte o botão Salvar.
Agora o senhasegura irá processar os grupos de acesso que permitem a visualização da credencial e torna-la disponível para os usuários. Cada etapa do cadastro é relatada pelo SIEM. Caso ocorra uma troca de senha manual, as credenciais filhas não serão notificadas.
Solicitando uma troca
Inicialmente nós iremos solicitar uma troca de senha para uma credencial. Para fazer isso, vá para o menu Executions ➔ Request password change.
Este relatório apenas irá mostrar credenciais que estão ativas e tenham troca automatizada configurada. Selecione as credenciais desejadas e clique na ação do rodapé Solicitar troca de senha. Ao solicitar a mudança, será agendada uma tarefa assíncrona. Vamos agora ensinar a você como monitorar a execução.
Para realizar uma alteração em massa:
Filtre o relatório de troca com as credenciais que você deseja alterar;
Selecione todas as credenciais com a checkbox da coluna de ação;
Clique no botão Solicitar troca de senha na barra de rodapé;
Todas as credenciais selecionadas serão registradas para alteração imediata . Quando o administrador solicitar uma troca de senha manualmente, todos os contadores de gatilhos serão resetados pela alteração de senha.
Monitorando a execução
Vá para o menu Executions ➔ List operations para ver todas as operações registradas no senhasegura . Estas operações são realizadas de forma assíncrona e variam nos seguintes estados:
Agendado: Este é o primeiro estado. Assim que a execução é solicitada, a tarefa assíncrona espera pelo tempo de execução ou aguarda na fila caso a mesma esteja cheia. A tarefa neste estado está disponível para cancelamento.
Aguardando aprovação: Alguns módulos requerem um fluxo de aprovação para rodarem ou falharem. Apenas os módulos Certificados e Task Manager usam esta função. A tarefa neste estado está sujeita a cancelamento.
Cancelado: Caso esteja nos estados Agendado ou Aguardando aprovação, é possível que o administrador irá cancelar a operação antes que ela seja executada. Esta operação então fica marcada com o estado Cancelado.
Rodando: Estas são as operações que já estão rodando neste exato momento. Nenhuma ação preventiva pode ser tomada.
Realizada com sucesso: Estas são as operações que foram executadas com sucesso. Você terá acesso aos detalhes das operações rodadas com sucesso.
Erro: Estas são as tarefas que não foram realizadas corretamente devido a algum impedimento. Verifique através da ação Detalhes para entender a razão da falha. Nestes casos, nós providenciamos a possibilidade de recomeçar o processo.
Expirado: Estas são tarefas que estavam com o estado Aguardando aprovação, e que o período de aprovação expirou.
Dentro das ações disponíveis para as operações você tem as seguintes opções:
Visualizar tentativas: Para as operações finalizadas, através desta ação você terá acesso aos logs e detalhes da operação;
Reiniciar execução: Caso a operação tenha finalizado com estado de erro, através desta ação você reiniciar a operação. Utilize caso os motivadores da falha tenham sido mitigados;
Solicitar execução imediata: Quando muitas operações estão agendadas para serem executadas, através desta ação você irá priorizar a operação selecionada;
Cancelar operação: Permite cancelar a execução enquanto ela não esteja sendo executada ou finalizada;
O menu Executions ➔ List attempted operations centralizará o resultado de cada tentativa de cada operação. Este relatório serve como um guia para ajudar na identificação de erros ativos que estejam que estejam ocorrendo em suas operações.
Garantindo a validade da senha - reconciliação de senha
Para garantir que uma credencial gerenciada seja válida no sistema de destino e sincronizada com senhasegura , há um recurso de reconciliação de senha para verificar e redefinir a credencial quando uma inconsistência for detectada.
Uma vez que a troca de senha foi configurada e a troca foi executada com sucesso, o senhasegura irá fazer a validação de tempos em tempos caso esta credencial esteja acessível e válida.
Este processo irá identificar as credenciais que precisam de atenção e fornecer a possibilidade de resetá-las automaticamente ou manualmente.
Par habilitar o processo de reconciliação, acesse o menu Settings ➔ Execution processes ➔ Processes.
Encontre a opção Reconciliação de senha e no campo Ação mude para ON que significa que o serviço de execução será ligado, ou estará ativo para realizar essa operação.
Reconciliação manual
Para reconciliação manual, as credenciais que falharem na verificação de validade feita pelo senhasegura estão listadas no relatório Reconciliação de senha, onde o administrador pode avaliar o problema e tomar as medidas para resetar as senhas.
O relatório pode ser acessado em Executions ➔ Password reconciliation.
Reconciliação automática
O processo de reconciliação irá tentar executar uma rotação de credencial para as senhas que falharem no teste de validação, a fim de redefinir a credencial no dispositivo alvo e no senhasegura para manter a sincronização.
Nesta situação, a credencial alvo deverá ser configurada com outra credencial para conectar e executar a troca de senha. Você pode configurar a autenticação da credencial em Autenticação de credencial na aba Configurações de execução. Você pode ver os detalhes na seção execution-auth-settings na página execution-auth-settings.
As tentativas de reinicialização serão executadas enquanto o serviço de reconciliação estiver habilitado.
Troca de chaves SSH
Para chaves SSH, o senhasegura pode usar o mesmo workflow de operações da troca de senha. A diferença é apenas as telas e menu usados para gerenciar as Chaves SSH.
Assim como credenciais usam nome de usuário e senha, as Chaves SSH devem usar/relacionar dispositivos. Acesse o menu PAM ➔ SSH Keys ➔ SSH Keys para ter acesso à todas as Chaves SSH registradas.
Para criar um novo registro de Chave SSH, clique no botão New e preencha os seguintes campos:
Na aba Informações:
Nome de usuário (dono da chave): Usuário do sistema operacional dono da chave;
Dispositivo: Dispositivo onde a Chave SSH é instalada;
Nome da chave: Um apelido para identificação interna no senhasegura ;
Caminho da chave: Localização física da chave dentro do sistema de arquivo do dispositivo;
Status: Flag caso a chave esteja disponível para uso dentro senhasegura ;
Tags: Tags definidas pelo usuário para segregação de dados e filtros internos no senhasegura ;
Na aba Key data:
Definir senha atual: Checkbox para definir manualmente a atual senha da chave;
Mostrar senha: Checkbox para definir se o campo senha irá exibir o texto/valor da senha sem máscara;
Senha: Insere a senha atual;
Chave privada: Insira o valor da chave privada de texto simples como formato PEM;
Chave pública: Insere o valor da chave pública em texto simples;
Na aba Configurações adicionais:
Habilitar troca automática: Selecione esta opção caso você queria que o senhasegura habilite esta chave para ser automaticamente alterada;
Use a própria chave para conectar: Selecione esta opção caso você queira usar a própria chave para autenticar a sessão SSH;
Credencial ou chave SSH para autenticação: Se você escolher não usar a própria chave para autenticação, você pode escolher outra credencial para executar o processo de alteração;
Na aba Dispositivos você pode associar todos os dispositivos para os quais esta chave é publicada. Então, o senhasegura irá substituir a chave no dispositivo dono e ecoar a chave pública nos dispositivos relacionados;
Concluído o registro da chave SSH, você pode executar uma solicitação de operação de mudança conforme explicado anteriormente.
Automação de operação encadeada e SQL Server Linked Server
Automatizar as operações de troca de senha permite que usuários com privilégios de administrador executem operações, como alteração de senha vinculada, automática ou manualmente.
A execução vinculada é entendida como uma operação onde a senha de uma credencial de destino deve ser replicada para vários destinos diferentes. Às vezes contém diferentes sistemas que requerem diferentes executores e modelos. Por exemplo: Garantir que a senha do banco de dados seja replicada para serviços hospedados em Linux e Windows.
Usando a sintaxe de elaboração script de automação, você pode determinar se a operação será executada quando todas as credenciais forem alteradas com sucesso, ou mesmo quando apenas parte delas tiver sido executada com sucesso.
Na configuração de um script de execução, é possível selecionar a operação a ser realizada, bem como a força das senhas alteradas.
A execução também pode ser configurada automaticamente em dias e períodos predeterminados. Você também pode selecionar um intervalo mínimo entre as execuções de alteração de senha vinculada.
Para exemplificar seu uso neste documento, usaremos as automações para executar scripts de alteração de senha, porém, esta funcionalidade pode ser usada para qualquer script.
SQL Linked Server
Usando o senhasegura Automação de Operação você pode facilmente alterar as senhas dos servidores vinculados do SQL Server da Microsoft, replicando contas usando templates prontos do senhasegura para instâncias do SQL Server.
O senhasegura oferece dois tipos diferentes de template para lidar com configuração de porta dinâmica ou configuração de porta estática.
Quando o SQL Server trabalhar com configuração de porta dinâmica, você deverá configurar o dispositivo senhasegura com a porta UDP, onde o SQL Server irá publicar qual porta TCP o SQL Server está rodando.
Na imagem do exemplo você pode ver que esta arquitetura é composta por duas instâncias do Microsoft®SQL Server rodando com portas dinâmicas do Linked Server. Portanto, o dispositivo registrado no senhasegura deve ter a porta UDP configurada.
O senhasegura então irá primeiro consultar a porta UDP para encontrar a porta TCP correta onde o SQL Server está aceitando conexões de banco de dados. Portanto, o senhasegura se conectará a esta porta para realizar as tarefas do template.
Terminada esta instância, independente dela ter sido executada com sucesso ou não, o senhasegura então se conectará com o próximo servidor e seguirá em frente.
A principal diferença entre o uso de operação encadeada e credenciais pai é o fato de que na operação encadeada você pode usar sintaxe especial para determinar qual modelo deve ser substituído para ambientes de servidor vinculado.
Registrar uma automação
Para registrar uma automação, vá para o menu Executions ➔ Operations automation ➔ Automations
Clicar no botão ações e selecionar a opção New
Na aba Configurações, complete os seguintes campos:
Nome da Automação: Nome. Apenas para uso interno;
Operação: Tipo de automação. Nesta versão, apenas a opção Chained exchange estará disponível;
Força da senha: Força da senha usada para a automação. Recomendamos usar a política de senha de dispositivo mais fraca para que você possa ter certeza de que todos os membros da rede recebam a mesma senha.;
Script de execução 1: Script que compõe a cadeia de execução entre dispositivos;
Ativo?: Indica se a automação está ativa ou não;
Na aba Execução, preencha os seguintes campos:
Habiitar execução automática?: Indica se a execução automática da automação está ativa ou não. Se habilitada, o senhasegura realizará a execução de tempos em tempos;
Dias para rodar: A automação vai rodar nos dias da semana selecionados;
Períodos de execução: A automação será realizada dentro dos períodos selecionados;
Intervalo mínimo: Intervalo mínimo (em horas) entre uma automação e outra;
Clique no botão Salvar para concluir as configurações.
A sintaxe de um script de automação
O script que dará a sequência pela qual cada dispositivo será alcançado. Portanto, é importante que você já tenha essas informações devidamente mapeadas antes de começar a escrever o script.
check_conn
Requer a validação da conectividade dos dispositivos alvo antes de iniciar o processo. Se o dispositivo de destino não estiver acessível, aborte a operação. Não contém argumentos adicionais e é preferível que este comando esteja no início do script.
rollback
Faz rollback na automação se nenhuma alteração for feita. O rollback em si será realizado apenas no final de toda a execução. Ou seja, em uma mudança de 10 credenciais, se ocorrer um erro na quarta credencial, ele ainda continuará executando as demais até o final e assim fará rollback de toda a operação.
Isso garante visibilidade ao administrador de quais credenciais estão tendo problemas.
Caso o comando rollback não seja adicionado, o senhasegura irá realizar a mudança para todas as credenciais desejadas, mas não irá realizar o rollback se ocorrer um erro em uma, algumas, ou todas as credenciais.
linked_tpl uint: id
Determina qual modelo será usado para alterar as senhas ao lidar com um servidor vinculado.
Isso faz com que o modelo de mudança configurado na credencial seja ignorado e substituído pelo modelo designado no script.
O parâmetro id
é um inteiro positivo referente ao Id do template desejado.
change string: type uint: id string: is_linked
Altera a Credencial ou Pool de credenciais, determinado pelos parâmetros tipo
e id
.
Se o parâmetro is_linked
estiver preenchido com linked
, o template determinado pelo comando linked_tpl
será usado para a alteração.
O parâmetro tipo
pode variar entre cred
para quando o valor do id
for o Id de uma credencial, ou pool
quando o valor do id
for o Id de um pool de credenciais.
O parâmetro id
será sempre um número inteiro positivo.
Confira o exemplo abaixo para melhor compreensão.
## Linhas iniciadas com sustenido são comentários
## Força a validação da conectividade antes do uso
check_conn
## Define o template de servidor vinculado.
## O template usado será o id 87
linked_tpl 87
## Define a flag de rollback
rollback
##### Define a cadeia de mudança da credencial ou pool de credenciais
## Altera as credenciais 120 a 122.
## Mas a credencial 122 deve usar o template de servidor vinculado
change cred 120
change cred 121
change cred 122 linked
## Altera pool de crendenciais 42 e 45
change pool 42
change pool 45
Realizar uma automação
Para realizar uma automação, vá para menu Executions ➔ Operations Automation ➔ Automation.
Clique no botão Run. A automação das operações será agendada e o usuário poderá acompanhar o resultado no menu View executions, descrito a seguir.
View runs
Para ver o histórico de execução de automação, vá para o menu Executions ➔ Operations Automation ➔ Executions.
Nesta tela é possível visualizar diversas informações sobre as execuções da automação, como número de operações realizadas, o resultado da execução, se processada, terminou com erro, bem como o usuário solicitante e a data de execução da solicitação.
Clique no botão Ver operações para obter mais detalhes sobre o resultado da sua operação. Cada registro nesta tela corresponde à execução de cada credencial de destino.
Quando o script é configurado para executar uma Pool de credenciais, cada credencial no pool será mostrada registro por registro.
Parâmetros de tentativa e gatilhos
Os gatilhos podem ser configurados em Políticas de senha. E as tentativas em Parâmetros de Execução.
fullscreen; accelerometerPolíticas de Credenciamento As políticas de credenciamento são o ponto de união entre a força da senha e a credencial. Além disso, as configurações sobre quando a credencial terá sua senha reciclada e os intervalos destes gatilhos.
Você pode encontrar as políticas de credenciais através do menu PAM ➔ Configurações ➔ Credenciais ➔ Políticas de credenciais.
O formulário para registro de novas políticas se assemelha à criação de Grupos de Acesso porque sua lógica é semelhante. Vamos segregar alguns dispositivos e credenciais de seus atributos. E então a senhasegura usará o valor mais alto do campo Prioridade se houver um vínculo com a política.
Vamos olhar para a guia Configurações para identificar como o uso da credencial será afetado pela política de senhas.
Observe no exemplo que a política criada é a de lidar com um antigo sistema de intranet no departamento de Marketing. Este sistema está usando a força da senha Apenas números que foi criada especialmente para sistemas que aceitam apenas senhas numéricas de 5 dígitos.
Sendo uma senha fraca, o administrador decide então isolar o sistema de Marketing em uma regra de segurança com a seguinte configuração:
Permitir visualização simultânea?: A visualização da senha pode ocorrer simultaneamente. Se um usuário realizar o saque da senha, ela estará sob custódia, e outro usuário poderá fazer o saque mesmo que outro usuário que detém a custódia.
Permitir sessão simultânea?: A visualização da senha pode não ocorrer simultaneamente. Se um usuário realizar o saque da senha, ela estará sob custódia, e outro usuário só poderá fazer o saque se o usuário que detém a custódia liberar o uso.
Prioridade: Definir a prioridade de aplicação da apólice se a senhasegura encontrar mais de uma apólice que se aplique à credencial. Quanto maior for a prioridade, maior será o número deste campo.
Tempo de expiração por consulta: O intervalo de tempo no qual senhasegura mudará automaticamente a senha após a visualização por um usuário. Neste exemplo, a senha será mudada automaticamente após 1 hora de saque.
Tempo de expiração por decurso:* O intervalo de tempo no qual a senha expira após um longo período de não utilização. Ou seja, ninguém usou a senha nem através de saque nem através de sessão de proxy. Mas a senha ainda deve ser reciclada.
Reutilizar a mesma senha por: O intervalo de tempo no qual a senha expira após um longo período de não utilização. Ou seja, ninguém usou a senha nem através de saque nem através de sessão proxy. Mas a senha ainda deve ser reciclada.
Dias de expiração: Algumas credenciais não podem ser recicladas diariamente. Sejam as políticas de segurança do dispositivo alvo ou os impactos que ele possa ter sobre o negócio. Então, nestes campos você pode configurar em quais dias a troca de senha pode ocorrer.
Horas de expiração: Da mesma forma que no campo anterior, alguns acordos só permitem o comércio em determinados momentos.
Observe que todos estes campos determinam ações que influenciam a regra comercial do cliente, ou as regras de segurança do dispositivo alvo. Os erros de configuração destes campos podem levar à indisponibilidade da credencial.
É por isso que é muito importante conhecer e segregar os sistemas-alvo em políticas de senhas dedicadas. Use a guia Critérios para realizar a segregação, como você já aprendeu nos capítulos sobre Grupo de Acesso.
Veja então que o senhasegura identifica imediatamente a política de senha correta à credencial no momento em que ligamos um dispositivo que combina o tipo e determina uma credencial com a tag configurada.
Se você alterar a política de senha de uma maneira que não se aplique mais à credencial, a credencial utilizará uma nova política que atenda ao seu dispositivo e características de credencial.
Para definir os parâmetros de troca de senha no cofre, vá para o menu Executions ➔ Settings ➔ Parameters. Os seguintes campos estão disponíveis para ajustes:
Número de tentativas: Número de vezes em que senhasegura irá tentar realizar a operação em caso de falha;
Timeout (s) de conexão: Timeout máximo de conexão, em segundos;
Tempo (s) limite de leitura: Tempo máximo de espera de saída de destino, em segundos;
Total de registros por ciclo: Número de credenciais a serem consideradas para cada ciclo de execução automatizada;
Intervalo entre tentativas(min): Intervalo, em minutos, entre tentativas de troca de senha que tenha dado erro. Torne este intervalo adequado para dispositivos que já tenham um histórico de alta latência ou interrupção intermitente. Este intervalo refere-se às tentativas determinadas no campo Número de tentativas de mudança;
Intervalo entre tentativas com erro (min): Se o senhasegura esgotar as tentativas de troca de senhas, esta execução será marcada como falha e uma nova execução automatizada somente será realizada dentro do intervalo determinado por este campo;
Clique no botão Salvar para completar as configurações.
Configurar perfis de Credenciais e Dispositivos
Até o momento nós demonstramos como configurar uma credencial para que a mesma tenha a troca de senha automatizada. Mas em um cenário onde existam credenciais múltiplas que utilizem o mesmo template de troca senha, e que compartilhem uma funcionalidade comum entre Fabricante, Tipo de dispositivo ou Tipo de credencial, é preferível que eles recebam a configuração da troca de senha imediatamente após o cadastro. Evitando assim o risco de esquecimento ou configuração errada por parte de quem cadastra a credencial.
Tendo isso em mente, o senhasegura oferece a possibilidade de criar perfis de configuração de troca de senha para ambos Credenciais e Dispositivos.
Perfis de Credencial
Para verificar todos os perfis de credenciais que você tem acesso, através do menu vá para: Executions ➔ Settings ➔ Credential profiles.
Por exemplo, vamos considerar um cenário onde todos os dispositivos do tipo Server dos fabricantes CentOS e Debian que contenham credenciais do tipo Local User receberão o template Linux - Change Own Password no momento do cadastro da credencial.
Os perfis de credenciais e dispositivo servem como um template para novas credenciais em que se encaixam em um desses tipos de perfil. Mas uma vez que você tenha cadastrado a Credencial, você tem total liberdade para alterar as configurações de execução da credencial. A troca de perfis também não altera as configurações de credencial já cadastradas.
Clique no botão New change profile
Na aba Information, preencha os seguintes campos:
Nome: Nome do perfil da credencial de execução. Usado apenas para identificação;
Prioridade: Prioridade de uso do perfil. Quanto maior o número, maior a prioridade. Pode variar de 1 a 255. Para o nosso exemplo, preencha com 10;
Ativo?: Se esta opção estiver selecionada, o template está ativo para uso;
Troca de senha imediata?: Se esta opção estiver selecionada, assim que a credencial que se encaixe dentro deste perfil for registrada, uma tarefa de troca de senha será agendada. Para nosso exemplo, selecione Sim;
Primeiro intervalo de troca (em minutos): Este campo apenas estará ativo caso a campo Troca de senha imediata? estiver selecionado. Indica o intervalo em minutos no momento em que a primeira troca de senha automatizada será feita. Para o nosso exemplo, completar o campo com 1 minuto;
Na aba Configurações de Execução, você terá os mesmos campos presentes no cadastro de Credencial. Este é o próprio template. Preencha os seguintes campos:
Habilitar troca automática: Indica se credenciais devem ser configuradas com troca de senha automática. Para o nosso exemplo, selecione Sim;
Plugin: O executor a ser usado para a troca. Para o nosso exemplo Linux, selecione Net SSH;
Template de troca de senha automática: Template usado para troca de senha. Para nosso exemplo selecione Linux - Alterar a Própria Senha;
Gerenciar status da conta: Se selecionada, o processo de ativação e desativação de credencial no dispositivo alvo será usado. Para o nosso exemplo, deixa esta opção desmarcada;
Plugin de ativação de conta: Plugin usado para ativar a credencial no dispositivo alvo;
Template de ativação de conta: Template usado para ativar a credencial no dispositivo alvo;
Use sua própria senha para conectar: Se esta opção estiver selecionada, a própria credencial será usada para realizar a troca de senha dela mesmo. Para nosso exemplo, marque esta opção;
Credencial de autenticação: Se a credencial não for usada para autenticação no dispositivo remoto, você pode selecionar qual credencial será usada para tal;
Nome de usuário de credencial: Pode acontecer que a credencial indicada no campo Credencial de autenticação não tenha acesso a todos os dispositivos que se encaixem dentro deste perfil. Mas todos os dispositivos terão uma credencial com o mesmo nome de usuário - e uma senha diferente - cadastrada e gerenciada pelo senhasegura . Nesses casos, preencha este campo com o nome de usuário correspondente com a credencial que tenha acesso ao dispositivo;
infoPor exemplo, no campo Nome de usuário de credencial, imagine que todos os servidores Linux contenham um usuário local com o nome de usuário usrpwdchg e que a responsabilidade seja trocar as outras senhas hosteadas no mesmo servidor. E que esse usuário tenha uma senha diferente para cada servidor.
Porém, como essa credencial é gerenciada pelo senhasegura você pode preencher o campo Nome de usuário de credencial com o nome de usuário usrpwdchg para que então o senhasegura use a credencial dispositivo para dispositivo correta.
Na aba Critério, preencha os seguintes campos:
Modelo (separado por vírgula): Modelo do dispositivo no qual o perfil será aplicado. Para o nosso exemplo, deixe este campo em branco;
Fabricante: Lista dos fabricantes para os quais o perfil será aplicado. Para o nosso exemplo, selecione CentOS e Debian;
Tipo de dispositivo: Selecione para quais tipos de dispositivo este perfil será aplicado. para o nosso exemplo, selecione Server;
Tipo de credencial: Selecione os tipos de credenciais para as quais este perfil será aplicado. Para o nosso exemplo, selecione Local user;
Clique no botão Salvar para completar o cadastro.
Seguindo os passos do nosso exemplo, o próximo dispositivo Debian ou CentOS que for cadastrado com o tipo Server, terá sua credencial do tipo Local user configurada com a troca de senha como a do Perfil de credencial que acabamos de configurar.
Perfis de dispositivo
Ainda no exemplo anterior, imagine um cenário onde todos os servidores CentOS respeitem o perfil de credencial. Mas há apenas 1 dispositivo CentOS que necessita uma credencial de acesso diferente e um template de execução diferente. Isso pode ocorrer em sistemas legado ou em servidores onde o gerenciamento é compartilhado.
Para esses casos, nós recomendamos que você diretamente configure a troca de senha na credencial alvo ou crie um perfil por dispositivo. Nesse segundo caso, cada credencial que for cadastrada no dispositivo que contém o perfil, receberá a troca de senha indicada na configuração. Para acessar os perfis de dispositivo cadastrados, vá para o menu Executions ➔ Settings ➔ Device profiles.
Encontre o dispositivo desejado no relatório e clique na ação de cadastro Configurar perfil:
Equipamento alvo: Dispositivo;
Plugin de troca de senha: Plugin de execução que será usado nas novas credenciais deste dispositivo ;
Template de troca de senha e Plugin: Template de execução a ser usado.
Caso as novas credenciais deste dispositivo solicitem um processo de ativação antes do uso, indicar qual plugin deverá ser utilizado;
Template de ativação e Plugin: Template que será executado pela ativação do plugin.
Caso as novas credenciais deste dispositivo solicitem um processo de ativação antes do uso, indicar qual plugin deverá ser utilizado;
Template de inativação: Template que será executado pela desativação do plugin;
Credencial de acesso: Credencial a ser usada para realizar o processo de troca. Como nós estamos lidando diretamente com um dispositivo gerenciado pelo senhasegura , você deve selecionar uma credencial válida. Não há a possibilidade de indicar um nome de usuário curinga, como no caso do Perfis de credencial;
Clicar no botão Salvar para completar a configuração.
Neste ponto, todas as novas credenciais de dispositivo serão automaticamente configuradas com esse perfil de alteração.
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
Veja como preparar este script na seção subsec: execautoscript↩
- http://x3270.bgp.nu/