WIP Фреймворк для постэксплуатации, адаптированный для гипервизоров.
Reave — это фреймворк для пост-эксплуатации, предназначенный для конечных точек гипервизора, написанный на Python. В настоящее время находится в разработке.
Reave использует традиционную модель слушатель/агент, где пользователь может настроить несколько слушателей, которые принимают любое количество агентов. В настоящее время фреймворк предоставляет агента на Python и поддерживает следующие задачи:
Цель Reave — предоставить фреймворк, который можно использовать для автоматизации и ускорения кампаний пентеста в средах, которые либо сильно виртуализированы, либо где целевая/критическая инфраструктура размещена на платформах гипервизоров, таких как ESXi и Proxmox.
На сервере просто запустите app.py:
python3 reave/app.py
На целевой конечной точке загрузите агента Python, расположенного по пути agents/client.py, и выполните его. Доступны следующие параметры конфигурации:
_LISTENER_HOST Имя хоста/IP сервера_LISTENER_PORTS Список портов, к которым агент будет пытаться подключиться по круговому принципу_LISTENER_SECRET Ключ ассоциации слушателя, к которому привяжется агент_AGENT_LOGLEVEL Уровень отладки логированияBEACON_INTERVAL Интервал, с которым агент будет отправлять сигналыBEACON_JITTER Случайный коэффициент джиттера, добавляемый к интервалу сигналовSTART_TIME Время суток, когда агент начнет отправлять сигналыEND_TIME Время суток, когда агент прекратит отправлять сигналыSOCKET_TIMEOUT Тайм-аут сокета агентаPID_FILE PID-файл, который агент использует для проверки, что он еще не запущен на конечной точкеTRANSFER_BLOCK_SIZE Размер блока, который агент будет использовать при передаче файлов на серверКогда агент успешно ассоциировался со слушателем, вы можете просмотреть его, войдя в контекст agent и выполнив команду list (или ls). Чтобы просмотреть всю информацию, которую Reave автоматически получил от конечной точки, выполните команду info <uuid агента>. Например, если ваш агент имеет uuid 18ab, используйте info 18ab.
Чтобы получить произвольный файл от агента, вы можете выполнить get 18ab /my/test/file.
Чтобы запустить интерактивную оболочку на конечной точке, вы можете выполнить interact 18ab.
Командная строка имеет три различных контекста, из которых вы можете управлять отдельными операциями:
Чтобы войти в контекст слушателя, используйте команду listener. Оттуда доступно несколько параметров:
list Список всех активных слушателей
add <host> <port> <secret> Добавить слушателя
remove <uuid> Удалить слушателя
Выйдите из этого контекста с помощью команды back
Чтобы войти в контекст агента, используйте команду agent. Оттуда доступно несколько параметров:
list Список всех агентов (псевдоним: ls)
info <uuid> Показать информацию об агенте, включая любые автоматически полученные данные
interact <uuid> Интерактивная терминальная сессия с агентом.
'quit' для выхода.
get <uuid> <file> Передать файл от конечной точки агента в каталог загрузок
Выйдите из этого контекста с помощью команды back
Чтобы войти в контекст payload, используйте команду payload. Оттуда доступно несколько параметров:
list Список всех загруженных полезных нагрузок
info <name> Получить информацию о полезной нагрузке
use <name> Выберите полезную нагрузку для использования
set <option> <value> Установите параметр полезной нагрузки в значение
run agent <uuid> Запустить полезную нагрузку на отдельном агенте
Выйдите из этого контекста с помощью команды back
Reave также поддерживает определение формата просмотра данных энумерации. Чтобы переключиться на определенный формат:
format json Вывод информации в табличном формате.
format table Вывод информации в формате JSON.