PoshC2

Exploitation v9.0 · 11.06.2024 активный

Proxy-aware C2 фреймворк для авторизованного red team: постэксплуатация и латеральное перемещение. Модульная архитектура на PowerShell/C#/Python с готовыми имплантами.

v9.0
11.06.2024 current

Установка
curl -sSL https://raw.githubusercontent.com/nettitude/PoshC2/master/Install.sh | sudo bash
sudo ./Install.sh
curl -sSL https://raw.githubusercontent.com/nettitude/PoshC2/master/Install.sh | sudo bash -s -- -p /root/PoshC2
curl -sSL https://raw.githubusercontent.com/nettitude/PoshC2/dev/Install.sh | sudo bash -s -- -b dev
curl -sSL https://raw.githubusercontent.com/nettitude/PoshC2/master/Install-for-Docker.sh | sudo bash
curl -sSL https://raw.githubusercontent.com/nettitude/PoshC2/BRANCHNAME/Install-for-Docker.sh | sudo bash -s -- -b BRANCHNAME
показать оригинал переведено ИИ

Логотип PoshC2

CI Docker-образа

PoshC2 — это C2-фреймворк с поддержкой прокси, используемый для помощи пентестерам в проведении красной команды, пост-эксплуатации и горизонтального перемещения.

PoshC2 в основном написан на Python3 и имеет модульную структуру, позволяющую пользователям добавлять собственные модули и инструменты, что делает его расширяемым и гибким C2-фреймворком. В базовой комплектации PoshC2 поставляется с имплантами на PowerShell/C# и Python2/Python3, полезными нагрузками, написанными на PowerShell v2 и v4, исходным кодом на C++ и C#, различными исполняемыми файлами, DLL и сырым шеллкодом, а также полезной нагрузкой на Python2/Python3. Это обеспечивает функциональность C2 на широком спектре устройств и операционных систем, включая Windows, *nix и OSX.

Среди других примечательных особенностей PoshC2:

  • Постоянная и кроссплатформенная поддержка с использованием Docker.
  • Высококонфигурируемые полезные нагрузки, включая настройки времени бикона по умолчанию, джиттера, дат уничтожения, пользовательских агентов и многого другого.
  • Большое количество полезных нагрузок, генерируемых «из коробки» и регулярно обновляемых.
  • Шеллкод с встроенным обходом AMSI и патчингом ETW для высокой успешности и скрытности.
  • Автоматически сгенерированные правила Apache Rewrite для использования в прокси C2, защищающие инфраструктуру C2 и поддерживающие хорошую операционную безопасность.
  • Модульный и расширяемый формат, позволяющий пользователям создавать или редактировать модули на C#, PowerShell или Python3, которые могут выполняться в памяти имплантами.
  • Уведомления о получении успешного импланта через Pushover или Slack.
  • Полная и поддерживаемая контекстная справка и интеллектуальная командная строка с контекстным автозаполнением, историей и подсказками.
  • Полностью зашифрованные коммуникации, защищающие конфиденциальность и целостность трафика C2 даже при обмене данными по HTTP.
  • Клиент-серверный формат, позволяющий нескольким членам команды использовать один сервер C2.
  • Обширное логирование. Каждое действие и ответ снабжены временной меткой и сохраняются в базе данных со всей соответствующей информацией, такой как пользователь, хост, номер импланта и т. д. Помимо этого, вывод сервера C2 напрямую записывается в отдельный файл.
  • Импланты без PowerShell, не использующие System.Management.Automation.dll, на основе C# или Python2/Python3.
  • Бесплатный и открытый SOCKS-прокси с использованием SharpSocks.
  • Поддержка коммуникаций имплантов по HTTP(S) и именованным каналам SMB в сочетании с цепочками имплантов для доступа к сетям без выхода в интернет.

Документация

Документация по PoshC2 поддерживается здесь: https://poshc2.readthedocs.io/en/latest/

Присоединяйтесь к нам в Slack — poshc2.slack.com (для запроса приглашения отправьте письмо на labs@nettitude.com).

Установка

Вы можете установить PoshC2 напрямую или использовать Docker-образы. Инструкции для обоих вариантов приведены ниже.

Прямая установка на хостах Kali

Для установки PoshC2 предоставляется скрипт:

*** PoshC2 Install script ***
Usage:
./Install.sh -b <git branch> -p <Directory to clone PoshC2 to>

Defaults are master branch to /opt/PoshC2

Для выполнения скрипта установки требуются повышенные привилегии, так как он выполняет обновление и установку пакетов через apt.

curl -sSL https://raw.githubusercontent.com/nettitude/PoshC2/master/Install.sh | sudo bash

Альтернативно можно клонировать репозиторий и запустить скрипт установки вручную.

sudo ./Install.sh

Вы можете вручную задать каталог установки PoshC2, передав его скрипту Install.sh в качестве аргумента -p. По умолчанию используется /opt/PoshC2:

curl -sSL https://raw.githubusercontent.com/nettitude/PoshC2/master/Install.sh | sudo bash -s -- -p /root/PoshC2

Передовые функции

Мы стремимся поддерживать стабильность ветки master, чтобы пользователи могли полагаться на неё при необходимости. По этой причине изменения часто бывают готовы функционально, но ещё не появляются в master, так как не прошли полное тестирование и утверждение.

Если вы хотите ознакомиться с новыми функциями PoshC2, вы можете посмотреть ветку dev или отдельные feature-ветки, ответвлённые от dev.

Поскольку функции проходят тестирование перед слиянием в dev, эта ветка всё ещё должна быть достаточно стабильной, и операторы могут выбрать использование этой ветки или конкретной feature-ветки для своего задания. Однако это предполагает обмен стабильности на новые функции, поэтому делайте это на своё усмотрение.

Чтобы использовать dev или feature-ветку, передайте её название скрипту Install.sh в качестве аргумента -b:

curl -sSL https://raw.githubusercontent.com/nettitude/PoshC2/dev/Install.sh | sudo bash -s -- -b dev

Обратите внимание, что URL также включает название ветки (здесь dev вместо master).

Установка для Docker

Вы также можете запускать PoshC2 с помощью Docker, что обеспечивает более стабильную работу и позволяет легко запускать PoshC2 на других операционных системах. Установка через Docker не клонирует PoshC2, так как используются образы PoshC2 с Docker Hub, поэтому выполняется только минимальная установка некоторых зависимостей и скриптов.

Для начала установите Docker на хосте, а затем добавьте каталог проектов PoshC2 в Docker как общий каталог, если это требуется для вашей ОС. По умолчанию это /var/poshc2 на nix и /private/var/poshc2* на Mac.

Хосты на базе Kali

Скрипт установки:

*** PoshC2 Install script for Docker ***
Usage:
./Install-for-Docker.sh -b <git branch>

Default is the master branch

Для выполнения скрипта установки требуются повышенные привилегии, так как он производит установку скриптов.

curl -sSL https://raw.githubusercontent.com/nettitude/PoshC2/master/Install-for-Docker.sh | sudo bash

Чтобы использовать ветки dev или feature с Docker, скачайте Install-for-Docker.sh из соответствующей ветки и передайте имя ветки в качестве аргумента:

curl -sSL https://raw.githubusercontent.com/nettitude/PoshC2/BRANCHNAME/Install-for-Docker.sh | sudo bash -s -- -b BRANCHNAME

Windows

На Windows импортируйте модуль PowerShell PoshC2.psm1.

Import-Module -DisableNameChecking C:\PoshC2\resources\scripts\PoshC2.psm1
posh-project -PoshC2Dir "C:\PoshC2" -LocalPoshC2ProjectDir "C:\PoshC2_Project" -Arg1 "-n" -Arg2 "newproject"
posh-config -PoshC2Dir "C:\PoshC2" -LocalPoshC2ProjectDir "C:\PoshC2_Project"
posh-server -PoshC2Dir "C:\PoshC2" -LocalPoshC2ProjectDir "C:\PoshC2_Project"
posh -PoshC2Dir "C:\PoshC2" -LocalPoshC2ProjectDir "C:\PoshC2_Project" username

Запуск PoshC2

Создайте новый проект:

posh-project -n <project-name>

Переключение на проекты или их список можно выполнить с помощью этого скрипта:

[*] Usage: posh-project -n <new-project-name>
[*] Usage: posh-project -s <project-to-switch-to>
[*] Usage: posh-project -l (lists projects)
[*] Usage: posh-project -d <project-to-delete>
[*] Usage: posh-project -c (shows current project)

Отредактируйте конфигурацию для вашего проекта:

posh-config

Запустите сервер PoshC2:

posh-server

Или запустите его как службу:

posh-service

Отдельно запустите ImplantHandler для взаимодействия с имплантами:

posh -u <username>

Полную документацию по PoshC2 можно найти на сайте https://poshc2.readthedocs.io/en/latest/.

Указание тега Docker

Если вы используете Docker, можно указать тег образа Docker для запуска с помощью параметра -t для команд posh-server и posh.

Например:

posh-server -t latest

Обновление установок PoshC2

Не рекомендуется обновлять PoshC2 во время проведения тестирования. Входящие изменения могут быть несовместимы с существующим проектом и привести к нестабильному поведению.

При использовании версии PoshC2, клонированной из git, вы можете обновить установку PoshC2 с помощью следующей команды:

*** PoshC2 Update Script ***
Usage:
posh-update -b <git branch>

Default is the master branch

Использование старых версий

Вы можете использовать старую версию PoshC2, ссылаясь на соответствующий тег. Обратите внимание, что это работает только если вы клонировали репозиторий. Вы можете просмотреть теги репозитория, выполнив команду:

git tag --list

Если у вас есть локальная копия PoshC2, вы можете офлайн переключиться на нужную версию, просто переключившись на нужный тег:

git reset --hard <tag name>

Например:

git reset --hard v4.8

Однако учтите, что это перезапишет все локальные изменения в файлах, такие как изменения в конфигурационных файлах, и вам может потребоваться повторно запустить скрипт установки для этой версии или повторно настроить окружение соответствующим образом.

Лицензия / Условия использования

Это программное обеспечение должно использоваться только для санкционированной тестовой деятельности и не для злонамеренного использования.

Загружая это программное обеспечение, вы принимаете условия использования и лицензионное соглашение.

Войдите, чтобы оставить комментарий