Pull to refresh
9
0
Диана Кожушок @wildresearcher

User

Send message

COM (Component Object Model) - это стандарт, позволяющий разработчикам повторно использовать в своем коде независимые компоненты ПО. При этом им не нужно знать внутреннее устройство данных компонентов, заниматься их совместимостью на разных языках программирования и повторной компиляцией. В первой статье можно почитать про некоторые принципы работы данной технологии.

ActiveX - технология, которая строится на основе COM-технологий, и предназначена для реализации сайтов в основном под браузер Internet Explorer. И как указано на сайте Microsoft ActiveX — это устаревшая технология, которую не следует использовать для новых разработок.

Это значит, что, например, наличие ключа InprocServer32 в HKCR приоритетнее, чем ключ LocalServer32 в HKCU.

Что касательно этой фразы, то исходные данные такие: есть COM-объект, у него заданы InprocServer32 в HKLM и LocalServer32 в HKCU. В HKCR тогда будут и InprocServer32, и LocalServer32. Изначально будет поиск InprocServer32 напрямую в HKCU, но там он будет не найден по понятным причинам. Далее будет осуществляться поиск InprocServer32 в HKCR(но считай в HKLM). И по итогу будет выбран именно он для использования, хотя при всем этом вHKCU был еще задан LocalServer32.

Верно, HKCR состоит из HKLM+HKCU. Когда вы запускаете какой-либо COM-объект, то поиск осуществляется в двух ветках по очереди: в HKCU, а затем HKCR. Если в HKCU значение не найдено, то в HKCR будет хранится значение из HKLM. То есть по сути можно заменить "InprocServer32 в HKLM приоритетнее, чем ключ LocalServer32 в HKCU." Но напрямую не осуществляется запрос в HKLM, вместо этого используется HKCR. Чтобы увидеть о чем я говорю запустите Procmon, обратитесь к какому-либо COM-объекту и вы увидите данные события в этой очередности.

Данная статья не предполагает написания подробнейшего туториала, а еще лучше автоматизации всех действий атакующего. Про Silver Ticket + SYSTEM в PAC также было упомянуто в статье, но все-таки это другая атака (хоть и применяемая в данной цепочке) и тема отдельной статьи. Да и в принципе получить SYSTEM можно разными способами и зацикливаться на каком-то одном странно, выходят новые уязвимости, новые атаки и атакующий может выбирать тут на свой вкус и цвет. Основная же суть статьи дать понимание командам Blue Team о нестандартном способе проведения техники Scheduled Task, показать, что прежними способами задетектировать не получится (используя события 4698 и 4702), и предложить способ для детекта.

У коллег в статье про RPC и способы его мониторинга рассмотрен RPC-Firewall.
Также добавлю, что данный инструмент позволяет блокировать RPC запросы с конкретными UUID (мы можем указать соответствующие MS-DRSR), но нужна сегментация сети, чтобы не блокировать репликацию между DC. И подмечу, что при блокировке атаки RPC-firewall событий 4662 не будет.

Chainsaw является действительно великолепным инструментом, позволяя найти нужную информацию в одном месте, что несомненно является полезным с точки зрения быстрой реализации соответствующих правил в системах. К сожалению только наличие готового правила зачастую не формирует понимания у команды Blue Team: как происходит атака, каким образом формируются события, в каком количестве и какие способы обхода возможны. Именно это мы попытались донести в своих статьях по DCSync

Information

Rating
Does not participate
Registered
Activity