Что нового

Article Rubeus - Active Directory Hacking

Vander 0

Vander

Команда форума
10.11.2019
491
1 128
1586079256401.png

Rubeus - это набор инструментов написан на C# для взаимодействия с Kerberos и выполнения различных трюков позволяющих повысить привилегии и закрепить своё присутствие в атакуемой системе. Он адаптирован из проекта Kekeo Бенджамина Дельпи (лицензия CC BY-NC-SA 4.0) и проекта MakeMeEnterpriseAdmin Винсента LE TOUX (лицензия GPL v3.0).

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

Любое действие, которое вы выполняете в системе, представляет собой детектируемый риск, особенно при злоупотреблении функциональностью «странными»/непреднамеренными способами. Rubeus (как и любой набор инструментов злоумышленника) может быть обнаружен несколькими способами, с точки зрения хоста, сети или домена.

Инструменты и методы обычно уклоняются от обнаружения, потому что либо:
  • Пользователи недостаточно осведомлены об инструменте / технике и, следовательно, даже не ищут.
  • Пользователи не могут собирать и обрабатывать данные, необходимые в соответствующем масштабе.
  • Инструмент / метод сочетается с существующим поведением, чтобы в достаточной степени проникнуть в ложные срабатывания в окружающей среде.
С точки зрения хоста, Rubeus может быть перехвачен во время начальной инициализации самого кода, ввиду появления ненормального (no-lsass.exe) процесса, генерирующего необработанный трафик порта 88 Kerberos, с помощью чувствительных API, таких как LsaCallAuthenticationPackage (), или ненормальными билетами присутствовать на хосте (например, использовать rc4_hmac в тикетах в современной среде).

С точки зрения журнала сети или контроллера домена, поскольку Rubeus реализует многие части обычного протокола Kerberos, основной метод обнаружения включает использование rc4_hmac в обменах Kerberos.

Современные домены Windows (функциональный уровень 2008 и выше) по умолчанию используют шифрование AES в обычных обменах Kerberos (с несколькими исключениями, такими как билеты доверия между областями). Использование хэша rc4_hmac (NTLM) используется в обмене Kerberos вместо ключа aes256_cts_hmac_sha1 (или aes128), что приводит к некоторому сигналу, который можно обнаружить на уровне хоста, уровне сети (если анализируется трафик Kerberos) и уровне журнала событий контроллера домена , алерт может быть известен как «encryption downgrade».

Один из распространенных способов обнаружения атакующих инструментов - вектор оружия для кода. Если Rubeus запускается через PowerShell (включая Empire), применяются все стандартные средства защиты PowerShell V5 (глубокая регистрация блоков сценариев, AMSI и т. д).
Если Rubeus выполняется как двоичный файл на диске, в игру вступает стандартное обнаружение сигнатур AV (часть того, почему мы не выпускаем скомпилированные версии Rubeus, поскольку хрупкие сигнатуры глупы.
Если Rubeus используется в качестве библиотеки, он подвержен любому методу, который используется основным инструментом для запуска. И если Rubeus запускается посредством неуправляемого выполнения сборки (например, Cobalt Strike execute_assembly), выполняется межпроцессное внедрение кода и CLR загружается в потенциально non -.NET-процесс, хотя этот сигнал присутствует для выполнения любого кода .NET с использованием этого метода.

Более подробно, с примерами, вы можете ознакомиться на странице разработчиков на Github, а мы перейдём к загрузке и компиляции Rubeus.

Загружаем проект с Github:

1586093806707.png

Для дальнейших манипуляций я использую Windows и Visual Studio 2017.

Открываем проект в VS:

1586093827715.png

Выбираем "Release" и запускаем компиляцию проекта:

1586093852150.png

Следующим шагом будет поднятие в локальной сети тестового стенда Active Directory:
  • Microsoft Windows Server 2008 R2 (DC)
  • Microsoft Windows 10
Настраиваем всё это добро, вводим пользователя Alice и её рабочую станцию в домен:

1586094109043.png

Имитируя действия злоумышленника, для начала, используя Bloodhound строим карту домена.

Запускаем Sharphound на компьютере пользователя Alice:

1586101186723.png

Загружаем полученные данные в Bloodhound:

1586101250061.png

Bloodhound собрал всю необходимую информацию, которая позволит нам развивать атаку дальше. Нашей целью будет захват контроля над доменом, переходим к использованию Rubeus.

Мы пойдем путем Bruteforce (заранее скажу, что у Rubeus обширный функционал и в одну статью я не уложусь, о нем подробнее на странице разработчиков на Github), запускаем Rubeus на заранее скомпрометированной машине пользователя Alice:

Код:
PS C:\Users\Alice> .\Rubeus.exe brute /users:users.txt /passwords:passwords.txt /domain:protey.local /outfile:protey.txt
1586104518368.png

Итогом выполнения Rubeus будет получение пароля пользователя Vander (и билета .kirbi), входящего в группу администраторов на сервере:

1586104650784.png

Я считаю, что rubeus со своей задачей справился и дальнейшие действия атакующего не потребуют более использования этого инструмента.

Об этом я намерен рассказать в дальнейших публикациях посвящённых атакам на Windows Active Directory.

Спасибо за внимание, материал подготовлен специально для форума protey.net
 
W 0

WilliamBax

New Member
17.12.2020
2
0
Что интересно - оснастки она не запускает - это факт. Но, каким-то макаром достает и отображает разрешения на общие сетевые ресурсы правда о-ооочень долго при этом думает и сначала вместо имени пользователя - какой-то офигенный идинтефикатор, но потом-то, подумав, отображает.

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

Отсюда вопрос - как запустить оснастку Active Directory, с учетом того, что в логах он пишет об успешном запуске своей службы, а также того, что файлы БД AD ntds.dit присутствуют в системе в двух разных местах C:WINNTntds и C:WINNTsystem32 и имеют существенно разные размеры это вообще-то нормально?
 
Верх Низ