Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
SourcePoint — Generatore polimorfico di profili C2 per Cobalt Strike che automatizza la creazione di configurazioni evasive di beacon con opzioni randomizzate per HTTP, DNS e process injection per ridurre il rilevamento. | Kitploit
Strumenti/GitHubGitHub/tylous/sourcepoint
Framework di ExploitGenerazione di PayloadCommand and ControlRed Teaming
GitHubtylous/sourcepoint

SourcePoint

Generatore polimorfico di profili C2 per Cobalt Strike che automatizza la creazione di configurazioni evasive di beacon con opzioni randomizzate per HTTP, DNS e process injection per ridurre il rilevamento.

Vedi Repository
1.2k1701 anno faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi

SourcePoint

SourcePoint è un generatore polimorfico di profili C2 per Cobalt Strike C2, scritto in Go. SourcePoint permette di generare al volo profili C2 unici che aiutano a ridurre i nostri Indicatori di Compromissione ("IoCs") e consentono all'operatore di creare profili complessi con il minimo sforzo. Ciò è stato ottenuto esaminando approfonditamente gli Articoli e le Note di Rilascio per identificare funzioni chiave e caratteristiche modificabili. SourcePoint è stato progettato con l'intento di affrontare il problema di come rendere più difficile rilevare la nostra attività C2, concentrandosi sul passaggio da IoCs malevoli a sospetti. L'obiettivo è rendere più difficile rilevare il nostro C2 se i nostri IoCs non sono di natura malevola e richiedono ricerche aggiuntive per scoprire la natura sospetta. SourcePoint contiene numerose opzioni configurabili tra cui scegliere per modificare il tuo profilo (nella maggior parte dei casi, se lasciato vuoto, SourcePoint li sceglierà casualmente per te). I profili generati modificano tutti gli aspetti del tuo C2. L'obiettivo di questo progetto non è solo quello di aiutare a eludere i controlli basati sul rilevamento, ma anche di aiutare a mimetizzare il traffico e l'attività C2 nell'ambiente, rendendo detta attività difficile da rilevare.

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

Installazione

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

$go build SourcePoint.go

Utilizzo

root@kitploit:~
#./SourcePoint -h

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

                                                                                                                        
Usage of ./SourcePoint:
  -Allocation string
        Minimum amount of memory to request for injected content (must be higher than 4096)
  -BeaconGate string
        Specify beacon gate options (All, Comms, Core, Cleanup) or specific APIs
  -CDN string
        CDN cookie name (typically used for AzureEdge profiles)
  -CDN-Value string
        CDN cookie value (typically used for AzureEdge profiles)
  -Customuri string
        The base URI for custom HTTP GET/POST profile - Cannot be used with CustomuriGET or CustomuriPOST
  -CustomuriGET string
        The base URI for custom HTTP GET profile - Must be used with CustomuriPOST
  -CustomuriPOST string
        The base URI for custom HTTP POST profile - Must be used with CustomuriGET
  -Datajitter string
        Appends a value to HTTP-Get and HTTP-Post server output (default "50")
  -Forwarder
        Enabled the X-forwarded-For header (Good for when your C2 is behind a redirector)
  -Host string
        Team server domain name
  -Httplib string
        Select the default HTTP Beacon library:
        [*] wininet
        [*] winhttp' (default "winhttp")
  -Injector string
        Select the preferred method to allocate memory in the remote process:
        [*] VirtualAllocEx (Great for cross architecture i.e x86 -> x64 and x64->x86)
        [*] NtMapViewOfSection (A more stealthly option, however fails over to VirtualAllocEx, generating more events when it does)
  -Jitter string
        Jitter percentage for beacon call home
  -Keylogger string
        Select the preferred method the beacon will use to log keystrokes: 
        [*] GetAsyncKeyState (Uses GetAsyncKeyState API (Separate DLL for x86/x64 process))
        [*] SetWindowsHookEx (Uses SetWindowsHookEx API)
  -Keystore string
        SSL keystore name
  -Metadata string
        Specifies how to transform and embed metadata into the HTTP request:
        [*] base64
        [*] base64url
        [*] netbios
        [*] netbiosu (default "base64url")
  -Outfile string
        Name of output file
  -PE_Clone string
        PE file beacon will mimic (Use the number):
        [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 (Carbon Black's DLL)
        [28] InProcessClient.dll (SentinelOne's DLL)
        [29] umppc.dll (CrowdStrike's DLL)
        [30] CyMemDef64.dll (Cylance's DLL)
  -Password string
        SSL certificate password
  -PostEX_Name string
        File Post-Ex activities will spawn and inject into (Use the number):
        [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
        HTTP GET/POST profile (Use the number):
        [1] Windowsupdate
        [2] Slack
        [3] Gotomeeting
        [4] Outlook.Live
        [5] Safebrowsing [Cloudfront Compatible]
        [6] AzureEdge [AzureEdge Compatible]
        [7] Field-Keyword [Cloudfront Compatible]
        [8] Custom (Used with ProfilePath)
  -ProfilePath string
        Path of custom HTTP GET/POST profile...
  -Sleep string
        Initial beacon sleep time
  -Stage string
        Disable host staging (Default: False) (default "false")
  -Syscall string
        Defines the ability to use direct/indirect system calls instead of the standard Windows API functions calls:
        [*] None
        [*] Direct
        [*] Indirect (default "None")
  -TasksDnsProxyMaxSize string
        The maximum size (in bytes) of proxy data to transfer via the DNS communication channel at a check in
  -TasksMaxSize string
        The maximum size (in bytes) of task(s) and proxy data that can be transferred through a communication channel at a check in
  -TasksProxyMaxSize string
        The maximum size (in bytes) of proxy data to transfer via the communication channel at a check in
  -ThreadSpoof
        Sets post-ex DLLs to spawn threads with a spoofed start address. These are generated randomly (default true)
  -Uri string
        The number URIs a profile for beacons to choose from
  -Useragent string
        UserAgent string for the beacon to use (Leave blank to randomly select one):
        [*] Win10Chrome
        [*] Win10Edge
        [*] Win10IE
        [*] Win10
        [*] Win6.3
        [*] Linux
        [*] Mac
  -Yaml string
        Path to the Yaml config file

Importante

SourcePoint automatizza principalmente il processo di creazione di un profilo. È molto importante conoscere tutte le funzionalità modificate in questi profili. Conoscerle può davvero aiutare ad aumentare il tuo successo.

Opzioni

Sebbene ci siano molte impostazioni e funzionalità descritte nella funzione di aiuto di SourcePoint, ci sono numerose caratteristiche importanti integrate in ogni profilo che è importante conoscere. Queste caratteristiche sono:

Opzioni Globali

Questa parte del tuo profilo modifica il modo in cui il beacon opera. Alcune delle funzionalità utilizzate per modificare il comportamento sono:

  • Host Stage - Consente al team server di ospitare shellcode staged per HTTP, HTTPS, DNS. Se abilitato, chiunque invii una richiesta GET con un valore specifico come /9ZXq può recuperare lo shellcode.
  • Sleep - Il tempo di attesa del beacon prima di contattare il server.
  • Jitter - Aggiunge una percentuale al tempo di chiamata del beacon.
  • Useragent - La stringa UserAgent utilizzata per le comunicazioni HTTP e HTTPS. Usare la stringa UserAgent appropriata può aiutare a mimetizzarsi nell'ambiente.
  • Data Jitter - Aggiunge una stringa di lunghezza casuale a tutte le richieste GET e POST per garantire che le richieste in arrivo non abbiano la stessa lunghezza.
  • SMB Frame Header - Aggiunge un valore di intestazione ai messaggi SMB del beacon.
  • Pipename - Imposta il nome della pipe SMB che il beacon utilizzerà per la comunicazione.
  • Pipename Stager - Imposta il nome dello stager SMB per il beacon.
  • TCP Frame Header - Aggiunge un valore di intestazione ai messaggi TCP del beacon.
  • SSH Banner - Il banner SSH utilizzato.
  • SSH Pipename - Il nome utilizzato per il banner SSH.
  • HttpLib - L'attributo library permette all'utente di specificare la libreria predefinita utilizzata dai beacon generati dal profilo. Il valore può essere "wininet" o "winhttp".

Stage

Questa parte del tuo profilo controlla come il beacon viene caricato in memoria e modifica il contenuto della DLL del beacon. Alcune delle funzionalità utilizzate per modificare il comportamento sono:

  • Obfuscate - Offusca la tabella di import della DLL riflessiva.
  • Stomppe - Chiede al payload di cancellare i valori MZ, PE e e_lfanew dopo il caricamento.
  • Clean up - Dice al beacon di liberare la memoria associata alla DLL riflessiva che lo ha inizializzato.
  • UseRWX - Assicura che lo shellcode non utilizzi i permessi Read, Write Execute.
  • Magic_MZ - Sovrascrive i primi byte (incluso l'header MZ) della DLL riflessiva del Beacon (attualmente solo per x64).
  • Magic_PE - Sostituisce il marcatore di carattere PE utilizzato dal Loader riflessivo del Beacon con un altro valore.
  • Syscall - Definisce la possibilità di utilizzare system calls invece delle funzioni API di Windows standard.
  • Smart Inject - Utilizza suggerimenti di puntatori a funzione incorporati per avviare l'agente beacon senza attraversare kernel32 EAT.
  • Sleep Mask - I beacon TCP e SMB si offuscano a riposo mentre aspettano che venga stabilita la connessione.
  • PE Header - Modifica le caratteristiche della tua DLL riflessiva del Beacon per assomigliare a qualcos'altro in memoria.
  • Transformation - Trasforma lo stage della DLL riflessiva del Beacon rimuovendo o aggiungendo stringhe a .rdata.

Process-Inject

Questa parte del tuo profilo controlla come il beacon modella il contenuto iniettato e controlla il comportamento dell'iniezione di processo. Alcune delle funzionalità utilizzate per modificare il comportamento sono:

  • Allocator - Determina come il loader riflessivo del beacon alloca la memoria.
  • Minimum Allocation - Quantità minima di memoria da richiedere per il contenuto iniettato.
  • Userwx - Assicura che lo shellcode non utilizzi i permessi Read, Write Execute (l'alternativa è RW).
  • Startrwx - Utilizza Read, Write Execute come permessi iniziali per il contenuto iniettato (l'alternativa è RW).
  • Transformer - Aggiunge un blocco di contenuto di padding iniettato dal beacon.
  • Execute - Questa sezione determina come eseguire il codice iniettato.

Post-Exec

Questa parte del tuo profilo controlla come il beacon gestisce i moduli post-exploitation e i comandi. Alcune delle funzionalità utilizzate per modificare il comportamento sono:

  • Spawnto - Determina il processo temporaneo predefinito che il beacon genererà per i suoi comandi di post-exploitation.
  • Obfuscate - Offusca la tabella di import della DLL riflessiva.
  • Smart Inject - Passa i puntatori alle funzioni chiave dal beacon ai suoi job figli.
  • AMSI disable - Disabilita AMSI per powerpick, execute-assembly e psinject (alcuni EDR possono rilevarlo, meglio evitare questi strumenti).
  • Keylogger - Determina come l'API di registrazione dei tasti viene utilizzata per catturare le sequenze di tasti.
  • Cleanup - Pulisce la memoria della DLL riflessiva definita dall'utente (UDRL) quando la DLL post-ex viene caricata.
  • Threadhint - Permette alle DLL post-ex di generare thread con un indirizzo di avvio falsificato.

Profili

Attualmente SourcePoint ti fornisce 7 opzioni integrate per i profili di traffico HTTP/HTTPS, basate su profili esistenti. Di questi 6, 4 sono influenzati e basati su:

  • Comunicazione degli aggiornamenti di Microsoft Windows
  • Comunicazione dei messaggi di Slack
  • Comunicazione delle riunioni attive di Gotomeeting
  • Comunicazione delle email di Microsoft Outlook

3 delle opzioni del profilo (5, 6 e 7) sono progettate specificamente per:

  • Cloudfront.net
  • AzureEdge.net

L'ultima opzione (8) è progettata per inserire un profilo personalizzato. Questa opzione permette all'operatore di utilizzare un profilo di traffico completamente personalizzato. In molti casi, un profilo di traffico completamente unico può dare un alto successo rispetto a uno di questi. Questo permette anche agli operatori di continuare a utilizzare le funzionalità di malleabilità di SourcePoint con il loro profilo di traffico preferito. Poiché questo permette profili unici, è importante assicurarsi di modificare e regolare il profilo affinché SourcePoint funzioni. Come minimo:

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

Per farlo, usa le seguenti opzioni -Customuri e -ProfilePath insieme a -Profile 8. Per utilizzare una base URI diversa per GET e POST, -CustomuriGET e -CustomuriPOST devono essere usati al posto di -Customuri. Durante lo sviluppo di un profilo, è altamente consigliato utilizzare il nativo ./c2lint per verificare che tutto funzioni.

Esempio di Utilizzo

Combinando queste opzioni in un unico profilo puoi creare un beacon altamente efficace che può eludere i controlli preventivi e investigativi. Sebbene questo rimanga un gioco del gatto e del topo in evoluzione, combinare le opzioni giuste contro uno stack di sicurezza specifico può essere abbastanza efficace.

Esempi di Configurazioni 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: 

Certificato SSL

I profili da 1 a 4 possono essere utilizzati senza un SSL valido, SourcePoint genererà un certificato autofirmato relativo al tipo di profilo. Tuttavia, i certificati SSL validi sono estremamente importanti per il successo di qualsiasi tipo di C2. Per molte ragioni, ovviamente nessun certificato significa che il traffico non sarà crittografato (cioè HTTP CHE NON DOVREBBE MAI ESSERE USATO) ma utilizzare un certificato autofirmato ha i suoi ovvi limiti. Ci sono molti modi per ottenere un certificato SSL valido per creare un keystore; il mio modo preferito è usare una versione modificata di HTTPsC2DoneRight.sh, creato da Cham423.

DNS

Attualmente la personalizzazione DNS non è offerta direttamente tramite SourcePoint. Per permettere comunque beacon basati su DNS, c'è una sezione commentata per dns-beacon in ogni profilo generato.

Lista delle Cose da Fare

  • Aggiungere più profili
  • Staging DNS
Scarica lo strumento