В статье сравним сервер управления и контроля (C&C или C2) Metasploit и его альтернативу Havoc. Оба могут быть использованы в качестве C&C-серверов, то есть прослушивать входящие соединения и отправлять команды на уже скомпрометированные системы или устройства.
Еще по теме: Термины Metasploit (Payload Exploit Module Listener…)
Сравнение C&C Metasploit с альтернативой Havoc
Havoc — это новый фреймворк C2 с открытым исходным кодом. Эксперты отмечают, что многие фишки перенял от платных/взломанных версий Cobalt Strike и Brute Ratel. Он все еще имеет некоторые ошибки, но его функционал перекрывает эти неудобства (см. Использование Havoc).
Metasploit — фреймворк с открытым исходным кодом, созданный в 2003 году и с тех пор ставший одним из самых популярных и широко используемых (см. Использование Metasploit).
Havoc и Metasploit могут использоваться для поддержания персистентности (см. Persistence — способы прописаться в системе) на скомпрометированных системах, передачи данных, компрометации других систем или переключения на другие скомпрометированные цели с помощью слушателей, которые получают соединения от агентов, находящихся на скомпрометированных узлах.
Интерфейс C&C
Havoc имеет графический интерфейс. Возможности использования в терминале нет.
Metasploit с GUI графическом интерфейсом и возможность работать из терминала (CLI) Linux, но я, и большинство пользователей предпочитают использовать версию CLI, так как она проста, надежна и имеет все необходимое.
Полезная нагрузка и детекты антивирусов
Что касается полезной нагрузки, то у Metasploit есть собственный инструмент msfvenom, который используется для создания полезной нагрузки, которая может быть как специфичной для Metasploit (Meterpreter), так и нет.
Havoc имеет 3 типа полезных нагрузок, которые генерируются с помощью Golang и работают только на Windows-хостах.
Агент Havoc под названием demon имеет 3 техники сна, но две из них стоит упомянуть, поскольку обе зашифрованы для обфускации и могут снизить процент обнаружения: Foliage и Ekko. В качестве инъекции он может использоваться для архитектур x64 или x86 с Native/Syscall или Indirect Syscall. В качестве формата может использоваться Windows Exe, Windows Shellcode, DLL и Windows Service Exe. Ниже показан генератор полезной нагрузки и его параметры.
Уровень обнаружения методов Ekko и Foliage с Alloc и Execute, установленными на Native/Syscall или на Win32, оказался одинаковым — 13/26, что весьма неплохо.
Если говорить о Metasploit, то Msfvenom имеет множество настроек и поддерживает различные операционные системы. Наиболее интересны типы encrpytion/encoding: AES256, RC4, XOR. Ниже приведен пример генерации полезной нагрузки, зашифрованной с помощью AES256:
Используя msfvenom с шифрованием AES256, RC4 или XOR и полезной нагрузкой meterpreter, процент детекта был одинаков для каждого из них, и 18/26 антивирусов обнаружили его.
Масштабируемость
Здесь и Havoc, и Metasploit не испытывают недостатка в возможностях, будь то извлечение данных, модификация, копирование, повышение привилегий и т.д. Начиная с базовых команд, таких как снятие снимков экрана, перечисление каталогов, и заканчивая более сложными командами в Meterpreter, в Havoc есть возможность миграции на другой процесс, выполнения автоматических privesc, а также манипулирования токенами/имперсонации, инъекции dll и т.д.
Так что в плане масштабируемости Havoc еще не реализовал эту возможность. С помощью Metasploit можно использовать одну команду сразу многим хостам. Чтобы настроить листенер на прослушивание входящих соединений, необходимо использовать следующую команду, которая заставит Metasploit прослушивать в качестве фонового процесса любое входящее соединение:
1 |
sudo msfconsole -q -x "use exploit/multi/handler; set PAYLOAD ;set LHOST <ваш IP-адрес>;set LPORT <порт прослушивания>;set ExitOnSession false; exploit -j;" |
Но теперь предположим, что у вас гораздо больше подключений к серверу Metasploit Server и вы хотите отправить им команду systeminfo. Все, что вам нужно сделать, это набрать:
1 |
sessions -c "systeminfo" -a |
Это выполнит указанную команду на каждом агенте, подключенном к слушателю, будь то Windows, Linux или macOS.
Команда будет работать только для Windows. Но в Metasploit можно создать пользовательские скрипты, которые будут отправлять команды в зависимости от найденной операционной системы. Я не буду углубляться в эту тему, поскольку она выходит за рамки данной статьи.
Еще одна важная способность — рабочее время Havoc, которая указывает агенту, что он должен работать только в определенные часы дня или спать в течение определенного времени (команда непосредственно агенту: config workinghours 8:30-17:00).
С другой стороны, в Metasploit есть функция sleep (например, sleep 20), где вы указываете количество секунд, в течение которых агент должен спать. Это может иметь решающее значение в плане скрытности.
Заключение
Выбор между Havoc и Metasploit зависит от ваших конкретных потребностей, предпочтений и целей.
- Metasploit — популярность и распространенность.
- Havoc Framework — новизна и инновации.
Стоит ознакомиться с обоими инструментами, провести тестирование и выбрать.
ПОЛЕЗНЫЕ ССЫЛКИ:
- Команды для работы с базой данных Metasploit DB
- Использование фреймворка C2 Villain для создания бэкдора
- Эксплуатация уязвимости HeartBleed с помощью Metasploit