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

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

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

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

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

Категории

Все категории
Loading categories
Malleable-C2-Randomizer — Скрипт для рандомизации профилей Cobalt Strike Malleable C2 и снижения вероятности обнаружения сигнатурными средствами защиты. | Kitploit
Инструменты/GitHubGitHub/bluscreenofjeff/malleable-c2-randomizer
Фреймворки для эксплойтовГенерация полезной нагрузкиОбход IDS/IPSТестирование на ПроникновениеКомандование и УправлениеRed Teaming
GitHubbluscreenofjeff/malleable-c2-randomizer

Malleable-C2-Randomizer

Скрипт для рандомизации профилей Cobalt Strike Malleable C2 и снижения вероятности обнаружения сигнатурными средствами защиты.

Популярное

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

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

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

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

Смотреть все инструменты →
Поделиться
Репозиторий
454863 лет назадПроверено Kitploit

Malleable-C2-Randomizer

Этот скрипт рандомизирует Malleable C2 профили Cobalt Strike с помощью метаязыка, что, надеемся, снизит вероятность срабатывания сигнатурных средств обнаружения. Вкратце, скрипт разбирает предоставленный шаблон, заменяет переменные на случайные значения из предоставленного или встроенного списка слов, проверяет новый шаблон с помощью c2lint и (если ошибок c2lint нет) выводит новый Malleable C2 профиль.

Примеры Malleable C2 профилей, совместимых с этим скриптом, можно найти в каталоге Sample Templates этого репозитория.

Подробнее об этом скрипте читайте в моём блоге: Randomized Malleable C2 Profiles Made Easy.

Оглавление

  • Синтаксис скрипта
    • Основные параметры
    • Пользовательские списки слов
  • Метаязык подстановок
    • Список переменных
    • Создание списков слов
  • Пример шаблона и результата
  • Дополнительные ресурсы

Синтаксис скрипта

root@kitploit:~
python malleable-c2-randomizer.py [-h] -profile PROFILE
                                  [-count COUNT]
                                  [-cobalt COBALT]
                                  [-output OUTPUT]
                                  [-notest]
                                  [-charset CHARSET]
                                  [-wordlist WORDLIST]
                                  [-useragent USERAGENT]
                                  [-spawnto SPAWNTO]
                                  [-pipename PIPENAME]
                                  [-pipename_stager PIPENAME_STAGER]
                                  [-dns_stager_subhost DNS_STAGER_SUBHOST]

Основные параметры

ПараметрОписание

Пользовательские списки слов

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

Большинство этих переменных списков слов напрямую связано с опциями Malleable C2. Дополнительную информацию о том, что делают эти опции профиля, см. в официальной документации.

Метаязык подстановок

Метаязык подстановок состоит из определённых переменных, некоторые из которых допускают указание необязательного количества повторений, заключённых в двойные знаки процента, например:

root@kitploit:~
%%variable:count%%

В качестве другого примера, следующая переменная даст 20 буквенно-цифровых символов:

root@kitploit:~
%%alphanumeric:20%%

Список переменных

Создание списков слов

Файлы списков слов — это просто строки, разделённые переводами строк, табуляцией или непрерывные строки (в зависимости от типа списка), помещённые в текстовый файл.

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

  • wordlist
  • useragent
  • pipename
  • pipename_stager
  • dns_stager_subhost
  • dns_stager_prepend

Список слов spawnto немного сложнее. Malleable C2 требует указания опций x86 и x64 для изменения всех порождаемых процессов. Поэтому каждая строка списка должна содержать оба пути процесса — x86 и x64, разделённые табуляцией, причём сначала указывается процесс x86. Например:

root@kitploit:~
%windir%\\syswow64\\eventvwr.exe	%windir%\\sysnative\\eventvwr.exe

Важно отметить, что строки syswow64 и sysnative в путях процессов должны быть в нижнем регистре.

Последний тип списка — пользовательский набор символов. Этот файл должен содержать любые символы для случайной подстановки скриптом. Например, файл набора символов AEIOUY и переменная %%custom:5%% выведут пять случайных символов из строки набора. При создании такого набора имейте в виду, что некоторые символы запрещены в URI и могут помешать связи Beacon.

Примеры списков слов см. в каталоге Sample Wordlists этого репозитория.

Пример шаблона и результата

Вот фрагмент изменённого профиля Amazon:

root@kitploit:~
# This profile has been modified to use with the Malleable C2 Profile Randomizer

#
# Amazon browsing traffic profile
# 
# Author: @harmj0y
#

set sleeptime "%%number:2%%00";
set jitter    "1%%number%%";
set maxdns    "24%%number%%";
set useragent "%%useragent%%";

http-get {

    set uri "/s/ref=nb_sb_noss_1/%%number:3%%-%%number:8%%-%%number:7%%/field-keywords=%%word%%";

    client {

        header "Accept" "*/*";
        header "Host" "www.amazon.com";

        metadata {
            base64;
            prepend "session-token=";
            prepend "skin=noskin;";
            append "csm-hit=s-%%alphanumeric:20%%|%%number:13%%";
            header "Cookie";
        }
    }
}

А вот два результата для одного и того же профиля:

root@kitploit:~
# This profile has been modified to use with the Malleable C2 Profile Randomizer

#
# Amazon browsing traffic profile
# 
# Author: @harmj0y
#

set sleeptime "5600";
set jitter    "19";
set maxdns    "244";
set useragent "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:40.0) Gecko/20100101 Firefox/40.1";

http-get {

    set uri "/s/ref=nb_sb_noss_1/818-61846941-6716865/field-keywords=number";

    client {

        header "Accept" "*/*";
        header "Host" "www.amazon.com";

        metadata {
            base64;
            prepend "session-token=";
            prepend "skin=noskin;";
            append "csm-hit=s-UXnlEVYWc36qEuDMFPzW|2872195700726";
            header "Cookie";
        }
    }
}
root@kitploit:~
# This profile has been modified to use with the Malleable C2 Profile Randomizer

#
# Amazon browsing traffic profile
# 
# Author: @harmj0y
#

set sleeptime "7400";
set jitter    "19";
set maxdns    "246";
set useragent "Mozilla/5.0 (Windows NT 10.0; WOW64)";

http-get {

    set uri "/s/ref=nb_sb_noss_1/684-10075672-1686806/field-keywords=year";

    client {

        header "Accept" "*/*";
        header "Host" "www.amazon.com";

        metadata {
            base64;
            prepend "session-token=";
            prepend "skin=noskin;";
            append "csm-hit=s-ub5oBmGd0pnDoImCjDyK|2539750656854";
            header "Cookie";
        }
    }
}

Дополнительные ресурсы

  • Рандомизированные Malleable C2 профили — это просто — Jeff Dimmock
  • Документация по Malleable Command and Control — Raphael Mudge
  • Malleable C2 Profiles — GitHub
  • Как писать Malleable C2 профили для Cobalt Strike — Jeff Dimmock
  • Cobalt Strike 2.0 — Malleable Command and Control — Raphael Mudge
  • Cobalt Strike 3.6 — путь к повышению привилегий — Raphael Mudge
  • A Brave New World: Malleable C2 — Will Schroeder
Скачать инструмент
-profile, -pПуть к шаблону Malleable C2 для рандомизации (ОБЯЗАТЕЛЬНО)
-count, -cКоличество создаваемых рандомизированных профилей {По умолчанию = 1}
-cobalt, -dКаталог, в котором находится Cobalt Strike (для c2lint) {По умолчанию = текущий каталог}
-output, -oБазовое имя выходного файла {По умолчанию = базовое имя шаблона и случайная строка}
-notest, -nПропустить проверку с помощью c2lint (флаг)
ПараметрОписание
-charsetФайл с пользовательским набором символов для использования с переменной %%customchar%%
-wordlistФайл со списком пользовательских слов для использования с переменной %%word%%
-useragentФайл со списком useragent
-spawntoФайл со списком пользовательских процессов spawnto
-pipenameФайл со списком пользовательских значений pipename
-pipename_stagerФайл со списком пользовательских значений pipename_stager
-dns_stager_subhostФайл со списком пользовательских значений dns_stager_subhost
-dns_stager_prependФайл со списком пользовательских значений dns_stager_prepend
ПеременнаяОписаниеПоддерживает количество?
alphanumericВыводит случайную букву или цифру ASCII в смешанном регистреДа
alphanumspecialВыводит случайную букву ASCII, цифру или знак пунктуации в смешанном регистреДа
alphanumspecialurlВыводит случайную букву ASCII, цифру или один из следующих символов: -._~Да
alphaupperВыводит случайную заглавную букву ASCIIДа
alphalowerВыводит случайную строчную букву ASCIIДа
alphauppernumberВыводит случайную заглавную букву ASCII или цифруДа
alphalowernumberВыводит случайную строчную букву ASCII или цифруДа
alphaВыводит случайную букву ASCIIДа
numberВыводит случайную цифруДа
hexВыводит случайную шестнадцатеричную цифруДа
netbiosВыводит случайную букву ASCII, цифру или один из следующих символов: !@#$%^&)(.-'_{}~Да
customСоответствует случайному символу из предоставленного файла charsetДа
wordВыводит случайное слово из предоставленного или встроенного списка словДа
booleanВыводит 'True' или 'False'Да
useragentВыводит случайный useragent из предоставленного или встроенного спискаНет
spawnto_x86Выводит случайный путь процесса x86 из предоставленного или встроенного спискаНет
spawnto_x64Выводит случайный путь процесса x64 из предоставленного или встроенного спискаНет
pipenameВыводит случайное значение pipename из предоставленного или встроенного спискаНет
pipename_stagerВыводит случайное значение pipename_stager из предоставленного или встроенного спискаНет
dns_stager_subhostВыводит случайное значение dns_stager_subhost из предоставленного или встроенного спискаНет
dns_stager_prependВыводит случайное значение dns_stager_prepend из предоставленного или встроенного спискаНет