Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
Malleable-C2-Randomizer — Ein Skript zum Randomisieren von Cobalt Strike Malleable C2-Profilen, um die Wahrscheinlichkeit zu verringern, von signaturbasierten Erkennungskontrollen erkannt zu werden. | Kitploit
Tools/GitHubGitHub/bluscreenofjeff/malleable-c2-randomizer
Exploit-FrameworksPayload-GenerierungIDS/IPS-UmgehungPenetrationstestsCommand and ControlRed Teaming
GitHubbluscreenofjeff/malleable-c2-randomizer

Malleable-C2-Randomizer

Ein Skript zum Randomisieren von Cobalt Strike Malleable C2-Profilen, um die Wahrscheinlichkeit zu verringern, von signaturbasierten Erkennungskontrollen erkannt zu werden.

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
Repository anzeigen
45486vor 3 JahrenVon Kitploit geprüft

Malleable-C2-Randomizer

Dieses Skript randomisiert Malleable-C2-Profile für Cobalt Strike mithilfe einer Metasprache, wodurch hoffentlich die Wahrscheinlichkeit verringert wird, signaturbasierte Erkennungsmaßnahmen auszulösen. Kurz gesagt, das Skript parst die bereitgestellte Vorlage, ersetzt die Variablen durch einen zufälligen Wert aus einer bereitgestellten oder integrierten Wortliste, testet die neue Vorlage mit c2lint und gibt (wenn keine c2lint-Fehler auftreten) das neue Malleable-C2-Profil aus.

Beispielhafte Malleable-C2-Profile, die mit diesem Skript kompatibel sind, finden Sie im Verzeichnis Sample Templates dieses Repos.

Weitere Informationen zu diesem Skript finden Sie in meinem Blogbeitrag Randomized Malleable C2 Profiles Made Easy.

Inhaltsverzeichnis

  • Skript-Syntax
    • Grundlegende Optionen
    • Benutzerdefinierte Wortlisten
  • Substitutions-Metasprache
    • Liste der Variablen
    • Wortlisten erstellen
  • Beispielvorlage und Ausgabe
  • Weitere Ressourcen

Skript-Syntax

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]

Grundlegende Optionen

ParameterBeschreibung

Benutzerdefinierte Wortlisten

Wenn keine Wortliste bereitgestellt wird, wird standardmäßig eine integrierte Liste verwendet. Weitere Informationen zum Erstellen dieser Listen finden Sie unten oder im Ordner Sample Wordlists dieses Repos.

Die meisten dieser Wortlistenvariablen stehen in direktem Zusammenhang mit Malleable-C2-Optionen. Weitere Informationen darüber, was diese Profiloptionen bewirken, finden Sie in der offiziellen Dokumentation.

Substitutions-Metasprache

Die Substitutions-Metasprache besteht aus spezifischen Variablen, von denen einige optionale Wiederholungsanzahlen unterstützen, die in doppelte Prozentzeichen eingeschlossen sind, etwa so:

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

Als weiteres Beispiel ergibt die folgende Variable 20 alphanumerische Zeichen:

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

Liste der Variablen

Wortlisten erstellen

Wortlistendateien sind einfach zeilengetrennte, tabgetrennte oder fortlaufende Zeichenketten (abhängig vom Wortlistentyp), die in einer Textdatei abgelegt werden.

Die folgenden Wortlisten sollten zeilengetrennt sein, wobei jeder Eintrag in einer neuen Zeile steht:

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

Die spawnto-Wortliste ist etwas komplizierter. Malleable C2 erfordert eine x86- und eine x64-Option, um das gesamte Prozess-Spawning zu ändern. Daher sollte jede Zeile der Wortliste sowohl den x86- als auch den x64-Prozesspfad enthalten, getrennt durch einen Tab, wobei der x86-Prozess zuerst aufgeführt wird. Zum Beispiel:

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

Es ist wichtig zu beachten, dass die Zeichenfolgen syswow64 und sysnative in den Prozesspfaden kleingeschrieben sein sollten.

Der letzte Wortlistentyp ist der benutzerdefinierte Zeichensatz. Diese Datei sollte alle Zeichen enthalten, die das Skript zufällig ersetzen soll. Zum Beispiel gibt eine Zeichensatzdatei AEIOUY zusammen mit einer Variablen %%custom:5%% fünf zufällige Zeichen aus der Zeichensatzzeichenfolge aus. Beachten Sie beim Erstellen dieses Zeichensatzes, dass einige Zeichen nicht in einer URI vorkommen dürfen und die Kommunikation von Beacon stören können.

Beispiel-Wortlisten finden Sie im Verzeichnis Sample Wordlists dieses Repos.

Beispielvorlage und Ausgabe

Hier ist ein Ausschnitt aus einem modifizierten Amazon-Profil:

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";
        }
    }
}

Und hier sind zwei Ausgabesätze aus demselben Profil:

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";
        }
    }
}

Weitere Ressourcen

  • 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
Tool herunterladen
-profile, -pPfad zur Malleable-C2-Vorlage, die randomisiert werden soll (ERFORDERLICH)
-count, -cDie Anzahl der zu erstellenden randomisierten Profile {Standard = 1}
-cobalt, -dDas Verzeichnis, in dem sich Cobalt Strike befindet (für c2lint) {Standard = aktuelles Verzeichnis}
-output, -oBasisname der Ausgabe {Standard = Basisname der Vorlage und zufällige Zeichenfolge}
-notest, -nTesten mit c2lint überspringen (Flag)
ParameterBeschreibung
-charsetDatei mit einem benutzerdefinierten Zeichensatz für die Variable %%customchar%%
-wordlistDatei mit einer Liste benutzerdefinierter Wörter für die Variable %%word%%
-useragentDatei mit einer Liste von User-Agents
-spawntoDatei mit einer Liste benutzerdefinierter spawnto-Prozesse
-pipenameDatei mit einer Liste benutzerdefinierter Pipename-Werte
-pipename_stagerDatei mit einer Liste benutzerdefinierter pipename_stager-Werte
-dns_stager_subhostDatei mit einer Liste benutzerdefinierter dns_stager_subhost-Werte
-dns_stager_prependDatei mit einer Liste benutzerdefinierter dns_stager_prepend-Werte
VariableBeschreibungUnterstützt Anzahl?
alphanumericGibt einen zufälligen ASCII-Buchstaben (groß/klein gemischt) oder eine Ziffer ausJa
alphanumspecialGibt einen zufälligen ASCII-Buchstaben (groß/klein gemischt), eine Ziffer oder ein Satzzeichen ausJa
alphanumspecialurlGibt einen zufälligen ASCII-Buchstaben (groß/klein gemischt), eine Ziffer oder eines der folgenden Zeichen aus: -._~Ja
alphaupperGibt einen zufälligen großgeschriebenen ASCII-Buchstaben ausJa
alphalowerGibt einen zufälligen kleingeschriebenen ASCII-Buchstaben ausJa
alphauppernumberGibt einen zufälligen großgeschriebenen ASCII-Buchstaben oder eine Ziffer ausJa
alphalowernumberGibt einen zufälligen kleingeschriebenen ASCII-Buchstaben oder eine Ziffer ausJa
alphaGibt einen zufälligen ASCII-Buchstaben ausJa
numberGibt eine zufällige Ziffer ausJa
hexGibt eine zufällige hexadezimale Ziffer ausJa
netbiosGibt einen zufälligen ASCII-Buchstaben (groß/klein gemischt), eine Ziffer oder eines der folgenden Zeichen aus: !@#$%^&)(.-'_{}~Ja
customGibt ein zufälliges Zeichen aus der bereitgestellten Datei charset ausJa
wordGibt ein zufälliges Wort aus der bereitgestellten oder integrierten Wortliste ausJa
booleanGibt 'True' oder 'False' ausJa
useragentGibt einen zufälligen User-Agent aus der bereitgestellten oder integrierten Liste ausNein
spawnto_x86Gibt einen zufälligen x86-Prozesspfad aus der bereitgestellten oder integrierten Liste ausNein
spawnto_x64Gibt einen zufälligen x64-Prozesspfad aus der bereitgestellten oder integrierten Liste ausNein
pipenameGibt einen zufälligen Pipename aus der bereitgestellten oder integrierten Liste ausNein
pipename_stagerGibt einen zufälligen pipename_stager aus der bereitgestellten oder integrierten Liste ausNein
dns_stager_subhostGibt einen zufälligen dns_stager_subhost aus der bereitgestellten oder integrierten Liste ausNein
dns_stager_prependGibt einen zufälligen dns_stager_prepend aus der bereitgestellten oder integrierten Liste ausNein