Skip to content
KitploitKITPLOIT
FerramentasBlog
Enviar
FerramentasBlog
Enviar

Ferramentas de Hacking, PenTest e Cibersegurança para o seu Arsenal de Segurança!

Kitploit é um diretório de ferramentas de hacking, cibersegurança e pentesting. Descubra as últimas atualizações de projetos para encontrar vulnerabilidades, analisar sistemas, automatizar testes e fortalecer sua segurança.

··Feeds·Contato·Privacidade·© 2026 Kitploit

Diretório de Ferramentas

Categorias

Ver todas as categorias
Loading categories
C2concealer — Gera perfis maleáveis de C2 randomizados e validados por lint para o Cobalt Strike, automatizando a configuração de beacons HTTP/S, DNS, SMB e SSH com randomização personalizável de IOC. | Kitploit
Ferramentas/GitHubGitHub/redsiege/c2concealer
Frameworks de Testes de PenetraçãoGeração de PayloadsComando e ControleRed Teaming
GitHubredsiege/c2concealer

C2concealer

Gera perfis maleáveis de C2 randomizados e validados por lint para o Cobalt Strike, automatizando a configuração de beacons HTTP/S, DNS, SMB e SSH com randomização personalizável de IOC.

Ver Repositório
1.1k172há 4 mesesRevisado pelo Kitploit

Mais Populares

Ver todos →

Descubra as ferramentas mais usadas pela nossa comunidade.

Explore todas as ferramentas

Navegue pela nossa coleção de ferramentas

Ver todas as ferramentas →
Compartilhar

C2concealer

C2concealer é uma ferramenta de linha de comando que gera perfis maleáveis C2 aleatorizados para uso no Cobalt Strike.

Instalação

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

Instalação com Docker

Consulte as instruções Docker

Exemplo de Uso

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

Flags:
	
	(opcional)
	--hostname 
		O hostname usado nas configurações do lado do cliente e servidor HTTP. O padrão é None.
	--variant 
		Um inteiro que define o número de variantes HTTP do cliente/servidor a serem geradas. 
		Recomendado entre 1 e 5. Máximo 10.

Exemplo de Saída no Console

root@kitploit:~
root@kali:~# C2concealer --variant 1 --hostname google.com
[i] Procurando pela ferramenta c2lint no seu sistema (parte do Cobalt Strike). Pode levar de 10 a 20 segundos.
[i] Encontrado c2lint no diretório /opt/cobaltstrike/c2lint.

Escolha uma opção SSL:
1. Certificado SSL autoassinado (apenas insira alguns detalhes)
2. Certificado SSL LetsEncrypt (requer um registro A temporário para o domínio relevante apontado para esta máquina)
3. Keystore existente
4. Sem SSL

[?] Opção [1/2/3/4]:

Dica: Sempre use um certificado SSL. Preferencialmente um certificado do LetsEncrypt ou similar. Dica: As variantes HTTP permitem selecionar diferentes IOCs para tráfego HTTP em diferentes beacons. Recomenda-se um valor de pelo menos 1.

Como funciona

Examinamos a documentação do Cobalt Strike e definimos intervalos de valores que fariam sentido para cada atributo do perfil. Às vezes esses dados são tão simples quanto um inteiro aleatório dentro de um intervalo e outras vezes precisamos escolher um valor aleatório de um dicionário Python. De qualquer forma, começamos a criação da ferramenta definindo os dados que formariam um perfil válido.

Em seguida, dividimos cada seção (ou bloco) do perfil maleável em um arquivo .py separado, que contém a lógica para sortear valores apropriados para cada atributo e gerar uma string formatada para aquele bloco do perfil. Concatenamos todos os blocos do perfil, executamos algumas verificações rápidas de consistência e validamos o perfil com o linter do Cobalt Strike (c2lint). O resultado é um perfil que deveria funcionar para seus engajamentos. Sempre recomendamos testar o perfil (incluindo injeção de processo e spawning) antes de iniciar uma campanha.

Se você está olhando o código, recomendamos começar com estes dois arquivos: /C2concealer/main.py e /C2concealer/profile.py. Após revisar os comentários, confira os geradores de blocos de perfil individuais na pasta: /C2concealer/components.

Personalizando a ferramenta

Isso é crucial. Esta é uma ferramenta de código aberto. Fornecedores podem facilmente criar assinaturas para os perfis que ela gera. Embora executar a ferramenta forneça um ótimo ponto de partida para construir um perfil maleável do Cobalt Strike, recomendamos explorar as seguintes áreas para personalizar os dados usados para preencher os perfis gerados:

/C2concealer/data/

  • dns.py (personalizar os subdomínios DNS)
  • file_type_prepend.py (personalizar a aparência das respostas http-get-server ... ou seja, instruções de controle C2)
  • params.py (dois dicionários contendo nomes de parâmetros comuns e uma wordlist genérica)
  • post_ex.py (lista de processos spawn_to... definitivamente mude este)
  • reg_headers.py (cabeçalhos HTTP típicos como user-agent e server)
  • smb.py (nomes de pipes SMB para uso quando as comunicações passam por SMB)
  • ssh.py (nomes de pipes e banners SSH ao usar beacons SSH)
  • stage.py (dados para alterar IOCs relacionados ao stager)
  • transform.py (transformações de dados da payload... não precisa alterar isso)
  • urls.py (tipos de arquivo e componentes de caminho de URL usados para construir URIs em toda a ferramenta... definitivamente mude este)

Além disso, você pode personalizar vários atributos durante todo o processo de geração de perfil. Por exemplo, no arquivo: /C2concealer/components/stageblock.py, você pode alterar o intervalo do qual o valor do tamanho da imagem PE é sorteado (próximo às linhas 73-74). Por favor, examine todos os diferentes arquivos no diretório components.

Se você chegou até aqui, sabemos que esta ferramenta será muito útil. A maneira como recomendamos encarar esta ferramenta é que construímos o esqueleto do código para gerar automaticamente esses perfis. Agora é com você pensar quais valores fazem sentido para cada atributo nas suas campanhas e atualizar as fontes de dados.

Personalizando ainda mais seu perfil

Embora tenhamos coberto muitas opções possíveis para a linguagem de perfil Malleable C2, existem muitas opções que não configuramos. Recomendamos fortemente consultar a documentação do Malleable Command and Control e modificar seu perfil.

As seguintes opções não são configuradas, ou são configuradas estaticamente pelo C2concealer e você deve considerar alterá-las.

Bloco http-config

Opção AusenteObservações
set block_useragentsBloquear padrões de UA que não são de beacon
set allow_useragentsLista de permissão de padrões de UA (CS 4.3+)

Bloco stage

Bloco process-inject

Bloco post-ex

Opção AusenteObservações
set pipenamePipe nomeado para trabalhos pós-ex

Bloco dns-beacon

Opção AusenteObservações
set ns_responsedrop/idle/zero para tratamento NS. Padrão é drop se não configurado.
set dns_stager_prependPrepend de dados para payloads em staged

Transformações de Dados (todos os contextos de transform)

Transformação AusenteObservações
lznt1Compressão — não está em nenhuma cadeia de codificação

Agradecimentos

Um grande agradecimento ao Raphael Mudge por melhorar constantemente o conjunto de funcionalidades do perfil maleável e a documentação para aprendê-lo. Também, enormes agradecimentos ao @killswitch-GUI por seu script que automatiza a geração de certificados LetsEncrypt para servidores de equipe CS. Finalmente, dois posts de blog que facilitaram muito a vida: o post do @bluescreenofjeff (https://bluescreenofjeff.com/2017-01-24-how-to-write-malleable-c2-profiles-for-cobalt-strike/) e o post do Joe Vest (https://posts.specterops.io/a-deep-dive-into-cobalt-strike-malleable-c2-6660e33b0e0b).

Histórico de Versões

Versão 1.0

  • Versão pública da ferramenta interna da FortyNorth Security.
  • Adicionado suporte para CS 4.0 (especificamente múltiplas variantes HTTP)
  • README.md atualizado

Versão 1.1

  • Atualizado para incluir opções de perfil compatíveis com CS 4.12
  • Strings de UA de navegador atualizadas
  • Strings de cookie atualizadas para cookies modernos comumente observados
  • Adicionadas opções de banner SSH e nome de pipe SSH
  • Orientação de instalação Docker atualizada
  • Suporte ao Let's Encrypt corrigido
Baixar ferramenta
Opção AusenteObservações
set allocatorFixado em VirtualAlloc; faltando HeapAlloc, MapViewOfFile para randomização
set magic_mz_x86 / magic_mz_x64Spoofing de cabeçalho MZ
set magic_peSpoofing de marcador PE
set rich_headerSpoofing de metadados do compilador
set module_x86 / module_x64Module stomping
set copy_pe_header—
set data_store_size—
set eaf_bypassBypass de verificação EAT
set syscall_methodNone/Direct/Indirect (CS 4.8+)
set rdll_loaderPrependLoader/StompLoader
set rdll_use_syscalls—
set rdll_use_driploading—
set rdll_dripload_delay—
Bloco transform-obfuscateOpções base64, lznt1, rc4, xor totalmente ausentes
append em transform-x86/x64Apenas prepend e strrep são usados
Opção AusenteObservações
set allocatorFixado em VirtualAllocEx; faltando NtMapViewOfSection para randomização
set use_driploading—
set dripload_delay—
append em transform-x86/x64Apenas prepend usado
Execute: NtQueueApcThreadNão está no bloco execute
Execute: NtQueueApcThread-sNão está no bloco execute
Execute: ObfSetThreadContextNão está no bloco execute
Execute: SetThreadContextNão está no bloco execute
Spoofing de função executeSintaxe module!function+0x## não suportada
rc4 "key"
Criptografia — não está em nenhuma cadeia de codificação
xor "key"XOR — não está em nenhuma cadeia de codificação
uri-appendDeclaração de terminação — não implementada