mirror of
https://github.com/HackTricks-wiki/hacktricks.git
synced 2025-10-10 18:36:50 +00:00
57 lines
7.0 KiB
Markdown
57 lines
7.0 KiB
Markdown
# AD CS Account Persistence
|
||
|
||
{{#include ../../../banners/hacktricks-training.md}}
|
||
|
||
**Це невеликий підсумок розділів про збереження на машині з чудового дослідження з [https://www.specterops.io/assets/resources/Certified_Pre-Owned.pdf](https://www.specterops.io/assets/resources/Certified_Pre-Owned.pdf)**
|
||
|
||
## **Розуміння крадіжки облікових даних активного користувача за допомогою сертифікатів – PERSIST1**
|
||
|
||
У сценарії, де сертифікат, що дозволяє автентифікацію домену, може бути запитаний користувачем, зловмисник має можливість **запросити** та **вкрасти** цей сертифікат, щоб **підтримувати збереження** в мережі. За замовчуванням шаблон `User` в Active Directory дозволяє такі запити, хоча іноді він може бути вимкнений.
|
||
|
||
Використовуючи інструмент під назвою [**Certify**](https://github.com/GhostPack/Certify), можна шукати дійсні сертифікати, які забезпечують постійний доступ:
|
||
```bash
|
||
Certify.exe find /clientauth
|
||
```
|
||
Підкреслюється, що сила сертифіката полягає в його здатності **автентифікуватися як користувач**, якому він належить, незалежно від будь-яких змін пароля, поки сертифікат залишається **дійсним**.
|
||
|
||
Сертифікати можна запитувати через графічний інтерфейс, використовуючи `certmgr.msc`, або через командний рядок з `certreq.exe`. З **Certify** процес запиту сертифіката спрощується наступним чином:
|
||
```bash
|
||
Certify.exe request /ca:CA-SERVER\CA-NAME /template:TEMPLATE-NAME
|
||
```
|
||
Після успішного запиту сертифікат разом із його приватним ключем генерується у форматі `.pem`. Щоб перетворити це в файл `.pfx`, який можна використовувати в системах Windows, використовується наступна команда:
|
||
```bash
|
||
openssl pkcs12 -in cert.pem -keyex -CSP "Microsoft Enhanced Cryptographic Provider v1.0" -export -out cert.pfx
|
||
```
|
||
Файл `.pfx` можна завантажити на цільову систему та використовувати з інструментом під назвою [**Rubeus**](https://github.com/GhostPack/Rubeus) для запиту квитка на отримання квитка (TGT) для користувача, продовжуючи доступ зловмисника на стільки, наскільки сертифікат є **дійсним** (зазвичай один рік):
|
||
```bash
|
||
Rubeus.exe asktgt /user:harmj0y /certificate:C:\Temp\cert.pfx /password:CertPass!
|
||
```
|
||
Важливе попередження стосується того, як ця техніка, в поєднанні з іншим методом, викладеним у розділі **THEFT5**, дозволяє зловмиснику постійно отримувати **NTLM hash** облікового запису без взаємодії з Службою підсистеми локальної безпеки (LSASS) і з не підвищеного контексту, що забезпечує більш прихований метод для тривалого викрадення облікових даних.
|
||
|
||
## **Отримання постійності машини за допомогою сертифікатів - PERSIST2**
|
||
|
||
Інший метод полягає в реєстрації облікового запису машини скомпрометованої системи для сертифіката, використовуючи шаблон за замовчуванням `Machine`, який дозволяє такі дії. Якщо зловмисник отримує підвищені привілеї на системі, він може використовувати обліковий запис **SYSTEM** для запиту сертифікатів, що забезпечує форму **постійності**:
|
||
```bash
|
||
Certify.exe request /ca:dc.theshire.local/theshire-DC-CA /template:Machine /machine
|
||
```
|
||
Цей доступ дозволяє зловмиснику автентифікуватися в **Kerberos** як обліковий запис машини та використовувати **S4U2Self** для отримання квитків служби Kerberos для будь-якої служби на хості, ефективно надаючи зловмиснику постійний доступ до машини.
|
||
|
||
## **Розширення постійності через поновлення сертифікатів - PERSIST3**
|
||
|
||
Останній обговорюваний метод полягає у використанні **термінів дії** та **періодів поновлення** шаблонів сертифікатів. Поновлюючи сертифікат до його закінчення терміну дії, зловмисник може підтримувати автентифікацію в Active Directory без необхідності додаткових реєстрацій квитків, які можуть залишити сліди на сервері Центру сертифікації (CA).
|
||
|
||
### Поновлення сертифікатів з Certify 2.0
|
||
|
||
Починаючи з **Certify 2.0**, процес поновлення повністю автоматизований через нову команду `request-renew`. З урахуванням раніше виданого сертифіката (в **форматі base-64 PKCS#12**) зловмисник може поновити його без взаємодії з оригінальним власником – ідеально для прихованої, довгострокової постійності:
|
||
```powershell
|
||
Certify.exe request-renew --ca SERVER\\CA-NAME \
|
||
--cert-pfx MIACAQMwgAYJKoZIhvcNAQcBoIAkgA... # original PFX
|
||
```
|
||
Команда поверне новий PFX, який дійсний ще на один повний термін, що дозволяє вам продовжувати автентифікацію навіть після того, як перший сертифікат закінчує термін дії або відкликується.
|
||
|
||
## References
|
||
|
||
- [Certify 2.0 – SpecterOps Blog](https://specterops.io/blog/2025/08/11/certify-2-0/)
|
||
|
||
{{#include ../../../banners/hacktricks-training.md}}
|