- PVSM.RU - https://www.pvsm.ru -
Всем привет!
Сегодня мы рассмотрим один из способов пост-эксплуатации Rid hijacking и посмотрим его артефакты.
Rid hijacking - атака, при которой путем подмены Rid в SAM можно превратить обычного локального пользователя в локального админа
Для реализации техники нам необходимо:
Права системы для доступа к SAM
Возможность создавать локального пользователя на машине (в домене может быть групповая политика, запрещающая создании локальных пользователей )
У каждого пользователя есть свой Sid, в его структуре есть Rid - уникальный тег для каждой учетной записи. Для обычных пользователей он начинается =>1000

Для стандартных учетных записей есть зарезервированные Rid, например:
Администратор - 500, или же 1F4
Гость - 501, или же 1F5
Значения Rid хранятся в SAM, а именно в HKLMSAMSAMDomainsAccountUsers

У каждого пользователя есть несколько ключей, нас интересует ключ “F“

Первые 4 байта строки смещению 0x30 содержат Rid, в данном случае это Rid админа, именно эту строчку нужно заменить у обычной учетной записи чтобы превратить ее в админа.

В итоге имеем следующий план: определяем Rid пользователя → изменяем первые 4 байта строки по смещению 0x30 ключа “F“ в HKLMSAMSAMDomainsAccountUsers(Rid пользователя) на F401 (Rid админа)
У нас есть обычный пользователь, без особых прав

Находим пользователя по его Rid значению в SAM
В ключе “F“ меняем первые 4 байта смещению 0x30 на F401
Как было:

Как стало:

В итоге получаем обычного пользователя с Rid админа и соответствующими правами

В группу админов пользователь не отображается

А теперь смоделируем реальную ситуация, у нас есть системный шел и мы хотим по тихому закрепиться на машине. Создаем локальную учетную запись net user sociska Qq123456! /add

Теперь надо узнать Rid пользователя, я пойду по самому простом пути и просто запрошу список всех Rid в SAM, так как только что создали нового пользователя, его Rid будет самым последним reg query “HKLMSAMSAMDomainsAccountUsers“

Запрашиваем значение ключа “F“ и находим, где расположены наши несчастные 4 байта (EE030000)
reg query “HKLMSAMSAMDomainsAccountUsersRID“ /v F

Меняем 4 байта на F4010000 (Rid админа)
reg add “HKLMSAMSAMDomainsAccountUsersRID“ /v F /t REG_BINARY /d ……….

Проверяем что все работает

И пользователя все также нет в группе админов

reg query “HKLMSAMSAMDomainsAccountUsers“:
4688 - создание процесса reg.exe
4673 - вызов привилегированный службы (reg.exe)
4656 - запрос дескриптора ключа реестра HKLMSAMSAMDomainsAccountUsers
4663 - попытка доступа к объектам HKLMSAMSAMDomainsAccountUsers* (тут было много событий так как доступ запрашивается к каждому ключу )
sysmon 1 - создание процесса reg.exe (в comamandLine была вся команда)
reg query “HKLMSAMSAMDomainsAccountUsersRID“ /v F:
4688 - создание процесса reg.exe
4673 - вызов привилегированный службы (reg.exe)
4656 - запрос дескриптора ключа реестра HKLMSAMSAMDomainsAccountUsersRID
4663 - попытка доступа к объекту HKLMSAMSAMDomainsAccountUsersRID
sysmon 1 - создание процесса reg.exe (в comamandLine была вся команда)
reg add “HKLMSAMSAMDomainsAccountUsersRID“ /v F /t REG_BINARY /d ……….:
4688 - создание процесса reg.exe
4673 - вызов привилегированный службы (reg.exe)
4656 - запрос дескриптора ключа реестра HKLMSAMSAMDomainsAccountUsersRID
4663 - попытка доступа к объекту HKLMSAMSAMDomainsAccountUsersRID
4657 - изменение значения ключа реестра
sysmon 1 - создание процесса reg.exe (в comamandLine была вся команда)
sysmon 12 - удаление объекта в реестре
sysmon 13 - изменение значения в реестре
В итоге получаем интересный, но достаточно шумный способ пост-эксплуатации

Автор: OziSec
Источник [1]
Сайт-источник PVSM.RU: https://www.pvsm.ru
Путь до страницы источника: https://www.pvsm.ru/windows/426502
Ссылки в тексте:
[1] Источник: https://habr.com/ru/articles/931990/?utm_source=habrahabr&utm_medium=rss&utm_campaign=931990
Нажмите здесь для печати.