Найти в Дзене
Life-Hack - Хакер

PowerShell для хакеров: Timeroasting пользователей

Узнайте, как хакеры могут незаметно извлекать хеши паролей пользователей, злоупотребляя атрибутами учетных записей Active Directory и избегая «шумных» атак. Подпишись на наши каналы в телеграме и в Max, там ты найдешь огромное количество качественного контента, без инфошума и воды! Сегодня мы рассмотрим атаку под названием Timeroasting, разберем, как модифицированный скрипт можно использовать для атаки на учетные записи пользователей. Результатом этой техники является хеш пользователя, в формате пригодном для hashcat. Важно прояснить один момент, для успешной атаки на УЗ пользователей Active Directory, нам придется изменять их свойства. Это означает, что вы уже должны обладать правами администратора домена. Даже при таком уровне привилегий бывают случаи, когда вам нужны учетные данные конкретного пользователя, и вы не хотите сильно шуметь или попасться безопасникам. Защитники могут отслеживать такие техники, как дамп NTDS, дамп LSASS или выполнение DCSync. Скрипт, который мы сегодня ра
Оглавление

Узнайте, как хакеры могут незаметно извлекать хеши паролей пользователей, злоупотребляя атрибутами учетных записей Active Directory и избегая «шумных» атак.

Подпишись на наши каналы в телеграме и в Max, там ты найдешь огромное количество качественного контента, без инфошума и воды!

Сегодня мы рассмотрим атаку под названием Timeroasting, разберем, как модифицированный скрипт можно использовать для атаки на учетные записи пользователей. Результатом этой техники является хеш пользователя, в формате пригодном для hashcat.

Важно прояснить один момент, для успешной атаки на УЗ пользователей Active Directory, нам придется изменять их свойства. Это означает, что вы уже должны обладать правами администратора домена. Даже при таком уровне привилегий бывают случаи, когда вам нужны учетные данные конкретного пользователя, и вы не хотите сильно шуметь или попасться безопасникам.

Защитники могут отслеживать такие техники, как дамп NTDS, дамп LSASS или выполнение DCSync. Скрипт, который мы сегодня рассмотрим, подходит именно для таких случаев. Он помогает извлекать хеши более тихим способом, который сливается со стандартной активностью домена.

Timeroasting

Возможно, вы задаетесь вопросом, что же такое Timeroasting. Изначально это техника, разработанная для получения хешей доменных компьютеров, а не пользователей. Она основана на том, что учетные записи компьютеров используют свои пароли для MS-SNTP аутентификации. Злоумышленники могут собрать их и попытаться взломать в оффлайн-режиме. Как правило, учетные записи компьютеров в домене имеют очень длинные, случайно сгенерированные пароли. Прогон этих хешей даже через мощные словари может занять очень много времени и все равно закончиться неудачей. Из-за такой сложности их взлом обычно нецелесообразен, однако не всегда. Старые системы, включая так называемые «Компьютеры, совместимые с версиями до Windows 2000» (Pre-Windows 2000 Computers), иногда имеют слабые или предсказуемые пароли (например, пароль компьютера может совпадать с именем учетной записи). Именно эти устаревшие системы и сделали Timeroasting таким перспективным, но довольно ограниченным вектором.

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

Targeted Timeroasting

Джулио Пьерантони назвал эту технику «Targeted Timeroasting», так как она похожа на Targeted Kerberoasting и AS-REP Roasting. Поскольку администраторы домена могут изменять атрибуты учетных записей пользователей, вы можете временно превратить учетную запись пользователя в нечто, похожее на учетную запись компьютера, и получить её хеш.

У каждого объекта пользователя в Active Directory есть поле sAMAccountType. Это поле определяет тип учетной записи. В нормальных условиях у обычных пользователей и машинных аккаунтов здесь стоят разные значения. Например, учетная запись обычного пользователя относится к категории SAM_NORMAL_USER_ACCOUNT, тогда как учетная запись компьютера — к SAM_MACHINE_ACCOUNT.

-2

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

Возможность конвертации одного типа учетной записи в другой, для стандартных пользователей не предусмотрена. Однако на администраторов домена это ограничение не распространяется. Именно это и делает возможным Targeted Timeroasting. Эту технику не могут выполнить непривилегированные пользователи, что отличает её от Targeted Kerberoasting, AS-REP Roasting, Shadow Credentials или ESC14.

-3

Перед вычислением хеша контроллер домена также проверяет, чтобы sAMAccountName заканчивался знаком доллара. Для администраторов домена внести такие изменения достаточно просто (если только уже не существует другой учетной записи с таким же именем). Как только значения userAccountControl и sAMAccountName будут изменены, контроллер сможет выдать MS-SNTP хеш этой учетной записи любому, кто сделает соответствующий запрос.

Важно обратить внимание на то, что когда учетная запись пользователя преобразуется в учетную запись компьютера, пользователь теряет возможность входа на рабочие станции. Однако это не влияет на существующие активные сессии. Если сразу после извлечения хеша вернуть атрибуты в исходное состояние, пользователь, скорее всего, ничего не заметит.

-4

Эксплуатация

Proof-of-Concept Timeroasting PowerShell-скрипт доступен на GitHub.

Для его использования необходимо обладать правами администратора домена и запускать скрипт с системы, входящей в домен, на которой уже установлен Active Directory PowerShell модуль.

Скрипт работает в несколько этапов. Сначала он получает важные атрибуты целевой учетной записи, такие как значения objectSid и userAccountControl. Затем он изменяет атрибут userAccountControl таким образом, чтобы учетная запись обрабатывалась как учетная запись рабочей станции (workstation trust account). После этого скрипт добавляет знак доллара к sAMAccountName, делая пользователя похожим на машинный аккаунт.

Как только атрибуты обновлены, скрипт извлекает RID, отправляет клиентский запрос MS-SNTP контроллеру домена и извлекает хеш из ответа. В конце он восстанавливает все исходные значения.

При анализе перехваченного трафика весь процесс обмена данными выглядит как стандартная NTP операция. В запросе содержится RID, а в ответе — подпись, сгенерированная на основе NT-хеша учетной записи. Соль также извлекается из NTP ответа.

-5

Автор модифицированного скрипта предусмотрел два режима работы. Первый позволяет атаковать конкретных пользователей. Второй режим позволяет атаковать всех пользователей из предоставленного списка.

Для атаки на конкретного пользователя:

PS > .\TargetedTimeroast.ps1 -domainController IP -v -victim USERNAME
-6

Если вы хотите атаковать нескольких пользователей одновременно, подготовьте список и запустите:

PS > .\TargetedTimeroast.ps1 -v -file .\users.txt -domainController IP
-7

Hashcat

Как только вы собрали необходимые хеши, начинайте процесс взлома с помощью hashcat. Рекомендуется удалить RID из каждого хеша. Команда для запуска будет выглядеть следующим образом:

bash$ > sudo hashcat -a 0 -m 31300 hashes.txt dictionary.txt

Если пароль слабый, его можно будет восстановить относительно быстро.

-8

Обнаружение

Этот раздел особенно важен для специалистов по защите. Несмотря на то, что атака требует прав администратора домена, её необходимо отслеживать, чтобы вовремя среагировать на инцидент. Существует несколько ключевых признаков, указывающих на проведение Timeroasting или Targeted Timeroasting.

- Один хост отправляет множество клиентских MS-SNTP запросов, но эти запросы содержат разные RID.

- RID в этих запросах принадлежат учетным записям пользователей, а не компьютеров.

- Значение атрибута userAccountControl одной или нескольких учетных записей меняется с обычного пользовательского значения на значение рабочей станции (workstation trust account), а затем возвращается обратно.

- К атрибуту sAMAccountName учетной записи пользователя добавляется знак доллара.

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

Заключение

Весьма вероятно, что данная техника будет взята на вооружение широким кругом атакующих: от Red Team специалистов, до реальных злоумышленников. Пользователям следует использовать длинные и сложные пароли. Рекомендуется никогда повторно не использовать пароли и избегать использования однотипных паролей в разных системах. Везде, где это возможно, должна быть включена двухфакторная аутентификация. Грамотная архитектура и качественный мониторинг позволят легче обнаружать и пресекать такие техники.

Источник

Подпишись на наши каналы в телеграме и в Max, там ты найдешь огромное количество качественного контента, без инфошума и воды!