Введение: В системе Active Directory право на запись в атрибут SPN можно превратить в инструмент захвата домена. В этом руководстве мы продемонстрируем полную цепочку атаки, включающую компрометацию старой машинной учетной записи Pre-Windows 2000, извлечение пароля групповой управляемой учетной записи службы (gMSA), получение удаленного доступа через WinRM, настройку SOCKS-туннеля для доступа во внутреннюю сеть, использование ретрансляции NTLM для конфигурации делегирования и извлечение секретов с промежуточного сервера.
Цель: Получить права администратора на виртуальной машине Pirate с платформы Hack The Box. Это сложное задание на операционной системе Windows.
Важное замечание: При подключении к машинам на Hack The Box рекомендуется использовать средства анонимизации и виртуализации. Не подключайтесь с компьютеров, содержащих важные для вас данные, поскольку вы окажетесь в общей сети с другими участниками платформы.
Этап разведки
Сканирование сетевых портов
На первом этапе добавляем IP-адрес целевой машины в файл конфигурации хостов.
На этот раз вместе с IP-адресом машины нам предоставлены учетные данные пользователя с правами домена.
Выданные учетные данные: pentest / p3nt3st2025!&
Запускаем процесс сканирования портов для определения активных сервисов.
Справка: Сканирование портов — это первый стандартный шаг в любой операции по тестированию безопасности. Оно позволяет специалисту выявить, какие сетевые сервисы на целевой системе принимают входящие соединения. На основе этой информации определяются дальнейшие шаги атаки и поиск точек входа.
В результате сканирования обнаружено 14 открытых портов:
- Порт 80 — веб-сервер Microsoft IIS версии 10.0
- Порт 88 — служба аутентификации Kerberos
- Порт 135 — служба удаленного вызова процедур RPC
- Порт 139 — служба сеансов сетевого протокола NetBIOS
- Порт 389 — протокол LDAP для доступа к каталогам
- Порт 445 — протокол общего доступа к файлам и принтерам SMB
- Порт 464 — служба смены пароля в системе Kerberos
- Порт 593 — служба удаленного вызова процедур через HTTP
- Порт 636 — безопасное соединение LDAP с шифрованием SSL/TLS
- Порт 2179 — служба удаленного управления виртуальными машинами Hyper-V
- Порт 3268 — доступ к глобальному каталогу через LDAP
- Порт 3269 — защищенный доступ к глобальному каталогу
- Порт 5985 — служба удаленного управления Windows (WinRM)
- Порт 9389 — веб-сервисы служб каталогов Active Directory
Из результатов сканирования видно, что время на контроллере домена отличается от локального на примерно семь часов. Поэтому все операции с Kerberos потребуют коррекции времени, иначе мы получим ошибку синхронизации времени.
Добавляем полные имена контроллера домена в файл системной конфигурации хостов.
Первым делом проверяем полученные учетные данные с помощью инструмента NetExec для подтверждения их действительности.
Поиск точки входа
Имея действительную доменную учетную запись, мы можем собрать полную информацию о структуре домена с использованием инструмента BloodHound. Для автоматизации сбора данных применяем RustHound-CE, написанный на языке Rust.
Справка: BloodHound — это мощная утилита, которая на основе теории графов выявляет скрытые и часто непреднамеренные взаимосвязи в окружении Active Directory. С помощью этого инструмента можно идентифицировать сложные пути атаки, которые в противном случае остались бы незамеченными. Помимо графического интерфейса для анализа, существует компонент сбора данных, который работает на удаленных хостах в различных версиях для разных операционных систем.
Запускаем сборщик данных с коррекцией времени.
К сожалению, полученный граф не выявляет очевидных путей атаки. Однако у нас есть действительные доменные учетные данные, что позволяет проверить, наличие учетных записей, уязвимых для ранних версий атак (Pre2k). Такие учетные записи существуют с времен Windows 2000 и ниже, они используют упрощенную аутентификацию. Часто пароль для таких записей совпадает с именем самой записи без специального суффикса.
Проверяем наличие учетных записей, уязвимых для Pre2k атак.
