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
maldev-for-dummies — Ein Workshop über Malware-Entwicklung | Kitploit
Tools/GitHubGitHub/chvancooten/maldev-for-dummies
ExploitationShellcodeMalware-AnalyseLernen & BildungRed TeamingPayload-EntwicklungLabs & Praxis
GitHubchvancooten/maldev-for-dummies

maldev-for-dummies

Ein Workshop über Malware-Entwicklung

Repository anzeigen
1.8k235vor 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

Malware-Entwicklung für Dummies

Im Zeitalter von EDR können Red-Team-Operateure nicht mehr mit vorkompilierten Payloads auskommen. Daher wird Malware-Entwicklung zu einer unverzichtbaren Fähigkeit für jeden Operator. Der Einstieg in die Maldev mag abschreckend wirken, ist aber tatsächlich sehr einfach. Dieser Workshop zeigt Ihnen alles, was Sie für den Einstieg brauchen!

Dieses Repository enthält die Folien und begleitenden Übungen für den Workshop 'MalDev for Dummies', der auf der Hack in Paris 2022 und der X33fcon 2023 durchgeführt wurde bzw. wird. Obwohl die Folien für die 'persönliche' Präsentation konzipiert wurden, bleiben die Materialien und Übungen hier verfügbar, um in Ihrem eigenen Tempo bearbeitet zu werden – der Lernprozess sollte niemals überstürzt werden! Issues und Pull Requests zu diesem Repository mit Fragen und/oder Vorschlägen sind willkommen.

⚠ Haftungsausschluss: Malware-Entwicklung ist eine Fähigkeit, die – und sollte – für das Gute genutzt werden, um das Feld der (offensiven) Sicherheit voranzubringen und unsere Abwehr scharf zu halten. Wenn Sie diese Fähigkeiten jemals für Aktivitäten nutzen, für die Sie keine Autorisierung haben, sind Sie ein größerer Dummkopf, als dieser Workshop vorsieht, und Sie sollten sich schnell davonmachen.

Workshop-Beschreibung

Da Antiviren- (AV) und Enterprise Detection and Response (EDR)-Tools von Minute zu Minute ausgereifter werden, ist das Red Team gezwungen, der Kurve voraus zu sein. Vorbei sind die Zeiten von execute-assembly und dem Ablegen unmodifizierter Payloads auf der Festplatte – wenn Ihre Engagements länger als eine Woche dauern sollen, müssen Sie Ihr Payload-Erstellungs- und Malware-Entwicklungsspiel verbessern. Der Einstieg in dieses Feld kann jedoch einschüchternd wirken, und die richtigen Ressourcen zu finden ist nicht immer einfach.

Dieser Workshop richtet sich an Anfänger in diesem Bereich und führt Sie durch Ihre ersten Schritte als Malware-Entwickler. Er richtet sich hauptsächlich an offensive Praktiker, aber defensive Praktiker sind ebenfalls herzlich willkommen, ihre Fähigkeiten zu erweitern.

Während des Workshops gehen wir etwas Theorie durch, danach richten wir eine Laborumgebung für Sie ein. Es gibt verschiedene Übungen, die Sie je nach Ihrem aktuellen Kenntnisstand und Ihrem Komfortniveau mit dem Thema absolvieren können. Das Ziel des Workshops ist es jedoch zu lernen, und explizit nicht, alle Übungen abzuschließen. Sie können Ihre bevorzugte Programmiersprache für die Malware-Entwicklung frei wählen, aber die Unterstützung während des Workshops erfolgt hauptsächlich für die Programmiersprachen C# und Nim.

Während des Workshops besprechen wir die wichtigsten Themen, die für den Einstieg in die Erstellung eigener Malware erforderlich sind. Dazu gehören (aber nicht beschränkt auf):

  • Die Windows-API
  • Dateitypen und Ausführungsmethoden
  • Shellcode-Ausführung und -Injektion
  • AV- und EDR-Umgehungsmethoden

Erste Schritte

Um mit der Malware-Entwicklung zu beginnen, benötigen Sie einen Entwicklungsrechner, damit Sie nicht von defensiven Tools gestört werden, die auf Ihrem Host-Rechner laufen könnten. Ich bevorzuge Windows für die Entwicklung, aber Linux oder MacOS tun es auch. Installieren Sie Ihren bevorzugten Editor/IDE (ich verwende VS Code für fast alles außer C#, wofür ich Visual Studio verwende) und installieren Sie dann die Toolchains, die für Ihre bevorzugte MalDev-Sprache erforderlich sind:

  • C#: Visual Studio bietet Ihnen die Option, die .NET-Pakete zu inkludieren, die Sie für die Entwicklung in C# benötigen. Wenn Sie ohne Visual Studio entwickeln möchten, können Sie das .NET Framework separat herunterladen.
  • Nim lang: Folgen Sie den Download-Anweisungen. Choosenim ist ein praktisches Dienstprogramm, das zur Automatisierung des Installationsprozesses verwendet werden kann.
  • Golang (dank an @nodauf für den PR): Folgen Sie den Download-Anweisungen.
  • Rust: Rustup kann verwendet werden, um Rust zusammen mit den erforderlichen Toolchains zu installieren.

Vergessen Sie nicht, Windows Defender zu deaktivieren oder die entsprechenden Ausnahmen hinzuzufügen, damit Ihre harte Arbeit nicht unter Quarantäne gestellt wird! Später können wir auf einem separaten Rechner mit defensiven Kontrollen wie aktiviertem AV testen.

ℹ Hinweis: Oftmals können Paketmanager wie apt oder Softwareverwaltungstools wie Chocolatey oder Winget (jetzt eingebaut!) verwendet werden, um die Installation und Verwaltung von Abhängigkeiten auf bequeme und wiederholbare Weise zu automatisieren. Seien Sie sich jedoch bewusst, dass Versionen in Paketmanagern ein paar Versionen hinter der echten Sache zurück sein können! Unten sehen Sie ein Beispielbefehl, um die genannten Tools auf einmal zu installieren.

root@kitploit:~
 choco install -y nim choosenim go rust vscode visualstudio2019community dotnetfx

Kompilieren von Programmen

Die Sprachen, die wir in diesem Workshop besprechen werden, sind kompilierte Sprachen, was bedeutet, dass ein Compiler verwendet wird, um Ihren Quellcode in binäre ausführbare Dateien Ihres gewählten Formats zu übersetzen. Der Kompilierungsprozess unterscheidet sich pro Sprache.

C#

C#-Code (.cs-Dateien) kann entweder direkt (mit dem Dienstprogramm csc) oder über Visual Studio selbst kompiliert werden. Der meiste Quellcode in diesem Repository (außer der Lösung zu Bonusübung 3) kann wie folgt kompiliert werden.

ℹ Hinweis: Stellen Sie sicher, dass Sie den folgenden Befehl in einer "Visual Studio Developer-Eingabeaufforderung" ausführen, damit das System weiß, wo csc zu finden ist. Es wird empfohlen, die "x64 Native Tools-Eingabeaufforderung" für Ihre Version von Visual Studio zu verwenden. Das /unsafe-Flag wird für die meisten Skripte benötigt, bei denen wir direkt auf Low-Level-Funktionalität zugreifen.

root@kitploit:~
csc filename.exe

Sie können Kompilierungszeitoptimierungen mit dem Flag /optimize aktivieren. Sie können das Konsolenfenster auch mit /target:winexe ausblenden oder als DLL mit /target:library kompilieren (stellen Sie jedoch sicher, dass Ihre Codestruktur dafür geeignet ist).

Nim

Nim-Code (.nim-Dateien) wird mit dem Befehl nim c kompiliert. Der Quellcode in diesem Repository kann wie folgt kompiliert werden.

root@kitploit:~
nim c filename.nim

Wenn Sie Ihren Build für Größe optimieren und Debug-Informationen entfernen möchten (viel besser für OpSec!), können Sie die folgenden Flags hinzufügen.

root@kitploit:~
nim c -d:release -d:strip --opt:size filename.nim

Optional können Sie auch das Konsolenfenster mit --app:gui ausblenden.

Golang

Golang-Code (.go-Dateien) wird mit dem Befehl go build kompiliert. Der Quellcode in diesem Repository kann wie folgt kompiliert werden.

root@kitploit:~
GOOS=windows go build

Wenn Sie Ihren Build für Größe optimieren und Debug-Informationen entfernen möchten (viel besser für OpSec!), können Sie die folgenden Flags hinzufügen.

root@kitploit:~
GOOS=windows go build -ldflags "-s -w"

Rust

Rust-Code (.rs-Dateien) wird über den Befehl cargo kompiliert. Cargo kann verwendet werden, um Ihre Abhängigkeiten zu verwalten und Ihr Projekt zu bauen. Der Quellcode in diesem Repository kann kompiliert werden, indem Sie in den Projektordner navigieren und den folgenden Befehl ausführen.

root@kitploit:~
cargo build

Wenn Sie Ihren Build für Größe optimieren und Debug-Informationen entfernen möchten, können Sie die folgenden Flags hinzufügen. Beachten Sie auch den Abschnitt [profile.release] in jeder Cargo.toml-Datei für einige OpSec-Optionen zur Kompilierungszeit.

root@kitploit:~
cargo build --release

Abhängigkeiten

C#

Die meisten Lösungen können ohne Abhängigkeiten kompiliert werden. Falls Abhängigkeiten erforderlich sind, wird ein Visual Studio-Projekt bereitgestellt, das auf die entsprechenden NuGet-Pakete verweist.

Nim

Die meisten Nim-Programme hängen von einer Bibliothek namens "Winim" ab, um mit der Windows-API zu kommunizieren. Sie können die Bibliothek mit dem Paketmanager Nimble wie folgt installieren (nach der Installation von Nim):

root@kitploit:~
nimble install winim

Golang

Einige Abhängigkeiten werden im Quellcode dieses Repositorys verwendet. Sie können sie wie folgt installieren (nach der Installation von Go):

root@kitploit:~
go mod tidy

Rust

Einige Beispiele hängen von der windows-sys-Kiste ab, um die Windows-API aufzurufen. Da wir Cargo verwenden, werden Pakete automatisch verwaltet, wenn Sie einen Test- oder Release-Build kompilieren.

Ressourcen

Die Workshop-Folien verweisen auf einige Ressourcen, die Sie für den Einstieg nutzen können. Zusätzliche Ressourcen wie relevante Blogs oder Codeausschnitte sind in den README.md-Dateien jeder Übung aufgeführt!

Tool herunterladen