ВВЕДЕНИЕ

Итак… Active Directory просто великолепен. Он сообщает мне все, что я хочу знать — обычный Спросите Дживса для всего домена — но я уверен, что он может сделать больше. Что еще мне не хватает?

В предыдущей статье я описал службу Active Directory (AD) и то, как Script Kiddie может использовать ее для перечисления сети, чтобы найти что-то интересное. Пожалуйста, вернитесь и просмотрите Active Directory для Script Kiddies, если вам нужны все подробности об AD, но в основном это служба каталогов, разработанная Microsoft для Windows. Он содержит базу данных для сопоставления сетевых служб и ресурсов и может использоваться для обнаружения, управления и администрирования сети. Служба каталогов обеспечивает доступ и администрирование всех объектов в сети. Служба и база данных AD поддерживаются и реплицируются между серверами домена, а доступ предоставляется с помощью многочисленных утилит и API-интерфейсов с использованием протокола облегченного доступа к каталогам (LDAP).

Ранее я рассмотрел, как Script Kiddie может использовать AD для перечисления домена. Как уже упоминалось, существует множество инструментов и API для доступа к этой информации, но для целей статьи я использовал набор сценариев PowerShell под названием PowerSploit, который содержит модуль PowerView для доступа и запросов к базе данных AD. Я продемонстрировал, как кто-то может составить список доменов и лесов в сети и конкретную информацию о них. Я также указал, как получить информацию о пользователях, компьютерах, группах и политиках. Наконец, я рассмотрел некоторые более конкретные операции по сбору информации, такие как получение вошедших в систему пользователей, включая последнего вошедшего в систему пользователя, и поиск определенных пользователей, общих ресурсов и файлов.

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

ЭСКАЛАЦИЯ

Теперь, когда я перечислил черт возьми эту сеть, как мне перейти на следующий уровень? В частности, как мне получить r00t?

Первым шагом в любом тесте на проникновение является перечисление. Вам нужно изучить окружающую среду, чтобы выяснить, где вы находитесь и куда вы хотите пойти. Следующим шагом обычно является эскалация. Возможность ковыряться - это весело, но вы можете зайти так далеко, как обычный пользователь. Вам нужна сила темной стороны (или, по крайней мере, Администратор/СИСТЕМА), чтобы действительно делать что-то веселое. В это затруднительное положение вступает наш новый друг А.Д.

Существует множество способов повышения привилегий. Вы можете искать отсутствующие исправления и соответствующие эксплойты. Вы можете попытаться добыть пароли, просматривая память, файлы журналов, реестр, файлы конфигурации, кэшированный SAM и т. д. Вы даже можете найти неправильно настроенные или уязвимые службы или запланированные задачи. Есть множество инструментов, которые помогут вам в этом, включая PowerUp, который является частью пакета PowerSploit. Все эти тактики нацелены на локальное повышение привилегий в системах Windows, но с AD мы можем ориентироваться на повышение привилегий домена.

Пожалуй, самым популярным методом повышения привилегий домена на данный момент является Kerberoasting. Эта атака позволяет пользователю домена запрашивать билет Kerberos у службы выдачи билетов (TGS) для служебной учетной записи. Билет зашифрован открытым текстовым паролем учетной записи службы. Получив этот зашифрованный билет, злоумышленник может перевести его в автономный режим и попытаться восстановить пароль с помощью инструмента для взлома паролей методом грубой силы. С помощью этого восстановленного пароля злоумышленник может выдать себя за эту учетную запись службы (которая обычно имеет повышенные права домена) и, вуаля — повышение привилегий домена.

Первым шагом в этой атаке является поиск служебной учетной записи. Этого можно добиться с помощью различных инструментов. В этом примере я снова буду использовать фреймворк PowerSploit.

Get-NetUser -SPN — возвращает всех пользователей, для которых ServicePrinicipalName (SPN) не равно NULL.

Следующим шагом является запрос билета TGS. Опять же, это можно сделать с помощью различных инструментов AD, но я буду использовать PowerSploit.

Request-SPNTicket — запрашивает билет TGS для сервисного аккаунта.

Билет TGS будет сохранен в нашем текущем списке билетов Kerberos, поэтому следующим шагом будет экспорт билета для взлома пароля в автономном режиме. В этом случае я буду использовать Mimikatz для сохранения билета.

Invoke-Mimikatz -Command ‘”Kerberos::list /export”’ — экспортирует наши текущие кэшированные билеты Kerberos.

Последним шагом является восстановление пароля с помощью инструмента для взлома паролей методом грубой силы. В этом случае я использовал tgsrepcrack.py.

tgsrepcrack.py — взламывает пароль методом грубой силы

БОКОВОЕ ДВИЖЕНИЕ

Сладкий. Теперь, благодаря перечислению, я всезнаю, а благодаря повышению доменных привилегий я всемогущ. Что дальше?

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

Как уже упоминалось, первым шагом в боковом движении является понимание сети. Следующий шаг — повышение ваших привилегий. А теперь я покажу вам, как вы можете использовать эти новые привилегии, чтобы свободно перемещаться по сети. Как всегда, есть множество способов воспользоваться нашими новыми привилегиями бокового перемещения. В этом примере я буду использовать встроенную функцию PowerShell Remoting. Сеансы PowerShell (PSSessions) позволяют пользователям устанавливать соединение с удаленным компьютером и выполнять команды PowerShell на этом удаленном компьютере.

New-PSSession -ComputerName — создание подключения к удаленному компьютеру.

Invoke-Command -Session — выполнение команды на удаленном компьютере.

УПОРСТВО

Хорошо, хорошо. Я всеведущий, всемогущий, а теперь и вездесущий?!? Что дальше?

Теперь, когда у нас есть представление о сети, обновленных привилегиях и более глубоком доступе к сети, последний шаг — сохранение. Опять же, постоянство в контексте локальной машины отличается от сохранения в контексте домена. Локальное сохранение может быть достигнуто с помощью множества методов, включая проксирование DLL, запланированные задачи, ключи автозапуска реестра, установку службы, настройку задания BITS, перехват COM и т. д. мы также можем использовать AD, чтобы получить постоянство в домене.

Получение постоянства в домене означает, что даже когда сетевой администратор обнаружит ваше присутствие и выгонит вас, вы все равно сможете найти способ вернуться. Он зависит от настройки (или неправильной настройки) AD таким образом, чтобы вы все еще могли получить доступ. Сохранение домена обычно зависит от получения или установки учетных данных для учетной записи, которые переживут ответ на проникновение и очистку.

ЗОЛОТОЙ БИЛЕТ

Установить постоянство домена можно, воспользовавшись процессом аутентификации Kerberos, чтобы предоставить себе золотой билет, который позволит вам вернуться в сеть. Эта атака требует получения доступа к билету предоставления билетов Kerberos (krbtgt) от контроллера домена (DC). С помощью krbtgt вы можете предоставить себе билет, который можно использовать для олицетворения любого пользователя. Если у вас есть билет, даже смена пароля в учетной записи не будет иметь никакого эффекта.

Следует отметить, что Microsoft выпустила патч KB5008380, который пытается устранить эту уязвимость (CVE-2021–42287). Это обновление было выпущено в ноябре 2021 г., и его принудительное применение началось в октябре 2022 г. Следующие примеры относятся к периоду до применения этого нового исправления, поэтому мне не нужно было учитывать эти изменения. Однако после этого патча некоторые инструменты, в том числе Mimikatz и Rubeus, были обновлены для поддержки как новой, так и старой структуры билетов Kerberos. В конечном итоге атака с использованием неизвестного пользователя больше невозможна, но обновление безопасности не полностью предотвращает атаку Golden Ticket, хотя и добавляет некоторые новые события, которые можно использовать в качестве индикаторов компрометации.

Invoke-Mimikatz -Command ‘”lsadump::dcsync /user:krbtgt”’ — Сброс хэша krbtgt с контроллера домена с использованием атаки DCSync.

Get-DomainSID — получение SID домена, необходимого для запроса Золотого билета.

Invoke-Mimikatz -Command '”kerberos::golden/Пользователь:Администратор/домен:‹домен› /sid:‹domain sid› /krbtgt:‹hash› id: 500 /groups:512 /startoffset:0 /endin :600 /renewmax:10080 /ptt”' — создайте золотой билет, используя хэш krbtgt, sid домена, пользователя и домен для билета, а также идентификатор и группы для билета.

ЗЛОУПОТРЕБЛЕНИЕ ACLS

Другой метод настройки сохраняемости домена — изменение списка управления доступом (ACL) для домена или определенных объектов в домене. Изменяя определенные ACL объекта, вы можете разрешить доступ к домену или объекту для непривилегированных учетных записей. Это похоже на создание пользователя и добавление его в группу локальных администраторов, но гораздо менее очевидно. В этом примере я изменяю ACL для самого домена, чтобы предоставить права DCSync непривилегированному пользователю. Права DCSync позволяют пользователю выполнять атаку Golden Ticket без прав администратора домена.

Add-ObjectAcl — TargetIdentity ‘DC=‹domain›’ -PrincipalIdentity ‘‹user›’ -Rights DCSync -Verbose — Эта команда PowerSploit устанавливает список контроля доступа к объекту.

ЗАКЛЮЧЕНИЕ

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

Надеюсь, теперь вы лучше понимаете Active Directory и то, как ее можно использовать не только для управления сетью, но и для управления сетью. Этот инструмент предоставляет множество информации для пользователей, администратора и служб. Он также может использоваться Script Kiddies для перечисления, эскалации, перемещения и постоянства. БА не следует ни бояться, ни игнорировать. Это мощный инструмент, которым следует воспользоваться, так что выбирайте свои инструменты, выбирайте свою тактику и получайте удовольствие… Просто не забывайте всегда проверять возвращаемые значения.

ИСПОЛЬЗОВАННАЯ ЛИТЕРАТУРА

Первоначально опубликовано на https://www.trustedsec.com/blog/more-active-directory-for-script-kiddies/