LAPS
Informação Básica
Local Administrator Password Solution (LAPS) é uma ferramenta usada para gerenciar um sistema onde as senhas de administrador, que são únicas, aleatórias e alteradas com frequência, são aplicadas a computadores associados a um domínio. Essas senhas são armazenadas de forma segura dentro do Active Directory e só são acessíveis a usuários que tenham permissão concedida por meio de Listas de Controle de Acesso (ACLs). A segurança das transmissões de senha do cliente para o servidor é garantida pelo uso do Kerberos versão 5 e do Padrão de Criptografia Avançada (AES).
Nos objetos de computador do domínio, a implementação do LAPS resulta na adição de dois novos atributos: ms-mcs-AdmPwd
e ms-mcs-AdmPwdExpirationTime
. Esses atributos armazenam a senha de administrador em texto simples e seu tempo de expiração, respectivamente.
Verificar se ativado
Acesso à Senha do LAPS
Você poderia baixar a política LAPS bruta de \\dc\SysVol\domain\Policies\{4A8A4E8E-929F-401A-95BD-A7D40E0976C8}\Machine\Registry.pol
e então usar Parse-PolFile
do pacote GPRegistryPolicyParser pode ser usado para converter este arquivo em um formato legível para humanos.
Além disso, os cmdlets nativos do LAPS PowerShell podem ser usados se estiverem instalados em uma máquina à qual temos acesso:
PowerView também pode ser usado para descobrir quem pode ler a senha e lê-la:
LAPSToolkit
O LAPSToolkit facilita a enumeração do LAPS com várias funções. Um desses é analisar ExtendedRights
para todos os computadores com LAPS ativado. Isso mostrará grupos especificamente delegados para ler senhas LAPS, que frequentemente são usuários em grupos protegidos. Uma conta que tenha associado um computador a um domínio recebe Todos os Direitos Estendidos
sobre esse host, e esse direito dá à conta a capacidade de ler senhas. A enumeração pode mostrar uma conta de usuário que pode ler a senha LAPS em um host. Isso pode nos ajudar a direcionar usuários AD específicos que podem ler senhas LAPS.
Despejando Senhas do LAPS com Crackmapexec
Se não houver acesso a um powershell, você pode abusar desse privilégio remotamente através do LDAP usando
Isso irá despejar todas as senhas que o usuário pode ler, permitindo que você obtenha uma posição melhor com um usuário diferente.
Persistência do LAPS
Data de Expiração
Uma vez como administrador, é possível obter as senhas e impedir que uma máquina atualize sua senha ao definir a data de expiração para o futuro.
A senha ainda será redefinida se um admin usar o cmdlet Reset-AdmPwdPassword
; ou se Não permitir que o tempo de expiração da senha seja maior do que o exigido pela política estiver habilitado na GPO do LAPS.
Backdoor
O código-fonte original do LAPS pode ser encontrado aqui, portanto é possível colocar um backdoor no código (dentro do método Get-AdmPwdPassword
em Main/AdmPwd.PS/Main.cs
, por exemplo) que de alguma forma exfiltre novas senhas ou as armazene em algum lugar.
Então, basta compilar o novo AdmPwd.PS.dll
e enviá-lo para a máquina em C:\Tools\admpwd\Main\AdmPwd.PS\bin\Debug\AdmPwd.PS.dll
(e alterar a hora da modificação).
Referências
Last updated