Skip to content
KitploitKITPLOIT
도구블로그
제출
도구블로그
제출

해킹, 침투 테스트 및 사이버 보안 도구를 당신의 보안 무기고에!

Kitploit은 해킹, 사이버 보안 및 침투 테스트 도구 디렉토리입니다. 최신 프로젝트 업데이트를 발견하여 취약점을 찾고, 시스템을 분석하고, 테스트를 자동화하고, 보안을 강화하세요.

··피드·문의·개인정보·© 2026 Kitploit

도구 디렉토리

카테고리

모든 카테고리 보기
Loading categories
Malleable-C2-Randomizer — 코발트 스트라이크의 Malleable C2 프로필을 무작위화하고 시그니처 기반 탐지 통제에 감지될 가능성을 줄여주는 스크립트입니다. | Kitploit
도구/GitHubGitHub/bluscreenofjeff/malleable-c2-randomizer
Exploit FrameworksPayload GenerationIDS/IPS EvasionPenetration TestingCommand and ControlRed Teaming
GitHubbluscreenofjeff/malleable-c2-randomizer

Malleable-C2-Randomizer

코발트 스트라이크의 Malleable C2 프로필을 무작위화하고 시그니처 기반 탐지 통제에 감지될 가능성을 줄여주는 스크립트입니다.

인기

모두 보기 →

커뮤니티에서 가장 많이 사용되는 도구를 찾아보세요.

모든 도구 탐색

도구 컬렉션을 둘러보세요

모든 도구 보기 →
공유
저장소 보기
454863년 전Kitploit 검토 완료

Malleable-C2-Randomizer

이 스크립트는 메타언어를 사용하여 Cobalt Strike의 Malleable C2 프로필을 무작위화하여 시그니처 기반 탐지 컨트롤에 걸릴 가능성을 줄여줍니다. 간단히 말하면, 스크립트는 제공된 템플릿을 파싱하고, 변수를 제공된 또는 내장된 단어 목록에서 무작위 값으로 대체하며, 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]

기본 옵션

매개변수설명
-profile, -p무작위화할 Malleable C2 템플릿 경로 (필수)
-count, -c생성할 무작위 프로필 수 {기본값 = 1}

사용자 정의 단어 목록

단어 목록이 제공되지 않으면 기본적으로 내장된 목록이 사용됩니다. 이러한 목록을 만드는 방법에 대한 자세한 내용은 아래 또는 이 리포지토리의 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%%인 경우 문자 집합 문자열에서 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";
        }
    }
}

추가 자료

  • Randomized Malleable C2 Profiles Made Easy - Jeff Dimmock
  • Malleable Command and Control Documentation - Raphael Mudge
  • Malleable C2 Profiles - GitHub
  • How to Write Malleable C2 Profiles for Cobalt Strike - Jeff Dimmock
  • Cobalt Strike 2.0 - Malleable Command and Control - Raphael Mudge
  • Cobalt Strike 3.6 - A Path for Privilege Escalation - Raphael Mudge
  • A Brave New World: Malleable C2 - Will Schroeder
도구 다운로드
-cobalt, -d
Cobalt Strike가 위치한 디렉토리 (c2lint용) {기본값 = 현재 디렉토리}
-output, -o출력 기본 이름 {기본값 = 템플릿 기본 이름과 무작위 문자열}
-notest, -nc2lint 테스트 건너뛰기 (플래그)
매개변수설명
-charset%%customchar%% 변수와 함께 사용할 사용자 정의 문자 집합이 있는 파일
-wordlist%%word%% 변수와 함께 사용할 사용자 정의 단어 목록이 있는 파일
-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무작위 16진수 출력예
netbios무작위 대소문자 혼합 ASCII 문자, 숫자 또는 다음 문자 중 하나: !@#$%^&)(.-'_{}~ 출력예
custom제공된 charset 파일에서 무작위 문자 매핑예
word제공된 또는 내장 단어 목록에서 무작위 단어 출력예
boolean'True' 또는 'False' 출력예
useragent제공된 또는 내장 목록에서 무작위 사용자 에이전트 출력아니요
spawnto_x86제공된 또는 내장 목록에서 무작위 x86 프로세스 경로 출력아니요
spawnto_x64제공된 또는 내장 목록에서 무작위 x64 프로세스 경로 출력아니요
pipename제공된 또는 내장 목록에서 무작위 파이프 이름 출력아니요
pipename_stager제공된 또는 내장 목록에서 무작위 pipename_stager 출력아니요
dns_stager_subhost제공된 또는 내장 목록에서 무작위 dns_stager_subhost 출력아니요
dns_stager_prepend제공된 또는 내장 목록에서 무작위 dns_stager_prepend 출력아니요