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
SourcePoint — Gerador polimórfico de perfil C2 para Cobalt Strike que automatiza a criação de configurações evasivas de beacon com opções aleatórias para HTTP, DNS e injeção de processo para reduzir a detecção. | Kitploit
Ferramentas/GitHubGitHub/tylous/sourcepoint
Frameworks de ExploraçãoGeração de PayloadsComando e ControleRed Teaming
GitHubtylous/sourcepoint

SourcePoint

Gerador polimórfico de perfil C2 para Cobalt Strike que automatiza a criação de configurações evasivas de beacon com opções aleatórias para HTTP, DNS e injeção de processo para reduzir a detecção.

Ver Repositório
1.2k170há 1 anoRevisado 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

SourcePoint

SourcePoint é um gerador polimórfico de perfis C2 para servidores Cobalt Strike C2, escrito em Go. O SourcePoint permite gerar perfis C2 únicos em tempo real, ajudando a reduzir nossos Indicadores de Comprometimento ("IoCs") e permitindo que o operador crie perfis complexos com esforço mínimo. Isso foi feito revisando extensivamente Artigos e Notas de Lançamento para identificar funções-chave e recursos modificáveis. O SourcePoint foi projetado com a intenção de abordar o problema de como tornar nossa atividade C2 mais difícil de detectar, focando em afastar-se de IoCs maliciosos para suspeitos. O objetivo aqui é que seja mais difícil detectar nosso C2 se nossos IoCs não forem de natureza maliciosa e exigirem pesquisa adicional para descobrir a natureza suspeita. O SourcePoint contém inúmeras opções configuráveis para modificar seu perfil (na maioria dos casos, se deixado em branco, o SourcePoint as escolherá aleatoriamente para você). Os perfis gerados modificam todos os aspectos do seu C2. O objetivo deste projeto não é apenas ajudar a contornar controles baseados em detecção, mas também ajudar a camuflar o tráfego e a atividade C2 no ambiente, tornando essa atividade difícil de detectar.

root@kitploit:~
go install github.com/Tylous/SourcePoint

Instalação

root@kitploit:~
$go get gopkg.in/yaml.v2

$go build SourcePoint.go

Uso

root@kitploit:~
#./SourcePoint -h

	   _____                            ____        _       __
	  / ___/____  __  _______________  / __ \____  (_)___  / /_
	  \__ \/ __ \/ / / / ___/ ___/ _ \/ /_/ / __ \/ / __ \/ __/
	 ___/ / /_/ / /_/ / /  / /__/  __/ ____/ /_/ / / / / / /_
	/____/\____/\__,_/_/   \___/\___/_/    \____/_/_/ /_/\__/
  							(@Tyl0us)

                                                                                                                        
Uso de ./SourcePoint:
  -Allocation string
        Quantidade mínima de memória a solicitar para conteúdo injetado (deve ser maior que 4096)
  -BeaconGate string
        Especificar opções de gate do beacon (All, Comms, Core, Cleanup) ou APIs específicas
  -CDN string
        Nome do cookie CDN (normalmente usado em perfis AzureEdge)
  -CDN-Value string
        Valor do cookie CDN (normalmente usado em perfis AzureEdge)
  -Customuri string
        A URI base para perfil HTTP GET/POST personalizado - Não pode ser usado com CustomuriGET ou CustomuriPOST
  -CustomuriGET string
        A URI base para perfil HTTP GET personalizado - Deve ser usado com CustomuriPOST
  -CustomuriPOST string
        A URI base para perfil HTTP POST personalizado - Deve ser usado com CustomuriGET
  -Datajitter string
        Acrescenta um valor à saída do servidor HTTP-Get e HTTP-Post (padrão "50")
  -Forwarder
        Ativa o cabeçalho X-forwarded-For (bom quando seu C2 está atrás de um redirecionador)
  -Host string
        Nome de domínio do servidor da equipe
  -Httplib string
        Selecionar a biblioteca HTTP Beacon padrão:
        [*] wininet
        [*] winhttp' (padrão "winhttp")
  -Injector string
        Selecionar o método preferido para alocar memória no processo remoto:
        [*] VirtualAllocEx (Ótimo para arquitetura cruzada, ou seja, x86 -> x64 e x64->x86)
        [*] NtMapViewOfSection (Uma opção mais furtiva, porém falha e recorre ao VirtualAllocEx, gerando mais eventos quando isso acontece)
  -Jitter string
        Percentual de jitter para chamada de retorno do beacon
  -Keylogger string
        Selecionar o método preferido que o beacon usará para registrar teclas:
        [*] GetAsyncKeyState (Usa a API GetAsyncKeyState (DLL separada para processo x86/x64))
        [*] SetWindowsHookEx (Usa a API SetWindowsHookEx)
  -Keystore string
        Nome do keystore SSL
  -Metadata string
        Especifica como transformar e incorporar metadados na requisição HTTP:
        [*] base64
        [*] base64url
        [*] netbios
        [*] netbiosu (padrão "base64url")
  -Outfile string
        Nome do arquivo de saída
  -PE_Clone string
        Arquivo PE que o beacon irá imitar (Use o número):
        [1] ActivationManager.dll
        [2] audioeng.dll
        [3] AzureSettingSyncProvider.dll
        [4] BingMaps.dll
        [5] DIAGCPL.dll
        [6] EDGEHTML.dll
        [7] FILEMGMT.dll
        [8] FIREWALLCONTROLPANEL.dll
        [9] GPSVC.dll
        [10] gpupvdev.dll
        [11] libcrypto.dll
        [12] srvcli.dll
        [13] srvsvc.dll
        [14] Windows.Storage.Search.dll
        [15] Windows.System.Diagnostics.dll
        [16] Windows.System.Launcher.dll
        [17] Windows.System.SystemManagement.dll
        [18] Windows.UI.BioFeedback.dll
        [19] Windows.UI.BlockedShutdown.dll
        [20] Windows.UI.Core.TextInput.DLL
        [21] winsqlite3.dll
        [22] WMNetMgr.DLL
        [23] wwanapi.dll
        [24] WWANSVC.DLL
        [25] wow64win.dll
        [26] wow64.dll
        [27] ctiuser.dll (DLL do Carbon Black)
        [28] InProcessClient.dll (DLL do SentinelOne)
        [29] umppc.dll (DLL do CrowdStrike)
        [30] CyMemDef64.dll (DLL do Cylance)
  -Password string
        Senha do certificado SSL
  -PostEX_Name string
        Arquivo em que as atividades pós-ex irão gerar e injetar (Use o número):
        [1] WerFault.exe
        [2] WWAHost.exe
        [3] choice.exe
        [4] bootcfg.exe
        [5] dtdump.exe
        [6] expand.exe
        [7] fsutil.exe
        [8] gpupdate.exe
        [9] gpresult.exe
        [10] logman.exe
        [11] mcbuilder.exe
        [12] mtstocom.exe
        [13] pcaui.exe
        [14] powercfg.exe
        [15] svchost.exe
  -Profile string
        Perfil HTTP GET/POST (Use o número):
        [1] Windowsupdate
        [2] Slack
        [3] Gotomeeting
        [4] Outlook.Live
        [5] Safebrowsing [Compatível com Cloudfront]
        [6] AzureEdge [Compatível com AzureEdge]
        [7] Field-Keyword [Compatível com Cloudfront]
        [8] Custom (Usado com ProfilePath)
  -ProfilePath string
        Caminho do perfil HTTP GET/POST personalizado...
  -Sleep string
        Tempo inicial de sono do beacon
  -Stage string
        Desabilitar staging do host (Padrão: False) (padrão "false")
  -Syscall string
        Define a capacidade de usar chamadas de sistema diretas/indiretas em vez das chamadas de função padrão da API Windows:
        [*] None
        [*] Direct
        [*] Indirect (padrão "None")
  -TasksDnsProxyMaxSize string
        O tamanho máximo (em bytes) de dados de proxy a transferir via canal de comunicação DNS durante um check-in
  -TasksMaxSize string
        O tamanho máximo (em bytes) de tarefa(s) e dados de proxy que podem ser transferidos através de um canal de comunicação durante um check-in
  -TasksProxyMaxSize string
        O tamanho máximo (em bytes) de dados de proxy a transferir via canal de comunicação durante um check-in
  -ThreadSpoof
        Define DLLs pós-ex para criar threads com um endereço inicial falsificado. Eles são gerados aleatoriamente (padrão true)
  -Uri string
        O número de URIs que um perfil para beacons pode escolher
  -Useragent string
        String de UserAgent que o beacon usará (Deixe em branco para selecionar aleatoriamente):
        [*] Win10Chrome
        [*] Win10Edge
        [*] Win10IE
        [*] Win10
        [*] Win6.3
        [*] Linux
        [*] Mac
  -Yaml string
        Caminho para o arquivo de configuração YAML

Importante

O SourcePoint automatiza principalmente o processo de construção de um perfil. É muito importante conhecer todos os recursos modificados nesses perfis. Conhecer esses recursos pode realmente ajudar a aumentar seu sucesso.

Opções

Embora haja muitas configurações e recursos descritos na função de ajuda do SourcePoint, existem vários recursos importantes embutidos em cada perfil que é essencial conhecer. Esses recursos são:

Opções Globais

Esta parte do seu perfil modifica a forma como o beacon opera. Alguns dos recursos usados para modificar o comportamento são:

  • Host Stage - Permite que o servidor da equipe hospede shellcode staged para HTTP, HTTPS, DNS. Se isso estiver ativado, qualquer pessoa que enviar uma requisição GET com um valor específico como /9ZXq pode obter o shellcode também
  • Sleep - O tempo que o beacon leva para retornar ao servidor
  • Jitter - Acrescenta uma porcentagem ao tempo de chamada de retorno do beacon
  • Useragent - A string de useragent usada ao comunicar tráfego HTTP e HTTPS. Usar a string de useragent apropriada pode ajudar a camuflar no ambiente
  • Data Jitter - Adiciona uma string de comprimento aleatório a todas as requisições GET e POST para garantir que as requisições recebidas não tenham o mesmo comprimento
  • SMB Frame Header - Adiciona um valor de cabeçalho às mensagens do beacon SMB
  • Pipename - Define o nome do pipe SMB que o beacon usará para comunicação
  • Pipename Stager - Define o nome do stager SMB para os beacons
  • TCP Frame Header - Adiciona um valor de cabeçalho às mensagens do beacon TCP
  • SSH Banner - O banner SSH usado
  • SSH Pipename - O nome usado para o banner SSH
  • HttpLib - O atributo library permite que o usuário especifique a biblioteca padrão usada pelos beacons gerados pelo perfil. O valor pode ser "wininet" ou "winhttp"

Stage

Esta parte do seu perfil controla como o beacon é carregado na memória e edita o conteúdo da DLL do beacon. Alguns dos recursos usados para modificar o comportamento são:

  • Obfuscate - Ofusca a tabela de importação da DLL reflexiva
  • Stomppe - Solicita que o payload sobrescreva os valores MZ, PE e e_lfanen após o carregamento
  • Clean up - Instrui o beacon a liberar a memória associada à DLL reflexiva que o inicializou
  • UseRWX - Garante que o shellcode não use permissões de Leitura, Escrita, Execução
  • Magic_MZ - Sobrescreve os primeiros bytes (incluindo o cabeçalho MZ) da DLL Reflexiva do Beacon (atualmente apenas para x64)
  • Magic_PE - Sobrescreve o marcador de caractere PE usado pelo Loader Reflexivo do Beacon com outro valor
  • Syscall - Define a capacidade de usar chamadas de sistema em vez das funções padrão da API Windows
  • Smart Inject - Usa dicas de ponteiro de função incorporadas para inicializar o agente beacon sem percorrer a EAT do kernel32
  • Sleep Mask - Beacons TCP e SMB se ofuscam em repouso enquanto aguardam a conexão ser estabelecida
  • PE Header - Altera as características da sua DLL Reflexiva do beacon para se parecer com outra coisa na memória
  • Transformation - Transforma o estágio da DLL Reflexiva do beacon removendo ou adicionando strings ao .rdata

Process-Inject

Esta parte do seu perfil controla como o beacon molda o conteúdo injetado e controla o comportamento da injeção de processo. Alguns dos recursos usados para modificar o comportamento são:

  • Allocator - Determina como o loader reflexivo do beacon aloca memória
  • Minimum Allocation - Quantidade mínima de memória a solicitar para conteúdo injetado
  • Userwx - Garante que o shellcode não use permissões de Leitura, Escrita, Execução (a alternativa é RW)
  • Startrwx - Usar Leitura, Escrita, Execução como permissões iniciais para conteúdo injetado (a alternativa é RW)
  • Transformer - Adiciona um bloco de preenchimento de conteúdo injetado pelo beacon
  • Execute - Esta seção determina como executar o código injetado

Post-Exec

Esta parte do seu perfil controla como o beacon lida com módulos e comandos de pós-exploração. Alguns dos recursos usados para modificar o comportamento são:

  • Spawnto - Determina o processo temporário padrão que o beacon criará para seus comandos e opções de pós-exploração
  • Obfuscate - Ofusca a tabela de importação da DLL reflexiva
  • Smart Inject - Passa ponteiros de função chave do beacon para seus jobs filhos
  • AMSI disable - Desativa o AMSI para powerpick, execute-assembly e psinject (Certos EDRs podem detectar isso, é melhor evitar usar essas ferramentas)
  • Keylogger - Determina como a API de registro de teclas captura as teclas digitadas
  • Cleanup - Limpa a memória da DLL Reflexiva Definida pelo Usuário (UDRL) pós-ex quando a DLL pós-ex é carregada
  • Threadhint - Permite que DLLs pós-ex criem threads com um endereço inicial falsificado

Perfis

Atualmente, o SourcePoint oferece 7 opções embutidas para perfis de tráfego HTTP/HTTPS, baseadas em perfis existentes. Destes 6, 4 são influenciados e baseados em:

  • Comunicação de Atualização do Microsoft Windows
  • Comunicação de Mensagens do Slack
  • Comunicação de Reunião Ativa do Gotomeeting
  • Comunicação de E-mail do Microsoft Outlook

3 das opções de perfil (5, 6 e 7) são projetadas especificamente para:

  • Cloudfront.net
  • AzureEdge.net

A última opção (8) é projetada para inserir um perfil personalizado. Esta opção foi projetada para permitir que um operador utilize um perfil de tráfego completamente personalizado. Há muitos casos em que um perfil de tráfego totalmente único terá alto sucesso em vez de um destes. Isso também permite que operadores ainda utilizem os recursos de maleabilidade do SourcePoint com seu perfil de tráfego preferido ou de uso frequente. Como isso permite perfis únicos, é importante garantir que você ajuste e modifique o perfil para o SourcePoint funcionar. No mínimo:

  • Substitua - header "Host" "acme.com"; por header "Host" "{{.Variables.Host}}";
  • Substitua - /pathtolegitpage/ no campo GET por {{.Variables.HTTP_GET_URI}}
  • Substitua - /pathtolegitpage/ no campo POST por {{.Variables.HTTP_POST_URI}}

Para fazer isso, use as seguintes opções -Customuri e -ProfilePath juntamente com -Profile 8. Para usar uma base de URI diferente para GET e POST, -CustomuriGET e -CustomuriPOST devem ser usados em vez de -Customuri. Ao desenvolver um perfil, é altamente recomendável usar o ./c2lint nativo para verificar se tudo está funcionando.

Exemplo de Amostra

Ao combinar essas opções em um único perfil, você pode criar um beacon altamente eficaz que pode contornar controles preventivos e de detecção. Embora isso continue sendo um jogo de gato e rato em evolução, combinar as opções certas contra uma pilha de segurança específica pode ser bastante eficaz.

Exemplos de Configuração YAML

root@kitploit:~
Stage: "False"
Host: "acme-email.com"
Keystore: "acme-email.com.store"
Password: "Password"
Metadata: "netbios"
Injector: "VirtualAllocEx"
Outfile: "acme.profile"
PE_Clone: 20
Profile: 4
Allocation: 5312
Jitter: 30
Debug: true
Sleep: 35
Uri: 3
Useragent:  "Mac"
Post-EX Processname: 11
Datajitter: 40
Keylogger: "SetWindowsHookEx"
Customuri: 
CDN:
CDN_Value: 
ProfilePath: 
Syscall_method:
Httplib:
ThreadSpoof: true
Customuri: 
CustomuriGET: 
CustomuriPOST:
Forwarder: False
TasksMaxSize: 
TasksProxyMaxSize:
TasksDnsProxyMaxSize: 

Certificado SSL

Os modos de perfil 1-4 podem ser usados sem um SSL válido; o SourcePoint gerará um certificado autoassinado relacionado ao tipo de perfil. No entanto, certificados SSL válidos são extremamente importantes para o sucesso de qualquer tipo de C2. Por muitas razões, mas obviamente, nenhum certificado significa que o tráfego será não criptografado (ou seja, HTTP, QUE NUNCA DEVE SER USADO), mas usar um certificado autoassinado tem suas limitações óbvias. Existem muitas maneiras de obter um certificado SSL válido para criar um keystore; minha maneira preferida é usar uma versão modificada do HTTPsC2DoneRight.sh, criado por Cham423.

DNS

Atualmente, a personalização de DNS não é oferecida diretamente pelo SourcePoint. Para ainda permitir beacons baseados em DNS, há uma seção comentada para dns-beacon em cada perfil gerado.

Lista de Tarefas

  • Adicionar Mais Perfis
  • DNS Staging
Baixar ferramenta