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
voidsyscall — Plattformübergreifendes, syscall-basiertes Implantat & C2 — direkte Syscalls (Win), rohe Syscalls (Linux), HTTPS/DNS/ICMP-Kanäle. Keine WinAPI-Schicht. | Kitploit
Tools/GitHubGitHub/voidsecsoftwares/voidsyscall
Privilege EscalationVerschlüsselungs-/EntschlüsselungstoolsPersistenzmechanismenIDS/IPS-UmgehungLaterale BewegungPost-ExploitationMalware-AnalysePenetrationstestsCommand and ControlRed TeamingPayload-EntwicklungRemote-Access-Trojaner
1819vor 1 TagNoch nicht geprüft

Beliebteste

Alle anzeigen →

Entdecken Sie die meistgenutzten Tools unserer Community.

Alle Tools erkunden

Durchsuchen Sie unsere Tool-Sammlung

Alle Tools anzeigen →
Teilen
GitHubvoidsecsoftwares/voidsyscall

voidsyscall

Plattformübergreifendes, syscall-basiertes Implantat & C2 — direkte Syscalls (Win), rohe Syscalls (Linux), HTTPS/DNS/ICMP-Kanäle. Keine WinAPI-Schicht.

Repository anzeigen

voidsyscall

go license platform c2 syscalls

Zero WinAPI. Jede NT-Primitive wird zur Laufzeit aus ntdll im Speicher aufgelöst — SYSCALL-Instruktionen werden direkt über Plan9-Assembly-Stubs ausgeführt, keine Import-Tabelle, keine ntdll-Usermode-Hooks berührt. C2 über HTTPS / DNS / ICMP, AES-256-GCM pro Nachricht. Windows nativ. Linux-Builds. macOS-Builds.

Dies ist keine Syscall-Wrapper-Bibliothek. Es ist ein vollständiges Implant-Framework, bei dem jede Operation — vom Injizieren von Code über das Lesen von Dateien bis zur Persistenz in der Registry — über rohe Nt*-Syscalls läuft, die beim Start aus der aktuellen ntdll-Export-Tabelle aufgelöst werden. Es existieren keine WinAPI-Aufrufe in der Binärdatei. Nichts für eine EDR, das im Usermode gehooked werden könnte.


Was enthalten ist

Syscall-Engine

  • Laufzeit-SSN-Auflösung: PEB → LDR → ntdll-Basis → PE-Export-Tabelle → djb2-Hash-Abgleich → Prolog-Scan nach B8 xx xx 00 00 0F 05 (direkt) oder 4C 8B D1 B8 xx xx 00 00 0F 05 (Hells Gate). Jeder Funktionsname wird zur Kompilierzeit gehasht — keine Klartext-Strings in der Binärdatei.
  • Direkter Syscall: Plan9-Assembly (asm_amd64.s) lädt die SSN in EAX, setzt 7 Argumente manuell, führt SYSCALL aus. Rückgabe über RAX/RDX.
  • Indirekter Syscall: Findet ein 0F 05 C3-Gadget (syscall;ret) innerhalb von ntdll und ruft darüber auf. Der CPU-Trap landet innerhalb von ntdll — der Call-Stack zeigt ntdll-Frames, nicht Implant-Frames. Kein Usermode-Hook überlebt.
  • SSN-Fingerprint: Gibt alle aufgelösten SSNs aus dem aktuellen ntdll-Build aus, generiert einen Fingerprint-Hash. Export als Hex, Import auf einer anderen Maschine. Erkennt Build-Mismatches, bevor sie dich verbrennen.
  • Unhook: Sperrt .text auf RWX, kopiert die Original-Bytes aus der disk- gemappten ntdll, stellt den Schutz wieder her, flusht den icache, vernichtet den SSN-Cache. Jeder von einer EDR platzierte Usermode-Hook ist verschwunden.

Injection — 4 Methoden, polymorphe Rotation

Der Agent rotiert automatisch durch die Injection-Techniken. Jeder Aufruf verwendet eine andere Methode — keine zwei Injektionen sehen in der Forensik gleich aus.

Anti-Analyse — 13+ Erkennungsmethoden

Führt alle Checks aus, liefert einen bewerteten Threat-Report. Auto-Destruction bei Critical.

Token-Operationen

Alles über Nt*-Syscalls, kein WinAPI.

  • EnablePrivilege(index) — beliebiges Privileg per LUID setzen
  • EnableAllTokenPrivileges() — 20 Privilegien auf einmal (Debug, Impersonate, TCB, Backup, Restore, etc.)
  • GetProcessTokenIntegrityLevel() — Mandatory Integrity abfragen
  • StealProcessToken(pid) — Token eines anderen Prozesses öffnen + duplizieren
  • ImpersonateThread() / RevertToSelf()

VAD-Operationen

  • EnumVirtualMemory() — alle virtuellen Regionen via NtQueryVirtualMemory durchlaufen
  • FindWritableExecRegions() — PAGE_EXECUTE_READWRITE-committete Regionen finden
  • HideRegion() — PAGE_NOACCESS setzen, um Speicher vor Scannern zu verbergen
  • UnhideRegion() — ursprünglichen Schutz wiederherstellen

Datei-I/O — alles Nt*-Syscalls

NtCreateFile → NtReadFile / NtWriteFile → NtClose. Null CreateFileA, ReadFile, WriteFile oder DeleteFileW-Aufrufe. ReadFileContents(), WriteFileContents(), DeleteFileNt(), FileExists().

Registry-Persistenz — alles Nt*-Syscalls

NtCreateKey → NtSetValueKey. AddRunKeyPersistence(), RemoveRunKeyPersistence(). Kein RegCreateKeyEx, RegSetValueEx oder irgendwelche Advapi32-Aufrufe.

Handle-Operationen

  • EnumerateSystemHandles() — alle offenen Handles im System via NtQuerySystemInformation(SystemHandleInformation)
  • FindEDRHandles() — gleicht Owner-PIDs gegen 30+ bekannte EDR-Prozess- namen ab (MsSense, CrowdStrike, Sentinel, Cylance, Carbon Black, etc.)
  • CloseEDRHandles() — schließt Monitoring-Handles, die die EDR in deinem Prozess platziert hat
  • IsProcessMonitored() — Boolean-Check: werden wir überwacht?

Speicherverschlüsselung

  • Vault: In-Memory-XOR-Chiffre mit automatischer Re-Keying per Timer. Klartext wird nie roh gespeichert. Re-Key entschlüsselt → generiert neuen Key → verschlüsselt neu. Forensische Heap-Dumps zwischen Re-Key-Intervallen erhalten Müll.
  • SecureDelete: 3-Pass-Wipe (Random → Nullen → Einsen → Nullen) vor NtFreeVirtualMemory.
  • StackEncrypt: Verschlüsselt stack-allokierte Buffer vor der Rückkehr. Stack-Frame-Wiederverwendung macht Forensik unzuverlässig.

AMSI / ETW / Evasion-Patches

  • PatchAMSI() — AmsiScanBuffer → MOV EAX, 0; RET
  • PatchETW() — EtwEventWrite → RET
  • PatchNtTraceEvent() — NtTraceEvent → RET
  • PatchDbgUiRemoteBreakin() — Thread Breakin → RET
  • PatchInstrumentationCallbacks() — ThreadHideFromDebugger

C2-Kanäle

Kanal

Alle Kanäle implementieren das Channel-Interface. NTP, DoH oder TURN hinzuzufügen bedeutet, das Interface zu implementieren — null Agent-Änderungen.

Krypto

AES-256-GCM pro Nachricht AEAD. Eindeutiger 12-Byte-Nonce pro Nachricht. Keyring pro Implant. Passphrase-basierte Key-Ableitung verfügbar. 3 Tests, alle bestanden.


Layout

root@kitploit:~
voidsyscall/
  syscallwin/          Direct/indirect NT syscalls + evasion
    asm_amd64.s        Syscall/IndirectSyscall/ReadGSBase/SetGSBase/asm_cpuid/asm_rdtsc
    resolve.go         PEB→LDR→ntdll walk, PE export parse, SSN cache, prologue scan
    stubs.go           ~25 Nt* wrappers, DirectSyscall, IndirectSyscallByHash
    hash.go            djb2 hash (string + UTF-16 pointer)
    constants.go       MEM_*, PAGE_*, THREAD_*, TOKEN_*, OBJ_*, REG_*, FILE_*, STATUS_*
    unhook.go          UnhookNtdll, SelfDel
    peb.go             PEB patching (BeingDebugged, NtGlobalFlag, Heap, DebugPort)
    token.go           Privilege escalation, token theft, impersonation
    vad.go             VAD enumeration, hide/unhide regions
    files.go           File I/O via Nt* syscalls
    registry.go        Registry persistence via Nt* syscalls
    fingerprint.go     SSN dump, build fingerprint, hex export/import
    inject_advanced.go 4 injection methods: section mapping, hollow, APC, module stomp
    antianalysis.go    VM/sandbox/debug/timing detection, scored threat report
    handles.go         System handle enumeration, EDR handle killer
    memcrypt.go        Vault (re-keying XOR), SecureDelete, StackEncrypt, WipeMemory
  syscallnix/          Linux/darwin raw syscalls
  patches/             AMSI, ETW, NtTraceEvent, DbgUiRemoteBreakin, InstrumentationCallbacks
  loader/              CreateThread/APC/module-stomp injection
  channels/            HTTP, DNS (TXT), ICMP — Channel interface
  crypto/              AES-256-GCM, envelope, passphrase variant (3 tests)
  server/              SessionManager, Task Queue, interactive REPL
  agent/               Config, beacon loop, 10 task handlers
  cmd/server/main.go   CLI with REPL
  cmd/agent/main.go    Windows-only entrypoint

Build

root@kitploit:~
GOOS=windows GOARCH=amd64 go build -ldflags="-s -w" -o voidsyscall-agent.exe   ./cmd/agent
GOOS=windows GOARCH=amd64 go build -ldflags="-s -w" -o voidsyscall-server.exe  ./cmd/server
GOOS=linux   GOARCH=amd64 go build -ldflags="-s -w" -o server-linux            ./cmd/server
GOOS=darwin  GOARCH=arm64 go build -ldflags="-s -w" -o server-darwin           ./cmd/server

Obfuskation mit garble:

root@kitploit:~
GOOS=windows GOARCH=amd64 garble -literals -tiny build -ldflags="-s -w" \
    -o voidsyscall-agent.exe ./cmd/agent

Verwendung

Server

root@kitploit:~
openssl req -x509 -newkey rsa:4096 -keyout key.pem -out cert.pem -days 365 -nodes
./voidsyscall-server.exe --cert cert.pem --key key.pem --https-port 443

Agent

root@kitploit:~
./voidsyscall-agent.exe -c agent/example-config.json

Task-Protokoll


SSN-Auflösungs-Interna

  1. ReadGSBase (asm) → GS:[0x60] → TEB
  2. TEB+0x60 → PEB. PEB+0x18 → Ldr
  3. InMemoryOrderModuleList durchlaufen → ntdll.dll via djb2-Hash abgleichen
  4. Basis → IMAGE_DOS_HEADER → e_lfanew → IMAGE_NT_HEADERS → DataDirectory[0] = Export-Tabelle
  5. AddressOfNames[] durchlaufen, jeweils djb2, Ziel abgleichen
  6. Ordinal auflösen → AddressOfFunctions[ordinal] → Funktionsadresse
  7. Prolog scannen nach B8 xx xx 00 00 0F 05 (direkt), B8 xx xx 00 00 C3 (Early-Ret) oder 4C 8B D1 B8 xx xx 00 00 0F 05 (Hells Gate)

Keine Funktionsnamen in der Binärdatei. Nur djb2-Hashes. Die syscall-Instruktion umgeht jeden Usermode-Hook.


Agent-Task-Handler

root@kitploit:~
TaskShell       // exec via cmd.exe
TaskInject      // polymorphic: section/hollow/APC/stomp
TaskPatch       // AMSI/ETW/both
TaskEvasion     // PEB patches + VM/sandbox/debug/timing detection
TaskHandles     // enumerate + kill EDR monitoring handles
TaskFingerprint // dump SSN build fingerprint
TaskToken       // privilege escalation + impersonation
TaskVault       // encrypted in-memory storage
TaskSleep       // jitter-aware sleep
TaskExit        // clean shutdown

Status

Ausgeliefert: Beacon-Loop, Task-Queue, 3 C2-Kanäle, 4 Injection-Methoden, 10+ Evasion-Checks, Handle-Enumeration/-Schließung, Token-Manipulation, VAD-Operationen, Datei-I/O, Registry-Persistenz, SSN-Fingerprinting, Speicherverschlüsselung, AMSI/ETW-Patching, AES-GCM-Krypto, Session-Management, interaktive REPL. 3 Krypto-Tests bestehen. go build sauber unter Windows.

Noch nicht: Linux autonomer Agent (Builds existieren, keine Agent-Logik), Session-Key-Rotation, Staged Loader, NTP/DoH-Kanäle, Persistenz-Scheduling.

Danksagungen

  • carved4/go-native-syscall
  • Enelg52/OffensiveGo
  • am0nsec/HellsGate
  • f1zm0/acheron
  • Sliver C2

Lizenz

MIT — LICENSE

Tool herunterladen
MethodeFunktionsweiseWarum sie stealthy ist
Section MappingNtCreateSection → NtMapViewOfSection (remote) → NtCreateThreadExKeine RWX-Allokation im VAD. Die Section ist file-backed. Memory-Scanner sehen PAGE_EXECUTE_READ, nicht PAGE_EXECUTE_READWRITE.
Process HollowNtCreateUserProcess (suspendiert) → NtSuspendProcess → Image-Basis nullen → Shellcode allokieren + schreiben → NtSetContextThread (RIP = Shellcode) → NtResumeProcessDer Prozess erscheint als legitime svchost.exe im Taskmanager. Nur der Speicherinhalt unterscheidet sich.
APC QueuingThreads via NtQuerySystemInformation aufzählen → NtOpenThread → NtQueueApcThreadKein neuer Thread erstellt. Kein neues TEB. Keine neue Stack-Allokation. Feuert, wenn der Thread in einen alertable Wait eintritt.
Module StompingAllokation im Ziel → minimaler PE-Header + Shellcode schreiben → NtCreateThreadEx am Entry PointDie Modulliste zeigt einen plausiblen DLL-Namen. Der PE-Header ist gültig genug, um die Modul-Enumeration zu täuschen.
CheckMethode
VM-ErkennungCPUID-Leaf 0x40000000 Hypervisor-Signatur-Scan (VMware, VirtualBox, Hyper-V, KVM, Xen, QEMU, Parallels) + Leaf 0x40000001 als Fallback
Sandbox-ErkennungCPU-Anzahl, Registry-Artefakte (VMware Tools, VBox Guest Additions, VMware/VBox-Dienste), Sandbox-Prozess-Scan (30+ bekannte Namen: wireshark, procmon, x64dbg, ida, etc.)
Debugger-ErkennungPEB.BeingDebugged, PEB.NtGlobalFlag, Heap-Debug-Flags, ProcessDebugPort, ProcessDebugObjectHandle, ProcessDebugFlags, Hardware-Breakpoint DR0-7, Timing-Single-Step-Check
Timing-AnomalieRDTSC-basiert: 50 Samples der NtQuerySystemInformation-Latenz, Mittelwert/Stddev, Flag wenn >10% der Samples die 3σ-Varianz überschreiten. Erkennt Instrumentierungs-Overhead.
PEB-EvasionPatcht BeingDebugged, NtGlobalFlag, ProcessHeap-Flags, DebugPort, ThreadHideFromDebugger — alles über GS-Segment-Reads + NtWriteVirtualMemory. Keine API-Aufrufe.
Wire-Format
Voraussetzungen
HTTPSbinäres POST, Custom-Framing, randomisierter UA/PfadTLS-Zertifikat
DNS<idx>-<total>-<base32>-Subdomain, TXT-AntwortDNS-Auflösung
ICMPv4Payload in Echo Request/Reply ID+SeqRaw Socket (root/Admin)
TaskBytePayload
shell0x01UTF-8-Befehl
inject0x02PID (4 Bytes LE) + Shellcode
patch0x030x01=AMSI, 0x02=ETW, 0x03=beides
sleep0x04Sekunden (4 Bytes LE)
evasion0x100x01=vollständig, 0x02=VM, 0x03=Sandbox, 0x04=Debug, 0x05=Timing, 0x06=Report
handles0x110x01=Anzahl, 0x02=EDR aufzählen, 0x03=EDR schließen, 0x04=überwacht?
vault0x12verschlüsselte Speicheroperationen
fingerprint0x13SSN-Build-Fingerprint ausgeben
token0x140x01=alle aktivieren, 0x02=Integrität, 0x03=Debug-Privileg, 0x04=impersonieren
exit0xFF—
  • 2-Byte-SSN extrahieren → im map[uint32]uint16-Cache speichern