Skip to content
KitploitKITPLOIT
HerramientasBlog
Enviar
HerramientasBlog
Enviar

¡Herramientas de Hacking, PenTest y Ciberseguridad para tu Arsenal de Seguridad!

Kitploit es un directorio de herramientas de hacking, ciberseguridad y pentesting. Descubre las últimas actualizaciones de proyectos para encontrar vulnerabilidades, analizar sistemas, automatizar pruebas y fortalecer tu seguridad.

··Feeds·Contacto·Privacidad·© 2026 Kitploit

Directorio de Herramientas

Categorías

Ver todas las categorías
Loading categories
Herramientas/GitHubGitHub/redsiege/c2concealer
Frameworks de Pruebas de PenetraciónGeneración de PayloadsComando y ControlRed Teaming
GitHubredsiege/c2concealer

C2concealer

Genera perfiles maleables C2 aleatorios y validados por linter para Cobalt Strike, automatizando la configuración de beacons HTTP/S, DNS, SMB y SSH con aleatorización de IOC personalizable.

Ver Repositorio
1.1k1723hace 4 mesesRevisado por Kitploit

Más Populares

Ver todos →

Descubre las herramientas más usadas por nuestra comunidad.

Explora todas las herramientas

Explora nuestra colección de herramientas

Ver todas las herramientas →
Compartir

C2concealer

C2concealer es una herramienta de línea de comandos que genera perfiles maleables C2 aleatorizados para usar en Cobalt Strike.

Instalación

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

Instalación mediante Docker

Consulte las instrucciones de Docker

Ejemplo de uso

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.

Ejemplo de salida en consola

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

Consejo: Utilice siempre un certificado SSL. Preferiblemente un certificado de LetsEncrypt o similar. Consejo: Las variantes HTTP le permiten seleccionar diferentes IOCs para el tráfico HTTP en diferentes beacons. Se recomienda un valor de al menos 1.

Cómo funciona

Analizamos minuciosamente la documentación de Cobalt Strike y definimos rangos de valores que tuvieran sentido para cada atributo del perfil. A veces esos datos son tan simples como un entero aleatorio dentro de un rango, y otras veces necesitamos elegir un valor aleatorio de un diccionario de Python. En cualquier caso, comenzamos la creación de la herramienta definiendo los datos que conformarían un perfil válido.

Luego dividimos cada sección (o bloque) del perfil maleable en un archivo .py separado, que contiene la lógica para obtener valores aleatorios apropiados para cada atributo y luego generar una cadena formateada para ese bloque del perfil. Concatenamos todos los bloques del perfil, ejecutamos algunas comprobaciones rápidas de coherencia y luego pasamos el perfil por el linter de Cobalt Strike (c2lint). El resultado es un perfil que debería funcionar en sus compromisos. Siempre recomendamos probar el perfil (incluyendo la inyección de procesos y el spawning) antes de iniciar una campaña.

Si está investigando el código, le recomendamos empezar con estos dos archivos: /C2concealer/__main__.py y /C2concealer/profile.py. Después de revisar los comentarios, eche un vistazo a los generadores de bloques de perfil individuales en la carpeta: /C2concealer/components.

Personalización de la herramienta

Esto es crucial. Es una herramienta de código abierto. Los proveedores pueden crear fácilmente firmas para los perfiles que genera. Si bien ejecutar la herramienta proporciona un excelente punto de partida para construir un perfil maleable de Cobalt Strike, recomendamos profundizar en las siguientes áreas para personalizar los datos que se utilizan para poblar los perfiles generados:

/C2concealer/data/

  • dns.py (personalizar los subdominios DNS)
  • file_type_prepend.py (personalizar el aspecto de las respuestas http-get-server... es decir, las instrucciones de control C2)
  • params.py (dos diccionarios que contienen nombres de parámetros comunes y una lista de palabras genérica)
  • post_ex.py (lista de procesos spawn_to... definitivamente cambie este)
  • reg_headers.py (cabeceras HTTP típicas como user-agent y server)
  • smb.py (nombres de tuberías SMB para usar cuando las comunicaciones pasan por SMB)
  • ssh.py (nombres de tuberías y banners SSH cuando se usan beacons SSH)
  • stage.py (datos para cambiar IOCs relacionados con el stager)
  • transform.py (transformaciones de datos de payload... no es necesario cambiar esto)
  • urls.py (tipos de archivo y componentes de ruta URL utilizados para construir URIs en toda la herramienta... definitivamente cambie este)

Además, puede personalizar varios atributos a lo largo del proceso de generación del perfil. Por ejemplo, en el archivo: /C2concealer/components/stageblock.py, puede cambiar el rango del que se extrae el valor del tamaño de la imagen PE (cerca de las líneas 73-74). Revise todos los diferentes archivos en el directorio components.

Si ha llegado hasta aquí, sabemos que esta herramienta le será de gran utilidad. La forma en que recomendamos ver esta herramienta es que hemos construido el esqueleto de código para generar automáticamente estos perfiles. Ahora depende de usted pensar qué valores tienen sentido para cada atributo en sus campañas y actualizar las fuentes de datos.

Personalización adicional del perfil

Si bien hemos cubierto muchas opciones posibles para el lenguaje de perfiles maleables C2, hay muchas opciones que no configuramos. Le recomendamos encarecidamente que consulte la documentación de Malleable Command and Control y modifique su perfil.

Las siguientes opciones no están configuradas, o están configuradas estáticamente por C2concealer, y debería considerar cambiarlas.

Bloque http-config

Opción faltanteNotas
set block_useragentsBloquear patrones UA que no sean de beacon
set allow_useragentsLista blanca de patrones UA (CS 4.3+)

Bloque stage

Opción faltanteNotas
set allocatorHardcoded VirtualAlloc; falta la aleatorización de HeapAlloc, MapViewOfFile
set magic_mz_x86 / magic_mz_x64Suplantación de cabecera MZ
set magic_peSuplantación de marcador PE
set rich_headerSuplantación de metadatos del compilador
set module_x86 / module_x64Module stomping
set copy_pe_header—
set data_store_size—
set eaf_bypassBypass de verificación EAT
set syscall_methodNinguno/Directo/Indirecto (CS 4.8+)
set rdll_loaderPrependLoader/StompLoader
set rdll_use_syscalls—
set rdll_use_driploading—
set rdll_dripload_delay—
Bloque transform-obfuscateOpciones base64, lznt1, rc4, xor completamente ausentes
append en transform-x86/x64Solo se utilizan prepend y strrep

Bloque process-inject

Opción faltanteNotas
set allocatorHardcoded VirtualAllocEx; falta la aleatorización de NtMapViewOfSection
set use_driploading—
set dripload_delay—
append en transform-x86/x64Solo se utiliza prepend
Ejecutar: NtQueueApcThreadNo está en el bloque de ejecución
Ejecutar: NtQueueApcThread-sNo está en el bloque de ejecución
Ejecutar: ObfSetThreadContextNo está en el bloque de ejecución
Ejecutar: SetThreadContextNo está en el bloque de ejecución
Suplantación de función de ejecuciónSintaxis module!function+0x## no compatible

Bloque post-ex

Opción faltanteNotas
set pipenameTubería con nombre para trabajos post-ex

Bloque dns-beacon

Opción faltanteNotas
set ns_responseManejo de NS drop/idle/zero. Por defecto es drop si no se configura.
set dns_stager_prependAnteponer datos a los payloads staged

Transformaciones de datos (todos los contextos de transformación)

Transformación faltanteNotas
lznt1Compresión — no está en ninguna cadena de codificación
rc4 "key"Cifrado — no está en ninguna cadena de codificación
xor "key"XOR — no está en ninguna cadena de codificación
uri-appendSentencia de terminación — no implementada

Agradecimientos

Un gran agradecimiento a Raphael Mudge por mejorar constantemente el conjunto de funciones de perfiles maleables y la documentación para aprender sobre ello. También, enormes gracias a @killswitch-GUI por su script que automatiza la generación de certificados LetsEncrypt para servidores de equipo de CS. Finalmente, dos publicaciones de blog que hicieron la vida mucho más fácil: la publicación de @bluescreenofjeff (https://bluescreenofjeff.com/2017-01-24-how-to-write-malleable-c2-profiles-for-cobalt-strike/) y la publicación de Joe Vest (https://posts.specterops.io/a-deep-dive-into-cobalt-strike-malleable-c2-6660e33b0e0b).

Registro de cambios de versión

Versión 1.0

  • Versión pública de la herramienta interna de FortyNorth Security.
  • Se añadió soporte para CS 4.0 (específicamente múltiples variantes HTTP)
  • Se actualizó README.md

Versión 1.1

  • Se actualizó para incluir opciones de perfil compatibles con CS 4.12
  • Se actualizaron las cadenas de User-Agent del navegador
  • Se actualizaron las cadenas de cookies a cookies modernas observadas comúnmente
  • Se añadieron opciones de banner SSH y nombre de tubería SSH
  • Se actualizó la guía de instalación de Docker
  • Se corrigió el soporte de Let's Encrypt
Descargar herramienta