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
CobaltWhispers — CobaltWhispers ist ein Aggressor-Skript, das eine Sammlung von Beacon Object Files (BOF) für Cobalt Strike nutzt, um Prozessinjektion, Persistenz und mehr durchzuführen, wobei direkte Syscalls (SysWhispers2) genutzt werden, um EDR/AV zu umgehen. | Kitploit
Tools/GitHubGitHub/nvisosecurity/cobaltwhispers
PersistenzmechanismenIDS/IPS-UmgehungPost-ExploitationCommand and ControlRed TeamingPayload-EntwicklungAdversarial-Angriff
GitHubnvisosecurity/cobaltwhispers

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →

CobaltWhispers

CobaltWhispers ist ein Aggressor-Skript, das eine Sammlung von Beacon Object Files (BOF) für Cobalt Strike nutzt, um Prozessinjektion, Persistenz und mehr durchzuführen, wobei direkte Syscalls (SysWhispers2) genutzt werden, um EDR/AV zu umgehen.

Repository anzeigen
240354vor 3 JahrenVon Kitploit geprüft
Teilen

CobaltWhispers

Autor: @Cerbersec

CobaltWhispers ist ein Aggressor-Skript, das eine Sammlung von Beacon Object Files für Cobalt Strike verwendet, um Prozessinjektion, Persistenz und mehr durchzuführen, indem es direkte Syscalls nutzt, um EDR/AV zu umgehen.

CobaltWhispers nutzt SysWhispers2 und InlineWhispers2
CobaltWhispers basiert auf StayKit sowie Arbeiten von Hasherezade und Forrest Orr.

CobaltWhispers wurde im Rahmen eines Praktikums im Red Team von NVISO Security erstellt. Die zugehörigen Blogbeiträge finden Sie hier (Prozessinjektion) und hier (Kernel Karnage).

Kompilieren aus dem Quellcode

CobaltWhispers erfordert mehrere Werkzeuge zum Kompilieren:

  • MingW-w64 - apt install mingw-w64
  • Make - apt install make
  • Python3
  • SysWhispers2
  • InlineWhispers2
  • Jedes Projekt benötigt 3 Dateien, die von SysWhispers2 / InlineWhispers2 generiert werden, um zu funktionieren:

    • syscalls-asm.h
    • syscalls.c
    • syscalls.h

    Diese Dateien können gemäß der InlineWhispers2-Dokumentation generiert werden, dies ist jedoch nicht die optimale Methode, da eine Menge ungenutzter Code enthalten sein wird:

    root@kitploit:~
    git clone https://github.com/Sh0ckFR/InlineWhispers2 && cd InlineWhispers2
    cd SysWhispers2/ && python3 syswhispers.py --preset all -o syscalls_all && cd ..
    python3 InlineWhispers2.py
    
    

    Verwenden Sie stattdessen SysWhispers2, um die Ausgabedateien nur für die erforderlichen APIs zu generieren, und stellen Sie sie dann manuell (oder per Skript) InlineWhispers2 zur Verfügung, das sie in das richtige Format konvertiert. Weitere Informationen finden Sie im mitgelieferten Makefile, oder verwenden Sie die mitgelieferten Dateien auf eigenes Risiko.

    Injektion

    SpawnProcess

    Payload-TypZielZuverlässigkeit (0-5)Erweiterte RechteBemerkungen
    --5NeinErbt Berechtigungen vom übergeordneten Prozess

    Beschreibung

    Startet einen neuen angehaltenen Prozess mit aktiviertem Code Integrity Guard (CIG), um nicht von Microsoft signierte Binärdateien zu blockieren. Spooft den angegebenen übergeordneten Prozess. Die PID wird zurückgegeben.

    Parameter

    Übergeordneter Prozess: Der Name des Prozesses, der als übergeordneter Prozess festgelegt werden soll
    Speicherort der ausführbaren Datei: Vollständiger Pfad zur ausführbaren Datei auf der Festplatte, die zum Starten eines neuen Prozesses verwendet wird


    CreateRemoteThread

    Payload-TypZielZuverlässigkeit (0-5)Erweiterte RechteBemerkungen
    Shellcode/RawPID5Nein-

    Beschreibung

    Injiziert einen Payload in einen entfernten Prozess mithilfe von NtCreateThreadEx

    Parameter

    Prozess-PID: Die Prozess-ID des entfernten Prozesses
    Payload-Speicherort: Speicherort des Payloads in binärer Form auf der Festplatte (Bedingt | Optional)
    Payload b64: Roher Shellcode im Base64-kodierten String-Format (Bedingt | Optional)
    Listener: Listener, für den ein Payload generiert werden soll (Bedingt)

    Ein Listener sollte angegeben werden, um einen Beacon-Payload zu generieren. Wenn ein manueller Payload gewünscht ist, sollte er über einen Pfad zur rohen Binärdatei auf der Festplatte oder als Base64-kodierten Shellcode bereitgestellt werden.


    QueueUserAPC

    Payload-TypZielZuverlässigkeit (0-5)Erweiterte RechteBemerkungen
    Shellcode/RawPID2NeinKann den Zielprozess möglicherweise zum Absturz bringen

    Beschreibung

    Injiziert einen Payload in einen entfernten Prozess mithilfe von NtQueueApcThread

    Parameter

    Prozess-PID: Die Prozess-ID des entfernten Prozesses
    Threads: Anzahl der Threads, zu denen ein APC-Aufruf hinzugefügt werden soll
    Payload-Speicherort: Speicherort des Payloads in binärer Form auf der Festplatte (Bedingt | Optional)
    Payload b64: Roher Shellcode im Base64-kodierten String-Format (Bedingt | Optional)
    Listener: Listener, für den ein Payload generiert werden soll (Bedingt)

    Ein Listener sollte angegeben werden, um einen Beacon-Payload zu generieren. Wenn ein manueller Payload gewünscht ist, sollte er über einen Pfad zur rohen Binärdatei auf der Festplatte oder als Base64-kodierten Shellcode bereitgestellt werden.


    MapViewOfSection

    Payload-TypZielZuverlässigkeit (0-5)Erweiterte RechteBemerkungen
    Shellcode/RawSurrogate-Prozess5Nein-

    Beschreibung

    Injiziert einen Payload in einen Surrogate-Prozess mithilfe von NtMapViewOfSection

    Parameter

    Übergeordneter Prozess: Der Name des Prozesses, der als übergeordneter Prozess festgelegt werden soll
    Speicherort der ausführbaren Datei: Der Speicherort der ausführbaren Datei auf der Festplatte, die zum Starten eines neuen Prozesses verwendet wird
    Payload-Speicherort: Speicherort des Payloads in binärer Form auf der Festplatte (Bedingt | Optional)
    Payload b64: Roher Shellcode im Base64-kodierten String-Format (Bedingt | Optional)
    Listener: Listener, für den ein Payload generiert werden soll (Bedingt)

    Ein Listener sollte angegeben werden, um einen Beacon-Payload zu generieren. Wenn ein manueller Payload gewünscht ist, sollte er über einen Pfad zur rohen Binärdatei auf der Festplatte oder als Base64-kodierten Shellcode bereitgestellt werden.


    TransactedHollowing

    Payload-TypZielZuverlässigkeit (0-5)Erweiterte RechteBemerkungen
    PESurrogate-Prozess5NeinErfordert x64-PE-Payload

    Beschreibung

    Injiziert einen Payload in einen Surrogate-Prozess mithilfe transaktionaler Sektionen und gemappter Ansichten. Der entfernte Einstiegspunkt und die PEB werden aktualisiert, keine anomalen Speichersektionen oder Speicherberechtigungen. Weitere Informationen finden Sie hier.

    Parameter

    Übergeordneter Prozess: Der Name des Prozesses, der als übergeordneter Prozess festgelegt werden soll
    Speicherort der ausführbaren Datei: Der Speicherort der ausführbaren Datei auf der Festplatte, die zum Starten eines neuen Prozesses verwendet wird
    Payload-Speicherort: Speicherort des x64-PE-Payloads auf der Festplatte (Bedingt | Optional)
    Payload b64: x64-PE-Payload im Base64-kodierten String-Format (Bedingt | Optional)
    Listener: Listener, für den ein Payload generiert werden soll (Bedingt)

    Ein Listener sollte angegeben werden, um einen Beacon-Payload zu generieren. Wenn ein manueller Payload gewünscht ist, sollte er über einen Pfad zur x64-PE-Datei auf der Festplatte oder als Base64-kodierte x64-PE bereitgestellt werden.


    PhantomDLLHollowing

    DERZEIT NICHT IMPLEMENTIERT

    Payload-TypZielZuverlässigkeit (0-5)Erweiterte RechteBemerkungen
    Positionsunabhängiger Shellcode (PIC)Surrogate-Prozess5JaErweiterte Berechtigungen sind erforderlich, um System-DLLs mit Schreibberechtigung zu öffnen

    Beschreibung

    Injiziert einen Payload in einen Surrogate-Prozess mithilfe transaktionaler Sektionen in Kombination mit DLL-Hollowing. Weitere Informationen finden Sie hier.

    Parameter

    Übergeordneter Prozess: Der Name des Prozesses, der als übergeordneter Prozess festgelegt werden soll
    Speicherort der ausführbaren Datei: Der Speicherort der ausführbaren Datei auf der Festplatte, die zum Starten eines neuen Prozesses verwendet wird
    Payload-Speicherort: Speicherort des Payloads in binärer Form auf der Festplatte (Bedingt | Optional)
    Payload b64: Roher Shellcode im Base64-kodierten String-Format (Bedingt | Optional)
    Listener: Listener, für den ein Payload generiert werden soll (Bedingt)

    Ein Listener sollte angegeben werden, um einen Beacon-Payload zu generieren. Wenn ein manueller Payload gewünscht ist, sollte er über einen Pfad zur rohen Binärdatei auf der Festplatte oder als Base64-kodierten Shellcode bereitgestellt werden.


    Persistenz

    ElevatedRegKey

    Beschreibung

    Erstellt oder ändert einen Registrierungsschlüssel an der angegebenen Position.

    • HKLM:Software\Microsoft\Windows\CurrentVersion\Run
    • HKLM:Software\Microsoft\Windows\CurrentVersion\RunOnce

    Parameter

    Schlüsselname: Wertname
    Befehl: Befehl, der ausgeführt wird, wenn die Registrierung verwendet wird
    Registrierungsschlüssel: Speicherort, an dem der Registrierungsschlüssel erstellt wird
    Versteckt: Stellt dem Schlüsselnamen ein Nullbyte voran; führt in regedit zu Fehlern
    Bereinigung: Entfernt den erstellten Schlüssel

    Für die Bereinigung sind der Schlüsselname und der Registrierungsschlüssel (Speicherort) erforderlich.


    ElevatedUserInitRegKey

    Beschreibung

    Erstellt oder ändert einen Registrierungsschlüssel an der angegebenen Position.

    • HKLM:Software\Microsoft\Windows NT\CurrentVersion\Winlogon [UserInit]

    Parameter

    Schlüsselname: Wertname
    Befehl: Befehl, der ausgeführt wird, wenn die Registrierung verwendet wird
    Registrierungsschlüssel: Speicherort, an dem der Registrierungsschlüssel erstellt wird
    Versteckt: Stellt dem Schlüsselnamen ein Nullbyte voran; führt in regedit zu Fehlern
    Bereinigung: Entfernt den erstellten Schlüssel

    Für die Bereinigung sind der Schlüsselname und der Registrierungsschlüssel (Speicherort) erforderlich.
    UserInit: Legt 'Schlüsselname' und 'Registrierungsschlüssel' automatisch fest.


    UserRegKey

    Beschreibung

    Erstellt oder ändert einen Registrierungsschlüssel an der angegebenen Position.

    • HKCU:Software\Microsoft\Windows\CurrentVersion\Run
    • HKCU:Software\Microsoft\Windows\CurrentVersion\RunOnce

    Parameter

    Schlüsselname: Wertname
    Befehl: Befehl, der ausgeführt wird, wenn die Registrierung verwendet wird
    Registrierungsschlüssel: Speicherort, an dem der Registrierungsschlüssel erstellt wird
    Versteckt: Stellt dem Schlüsselnamen ein Nullbyte voran; führt in regedit zu Fehlern
    Bereinigung: Entfernt den erstellten Schlüssel

    Für die Bereinigung sind der Schlüsselname und der Registrierungsschlüssel (Speicherort) erforderlich.


    UserInitMprRegKey

    Beschreibung

    Erstellt oder ändert einen Registrierungsschlüssel an der angegebenen Position.

    • HKCU:Environment [UserInitMprLogonScript]

    Parameter

    Schlüsselname: Wertname
    Befehl: Befehl, der ausgeführt wird, wenn die Registrierung verwendet wird
    Registrierungsschlüssel: Speicherort, an dem der Registrierungsschlüssel erstellt wird
    Versteckt: Stellt dem Schlüsselnamen ein Nullbyte voran; führt in regedit zu Fehlern
    Bereinigung: Entfernt den erstellten Schlüssel

    Für die Bereinigung sind der Schlüsselname und der Registrierungsschlüssel (Speicherort) erforderlich.
    UserInitMprLogonScript: Legt 'Schlüsselname' und 'Registrierungsschlüssel' automatisch fest.


    COM-Hijack für geplante Aufgaben

    Beschreibung

    Übernimmt den COM-Handler einer geplanten Aufgabe. Erstellt einen Registrierungsschlüssel unter HKCU:\Software\Classes\CLSID\\InprocServer32, der auf eine DLL verweist.

    Parameter

    Klassen-ID: Die CLSID, die der COM-Handler-CLSID der Aufgabe entspricht
    DLL-Pfad: Pfad zur DLL, die geladen werden soll
    Bereinigung: Entfernt den erstellten Schlüssel


    Treiber

    DisableDSE

    Zuverlässigkeit (0-5)Erweiterte RechteBemerkungen
    4JaKann das Zielsystem möglicherweise zum Absturz bringen (BSOD)

    Beschreibung

    Lädt einen verwundbaren signierten Treiber mit beliebigem Kernel-Speicher-Lesen/Schreiben (NalDrv/iqvm64.sys). Ändert das g_CiEnabled-Flag von ntoskrnl.exe oder das g_CiOptions-Flag von CI.dll, um die Treibersignaturerzwingung (Driver Signature Enforcement, DSE) zu deaktivieren.
    Lädt einen nicht signierten Treiber (Interceptor/Interceptor.sys) und stellt dann die DSE-Flag-Werte wieder her. Sowohl der signierte Treiber als auch der nicht signierte Treiber werden auf die Festplatte geschrieben.

    TreiberMD5-Prüfsumme
    iqvm64.sys1898ceda3247213c084f43637ef163b3
    Interceptor.sys508c8943359717cfa0c77b61ebea2118

    Parameter

    Speicherort des verwundbaren Treibers: Speicherort des verwundbaren signierten Treibers in binärer Form auf der Festplatte
    Speicherort des schädlichen Treibers: Speicherort des schädlichen, nicht signierten Treibers in binärer Form auf der Festplatte
    Name des verwundbaren Treibers: Name, der zum Erstellen des Registrierungsschlüssels '\Registry\Machine\System\CurrentControlSet\Services\' verwendet wird
    Gerätename des verwundbaren Treibers: Name, der zum Kontaktieren des Treibers '\DosDevices\' verwendet wird
    Name des schädlichen Treibers: Name, der zum Erstellen des Registrierungsschlüssels '\Registry\Machine\System\CurrentControlSet\Services\' verwendet wird
    Gerätename des schädlichen Treibers: Name, der zum Kontaktieren des Treibers '\DosDevices\' verwendet wird
    Zielpfad: Temporärer Pfad, in den die Dateien des verwundbaren und des schädlichen Treibers geschrieben werden


    UnloadDriver

    Zuverlässigkeit (0-5)Erweiterte RechteBemerkungen
    5Ja-

    Beschreibung

    Entlädt einen Treiber auf dem Zielsystem mithilfe des angegebenen Registrierungsschlüssels und löscht die Binärdatei von der Festplatte unter dem angegebenen Pfad.

    Parameter

    Registrierungsschlüssel des Treibers: Registrierungsschlüssel, der zum Entladen des Treibers verwendet wird '\Registry\Machine\System\CurrentControlSet\Services\'
    Installationspfad des Treibers: Speicherort des Treibers auf der Festplatte


    Intercept

    Zuverlässigkeit (0-5)Erweiterte RechteBemerkungen
    4NeinKann das Zielsystem möglicherweise zum Absturz bringen (BSOD)

    Beschreibung

    Information: Fragt den Interceptor-Treiber ab
    Hook: Hookt die Hauptfunktionen (IRP) des Zieltreibers
    Unhook: Stellt die Hauptfunktionen des Zieltreibers wieder her
    Patch: Patcht die Kernel-Callbacks des Ziels
    Restore: Stellt die Kernel-Callbacks des Ziels wieder her

    Parameter: Information

    Anbieter: Unterstützte Anbieter anzeigen
    Module: Alle geladenen Treiber abfragen
    Gehookte Module: Alle gehookten Treiber anzeigen
    Callbacks: Alle registrierten Callbacks abfragen

    Parameter: Hook

    Index: Einen Treiber per Index hooken (siehe: Informationen – Module)
    Name: Einen Treiber per Gerätenamen hooken (\Device\Name)
    Werte: Kommagetrennte Liste von Indizes (bedingt)
    Name: Gerätename des Zieltreibers (bedingt)

    Werte sind erforderlich, wenn 'Index' ausgewählt ist. Name ist erforderlich, wenn 'Name' ausgewählt ist.

    Parameter: Unhook

    Index: Einen Treiber per Index unhooken (siehe: Informationen – gehookte Module)
    Alle: Alle gehookten Treiber unhooken
    Werte: Kommagetrennte Liste von Indizes (bedingt)

    Werte sind erforderlich, wenn 'Index' ausgewählt ist.

    Parameter: Patch

    Anbieter: Alle Callbacks patchen, die mit Anbietermodul(en) verknüpft sind
    Modul: Alle Callbacks patchen, die mit Modul(en) verknüpft sind
    Prozess: Prozess-Callback(s) patchen
    Thread: Thread-Callback(s) patchen
    Image: Image-Callback(s) patchen
    Registrierung: Registrierungs-Callback(s) patchen
    Objektprozess: Objektprozess-Callback(s) patchen
    Objektthread: Objektthread-Callback(s) patchen
    Werte: Kommagetrennte Liste von Indizes (siehe: Informationen – Callbacks) (bedingt)
    Name: Kommagetrennte Liste von Modulnamen oder ein einzelner Anbietername (siehe: Informationen – Anbieter) (bedingt)

    Werte sind erforderlich, wenn 'Prozess', 'Thread', 'Image', 'Registrierung', 'Objektprozess' oder 'Objektthread' ausgewählt ist. Name ist erforderlich, wenn 'Anbieter' oder 'Modul' ausgewählt ist.

    Parameter: Restore

    Anbieter: Alle Callbacks wiederherstellen, die mit Anbietermodul(en) verknüpft sind
    Modul: Alle Callbacks wiederherstellen, die mit Modul(en) verknüpft sind
    Prozess: Prozess-Callback(s) wiederherstellen
    Thread: Thread-Callback(s) wiederherstellen
    Image: Image-Callback(s) wiederherstellen
    Registrierung: Registrierungs-Callback(s) wiederherstellen
    Objektprozess: Objektprozess-Callback(s) wiederherstellen
    Objektthread: Objektthread-Callback(s) wiederherstellen
    Alle: Alle Callbacks wiederherstellen
    Werte: Kommagetrennte Liste von Indizes (siehe: Informationen – Callbacks) (bedingt)
    Name: Kommagetrennte Liste von Modulnamen oder ein einzelner Anbietername (siehe: Informationen – Anbieter) (bedingt)

    Werte sind erforderlich, wenn 'Prozess', 'Thread', 'Image', 'Registrierung', 'Objektprozess' oder 'Objektthread' ausgewählt ist. Name ist erforderlich, wenn 'Anbieter' oder 'Modul' ausgewählt ist.


    Tool herunterladen