
Функция Azure на C# с HTTP-триггером, которая генерирует обфусцированные фрагменты PowerShell для нарушения или отключения AMSI в текущем процессе.
Изначально Azure-функция на C# (позже портирована на JS) с HTTP-триггером, которая генерирует обфусцированные PowerShell-фрагменты, ломающие или отключающие AMSI для текущего процесса. Фрагменты случайным образом выбираются из небольшого пула техник/вариаций, а затем обфусцируются. Каждый фрагмент обфусцируется во время выполнения/запроса, чтобы ни один сгенерированный вывод не имел одинаковых сигнатур.
Посмотрите https://amsi.fail/ для живого и работающего демо!
Как объяснила f-secure в одном из своих отличных постов в блоге:
AMSI — это интерфейс, с помощью которого приложения или службы (включая сторонние) могут сканировать содержимое скрипта на предмет вредоносного использования. Если сигнатура в скрипте зарегистрирована поставщиком антималварных служб AMSI (по умолчанию Windows Defender), она будет заблокирована. Чтобы понять это в контексте, рассмотрим следующие шаги, которые PowerShell выполняет для интеграции с AMSI:
Поскольку AMSI полагается на загрузку в процесс, исполняющий сам скрипт, техники взлома или патча конкретных функций внутри amsi.dll хорошо известны.