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
OffensiveRust — Rust-Waffenisierung für Red-Team-Einsätze. | Kitploit
Tools/GitHubGitHub/trickster0/offensiverust
Privilege EscalationExploitationIDS/IPS-UmgehungReverse EngineeringShellcodePost-ExploitationMalware-AnalyseCommand and ControlLernen & BildungRed TeamingPayload-EntwicklungBinary-Exploitation
3.0k34319vor 3 JahrenVon 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
GitHubtrickster0/offensiverust

OffensiveRust

Rust-Waffenisierung für Red-Team-Einsätze.

Repository anzeigen

OffensiveRust

OffensiveRust

Meine Experimente zur Bewaffnung von Rust für die Entwicklung von Implantaten und allgemeine offensive Operationen.

Inhaltsverzeichnis

  • OffensiveRust
    • Warum Rust?
    • Beispiele in diesem Repository
    • Kompilieren der Beispiele
    • Kompilieren der Beispiele in diesem Repository
    • Cross-Kompilierung
    • Optimierung von ausführbaren Dateien hinsichtlich der Größe
    • Fallstricke, in die ich geraten bin
    • Interessante Rust-Bibliotheken
    • Opsec
    • Andere Projekte, die ich in Rust erstellt habe
    • Projekte in Rust, die hilfreich sein können

Warum Rust?

  • Es ist schneller als Sprachen wie C/C++
  • Es ist eine Mehrzwecksprache mit hervorragenden Communities
  • Es verfügt über ein erstaunliches integriertes Abhängigkeitsmanagement namens Cargo
  • Es basiert auf LLVM, was es zu einem sehr guten Kandidaten macht, um statische AV-Erkennung zu umgehen
  • Super einfache Cross-Kompilierung nach Windows von *nix/MacOS aus, erfordert nur die Installation der mingw-Toolchain, obwohl bestimmte Bibliotheken auf anderen Betriebssystemen nicht erfolgreich kompiliert werden können.

Beispiele in diesem Repository

Kompilieren der Beispiele in diesem Repository

Dieses Repository stellt keine Binärdateien bereit, Sie müssen sie selbst kompilieren.

Rust installieren
Laden Sie einfach die Binärdatei herunter und installieren Sie sie.

Dieses Repository wurde in Windows 10 kompiliert, daher würde ich dabei bleiben. Wie erwähnt werden OpenSSL-Binärdateien Abhängigkeitsprobleme haben, die die Installation von OpenSSL und perl erfordern. Für den TCP-SSL-Client/Server empfehle ich einen statischen Build aufgrund der Abhängigkeiten auf den Hosts, auf denen Sie die Binärdateien ausführen werden. Um ein Projekt zu erstellen, führen Sie aus:
cargo new <name> Dadurch werden automatisch die strukturierten Projektordner erstellt mit:```bash
project ├── Cargo.toml └── src └── main.rs

root@kitploit:~
Cargo.toml ist die Datei, die die Abhängigkeiten und die Konfiguration für die Kompilierung enthält.
main.rs ist die Hauptdatei, die zusammen mit allen eventuellen Verzeichnissen, die Bibliotheken enthalten, kompiliert wird.

Um das Projekt zu kompilieren, gehe in das Projektverzeichnis und führe aus:  
`cargo build`

Dies verwendet Ihre Standard-Toolchain.
Wenn Sie die finale „Release“-Version erstellen möchten, führen Sie aus:  
`cargo build --release`

Für statische Binärdateien führen Sie vor dem Build-Befehl im Terminal aus:  
`"C:\Program Files (x86)\Microsoft Visual Studio\2019\Community\VC\Auxiliary\Build\vcvars64.bat"`  
`set RUSTFLAGS=-C target-feature=+crt-static`

Falls es Ihnen nicht leichtfällt, meinen Code so zu lesen, wie er geschrieben ist,  
können Sie auch den folgenden Befehl innerhalb des Projektverzeichnisses verwenden, um ihn besser zu formatieren:  
`cargo fmt`

Bestimmte Beispiele könnten nicht kompilieren und einen Fehler ausgeben, da sie möglicherweise eine nächtliche  
Build-Version von Rust mit den neuesten Funktionen erfordern. Um diese zu installieren, führen Sie einfach aus:  
`rustup default nightly`  



Der einfachste Ort, um die Abhängigkeiten zu finden, oder [Crates](https://crates.io/), wie sie genannt werden.

## Cross-Compilierung

Cross-Compilierung erfordert, den Anweisungen [hier](https://rust-lang.github.io/rustup/cross-compilation.html) zu folgen.
Durch die Installation verschiedener Toolchains können Sie mit dem folgenden Befehl cross-compilieren:  
`cargo build --target <toolchain>`  

Um die installierten Toolchains auf Ihrem System anzuzeigen, führen Sie aus:  
`rustup toolchain list`  

Um alle verfügbaren Toolchains zu überprüfen, die Sie auf Ihrem System installieren können, führen Sie aus:  
`rustup target list`  

Um eine neue Toolchain zu installieren, führen Sie aus:  
`rustup target add <toolchain_name>`  


## Optimieren von ausführbaren Dateien auf Größe

Dieses [Repo](https://github.com/johnthagen/min-sized-rust) enthält viele Konfigurationsoptionen und Ideen zur Reduzierung der Dateigröße.
Statische Binärdateien sind normalerweise recht groß.

## Fallstricke, in die ich selbst geraten bin

Vorsicht vor \0-Bytes, vergessen Sie sie nicht für Strings im Speicher. Ich habe viel Zeit damit verbracht, aber windbg half immer bei der Lösung.


## Interessante Rust-Bibliotheken

- WINAPI  
- [WINAPI2](https://github.com/MauriceKayser/rs-winapi2)  
- Windows – Dies ist die offizielle von Microsoft, mit der ich nicht viel herumgespielt habe

## OPSEC

- Auch wenn Rust gute Vorteile bietet, ist es ziemlich schwierig, sich daran zu gewöhnen, und es ist nicht sehr intuitiv.  
- Die Shellcode-Generierung ist aufgrund von LLVM ein weiteres Problem. Ich habe ein paar Möglichkeiten gefunden, dies anzugehen.  
[Donut](https://github.com/TheWover/donut) erzeugt manchmal Shellcode, der funktioniert, aber je nachdem, wie das Projekt aufgebaut ist, kann es auch sein, dass er nicht funktioniert.  
Im Allgemeinen sollten bei der Shellcode-Generierung die erstellten Tools so konzipiert sein, dass sie den gesamten Code im .text-Segment hosten,  
was zu diesem großartigen [Repo](https://github.com/b1tg/rust-windows-shellcode) führt.
Es gibt ein Shellcode-Beispiel in diesem Projekt, das zeigen kann, wie man seinen Code für eine erfolgreiche Shellcode-Generierung strukturiert.  
Darüber hinaus verfügt dieses Projekt auch über einen Shellcode-Generator, der das .text-Segment einer Binärdatei greift und  
den Shellcode nach der Ausführung einiger Patches ausgibt.  
Dieses Projekt greift die Binärdatei von einem bestimmten Speicherort aus, daher habe ich einen Fork erstellt, der den Pfad der Binärdatei als Argument akzeptiert [hier](https://github.com/trickster0/rust-windows-shellcode-custom).  
- Selbst wenn Sie alle Debug-Symbole entfernen, kann Rust dennoch Verweise auf Ihr Home-Verzeichnis in der Binärdatei behalten. Der einzige Weg, den ich gefunden habe, um dies zu entfernen, ist die Verwendung des folgenden Flags: `--remap-path-prefix {Ihr Home-Verzeichnis}={ein zufälliger Bezeichner}`. Sie können Bash-Variablen verwenden, um Ihr Home-Verzeichnis zu erhalten und einen zufälligen Platzhalter zu generieren: `--remap-path-prefix "$HOME"="$RANDOM"`. (Von [Yamakadi](https://github.com/yamakadi))
- Obwohl es für das obige Problem eine andere Möglichkeit gibt, Informationen über das Home-Verzeichnis zu entfernen, indem Sie am Anfang der Cargo.toml hinzufügen:  
`cargo-features = ["strip"]` .  
Da Rust standardmäßig viele Dinge als Strings in der Binärdatei hinterlässt, verwende ich meistens diese [cargo.toml](../master/cargo.toml), um sie zu vermeiden und auch die Größe zu reduzieren,  
mit dem Build-Befehl:  
`cargo build --release -Z build-std=std,panic_abort -Z build-std-features=panic_immediate_abort --target x86_64-pc-windows-msvc`
- [Yamakadi] wies auch darauf hin, dass das Strippen je nach importierten Bibliotheken nicht immer konsistent beim Verstecken des Home-Verzeichnisses ist, daher wäre eine Kombination seiner Lösung zur Neuzuordnung des Pfades und der Verwendung der obigen cargo-Konfiguration am besten. Versuchen Sie, sich dessen bewusst zu sein und überprüfen Sie Ihre Binärdateien, bevor Sie sie in Ihren Engagements ausführen, auf potenzielle Strings, die nicht richtig gestrippt wurden.

## Andere Projekte, die ich in Rust erstellt habe

- [UDPlant](https://github.com/trickster0/UDPlant) – Im Grunde ein UDP-Reverse-Shell  
- [EDR Detector](https://github.com/trickster0/EDR_Detector) – Erkennt die installierten EDRs des Systems anhand der installierten .sys-Dateien  
- [Lenum](https://github.com/trickster0/Lenum) – Ein einfaches Unix-Enumerationstool

## Projekte in Rust, die hilfreich sein können

- [houdini](https://github.com/yamakadi/houdini) – Hilft, Ihre ausführbare Datei selbst zu löschen
Tool herunterladen
DateiBeschreibung
Allocate_With_SyscallsEs verwendet NTDLL-Funktionen direkt mit der ntapi-Bibliothek
Create_DLLErstellt eine DLL und zeigt eine MsgBox an. Rust unterstützt dies nicht vollständig, daher kann es komisch werden, da Rust-DLLs keine main-Funktion haben
DeviceIoControlÖffnet ein Treiber-Handle und führt DeviceIoControl aus
EnableDebugPrivilegesAktiviert SeDebugPrivilege im aktuellen Prozess
Shellcode_Local_injectFührt Shellcode direkt im lokalen Prozess durch Casten eines Zeigers aus
Execute_With_CMDFührt cmd durch Übergeben eines Befehls über Rust aus
ImportedFunctionCallEs importiert minidump aus dbghelp und führt es aus
Kernel_Driver_ExploitKernel-Treiber-Exploit für einen einfachen Pufferüberlauf
Named_Pipe_ClientNamed Pipe Client
Named_Pipe_ServerNamed Pipe Server
PEB_WalkDynamisches Auflösen und Aufrufen von Windows-APIs
Process_Injection_CreateThreadProcess Injection in einen laufenden Prozess mit CreateThread
Process_Injection_CreateRemoteThreadProcess Injection in einen entfernten Prozess mit CreateRemoteThread
Process_Injection_Self_EnumSystemGeoIDSelbstinjektor, der den EnumSystemsGeoID-API-Aufruf verwendet, um Shellcode auszuführen.
UnhookingUnhooking-Aufrufe
asm_syscallErmitteln der PEB-Adresse über asm
base64_system_enumBase64-Kodierung/Dekodierung von Zeichenfolgen
http-https-requestsHTTP/S-Anfragen unter Ignorieren der Zertifikatsprüfung für GET/POST
patch_etwPatch ETW
ppid_spoofSpoofing des übergeordneten Prozesses für erstellten Prozess
tcp_ssl_clientTCP-Client mit SSL, der Zertifikatsprüfung ignoriert (Erfordert Installation von openssl und perl für die Kompilierung)
tcp_ssl_serverTCP-Server mit Portparameter (Erfordert Installation von openssl und perl für die Kompilierung)
wmi_executeFührt WMI-Abfrage aus, um die AV/EDRs im Host zu ermitteln
Windows.h+ BindingsDiese Datei enthält Strukturen von Windows.h plus vollständig angepasste LDR, PEB usw., die von Microsoft offiziell nicht dokumentiert sind. Fügen Sie am Anfang Ihrer Datei include!("../bindings.rs"); hinzu
UUID_Shellcode_ExecutionPflanzt Shellcode aus einem UUID-Array in den Heap-Speicher und verwendet den EnumSystemLocalesA-Callback, um den Shellcode auszuführen.
AMSI BypassAMSI-Bypass im lokalen Prozess
Injection_AES_LoaderNtTestAlert-Injection mit AES-Entschlüsselung
Litcrypt_String_EncryptionVerwendung der Litcrypt-Crate zum Verschlüsseln von Literal-Zeichenfolgen im Ruhezustand und im Speicher, um statische AV zu umgehen.
Api HookingAPI-Hooking mit der Detour-Bibliothek
memfd_createAusführen von Payloads aus dem Speicher mit der memfd_create-Technik (für Linux)
RC4_EncryptionRC4-entschlüsselter Shellcode
Steal TokenToken aus Prozess stehlen
Keyboard HookingKeylogging durch Hooking der Tastatur mit SetWindowsHookEx
memN0ps arsenal: shellcode_runner_classic-rsKlassischer Shellcode-Runner/Injector mit ntapi
memN0ps arsenal: dll_injector_classic-rsKlassische DLL-Injection mit windows-sys
memN0ps arsenal: module_stomping-rsModule Stomping / Module Overloading / DLL Hollowing mit windows-sys
memN0ps arsenal: obfuscate_shellcode-rsEinfacher Shellcode-XOR- und AES-Obfuskator
memN0ps arsenal: process_hollowing-rsProcess Hollowing mit ntapi
memN0ps arsenal: rdi-rsReflektive DLL-Injection mit windows-sys
memN0ps: eagle-rsRusty Rootkit: Windows-Kernel-Treiber in Rust für Red Teamer mit winapi und ntapi
memN0ps: psyscalls-rsRusty Parallel Syscalls-Bibliothek mit winapi
memN0ps: mmapper-rsRusty Manual Mapper mit winapi
memN0ps: srdi-rsRusty Shellcode Reflective DLL Injection mit windows-sys
memN0ps: mordor-rs - freshycalls_syswhispersRusty FreshyCalls / SysWhispers1 / SysWhispers2 / SysWhispers3-Bibliothek mit windows-sys
memN0ps: mordor-rs - hells_halos_tartarus_gateRusty Hell's Gate / Halo's Gate / Tartarus' Gate-Bibliothek mit windows-sys
memN0ps: pemadness-rsRusty Portable Executable Parsing Library (PE-Parsing-Bibliothek) mit windows-sys
memN0ps: mimiRustMimikatz in Rust erstellt von @ThottySploit. Der ursprüngliche Autor hat sein GitHub-Konto gelöscht, daher wurde es für die Community hochgeladen.
memN0ps and trickster0: ekko-rsRusty Ekko - Sleep-Obfuskation in Rust mit windows-sys.