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
Tools/GitHubGitHub/redsiege/c2concealer
Penetrationstest-FrameworksPayload-GenerierungCommand and ControlRed Teaming
GitHubredsiege/c2concealer

C2concealer

Erzeugt randomisierte, lint-validierte C2-Malleable-Profile für Cobalt Strike und automatisiert die Konfiguration von HTTP/S-, DNS-, SMB- und SSH-Beacons mit anpassbarer IOC-Randomisierung.

Repository anzeigen
1.1k172vor 4 MonatenVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

C2concealer

C2concealer ist ein Kommandozeilen-Tool, das randomisierte C2-Malleable-Profile für die Verwendung in Cobalt Strike generiert.

Installation

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

Docker-Installation

Siehe die Docker-Anleitung

Beispiel zur Verwendung

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

Flags:
	
	(optional)
	--hostname 
		Der in den HTTP-Client- und Server-Einstellungen verwendete Hostname. Standard ist None.
	--variant 
		Eine ganze Zahl, die die Anzahl der zu generierenden HTTP-Client/Server-Varianten definiert. 
		Empfehlung zwischen 1 und 5. Max. 10.

Beispiel für Konsolenausgabe

root@kitploit:~
root@kali:~# C2concealer --variant 1 --hostname google.com
[i] Suche nach dem c2lint-Tool auf Ihrem System (Teil von Cobalt Strike). Könnte 10-20 Sekunden dauern.
[i] c2lint im Verzeichnis /opt/cobaltstrike/c2lint gefunden.

Wählen Sie eine SSL-Option:
1. Selbstsigniertes SSL-Zertifikat (einfach ein paar Details eingeben)
2. LetsEncrypt-SSL-Zertifikat (erfordert einen temporären A-Eintrag für die entsprechende Domain, der auf diese Maschine zeigt)
3. Vorhandener Keystore
4. Kein SSL

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

Tipp: Verwenden Sie immer ein SSL-Zertifikat. Vorzugsweise ein Zertifikat von LetsEncrypt oder ähnlich. Tipp: HTTP-Varianten ermöglichen es Ihnen, verschiedene IOCs für den HTTP-Verkehr auf verschiedenen Beacons auszuwählen. Empfohlen wird ein Wert von mindestens 1.

So funktioniert es

Wir haben die Cobalt Strike-Dokumentation gründlich durchgearbeitet und Wertebereiche definiert, die für jedes Profilattribut sinnvoll sind. Manchmal sind diese Daten so einfach wie eine zufällige Ganzzahl in einem bestimmten Bereich, manchmal müssen wir einen zufälligen Wert aus einem Python-Wörterbuch auswählen. So oder so, wir begannen die Tool-Erstellung mit der Definition der Daten, die ein gültiges Profil ergeben. Dann teilten wir jeden Malleable-Profilabschnitt (oder Block) in eine separate .py-Datei auf, die die Logik enthält, um zufällige passende Werte für jedes Attribut zu ziehen und dann einen formatierten String für diesen Profilblock auszugeben. Wir verketten alle Profilblöcke, führen ein paar schnelle Konsistenzprüfungen durch und lassen das Profil durch den Cobalt Strike Linter (c2lint) laufen. Das Ergebnis ist ein Profil, das sollte für Ihre Engagements funktionieren. Wir empfehlen immer, das Profil (einschließlich Prozessinjektion und Spawning) vor dem Start einer Kampagne zu testen.

Wenn Sie sich den Code ansehen, empfehlen wir, mit diesen beiden Dateien zu beginnen: /C2concealer/__main__.py und /C2concealer/profile.py. Nach Durchsicht der Kommentare sehen Sie sich die einzelnen Profilblock-Generatoren im Ordner an: /C2concealer/components.

Anpassen des Tools

Dies ist entscheidend. Dies ist ein Open-Source-Tool. Anbieter können leicht Signaturen für die von ihm generierten Profile schreiben. Während die Ausführung des Tools einen hervorragenden Ausgangspunkt für die Erstellung eines anpassbaren Cobalt Strike-Profils bietet, empfehlen wir, in die folgenden Bereiche einzutauchen, um die Daten anzupassen, die zur Befüllung der generierten Profile verwendet werden:

/C2concealer/data/

  • dns.py (DNS-Subdomains anpassen)
  • file_type_prepend.py (anpassen, wie http-get-server-Antworten aussehen ... also C2-Steuerungsanweisungen)
  • params.py (zwei Wörterbücher mit gebräuchlichen Parameternamen und einer generischen Wortliste)
  • post_ex.py (Spawn_to-Prozessliste ... auf jeden Fall diese ändern)
  • reg_headers.py (typische HTTP-Header wie User-Agent und Server)
  • smb.py (SMB-Pipe-Namen für die Nutzung, wenn die Kommunikation über SMB läuft)
  • ssh.py (SSH-Pipe- und Banner-Namen bei Verwendung von SSH-Beacons)
  • stage.py (Daten zur Änderung von IOCs im Zusammenhang mit dem Stager)
  • transform.py (Payload-Datentransformationen ... muss nicht geändert werden)
  • urls.py (Dateitypen und URL-Pfadkomponenten, die zum Erstellen von URIs im gesamten Tool verwendet werden ... auf jeden Fall diese ändern)

Zusätzlich können Sie während des gesamten Profilerstellungsprozesses verschiedene Attribute anpassen. Zum Beispiel in der Datei: /C2concealer/components/stageblock.py können Sie den Bereich ändern, aus dem der PE-Image-Größenwert bezogen wird (in der Nähe der Zeilen 73-74). Bitte sehen Sie sich alle verschiedenen Dateien im Verzeichnis components an.

Wenn Sie es so weit geschafft haben, wissen wir, dass Sie viel Nutzen aus diesem Tool ziehen werden. Wir empfehlen, dieses Tool so zu betrachten, dass wir den Grundgerüstcode gebaut haben, um diese Profile automatisch zu generieren. Jetzt liegt es an Ihnen, zu überlegen, welche Werte für jedes Attribut für Ihre Kampagnen sinnvoll sind und die Datenquellen zu aktualisieren.

Weiteres Anpassen Ihres Profils

Obwohl wir viele mögliche Optionen für die Malleable-C2-Profilsprache abgedeckt haben, gibt es viele Optionen, die wir nicht setzen. Wir empfehlen Ihnen dringend, die Malleable Command and Control Dokumentation zu konsultieren und Ihr Profil zu modifizieren.

Die folgenden Optionen werden nicht gesetzt oder werden statisch von C2concealer gesetzt, und Sie sollten in Betracht ziehen, sie zu ändern.

http-config-Block

Fehlende OptionAnmerkungen
set block_useragentsNicht-Beacon-UA-Muster blockieren
set allow_useragentsUA-Muster auf die Whitelist setzen (CS 4.3+)

stage-Block

process-inject-Block

post-ex-Block

Fehlende OptionAnmerkungen
set pipenameNamed Pipe für Post-Ex-Jobs

dns-beacon-Block

Fehlende OptionAnmerkungen
set ns_responsedrop/idle/zero NS-Handhabung. Standardmäßig drop, wenn nicht gesetzt.
set dns_stager_prepend

Daten-Transformationen (alle Transformationskontexte)

Fehlende TransformationAnmerkungen
lznt1Kompression — nicht in einer Kodierungskette
rc4 "key"

Danksagungen

Großer Dank an Raphael Mudge für die ständige Verbesserung der Malleable-Profil-Funktionen und der Dokumentation, um darüber zu lernen. Ebenfalls großen Dank an @killswitch-GUI für sein Skript, das die LetsEncrypt-Zertifikatserstellung für CS-Teamserver automatisiert. Schließlich zwei Blogbeiträge, die das Leben so viel einfacher gemacht haben: @bluescreenofjeffs Beitrag (https://bluescreenofjeff.com/2017-01-24-how-to-write-malleable-c2-profiles-for-cobalt-strike/) und Joe Vests Beitrag (https://posts.specterops.io/a-deep-dive-into-cobalt-strike-malleable-c2-6660e33b0e0b).

Versions-Changelog

Version 1.0

  • Öffentliche Version des internen Tools von FortyNorth Security.
  • Unterstützung für CS 4.0 hinzugefügt (insbesondere mehrere HTTP-Varianten)
  • README.md aktualisiert

Version 1.1

  • Aktualisiert, um Profiloptionen zu enthalten, die von CS 4.12 unterstützt werden
  • Browser-UA-Strings aktualisiert
  • Cookie-Strings auf moderne, häufig beobachtete Cookies aktualisiert
  • SSH-Banner- und SSH-Pipe-Name-Optionen hinzugefügt
  • Docker-Installationsanleitung aktualisiert
  • Let's Encrypt-Unterstützung korrigiert
Tool herunterladen
Fehlende OptionAnmerkungen
set allocatorFest codiert VirtualAlloc; fehlt HeapAlloc, MapViewOfFile Randomisierung
set magic_mz_x86 / magic_mz_x64MZ-Header-Spoofing
set magic_pePE-Marker-Spoofing
set rich_headerCompiler-Metadaten-Spoofing
set module_x86 / module_x64Module-Stomping
set copy_pe_header—
set data_store_size—
set eaf_bypassEAT-Prüfung umgehen
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-Blockbase64, lznt1, rc4, xor Optionen vollständig fehlend
append in transform-x86/x64Nur prepend und strrep werden verwendet
Fehlende OptionAnmerkungen
set allocatorFest codiert VirtualAllocEx; fehlt NtMapViewOfSection Randomisierung
set use_driploading—
set dripload_delay—
append in transform-x86/x64Nur prepend verwendet
Execute: NtQueueApcThreadNicht im Execute-Block
Execute: NtQueueApcThread-sNicht im Execute-Block
Execute: ObfSetThreadContextNicht im Execute-Block
Execute: SetThreadContextNicht im Execute-Block
Execute-Funktionsspoofingmodule!function+0x## Syntax nicht unterstützt
Daten an gestaffelte Payloads voranstellen
Verschlüsselung — nicht in einer Kodierungskette
xor "key"XOR — nicht in einer Kodierungskette
uri-appendAbschlussanweisung — nicht implementiert