Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
C2concealer — Genera profili malleabili C2 randomizzati e validati con lint per Cobalt Strike, automatizzando la configurazione di beacon HTTP/S, DNS, SMB e SSH con randomizzazione personalizzabile degli IOC. | Kitploit
Strumenti/GitHubGitHub/redsiege/c2concealer
Frameworks per Penetration TestingGenerazione di PayloadCommand and ControlRed Teaming
GitHubredsiege/c2concealer

C2concealer

Genera profili malleabili C2 randomizzati e validati con lint per Cobalt Strike, automatizzando la configurazione di beacon HTTP/S, DNS, SMB e SSH con randomizzazione personalizzabile degli IOC.

Vedi Repository
1.1k1724 mesi faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

C2concealer

C2concealer è uno strumento da riga di comando che genera profili malleabili C2 casuali per l'uso in Cobalt Strike.

Installazione

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

Installazione Docker

Fai riferimento alle istruzioni Docker

Esempio di Utilizzo

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

Flags:
	
	(optional)
	--hostname 
		The hostname used in HTTP client and server side settings. Default is None.
	--variant 
		An integer defining the number of HTTP client/server variants to generate. 
		Recommend between 1 and 5. Max 10.

Esempio di Output della Console

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]:

Suggerimento: usa sempre un certificato SSL. Preferibilmente un certificato da LetsEncrypt o simile. Suggerimento: le varianti HTTP ti permettono di selezionare diversi IOC per il traffico HTTP su diversi beacon. Si consiglia un valore di almeno 1.

Come funziona

Abbiamo analizzato la documentazione di Cobalt Strike e definito intervalli di valori che avessero senso per ogni attributo del profilo. A volte quei dati sono semplici numeri casuali all'interno di un intervallo, altre volte dobbiamo scegliere un valore casuale da un dizionario Python. In ogni caso, abbiamo iniziato la creazione dello strumento definendo i dati che avrebbero formato un profilo valido.

Poi abbiamo diviso ogni sezione (o blocco) del profilo malleabile in un file .py separato, che contiene la logica per estrarre valori appropriati casuali per ogni attributo e poi produrre una stringa formattata per quel blocco di profilo. Concateniamo tutti i blocchi del profilo, eseguiamo alcuni rapidi controlli di coerenza e poi passiamo il profilo attraverso il linter di Cobalt Strike (c2lint). L'output è un profilo che dovrebbe funzionare per i tuoi impegni. Raccomandiamo sempre di testare il profilo (inclusi process injection e spawning) prima di avviare una campagna.

Se stai guardando il codice, ti consigliamo di iniziare con questi due file: /C2concealer/__main__.py e /C2concealer/profile.py. Dopo aver esaminato i commenti, dai un'occhiata ai generatori di singoli blocchi di profilo nella cartella: /C2concealer/components.

Personalizzazione dello strumento

Questo è fondamentale. Questo è uno strumento open source. I fornitori possono facilmente scrivere firme per i profili che genera. Anche se eseguire lo strumento fornisce un ottimo punto di partenza per costruire un profilo malleabile di Cobalt Strike, ti consigliamo di approfondire le seguenti aree per personalizzare i dati utilizzati per popolare i profili generati:

/C2concealer/data/

  • dns.py (personalizza i sottodomini DNS)
  • file_type_prepend.py (personalizza l'aspetto delle risposte http-get-server... ovvero le istruzioni di controllo C2)
  • params.py (due dizionari contenenti nomi di parametri comuni e una wordlist generica)
  • post_ex.py (elenco dei processi spawn_to... sicuramente cambia questo)
  • reg_headers.py (intestazioni HTTP tipiche come user-agent e server)
  • smb.py (nomi delle pipe SMB per l'uso quando le comunicazioni passano su SMB)
  • ssh.py (nomi delle pipe SSH e dei banner quando si usano beacon SSH)
  • stage.py (dati per cambiare gli IOC relativi allo stager)
  • transform.py (trasformazioni dei dati del payload... non c'è bisogno di cambiare questo)
  • urls.py (tipi di file e componenti del percorso URL utilizzati per costruire URI in tutto lo strumento... sicuramente cambia questo)

Inoltre, puoi personalizzare vari attributi in tutto il processo di generazione del profilo. Ad esempio, nel file: /C2concealer/components/stageblock.py, puoi cambiare l'intervallo da cui viene estratto il valore della dimensione dell'immagine PE (vicino alle righe 73-74). Esamina tutti i file nella directory dei componenti.

Se sei arrivato fino a qui, allora sappiamo che trarrai molto beneficio da questo strumento. Il modo in cui consigliamo di vedere questo strumento è che abbiamo costruito lo scheletro del codice per generare automaticamente questi profili. Ora sta a te pensare a quali valori abbiano senso per ogni attributo nelle tue campagne e aggiornare le fonti di dati.

Ulteriore personalizzazione del tuo profilo

Sebbene abbiamo coperto molte possibili opzioni per il linguaggio del profilo Malleable C2, ci sono molte opzioni che non impostiamo. Ti incoraggiamo vivamente a consultare la documentazione di Malleable Command and Control e modificare il tuo profilo.

Le seguenti opzioni non sono impostate, o sono impostate staticamente da C2concealer e dovresti considerare di cambiarle.

Blocco http-config

Opzione mancanteNote
set block_useragentsBlocca i pattern UA non beacon
set allow_useragentsWhitelist dei pattern UA (CS 4.3+)

Blocco stage

Blocco process-inject

Blocco post-ex

Opzione mancanteNote
set pipenamePipe con nome per i job post-ex

Blocco dns-beacon

Opzione mancanteNote
set ns_responseGestione NS drop/idle/zero. Se non impostato, predefinito drop.
set dns_stager_prepend

Trasformazioni dei dati (tutti i contesti di trasformazione)

Trasformazione mancanteNote
lznt1Compressione — non in nessuna catena di encoding
rc4 "key"

Riconoscimenti

Un grande ringraziamento a Raphael Mudge per aver migliorato costantemente il set di funzionalità dei profili malleabili e la documentazione per imparare a usarli. Inoltre, un enorme grazie a @killswitch-GUI per il suo script che automatizza la generazione di certificati LetsEncrypt per i server team di CS. Infine, due post di blog che hanno reso la vita molto più facile: il post di @bluescreenofjeff (https://bluescreenofjeff.com/2017-01-24-how-to-write-malleable-c2-profiles-for-cobalt-strike/) e il post di Joe Vest (https://posts.specterops.io/a-deep-dive-into-cobalt-strike-malleable-c2-6660e33b0e0b).

Changelog delle versioni

Versione 1.0

  • Versione pubblica dello strumento interno di FortyNorth Security.
  • Aggiunto supporto per CS 4.0 (in particolare varianti HTTP multiple)
  • Aggiornato README.md

Versione 1.1

  • Aggiornato per includere le opzioni di profilo supportate da CS 4.12
  • Aggiornate le stringhe UA del browser
  • Aggiornate le stringhe dei cookie con cookie moderni osservati comunemente
  • Aggiunte opzioni per banner SSH e nomi pipe SSH
  • Aggiornate le istruzioni per l'installazione Docker
  • Corretto il supporto Let's Encrypt
Scarica lo strumento
Opzione mancanteNote
set allocatorHardcoded VirtualAlloc; manca la randomizzazione HeapAlloc, MapViewOfFile
set magic_mz_x86 / magic_mz_x64Spoofing dell'intestazione MZ
set magic_peSpoofing del marcatore PE
set rich_headerSpoofing dei metadati del compilatore
set module_x86 / module_x64Module stomping
set copy_pe_header—
set data_store_size—
set eaf_bypassBypass del controllo EAT
set syscall_methodNessuno/Diretto/Indiretto (CS 4.8+)
set rdll_loaderPrependLoader/StompLoader
set rdll_use_syscalls—
set rdll_use_driploading—
set rdll_dripload_delay—
Blocco transform-obfuscateOpzioni base64, lznt1, rc4, xor completamente assenti
append in transform-x86/x64Vengono usati solo prepend e strrep
Opzione mancanteNote
set allocatorHardcoded VirtualAllocEx; manca la randomizzazione NtMapViewOfSection
set use_driploading—
set dripload_delay—
append in transform-x86/x64Viene usato solo prepend
Execute: NtQueueApcThreadNon nel blocco execute
Execute: NtQueueApcThread-sNon nel blocco execute
Execute: ObfSetThreadContextNon nel blocco execute
Execute: SetThreadContextNon nel blocco execute
Spoofing della funzione ExecuteSintassi module!function+0x## non supportata
Anteponi dati ai payload staged
Cifratura — non in nessuna catena di encoding
xor "key"XOR — non in nessuna catena di encoding
uri-appendDichiarazione di terminazione — non implementata