ИМПЕРИЯ СНОВА БЫЛА ВЕЛИКОЙ… НА НЕДЕЛЮ

agresor777

Script Kiddie
17.08.2020
23
3
6
На DEF CON в этом году провели семинар по обходам интерфейса сканирования антивирусного ПО Windows (AMSI) и обходам песочницы Как и в любом классе, предполагающем свободное использование виртуальных машин (ВМ), у нас было несколько технических проблем, с которыми столкнулись студенты, но одна из них была для нас особенно странной. Большинство сценариев, которые мы написали, чтобы намеренно помечать их AMSI, выполнялись полностью незамеченными. Первоначально мы думали, что либо студенты забыли повторно включить Defender, либо команда, которую мы им дали, не работает. Однако мы убедились, что команда re-enable правильно работает на нашей собственной виртуальной машине и что скрипты помечаются. Затем студенты повторно запустили команду enable и убедились, что Защитник действительно включен. Однако очень странные флаги никто не получал. Мы двинулись дальше, потому что у класса было мало времени.

После того, как DEF CON закончился (и у нас наконец появилось немного свободного времени), мы хотели выяснить, почему у некоторых из наших студентов были проблемы с помеченными скриптами. Мы решили использовать обход AMSI Мэтта Грэбера в качестве сценария управления (на слайдах семинара показано, как скрыть его после AMSI). Мы загрузили ноутбук, запустили скрипт, и он не был отмечен!


Код:
$ReF=[Ref].Assembly.GetType('System.Management.Automation.AmsiUtils^' );

$REF.GetField('amsiInitFailed','NonPublic,Static').SetValue($null,$True);
Обычно ключевые слова amsiInitFailed и System.Management.Automation.AmsiUtils вызывают срабатывание триггера и помечаются.



1600153372981.png
Во время семинара мы раздали три скрипта, которые должны были быть отмечены на каждом компьютере. Только один из этих скриптов постоянно отмечался, а другие нет. Мы протестировали его, чтобы убедиться, что наша машина теперь демонстрирует те же проблемы, с которыми столкнулись наши ученики. Этот скрипт действительно был помечен, и тот факт, что обход AMSI не был включен, указывает на то, что проблема связана с сигнатурами вредоносных программ AMSI и Defender, а не с тем, что они полностью отключены.

1600153451011.png
Мы знали, что наша тестовая виртуальная машина сигнализирует об обходе Graeber во время семинара, поэтому мы попробовали это снова. Успех! Наконец-то мы получили флаг от AMSI на байпасе.

1600153481345.png


На этом этапе вы, возможно, заметили разницу между машиной с голым железом и виртуальной машиной. При использовании нашей виртуальной машины для тестирования обфускации мы устанавливаем виртуальную машину только для размещения и отключаем облачную интеграцию для Защитника. Сигнатуры Защитника виртуальной машины последний раз обновлялись 4 августа, а на «голом железе» были последние обновления от 12 и 13 августа. Мы сделали снимок нашей виртуальной машины с обновлениями от 4 августа, а затем обновили подписи Защитника, чтобы проверить нашу теорию. Мгновенно объездная дорога Гребера перестала отмечаться. Теперь мы были уверены, что обновление между 5 и 8 августа сломало AMSI, но мы хотели знать, насколько испорчены определения.

Мы большие поклонники Powershell Empire и решили протестировать дефектные подписи против него. Сначала мы протестировали необфусцированную полезную нагрузку в кодировке Base64.


1600153541709.png
Как и ожидалось, в подписи от 4 августа он был отмечен как вредоносный. Однако… новых определений не было.

1600153585975.png

1600153603739.png
При некоторой легкой обфускации исходная полезная нагрузка Powershell Empire пройдет мимо AMSI, однако с определениями от 4 августа другой провайдер событий Защитника Windows отметит строку «Invoke-Empire» (предположительно, путем сканирования строк в памяти) и завершит процесс. Он идентифицирует вредоносный процесс как Powershell Empire:
1600153645670.png

Помимо того, что AMSI не смог идентифицировать вредоносную полезную нагрузку, определения от 12/13 августа также не помечают строку в памяти.

1600153702245.png

Defender может быть немного неудачником при идентификации строки Invoke-Empire, но Invoke-Mimikatz в значительной степени верный способ быть пойманным. Определения 4 августа все еще находят Invoke-Mimikatz в памяти, а затем убивают процесс и маяк.

1600153751272.png
Определения от 12/13 августа не идентифицируют Mimikatz и позволяют ему работать до конца.

1600153779872.png


Powershell Empire практически невидима для Defender с определениями от 12/13 августа. Что было бы здорово, если бы мы проходили оценку, а не проводили семинар, когда это произошло.

В конце концов, мы смогли определить плохое обновление где-то между вечером 4 августа и утром 5 августа. Мы уведомили Microsoft о проблемах, и они исправили проблему по состоянию на 16 августа, но чуть больше недели Powershell Empire всё ещё работает.

Для этого тестирования мы использовали Kali 2019.2 и Powershell Empire, загруженные из ветки разработки GitHub.
 

Об LS-LA

  • Мы, группа единомышленников, основная цель которых повышать уровень знаний и умений.
    Не забывая о материальном благополучии каждого)

About LS-LA

  • We, a group of like-minded people, whose main goal is to increase the level of knowledge and skills.
    Not forgetting about everyone’s material well-being)

Быстрая навигация

Пользовательское меню