Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
C2concealer — Génère des profils malléables C2 randomisés et validés par lint pour Cobalt Strike, automatisant la configuration des beacons HTTP/S, DNS, SMB et SSH avec une randomisation personnalisable des indicateurs de compromission (IOC). | Kitploit
Outils/GitHubGitHub/redsiege/c2concealer
Frameworks de Tests d'IntrusionGénération de PayloadsCommandement et ContrôleRed Teaming
GitHubredsiege/c2concealer

C2concealer

Génère des profils malléables C2 randomisés et validés par lint pour Cobalt Strike, automatisant la configuration des beacons HTTP/S, DNS, SMB et SSH avec une randomisation personnalisable des indicateurs de compromission (IOC).

Voir le dépôt
1.1k1723il y a 5 moisVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

C2concealer

C2concealer est un outil en ligne de commande qui génère des profils malléables C2 aléatoires pour une utilisation dans Cobalt Strike.

Installation

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

Installation Docker

Consultez les instructions Docker

Exemple d'utilisation

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

Flags :
	
	(facultatif)
	--hostname 
		Le nom d'hôte utilisé dans les paramètres côté client et serveur HTTP. Par défaut : Aucun.
	--variant 
		Un entier définissant le nombre de variantes client/serveur HTTP à générer.
		Recommandé entre 1 et 5. Maximum 10.

Exemple de sortie console

root@kitploit:~
root@kali:~# C2concealer --variant 1 --hostname google.com
[i] Recherche de l'outil c2lint sur votre système (partie de Cobalt Strike). Cela peut prendre 10 à 20 secondes.
[i] c2lint trouvé dans le répertoire /opt/cobaltstrike/c2lint.

Choisissez une option SSL :
1. Certificat SSL auto-signé (il suffit de fournir quelques détails)
2. Certificat SSL LetsEncrypt (nécessite un enregistrement A temporaire pour le domaine concerné pointant vers cette machine)
3. Keystore existant
4. Pas de SSL

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

Astuce : Utilisez toujours un certificat SSL. De préférence un certificat de LetsEncrypt ou similaire. Astuce : Les variantes HTTP vous permettent de sélectionner différents IOC pour le trafic HTTP sur différentes balises. Recommandez une valeur d'au moins 1.

Comment ça fonctionne

Nous avons minutieusement parcouru la documentation de Cobalt Strike et défini des plages de valeurs qui auraient du sens pour chaque attribut de profil. Parfois, ces données sont aussi simples qu'un entier aléatoire dans une certaine plage, et d'autres fois nous devons choisir une valeur aléatoire dans un dictionnaire Python. Quoi qu'il en soit, nous avons commencé la création de l'outil en définissant les données qui constitueraient un profil valide.

Ensuite, nous avons divisé chaque section (ou bloc) de profil malléable en un fichier .py distinct, contenant la logique pour tirer des valeurs aléatoires appropriées pour chaque attribut, puis produire une chaîne formatée pour ce bloc de profil. Nous concaténons tous les blocs de profil, effectuons quelques vérifications de cohérence rapides, puis exécutons le profil via le linter de Cobalt Strike (c2lint). Le résultat est un profil qui devrait fonctionner pour vos engagements. Nous recommandons toujours de tester le profil (y compris l'injection de processus et le spawn) avant de lancer une campagne.

Si vous examinez le code, nous vous recommandons de commencer par ces deux fichiers : /C2concealer/main.py et /C2concealer/profile.py. Après avoir lu les commentaires, consultez les générateurs de blocs de profil individuels dans le dossier : /C2concealer/components.

Personnalisation de l'outil

C'est crucial. C'est un outil open source. Les fournisseurs peuvent facilement écrire des signatures pour les profils qu'il génère. Bien que l'exécution de l'outil fournisse un excellent point de départ pour construire un profil malléable Cobalt Strike, nous recommandons d'explorer les domaines suivants pour personnaliser les données utilisées pour peupler les profils générés :

/C2concealer/data/

  • dns.py (personnalisez les sous-domaines DNS)
  • file_type_prepend.py (personnalisez l'apparence des réponses http-get-server... aka instructions de contrôle C2)
  • params.py (deux dictionnaires contenant des noms de paramètres courants et une liste de mots générique)
  • post_ex.py (liste des processus spawn_to... changez absolument celui-ci)
  • reg_headers.py (en-têtes HTTP typiques comme user-agent et server)
  • smb.py (noms de pipes SMB pour une utilisation lorsque les communications passent par SMB)
  • ssh.py (noms de pipes et bannières SSH lors de l'utilisation de balises SSH)
  • stage.py (données pour modifier les IOC liés au stager)
  • transform.py (transformations des données de charge utile... pas besoin de changer cela)
  • urls.py (types de fichiers et composants de chemin d'URL utilisés pour construire des URI partout dans l'outil... changez absolument celui-ci)

De plus, vous pouvez personnaliser divers attributs tout au long du processus de génération de profil. Par exemple, dans le fichier : /C2concealer/components/stageblock.py, vous pouvez modifier la plage à partir de laquelle la valeur de la taille de l'image PE est tirée (près des lignes 73-74). Veuillez parcourir tous les différents fichiers dans le répertoire components.

Si vous êtes arrivé jusqu'ici, alors nous savons que vous tirerez beaucoup de profit de cet outil. La façon dont nous recommandons de voir cet outil est que nous avons construit le code squelette pour générer automatiquement ces profils. Maintenant, c'est à vous de réfléchir aux valeurs qui ont du sens pour chaque attribut pour vos campagnes et de mettre à jour les sources de données.

Personnalisation supplémentaire de votre profil

Bien que nous ayons couvert de nombreuses options possibles pour le langage de profil Malléable C2, il existe de nombreuses options que nous ne définissons pas. Nous vous encourageons vivement à consulter la documentation sur le commandement et contrôle malléable et à modifier votre profil.

Les options suivantes ne sont pas définies, ou sont définies de manière statique par C2concealer et vous devriez envisager de les modifier.

Bloc http-config

Option manquanteRemarques
set block_useragentsBloquer les motifs UA non-beacon
set allow_useragentsListe blanche des motifs UA (CS 4.3+)

Bloc stage

Option manquanteRemarques
set allocatorCodé en dur VirtualAlloc ; manque HeapAlloc, MapViewOfFile randomisation
set magic_mz_x86 / magic_mz_x64Spoofing de l'en-tête MZ
set magic_peSpoofing du marqueur PE
set rich_headerSpoofing des métadonnées du compilateur
set module_x86 / module_x64Module stomping
set copy_pe_header—
set data_store_size—
set eaf_bypassContournement de la vérification EAT
set syscall_methodAucun/Direct/Indirect (CS 4.8+)
set rdll_loaderPrependLoader/StompLoader
set rdll_use_syscalls—
set rdll_use_driploading—
set rdll_dripload_delay—
Bloc transform-obfuscateOptions base64, lznt1, rc4, xor totalement absentes
append dans transform-x86/x64Seuls prepend et strrep sont utilisés

Bloc process-inject

Option manquanteRemarques
set allocatorCodé en dur VirtualAllocEx ; manque NtMapViewOfSection randomisation
set use_driploading—
set dripload_delay—
append dans transform-x86/x64Seul prepend est utilisé
Exécution : NtQueueApcThreadPas dans le bloc execute
Exécution : NtQueueApcThread-sPas dans le bloc execute
Exécution : ObfSetThreadContextPas dans le bloc execute
Exécution : SetThreadContextPas dans le bloc execute
Spoofing de fonction d'exécutionSyntaxe module!function+0x## non supportée

Bloc post-ex

Option manquanteRemarques
set pipenamePipe nommé pour les tâches post-ex

Bloc dns-beacon

Option manquanteRemarques
set ns_responseGestion NS drop/idle/zero. Par défaut drop si non défini.
set dns_stager_prependPréfixer des données aux charges utiles stagées

Transformations de données (tous les contextes de transformation)

Transformation manquanteRemarques
lznt1Compression — pas dans aucune chaîne d'encodage
rc4 "key"Chiffrement — pas dans aucune chaîne d'encodage
xor "key"XOR — pas dans aucune chaîne d'encodage
uri-appendDéclaration de terminaison — non implémentée

Remerciements

Un grand merci à Raphael Mudge pour avoir constamment amélioré l'ensemble des fonctionnalités de profil malléable et la documentation pour l'apprendre. Également, un énorme merci à @killswitch-GUI pour son script qui automatise la génération de certificats LetsEncrypt pour les serveurs d'équipe CS. Enfin, deux articles de blog qui ont rendu la vie tellement plus facile : l'article de @bluescreenofjeff (https://bluescreenofjeff.com/2017-01-24-how-to-write-malleable-c2-profiles-for-cobalt-strike/) et l'article de Joe Vest (https://posts.specterops.io/a-deep-dive-into-cobalt-strike-malleable-c2-6660e33b0e0b).

Journal des versions

Version 1.0

  • Version publique de l'outil interne de FortyNorth Security.
  • Ajout du support pour CS 4.0 (notamment plusieurs variantes HTTP)
  • Mise à jour du README.md

Version 1.1

  • Mise à jour pour inclure les options de profil supportées par CS 4.12
  • Mise à jour des chaînes UA du navigateur
  • Mise à jour des chaînes de cookies vers des cookies modernes couramment observés
  • Ajout des options de bannière SSH et de nom de pipe SSH
  • Mise à jour des instructions d'installation Docker
  • Correction du support Let's Encrypt
Télécharger l’outil