Введение: В системе 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 атак.