Приветствую вас, кулхацкеры. Сегодняшний райт будет посвящен прохождению машины с HackTheBox под названием Authority. Дисклеймер:  все утилиты и техники, продемонстрированные в статье, приведены в учебных целях Как всегда начинаем с разведки при помощи Nmap: Первым делом попробуем подключиться к хосту при помощи smbclient для просмотра доступных шар: При попытке подключиться к \Department Shares нам отказывают в доступе. Значит попытаемся подключиться без пароля к шаре \Development: Выкачаем все файлы, воспользовавшись следующими командами: recurse on  prompt off  mget * recurse -> переключает рекурсию папок для команд mget и mput. Если рекурсия включена, то эти команды будут работать со всеми поддиректориями указанной папки (например, папки из которой ведется копирование) и будут рекурсивно выполнены во всех папках подходящих по маске, определенной для команды prompt -> переключает запрос имен файлов во время операций команд mget и mput. Если запрос выключен, все указанные файлы будут переданы без запроса. mget * -> скачивает файлы с сервера на машину Изучив директории, мы наткнемся на интересный файл под названием main.yml, который можно найти по абсолютному пути Automation\Ansible\PWM\defaults\main.yml Это не что иное, как Ansible-vault учетные данные. Представим все хеши по отдельности, чтобы сделать их читаемыми для утилиты JohnTheRipper при помощи скрипта ansible2john: Получим пароль, с помощью которого проводилось шифрование при помощи улититы ansible-vault, входящей в состав фреймворка Ansible. Зная пароль, сможем обратно расшифровать нужные нам данные: На 80 порту ничего примечательного обнаружено не было. На 8443 порту висит приложение, интегрированное с LDAP. Попробуем зайти на веб-страницу: Войти под полученными нами учетными не удалось. Попробуем зайти в Configuration Manager при помощи другого пароля: Успешно. Тем не менее, при попытке установить связь с LDAPS-сервером возникла ошибка, означающая невозможность установления соединения. Также здесь мы находим пользователя с именем svc_ldap. Внимательно изучив страницу, станет ясно, что мы можем изменять файл конфигурации. Значит мы сможем изменить параметры конфигурации и, запустив Responder, симитируем LDAP-сервер, что позволит нам отслеживать передаваемую информацию. Изменим конфигурациионный файл, подставив в параметры данные нашей машины: Запустим Responder: И получим пароль в открытом виде: Для удаленного подключения воспользуемся утилитой Evil-WinRM: Здесь будет находится первый флаг user.txt Посмотрим информацию о пользователе при помощи команды whoami /all У пользователя имеется привилегия на добавление машины в домен SeMachineAccountPrivilege, а это значит что мы можем добавить компьютер в домен с помощью учетных данных svc_ldap. Для этого воспользуемся модулем addcomputer утилиты Impacket: Машинная учетная запись успешно добавлена! Теперь мы можем использовать недавно полученные учетные данные  для получения "шаблона сертификата" с сервера. Для этого воспользуемся утилитой certipy: Изучив сертификат, мы обнаружили, что в нем присутствует уязвимость, позволяющая любому компьютеру домена запросить сертификат администратора. Теперь мы можем использовать недавно полученные имя пользователя и пароль для получения "шаблона сертификата" с сервера. Здесь снова воспользуемся certipy-ad: Получив сертификат, попробуем пройти с помощью него аутентификацию и запросить NT-хеш учетной записи: Однако пройти аутентификацию не удалось, так как Kerberos не поддерживает механизм PKINIT. Для прохождения воспользуемся утилитой PassTheCert. Но для начала разделим сертификат и ключ с помощью certipy-ad: Получив ключ и сертификат, воспользуемся ими, чтобы запросить новый пароль администратора: Теперь воспользуемся утилитой psexec для получения шелла: