Skip to content
KitploitKITPLOIT
ИнструментыБлог
Отправить
ИнструментыБлог
Отправить

Инструменты для хакинга, пентеста и кибербезопасности — ваш арсенал защиты!

Kitploit — это каталог инструментов для хакинга, кибербезопасности и пентестинга. Находите последние обновления проектов для поиска уязвимостей, анализа систем, автоматизации тестирования и усиления вашей безопасности.

··Ленты·Контакты·Конфиденциальность·© 2026 Kitploit

Каталог инструментов

Категории

Все категории
Loading categories
C2concealer — Генерирует рандомизированные, проверенные линтером изменяемые профили C2 для Cobalt Strike, автоматизируя конфигурацию маячков HTTP/S, DNS, SMB и SSH с настраиваемой рандомизацией IOC. | Kitploit
Инструменты/GitHubGitHub/redsiege/c2concealer
Фреймворки для пентестаГенерация полезной нагрузкиКомандование и УправлениеRed Teaming
GitHubredsiege/c2concealer

C2concealer

Генерирует рандомизированные, проверенные линтером изменяемые профили C2 для Cobalt Strike, автоматизируя конфигурацию маячков HTTP/S, DNS, SMB и SSH с настраиваемой рандомизацией IOC.

Репозиторий
1.1k1724 месяцев назадПроверено Kitploit

Популярное

Смотреть все →

Откройте для себя самые используемые инструменты нашего сообщества.

Изучить все инструменты

Просмотрите нашу коллекцию инструментов

Смотреть все инструменты →
Поделиться

C2concealer

C2concealer — это инструмент командной строки, который генерирует рандомизированные изменяемые профили C2 для использования в Cobalt Strike.

Установка

root@kitploit:~
git clone https://github.com/RedSiege/C2concealer.git
cd C2concealer
python3 -m venv .venv
source .venv/bin/activate
pip3 install -e .

Установка Docker

Обратитесь к инструкциям Docker

Пример использования

root@kitploit:~
Usage:
	$ C2concealer --hostname google.com --variant 3

Flags:
	
	(optional)
	--hostname 
		Имя хоста, используемое в настройках HTTP-клиента и сервера. По умолчанию — None.
	--variant 
		Целое число, определяющее количество вариантов HTTP-клиента/сервера для генерации. 
		Рекомендуется от 1 до 5. Макс. 10.

Пример вывода консоли

root@kitploit:~
root@kali:~# C2concealer --variant 1 --hostname google.com
[i] Searching for the c2lint tool on your system (part of Cobalt Strike). Might take 10-20 seconds.
[i] Found c2lint in the /opt/cobaltstrike/c2lint directory.

Choose an SSL option:
1. Self-signed SSL cert (just input a few details)
2. LetsEncrypt SSL cert (requies a temporary A record for the relevant domain to be pointed to this machine)
3. Existing keystore
4. No SSL

[?] Option [1/2/3/4]:

Совет: Всегда используйте SSL-сертификат. Желательно сертификат от LetsEncrypt или аналогичный. Совет: Варианты HTTP позволяют выбирать разные IOC для HTTP-трафика на разных маяках. Рекомендуется значение не менее 1.

Как это работает

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

Затем мы разделили каждый раздел (или блок) изменяемого профиля в отдельный .py файл, который содержит логику для получения случайных подходящих значений для каждого атрибута и вывода форматированной строки для этого блока профиля. Мы объединяем все блоки профиля вместе, выполняем несколько быстрых проверок на согласованность, а затем прогоняем профиль через линтер Cobalt Strike (c2lint). На выходе получается профиль, который должен работать для ваших задач. Мы всегда рекомендуем тестировать профиль (включая инъекцию процессов и спавнинг) перед началом кампании.

Если вы изучаете код, мы рекомендуем начать с этих двух файлов: /C2concealer/main.py и /C2concealer/profile.py. После ознакомления с комментариями посмотрите отдельные генераторы блоков профиля в папке: /C2concealer/components.

Настройка инструмента

Это критически важно. Это open-source инструмент. Вендоры могут легко написать сигнатуры для генерируемых им профилей. Хотя запуск инструмента дает отличное начало для создания изменяемого профиля Cobalt Strike, мы рекомендуем углубиться в следующие области для настройки данных, используемых для заполнения генерируемых профилей:

/C2concealer/data/

  • dns.py (настройте поддомены DNS)
  • file_type_prepend.py (настройте, как выглядят ответы http-get-server ... они же инструкции управления C2)
  • params.py (два словаря, содержащие распространенные имена параметров и общий список слов)
  • post_ex.py (список процессов spawn_to... обязательно измените этот)
  • reg_headers.py (типичные HTTP-заголовки, такие как user-agent и server)
  • smb.py (имена SMB-каналов для использования при связи через SMB)
  • ssh.py (имена SSH-каналов и баннеров при использовании SSH-маяков)
  • stage.py (данные для изменения IOC, связанных со стейджером)
  • transform.py (преобразования данных полезной нагрузки... менять не нужно)
  • urls.py (типы файлов и компоненты пути URL, используемые для построения URI во всем инструменте... обязательно измените это)

Кроме того, вы можете настраивать различные атрибуты на протяжении всего процесса генерации профиля. Например, в файле: /C2concealer/components/stageblock.py вы можете изменить диапазон, из которого берется значение размера образа PE (около строк 73-74). Пожалуйста, просмотрите все файлы в каталоге components.

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

Дальнейшая настройка профиля

Хотя мы рассмотрели множество возможных опций языка профилей Malleable C2, есть много опций, которые мы не устанавливаем. Мы настоятельно рекомендуем вам обратиться к документации Malleable Command and Control и изменить свой профиль.

Следующие опции не установлены или установлены статически C2concealer, и вам следует рассмотреть их изменение.

http-config Block

Отсутствующая опцияПримечания
set block_useragentsБлокировать шаблоны UA, не относящиеся к маякам
set allow_useragentsРазрешить шаблоны UA (CS 4.3+)

stage Block

process-inject Block

post-ex Block

Отсутствующая опцияПримечания
set pipenameИменованный канал для задач post-ex

dns-beacon Block

Отсутствующая опцияПримечания
set ns_responseОбработка NS: drop/idle/zero. По умолчанию drop, если не задано.

Преобразования данных (все контексты transform)

Отсутствующее преобразованиеПримечания
lznt1Сжатие — нет ни в одной цепочке кодирования

Благодарности

Большое спасибо Raphael Mudge за постоянное улучшение набора функций изменяемых профилей и документации для их изучения. Также огромная благодарность @killswitch-GUI за его скрипт, автоматизирующий генерацию сертификатов LetsEncrypt для командных серверов CS. Наконец, два поста в блогах, которые сделали жизнь намного проще: пост @bluescreenofjeff (https://bluescreenofjeff.com/2017-01-24-how-to-write-malleable-c2-profiles-for-cobalt-strike/) и пост Joe Vest (https://posts.specterops.io/a-deep-dive-into-cobalt-strike-malleable-c2-6660e33b0e0b).

Журнал изменений версий

Версия 1.0

  • Публичная версия внутреннего инструмента FortyNorth Security.
  • Добавлена поддержка CS 4.0 (в частности, несколько вариантов HTTP)
  • Обновлён README.md

Версия 1.1

  • Обновлено для включения опций профиля, поддерживаемых CS 4.12
  • Обновлены строки User-Agent браузеров
  • Обновлены строки cookie до современных часто встречающихся куки
  • Добавлены опции SSH-баннера и SSH-имени канала
  • Обновлена инструкция по установке Docker
  • Исправлена поддержка Let's Encrypt
Скачать инструмент
Отсутствующая опцияПримечания
set allocatorЖёстко закодирован VirtualAlloc; отсутствует рандомизация HeapAlloc, MapViewOfFile
set magic_mz_x86 / magic_mz_x64Подмена заголовка MZ
set magic_peПодмена маркера PE
set rich_headerПодмена метаданных компилятора
set module_x86 / module_x64Замена модуля
set copy_pe_header—
set data_store_size—
set eaf_bypassОбход проверки EAT
set syscall_methodNone/Direct/Indirect (CS 4.8+)
set rdll_loaderPrependLoader/StompLoader
set rdll_use_syscalls—
set rdll_use_driploading—
set rdll_dripload_delay—
transform-obfuscate blockОпции base64, lznt1, rc4, xor полностью отсутствуют
append in transform-x86/x64Используются только prepend и strrep
Отсутствующая опцияПримечания
set allocatorЖёстко закодирован VirtualAllocEx; отсутствует рандомизация NtMapViewOfSection
set use_driploading—
set dripload_delay—
append in transform-x86/x64Используется только prepend
Execute: NtQueueApcThreadНе в блоке execute
Execute: NtQueueApcThread-sНе в блоке execute
Execute: ObfSetThreadContextНе в блоке execute
Execute: SetThreadContextНе в блоке execute
Подмена функции ExecuteСинтаксис module!function+0x## не поддерживается
set dns_stager_prepend
Добавить данные перед полезной нагрузкой стейджера
rc4 "key"
Шифрование — нет ни в одной цепочке кодирования
xor "key"XOR — нет ни в одной цепочке кодирования
uri-appendЗавершающее выражение — не реализовано