Skip to content
KitploitKITPLOIT
ToolsBlog
Einreichen
ToolsBlog
Einreichen

Hacking-, PenTest- und Cybersicherheits-Tools für Ihr Sicherheitsarsenal!

Kitploit ist ein Verzeichnis von Hacking-, Cybersicherheits- und Pentesting-Tools. Entdecken Sie die neuesten Projekt-Updates, um Schwachstellen zu finden, Systeme zu analysieren, Tests zu automatisieren und Ihre Sicherheit zu stärken.

··Feeds·Kontakt·Datenschutz·© 2026 Kitploit

Tool-Verzeichnis

Kategorien

Alle Kategorien anzeigen
Loading categories
SourcePoint — Polymorpher C2-Profilgenerator für Cobalt Strike, der die Erstellung von ausweichenden Beacon-Konfigurationen mit randomisierten Optionen für HTTP, DNS und Prozessinjektion automatisiert, um die Erkennung zu reduzieren. | Kitploit
Tools/GitHubGitHub/tylous/sourcepoint
Exploit-FrameworksPayload-GenerierungCommand and ControlRed Teaming
GitHubtylous/sourcepoint

SourcePoint

Polymorpher C2-Profilgenerator für Cobalt Strike, der die Erstellung von ausweichenden Beacon-Konfigurationen mit randomisierten Optionen für HTTP, DNS und Prozessinjektion automatisiert, um die Erkennung zu reduzieren.

Repository anzeigen
1.2k170vor 1 JahrVon Kitploit geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen

SourcePoint

SourcePoint ist ein polymorpher C2-Profilgenerator für Cobalt Strike C2s, geschrieben in Go. SourcePoint ermöglicht die Erstellung einzigartiger C2-Profile im laufenden Betrieb, was dazu beiträgt, unsere Indicators of Compromise („IoCs“) zu reduzieren und dem Operator das Aufsetzen komplexer Profile mit minimalem Aufwand ermöglicht. Dies wurde durch umfassende Überprüfung von Artikeln sowie Patch Notes erreicht, um Schlüsselfunktionen und modifizierbare Merkmale zu identifizieren. SourcePoint wurde mit der Absicht entwickelt, das Problem anzugehen, wie unsere C2-Aktivitäten schwerer zu erkennen sind, wobei der Fokus darauf liegt, sich von bösartigen IoCs zu verdächtigen zu bewegen. Das Ziel ist, dass es schwieriger ist, unser C2 zu erkennen, wenn unsere IoCs nicht von Natur aus bösartig sind und zusätzliche Recherche erfordern, um die verdächtige Natur zu entdecken. SourcePoint enthält zahlreiche verschiedene konfigurierbare Optionen zur Auswahl, um Ihr Profil zu modifizieren (in den meisten Fällen wählt SourcePoint zufällig für Sie aus, falls Felder leer gelassen werden). Die generierten Profile modifizieren alle Aspekte Ihres C2. Das Ziel dieses Projekts ist es, nicht nur bei der Umgehung erkennungsbasierter Kontrollen zu helfen, sondern auch C2-Datenverkehr und -Aktivitäten in die Umgebung einzufügen, um diese Aktivitäten schwer erkennbar zu machen.

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

Installation

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

$go build SourcePoint.go

Verwendung

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

Wichtig

SourcePoint automatisiert hauptsächlich den Build-Prozess eines Profils. Es ist sehr wichtig, alle in diesen Profilen modifizierten Funktionen zu kennen. Die Kenntnis dieser Funktionen kann Ihren Erfolg erheblich steigern.

Optionen

Während es viele Einstellungen und Funktionen gibt, die in der Hilfefunktion von SourcePoint beschrieben werden, enthalten die Profile zahlreiche wichtige Funktionen, die man kennen sollte. Diese Funktionen sind:

Globale Optionen

Dieser Teil Ihres Profils modifiziert, wie der Beacon arbeitet. Einige der zur Verhaltensänderung verwendeten Funktionen sind:

  • Host Stage – Erlaubt dem Teamserver, gestagte Shellcode für HTTP, HTTPS, DNS zu hosten. Wenn dies aktiviert ist, kann jeder, der eine GET-Anfrage mit einem bestimmten Wert wie /9ZXq sendet, ebenfalls die Shellcode abrufen.
  • Sleep – Die Zeitspanne, in der ein Beacon nach Hause zurückruft.
  • Jitter – Fügt einen Prozentsatz zur Rückrufzeit des Beacons hinzu.
  • Useragent – Der User-Agent-String, der bei der Kommunikation von HTTP- und HTTPS-Verkehr verwendet wird. Die Verwendung des passenden User-Agent-Strings kann helfen, sich in die Umgebung einzufügen.
  • Data Jitter – Fügt allen GET- und POST-Anfragen einen String mit zufälliger Länge hinzu, um sicherzustellen, dass eingehende Anfragen nicht dieselbe Länge haben.
  • SMB Frame Header – Fügt einen Header-Wert zu den SMB-Beacon-Nachrichten hinzu.
  • Pipename – Legt den Namen der SMB-Pipe fest, die der Beacon für die Kommunikation verwendet.
  • Pipename Stager – Legt den Namen des SMB-Stagers für die Beacons fest.
  • TCP Frame Header – Fügt einen Header-Wert zu den TCP-Beacon-Nachrichten hinzu.
  • SSH Banner – Das verwendete SSH-Banner.
  • SSH Pipename – Der Name, der für das SSH-Banner verwendet wird.
  • HttpLib – Das Bibliotheksattribut ermöglicht dem Benutzer, die Standardbibliothek anzugeben, die von den generierten Beacons des Profils verwendet wird. Der Wert kann „wininet“ oder „winhttp“ sein.

Stage

Dieser Teil Ihres Profils steuert, wie der Beacon in den Speicher geladen wird und den Inhalt der Beacon-DLL bearbeitet. Einige der zur Verhaltensänderung verwendeten Funktionen sind:

  • Obfuscate – Verschleiert die Importtabelle der reflektiven DLL.
  • Stomppe – Fordert den Payload auf, die MZ-, PE- und e_lfanen-Werte nach dem Laden zu überschreiben.
  • Clean up – Weist den Beacon an, den Speicher freizugeben, der mit der reflektiven DLL verbunden ist, die ihn initialisiert hat.
  • UseRWX – Stellt sicher, dass Shellcode keine Lese-, Schreib-, Ausführungsberechtigungen verwendet.
  • Magic_MZ – Überschreibt die ersten Bytes (einschließlich MZ-Header) der reflektiven DLL des Beacons (derzeit nur für x64).
  • Magic_PE – Überschreibt den PE-Zeichenmarker, der vom reflektiven Loader des Beacons verwendet wird, mit einem anderen Wert.
  • Syscall – Definiert die Fähigkeit, Systemaufrufe anstelle der standardmäßigen Windows-API-Funktionen zu verwenden.
  • Smart Inject – Verwendet eingebettete Funktionszeiger-Hinweise, um den Beacon-Agenten zu booten, ohne die kernel32-EAT zu durchlaufen.
  • Sleep Mask – TCP- und SMB-Beacons verschleiern sich im Ruhezustand, während sie auf den Verbindungsaufbau warten.
  • PE Header – Ändert die Merkmale Ihrer Beacon-Reflektiv-DLL, um im Speicher wie etwas anderes auszusehen.
  • Transformation – Transformiert die reflektive DLL-Stage des Beacons, indem Zeichenfolgen zur .rdata hinzugefügt oder daraus entfernt werden.

Process-Inject

Dieser Teil Ihres Profils steuert, wie der Beacon injizierten Inhalt formt und das Verhalten der Prozessinjektion kontrolliert. Einige der zur Verhaltensänderung verwendeten Funktionen sind:

  • Allocator – Legt fest, wie der reflektive Loader des Beacons Speicher zuweist.
  • Minimum Allocation – Mindestmenge an Speicher, der für injizierten Inhalt angefordert wird.
  • Userwx – Stellt sicher, dass Shellcode keine Lese-, Schreib-, Ausführungsberechtigungen verwendet (Alternative ist RW).
  • Startrwx – Verwendet Lese-, Schreib-, Ausführungsberechtigungen als anfängliche Berechtigungen für injizierten Inhalt (Alternative ist RW).
  • Transformer – Fügt einen Block von Padding-Inhalt hinzu, der vom Beacon injiziert wird.
  • Execute – Dieser Abschnitt bestimmt, wie der injizierte Code ausgeführt wird.

Post-Exec

Dieser Teil Ihres Profils steuert, wie der Beacon Post-Exploitation-Module und -Befehle behandelt. Einige der zur Verhaltensänderung verwendeten Funktionen sind:

  • Spawnto – Legt den Standard-Temp-Prozess fest, den der Beacon für seine Post-Exploitation-Befehle und -Optionen startet.
  • Obfuscate – Verschleiert die Importtabelle der reflektiven DLL.
  • Smart Inject – Übergibt wichtige Funktionszeiger vom Beacon an seine untergeordneten Jobs.
  • AMSI disable – Deaktiviert AMSI für powerpick, execute-assembly und psinject (Bestimmte EDRs können dies erkennen, daher ist es am besten, diese Tools nicht zu verwenden).
  • Keylogger – Legt fest, wie die Keystroke-Logging-API zum Aufzeichnen von Tastenanschlägen verwendet wird.
  • Cleanup – Bereinigt den Speicher der benutzerdefinierten reflektiven DLL („UDRL“) nach dem Laden der Post-Exploitation-DLL.
  • Threadhint – Ermöglicht Post-Exploitation-DLLs, Threads mit einer gefälschten Startadresse zu starten.

Profiles

Derzeit bietet SourcePoint 7 integrierte Optionen für HTTP/HTTPS-Datenverkehrsprofile, basierend auf vorhandenen Profilen. Von diesen 7 sind 4 beeinflusst durch und basieren auf:

  • Microsoft Windows Update-Kommunikation
  • Slack-Nachrichtenkommunikation
  • Gotomeeting-Aktive-Meeting-Kommunikation
  • Microsoft Outlook-E-Mail-Kommunikation

3 der Profiloptionen (5, 6 und 7) sind speziell entworfen für:

  • Cloudfront.net
  • AzureEdge.net

Die letzte Option (8) ist für die Eingabe eines benutzerdefinierten Profils gedacht. Diese Option ermöglicht es einem Operator, ein vollständig benutzerdefiniertes Datenverkehrsprofil zu verwenden. Es gibt viele Fälle, in denen ein völlig einzigartiges Datenverkehrsprofil mehr Erfolg bringt als eines der vordefinierten. Dies erlaubt es Operatoren auch, die Anpassungsfähigkeiten von SourcePoint mit ihrem bevorzugten oder häufig genutzten Datenverkehrsprofil zu nutzen. Da dies einzigartige Profile ermöglicht, ist es wichtig, das Profil anzupassen und anzupassen, damit SourcePoint funktioniert. Mindestens:

  • Ersetzen Sie header "Host" "acme.com"; durch header "Host" "{{.Variables.Host}}";
  • Ersetzen Sie /pathtolegitpage/ im GET-Feld durch {{.Variables.HTTP_GET_URI}}
  • Ersetzen Sie /pathtolegitpage/ im POST-Feld durch {{.Variables.HTTP_POST_URI}}

Verwenden Sie dazu die Optionen -Customuri und -ProfilePath zusammen mit -Profile 8. Um eine andere URI-Basis für GET und POST zu verwenden, sollten -CustomuriGET und -CustomuriPOST anstelle von -Customuri verwendet werden. Bei der Entwicklung eines Profils wird dringend empfohlen, das native ./c2lint zu verwenden, um zu überprüfen, ob alles funktioniert.

Beispiel

Durch die Kombination dieser Optionen in einem Profil können Sie einen hochwirksamen Beacon erstellen, der präventive und detektive Kontrollen umgehen kann. Auch wenn dies ein sich ständig weiterentwickelndes Katz-und-Maus-Spiel bleibt, kann die Kombination der richtigen Optionen gegen einen bestimmten Sicherheitsstack sehr effektiv sein.

Beispiel-Yaml-Konfigurationen

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: 

SSL-Zertifikat

Profile der Modi 1–4 können ohne gültiges SSL-Zertifikat verwendet werden; SourcePoint generiert ein selbstsigniertes Zertifikat, das zum Profiltyp passt. Dennoch sind gültige SSL-Zertifikate für den Erfolg jeder Art von C2 äußerst wichtig. Aus vielen Gründen – offensichtlich bedeutet kein Zertifikat, dass der Datenverkehr unverschlüsselt ist (d. h. HTTP, DAS NIEMALS VERWENDET WERDEN SOLLTE) –, aber die Verwendung eines selbstsignierten Zertifikats hat seine offensichtlichen Einschränkungen. Es gibt viele Möglichkeiten, ein gültiges SSL-Zertifikat zu erhalten, um einen Keystore zu erstellen. Mein bevorzugter Weg ist die Verwendung einer modifizierten Version von HTTPsC2DoneRight.sh, erstellt von Cham423.

DNS

Derzeit wird die DNS-Anpassung nicht direkt über SourcePoint angeboten. Um dennoch DNS-basierte Beacons zu ermöglichen, gibt es in jedem generierten Profil einen auskommentierten Abschnitt für den DNS-Beacon.

To-Do-Liste

  • Weitere Profile hinzufügen
  • DNS-Staging
Tool herunterladen