RID Hijacking

в 9:16, , рубрики: blue team, cybersecurity, Event Viewer, POC, rid, RID Hijacking, sysmon, windows, артефакты, безопасность

Всем привет!

Сегодня мы рассмотрим один из способов пост-эксплуатации Rid hijacking и посмотрим его артефакты.

Что это такое?

Rid hijacking - атака, при которой путем подмены Rid в SAM можно превратить обычного локального пользователя в локального админа

Условия для выполнения

Для реализации техники нам необходимо:

  • Права системы для доступа к SAM

  • Возможность создавать локального пользователя на машине (в домене может быть групповая политика, запрещающая создании локальных пользователей )

Что такое Rid?

У каждого пользователя есть свой Sid, в его структуре есть Rid - уникальный тег для каждой учетной записи. Для обычных пользователей он начинается =>1000

RID Hijacking - 1

Для стандартных учетных записей есть зарезервированные Rid, например:

  • Администратор - 500, или же 1F4

  • Гость - 501, или же 1F5

Где находится Rid?

Значения Rid хранятся в SAM, а именно в HKLMSAMSAMDomainsAccountUsers

RID Hijacking - 2

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

RID Hijacking - 3

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

RID Hijacking - 4

Пусть к успеху

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

Эксплуатация через GUI

У нас есть обычный пользователь, без особых прав

RID Hijacking - 5

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

RID Hijacking - 6

Как стало:

RID Hijacking - 7

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

RID Hijacking - 8

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

RID Hijacking - 9

Боевая эксплуатация

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

RID Hijacking - 10

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

RID Hijacking - 11

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

reg query “HKLMSAMSAMDomainsAccountUsersRID“ /v F

RID Hijacking - 12

Меняем 4 байта на F4010000 (Rid админа)

reg add “HKLMSAMSAMDomainsAccountUsersRID“ /v F /t REG_BINARY /d ……….

RID Hijacking - 13

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

RID Hijacking - 14

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

RID Hijacking - 15

Артефакты

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 - изменение значения в реестре

В итоге получаем интересный, но достаточно шумный способ пост-эксплуатации

RID Hijacking - 16

Автор: OziSec

Источник

* - обязательные к заполнению поля


https://ajax.googleapis.com/ajax/libs/jquery/3.4.1/jquery.min.js