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
SourcePoint — Generador de perfiles C2 polimórficos para Cobalt Strike que automatiza la creación de configuraciones evasivas de beacon con opciones aleatorizadas para HTTP, DNS e inyección de procesos para reducir la detección. | Kitploit
Herramientas/GitHubGitHub/tylous/sourcepoint
Frameworks de ExploitsGeneración de PayloadsComando y ControlRed Teaming
GitHubtylous/sourcepoint

SourcePoint

Generador de perfiles C2 polimórficos para Cobalt Strike que automatiza la creación de configuraciones evasivas de beacon con opciones aleatorizadas para HTTP, DNS e inyección de procesos para reducir la detección.

Ver Repositorio
1.2k170hace 1 añoRevisado 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

SourcePoint

SourcePoint es un generador polimórfico de perfiles C2 para Cobalt Strike C2s, escrito en Go. SourcePoint permite generar perfiles C2 únicos sobre la marcha, lo que ayuda a reducir nuestros Indicadores de Compromiso ("IoCs") y permite al operador desplegar perfiles complejos con un mínimo esfuerzo. Esto se logró revisando exhaustivamente Artículos así como Notas de Parche para identificar funciones clave y características modificables. SourcePoint fue diseñado con la intención de abordar el problema de cómo hacer que nuestra actividad C2 sea más difícil de detectar, centrándose en pasar de IoCs maliciosos a sospechosos. El objetivo aquí es que sea más difícil detectar nuestro C2 si nuestros IoCs no son de naturaleza maliciosa y requieren investigación adicional para descubrir la naturaleza sospechosa. SourcePoint contiene numerosas opciones configurables para elegir para modificar su perfil (en la mayoría de los casos, si se deja en blanco, SourcePoint las elegirá aleatoriamente). Los perfiles generados modifican todos los aspectos de su C2. El objetivo de este proyecto no solo es ayudar a eludir los controles basados en detección, sino también ayudar a mezclar el tráfico y la actividad C2 en el entorno, haciendo que dicha actividad sea difícil de detectar.

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

Instalación

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

$go build SourcePoint.go

Uso

root@kitploit:~
#./SourcePoint -h

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

                                                                                                                        
Uso de ./SourcePoint:
  -Allocation string
        Cantidad mínima de memoria a solicitar para el contenido inyectado (debe ser mayor a 4096)
  -BeaconGate string
        Especificar opciones de puerta de beacon (All, Comms, Core, Cleanup) o APIs específicas
  -CDN string
        Nombre de cookie CDN (típicamente usado para perfiles AzureEdge)
  -CDN-Value string
        Valor de cookie CDN (típicamente usado para perfiles AzureEdge)
  -Customuri string
        La URI base para el perfil HTTP GET/POST personalizado - No puede usarse con CustomuriGET o CustomuriPOST
  -CustomuriGET string
        La URI base para el perfil HTTP GET personalizado - Debe usarse con CustomuriPOST
  -CustomuriPOST string
        La URI base para el perfil HTTP POST personalizado - Debe usarse con CustomuriGET
  -Datajitter string
        Añade un valor a la salida del servidor HTTP-Get y HTTP-Post (por defecto "50")
  -Forwarder
        Habilita el encabezado X-forwarded-For (Bueno cuando tu C2 está detrás de un redirector)
  -Host string
        Nombre de dominio del servidor de equipo
  -Httplib string
        Seleccionar la librería predeterminada de HTTP Beacon:
        [*] wininet
        [*] winhttp' (por defecto "winhttp")
  -Injector string
        Seleccionar el método preferido para asignar memoria en el proceso remoto:
        [*] VirtualAllocEx (Excelente para arquitectura cruzada, ej. x86 -> x64 y x64->x86)
        [*] NtMapViewOfSection (Una opción más sigilosa, sin embargo falla a VirtualAllocEx, generando más eventos cuando lo hace)
  -Jitter string
        Porcentaje de jitter para la llamada al beacon
  -Keylogger string
        Seleccionar el método preferido que usará el beacon para registrar teclas: 
        [*] GetAsyncKeyState (Usa la API GetAsyncKeyState (DLL separado para proceso x86/x64))
        [*] SetWindowsHookEx (Usa la API SetWindowsHookEx)
  -Keystore string
        Nombre del almacén de claves SSL
  -Metadata string
        Especifica cómo transformar e incrustar metadatos en la solicitud HTTP:
        [*] base64
        [*] base64url
        [*] netbios
        [*] netbiosu (por defecto "base64url")
  -Outfile string
        Nombre del archivo de salida
  -PE_Clone string
        Archivo PE que el beacon imitará (Usar el 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 de Carbon Black)
        [28] InProcessClient.dll (DLL de SentinelOne)
        [29] umppc.dll (DLL de CrowdStrike)
        [30] CyMemDef64.dll (DLL de Cylance)
  -Password string
        Contraseña del certificado SSL
  -PostEX_Name string
        Archivo en el que las actividades Post-Ex se generarán e inyectarán (Usar el 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 (Usar el número):
        [1] Windowsupdate
        [2] Slack
        [3] Gotomeeting
        [4] Outlook.Live
        [5] Safebrowsing [Compatible con Cloudfront]
        [6] AzureEdge [Compatible con AzureEdge]
        [7] Field-Keyword [Compatible con Cloudfront]
        [8] Personalizado (Usado con ProfilePath)
  -ProfilePath string
        Ruta del perfil HTTP GET/POST personalizado...
  -Sleep string
        Tiempo de espera inicial del beacon
  -Stage string
        Deshabilitar host staging (Por defecto: False) (por defecto "false")
  -Syscall string
        Define la capacidad de usar llamadas al sistema directas/indirectas en lugar de las llamadas estándar de la API de Windows:
        [*] None
        [*] Direct
        [*] Indirect (por defecto "None")
  -TasksDnsProxyMaxSize string
        El tamaño máximo (en bytes) de datos de proxy a transferir a través del canal de comunicación DNS en un check-in
  -TasksMaxSize string
        El tamaño máximo (en bytes) de tareas y datos de proxy que se pueden transferir a través de un canal de comunicación en un check-in
  -TasksProxyMaxSize string
        El tamaño máximo (en bytes) de datos de proxy a transferir a través del canal de comunicación en un check-in
  -ThreadSpoof
        Establece que los DLL post-ex generen hilos con una dirección de inicio falsificada. Se generan aleatoriamente (por defecto true)
  -Uri string
        El número de URIs que un perfil debe tener para que los beacons elijan
  -Useragent string
        Cadena UserAgent para que el beacon la use (Dejar en blanco para seleccionar una aleatoria):
        [*] Win10Chrome
        [*] Win10Edge
        [*] Win10IE
        [*] Win10
        [*] Win6.3
        [*] Linux
        [*] Mac
  -Yaml string
        Ruta al archivo de configuración YAML

Importante

SourcePoint automatiza principalmente el proceso de construcción de un perfil. Es muy importante conocer todas las características modificadas en estos perfiles. Conocer estas características puede realmente ayudar a aumentar su éxito.

Opciones

Si bien hay muchas configuraciones y características descritas en la función de ayuda de SourcePoint, hay numerosas características importantes integradas en cada perfil que es importante conocer. Estas características son:

Opciones Globales

Esta parte de su perfil modifica cómo opera el beacon. Algunas de las características utilizadas para modificar el comportamiento son:

  • Host Stage - Permite al servidor de equipo alojar shellcode por etapas para HTTP, HTTPS, DNS. Si está habilitado, cualquiera que envíe una solicitud GET con un valor específico como /9ZXq también puede obtener el shellcode
  • Sleep - La duración de tiempo que el beacon espera antes de llamar a casa
  • Jitter - Añade un porcentaje al tiempo de llamada del beacon
  • Useragent - La cadena useragent utilizada al comunicar tráfico HTTP y HTTPS. Usar la cadena useragent adecuada puede ayudar a integrarse en el entorno
  • Data Jitter - Agrega una cadena de longitud aleatoria a todas las solicitudes GET y POST para asegurar que las solicitudes entrantes no tengan la misma longitud
  • SMB Frame Header - Añade un valor de encabezado a los mensajes SMB del beacon
  • Pipename - Establece el nombre de la tubería SMB que el beacon utilizará para la comunicación
  • Pipename Stager - Establece el nombre del stagedor SMB para el beacon
  • TCP Frame Header - Añade un valor de encabezado a los mensajes TCP del beacon
  • SSH Banner - El banner SSH utilizado
  • SSH Pipename - El nombre utilizado para el banner SSH
  • HttpLib - El atributo de librería permite al usuario especificar la librería predeterminada utilizada por los beacons generados por el perfil. El valor puede ser "wininet" o "winhttp"

Stage

Esta parte de su perfil controla cómo se carga el beacon en memoria y edita el contenido del DLL del beacon. Algunas de las características utilizadas para modificar el comportamiento son:

  • Obfuscate - Ofusca la tabla de importación del DLL reflexivo
  • Stomppe - Solicita al payload sobrescribir los valores MZ, PE y e_lfanen después de la carga
  • Clean up - Indica al beacon liberar la memoria asociada con el DLL reflexivo que lo inicializó
  • UseRWX - Asegura que el shellcode no use permisos de Lectura, Escritura, Ejecución
  • Magic_MZ - Sobrescribe los primeros bytes (incluyendo el encabezado MZ) del DLL Reflexivo del Beacon (actualmente solo para x64)
  • Magic_PE - Sobrescribe el marcador de carácter PE utilizado por el Cargador Reflexivo del Beacon con otro valor
  • Syscall - Define la capacidad de usar llamadas al sistema en lugar de las funciones estándar de la API de Windows
  • Smart Inject - Utiliza pistas de punteros de función incrustados para iniciar el agente beacon sin recorrer kernel32 EAT
  • Sleep Mask - Los beacons TCP y SMB se ofuscan a sí mismos en reposo mientras esperan que se establezca la conexión
  • PE Header - Cambia las características de su DLL Reflexivo del beacon para que se vea como otra cosa en memoria
  • Transformation - Transforma la etapa del DLL Reflexivo del beacon eliminando o agregando cadenas al .rdata

Process-Inject

Esta parte de su perfil controla cómo el beacon da forma al contenido inyectado y controla el comportamiento de la inyección de procesos. Algunas de las características utilizadas para modificar el comportamiento son:

  • Allocator - Determina cómo el cargador reflexivo del beacon asigna memoria
  • Minimum Allocation - Cantidad mínima de memoria a solicitar para el contenido inyectado
  • Userwx - Asegura que el shellcode no use permisos de Lectura, Escritura, Ejecución (La alternativa es RW)
  • Startrwx - Usar Lectura, Escritura, Ejecución como permisos iniciales para el contenido inyectado (La alternativa es RW)
  • Transformer - Agrega un bloque de contenido de relleno inyectado por el beacon
  • Execute - Esta sección determina cómo ejecutar el código inyectado

Post-Exec

Esta parte de su perfil controla cómo el beacon maneja los módulos y comandos de post-explotación. Algunas de las características utilizadas para modificar el comportamiento son:

  • Spawnto - Determina el proceso temporal predeterminado que el beacon generará para sus comandos y opciones de post-explotación
  • Obfuscate - Ofusca la tabla de importación del DLL reflexivo
  • Smart Inject - Pasa punteros de función clave del beacon a sus trabajos hijo
  • AMSI disable - Deshabilitar AMSI para powerpick, execute-assembly y psinject (Ciertos EDR pueden detectar esto, es mejor evitar usar estas herramientas)
  • Keylogger - Determina cómo la API de registro de teclas utiliza para capturar pulsaciones
  • Cleanup - Limpia la memoria del DLL Reflexivo definido por el usuario ("UDRL") post-ex cuando se carga el DLL post-ex
  • Threadhint - Permite que los DLL post-ex generen hilos con una dirección de inicio falsificada

Perfiles

Actualmente SourcePoint le proporciona 7 opciones integradas para perfiles de tráfico HTTP/HTTPS, basadas en perfiles existentes. De estos 6, 4 están influenciados y basados en:

  • La comunicación de actualización de Microsoft Windows
  • La comunicación de mensajes de Slack
  • La comunicación de reuniones activas de Gotomeeting
  • La comunicación de correo electrónico de Microsoft Outlook

3 de las opciones de perfil (5, 6 y 7) están diseñadas específicamente para:

  • Cloudfront.net
  • AzureEdge.net

La última opción (8) está diseñada para introducir un perfil personalizado. Esta opción está diseñada para permitir que un operador utilice un perfil de tráfico completamente personalizado. Hay muchos casos en los que un perfil de tráfico completamente único proporcionará un alto éxito en lugar de uno de estos. Esto también permite a los operadores seguir utilizando las características de maleabilidad de SourcePoint con su perfil de tráfico preferido o de referencia. Dado que esto permite perfiles únicos, es importante asegurarse de ajustar y modificar el perfil para que SourcePoint funcione. Como mínimo:

  • Reemplace - header "Host" "acme.com"; con header "Host" "{{.Variables.Host}}";
  • Reemplace - /pathtolegitpage/ en el campo GET con {{.Variables.HTTP_GET_URI}}
  • Reemplace - /pathtolegitpage/ en el campo POST con {{.Variables.HTTP_POST_URI}}

Para hacerlo, use las siguientes opciones -Customuri y -ProfilePath junto con -Profile 8. Para usar una URI base diferente para GET y POST, se deben usar -CustomuriGET y -CustomuriPOST en lugar de -Customuri. Al desarrollar un perfil, se recomienda encarecidamente usar el nativo ./c2lint para verificar que todo funcione correctamente.

Ejemplo de Muestra

Al combinar estas opciones en un solo perfil, puede crear un beacon altamente efectivo que pueda eludir controles preventivos y de detección. Si bien esto sigue siendo un juego del gato y el ratón en evolución, combinar las opciones correctas contra una pila de seguridad específica puede ser bastante efectivo.

Configuraciones YAML de Muestra

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

Los modos de perfil 1-4 se pueden usar sin un SSL válido, SourcePoint generará un certificado autofirmado relacionado con el tipo de perfil. Sin embargo, los certificados SSL válidos son extremadamente importantes para el éxito de cualquier tipo de C2. Por muchas razones, pero obviamente ningún certificado significa que el tráfico no estará cifrado (es decir, HTTP QUE NUNCA DEBERÍA USARSE), pero usar un certificado autofirmado tiene sus limitaciones obvias. Hay muchas formas de obtener un certificado SSL válido para hacer un almacén de claves, mi forma preferida es usar una versión modificada de HTTPsC2DoneRight.sh, creada por Cham423.

DNS

Actualmente, la personalización de DNS no se ofrece directamente a través de SourcePoint. Para seguir permitiendo beacons basados en DNS, hay una sección comentada para dns-beacon en cada perfil generado.

Lista de Tareas Pendientes

  • Agregar Más Perfiles
  • DNS Staging
Descargar herramienta