5 KiB
AD CS Account Persistence
{% hint style="success" %}
Learn & practice AWS Hacking:HackTricks Training AWS Red Team Expert (ARTE)
Learn & practice GCP Hacking: HackTricks Training GCP Red Team Expert (GRTE)
Support HackTricks
- Check the subscription plans!
- Join the 💬 Discord group or the telegram group or follow us on Twitter 🐦 @hacktricks_live.
- Share hacking tricks by submitting PRs to the HackTricks and HackTricks Cloud github repos.
Este é um pequeno resumo dos capítulos de persistência de máquina da incrível pesquisa de https://www.specterops.io/assets/resources/Certified_Pre-Owned.pdf
Entendendo o Roubo de Credenciais de Usuário Ativo com Certificados – PERSIST1
Em um cenário onde um certificado que permite a autenticação de domínio pode ser solicitado por um usuário, um atacante tem a oportunidade de solicitar e roubar esse certificado para manter a persistência em uma rede. Por padrão, o modelo User
no Active Directory permite tais solicitações, embora às vezes possa estar desativado.
Usando uma ferramenta chamada Certify, pode-se procurar por certificados válidos que habilitam acesso persistente:
Certify.exe find /clientauth
É destacado que o poder de um certificado reside em sua capacidade de autenticar como o usuário ao qual pertence, independentemente de quaisquer alterações de senha, desde que o certificado permaneça válido.
Os certificados podem ser solicitados através de uma interface gráfica usando certmgr.msc
ou através da linha de comando com certreq.exe
. Com Certify, o processo para solicitar um certificado é simplificado da seguinte forma:
Certify.exe request /ca:CA-SERVER\CA-NAME /template:TEMPLATE-NAME
Após a solicitação bem-sucedida, um certificado junto com sua chave privada é gerado no formato .pem
. Para converter isso em um arquivo .pfx
, que é utilizável em sistemas Windows, o seguinte comando é utilizado:
openssl pkcs12 -in cert.pem -keyex -CSP "Microsoft Enhanced Cryptographic Provider v1.0" -export -out cert.pfx
O arquivo .pfx
pode então ser enviado para um sistema alvo e usado com uma ferramenta chamada Rubeus para solicitar um Ticket Granting Ticket (TGT) para o usuário, estendendo o acesso do atacante enquanto o certificado for válido (tipicamente um ano):
Rubeus.exe asktgt /user:harmj0y /certificate:C:\Temp\cert.pfx /password:CertPass!
Um aviso importante é compartilhado sobre como essa técnica, combinada com outro método descrito na seção THEFT5, permite que um atacante obtenha persistentemente o NTLM hash de uma conta sem interagir com o Local Security Authority Subsystem Service (LSASS) e a partir de um contexto não elevado, proporcionando um método mais discreto para roubo de credenciais a longo prazo.
Ganhando Persistência de Máquina com Certificados - PERSIST2
Outro método envolve inscrever a conta de máquina de um sistema comprometido para um certificado, utilizando o modelo padrão Machine
, que permite tais ações. Se um atacante obtiver privilégios elevados em um sistema, ele pode usar a conta SYSTEM para solicitar certificados, proporcionando uma forma de persistence:
Certify.exe request /ca:dc.theshire.local/theshire-DC-CA /template:Machine /machine
Este acesso permite que o atacante se autentique no Kerberos como a conta da máquina e utilize S4U2Self para obter tickets de serviço do Kerberos para qualquer serviço no host, concedendo efetivamente ao atacante acesso persistente à máquina.
Estendendo a Persistência Através da Renovação de Certificados - PERSIST3
O método final discutido envolve aproveitar os períodos de validade e renovação dos modelos de certificado. Ao renovar um certificado antes de sua expiração, um atacante pode manter a autenticação no Active Directory sem a necessidade de novas inscrições de tickets, o que poderia deixar rastros no servidor da Autoridade Certificadora (CA).
Essa abordagem permite um método de persistência estendida, minimizando o risco de detecção através de interações reduzidas com o servidor CA e evitando a geração de artefatos que poderiam alertar os administradores sobre a intrusão.