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
PMD — Praktischer Kurs zur Windows-Malware-Entwicklung: API-Hashing, DLL-Sideloading, Shellcode-Ausführung, PE-Manipulation, Payload-Hosting und Delivery-Labs. | Kitploit
Tools/GitHubGitHub/rad9800/pmd
Reverse EngineeringShellcodeMalware-AnalyseBinäranalyseLernen & BildungRed TeamingShellcode-GenerierungPayload-EntwicklungLabs & Praxis
GitHubrad9800/pmd

PMD

Praktischer Kurs zur Windows-Malware-Entwicklung: API-Hashing, DLL-Sideloading, Shellcode-Ausführung, PE-Manipulation, Payload-Hosting und Delivery-Labs.

159144vor 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 →
Repository anzeigen
Teilen

Praktische Malware-Entwicklung

Übung 1 - Umgebungseinrichtung

  1. Richten Sie eine Windows-Virtual-Machine in einem Hypervisor ein. a. Stellen Sie sicher, dass Sie einen Snapshot Ihrer Basisinstallation erstellen.
  2. Laden Sie Visual Studio 2022 herunter und installieren Sie es - https://visualstudio.microsoft.com/vs/ a. Wählen Sie die Workload Desktop development with C++ bei der Installation aus
  3. Laden Sie Folgendes herunter und installieren Sie es:
    • DebugView++ - https://github.com/CobaltFusion/DebugViewPP
    • PE Bear - https://github.com/hasherezade/pe-bear
    • ProcMon - https://learn.microsoft.com/en-us/sysinternals/downloads/procmon
    • Ghidra - https://www.ghidra-sre.org/
    • Everything - https://www.voidtools.com/

Zusätzlich (optional): Richten Sie für ein vollständigeres Reverse-Engineering-Erlebnis Symbole ein:

setx _NT_SYMBOL_PATH c:\Symbols;srv*c:\Symbols*https://msdl.microsoft.com/download/symbols

mkdir \symbols

  1. Öffnen Sie PMD.sln in Visual Studio.

  2. Wählen Sie das setup-Projekt aus und stellen Sie sicher, dass Sie:

    a. das Projekt kompilieren können

    b. die Debug-Ausgabe in DebugView++ anzeigen können.

Übung 2 - PE-Eigenschaften verstehen

  1. Aktualisieren Sie die Compiler- und Linker-Flags des Projekts template, um die IAT-Einträge und andere PE-Eigenschaften zu manipulieren.

    a. Machen Sie sich mit der dynamischen API-Auflösung und der MSDN-Dokumentation vertraut.

    b. Gibt es noch andere Eigenschaften, die auffallen? Wenn Sie Strings.exe gegen die Binary ausführen, fallen Ihnen dann bestimmte Strings auf?

    c. Können Sie diese entfernen/aktualisieren?

Verwenden Sie ein beliebiges Tool Ihrer Wahl, um die Übung abzuschließen (z. B. dumpbin/PE Bear). Ein Wrapper um pefile wurde unter scripts\props.py bereitgestellt (stellen Sie sicher, dass Sie die Abhängigkeiten installieren).

  1. Laden Sie einige Malware-Beispiele von VXUG herunter.

    a. Was sind die Hauptunterschiede zwischen gutartigen und bösartigen ausführbaren Dateien?

    b. Was sind die Hauptunterschiede zwischen unserer Binary und gutartigen ausführbaren Dateien?

Weiterführende Ressourcen

  • https://learn.microsoft.com/en-us/cpp/build/reference/dumpbin-reference?view=msvc-170
  • https://learn.microsoft.com/en-us/windows/win32/debug/pe-format
  • https://learn.microsoft.com/en-us/previous-versions/ms809762(v=msdn.10)
  • https://cloud.google.com/blog/topics/threat-intelligence/tracking-malware-import-hashing/
  • https://github.com/rad9800/misc/blob/main/generic/fix-entropy.cpp
  • https://github.com/rad9800/misc/blob/main/generic/stack-strings.cpp

Übung 3 - API-Hashing zur Compile-Zeit

Der verwendete API-Hashing-Algorithmus ist fnv1a.

  1. Öffnen Sie das Projekt solution und rufen Sie MessageBoxA mithilfe des API-Hashing-Frameworks auf.
  2. Verwenden Sie einen anderen Hashing-Algorithmus und stellen Sie sicher, dass Sie MessageBoxA weiterhin aufrufen können.

Weiterführende Ressourcen

  • https://github.com/vxunderground/VX-API/tree/main/VX-API
  • https://learn.microsoft.com/en-us/windows/win32/api/winuser/nf-winuser-messageboxa

Übung 4 - DLL-Hijacking finden und nutzen

  1. Laden Sie Cisco Webex herunter (https://www.webex.com/downloads.html)

  2. Finden Sie CiscoCollabHost und schauen Sie, welche DLLs geladen werden.

    • Verwenden Sie Procmon/PE Bear/Ghidra oder was auch immer!
  3. Öffnen Sie CiscoCollabHost in Ghidra und identifizieren Sie verschiedene Möglichkeiten, um durch Sideloading Codeausführung zu erlangen.

  4. Bearbeiten Sie dll_template, um Ihre Ziel-Binary per Sideloading zu laden. Verifizieren Sie, dass Sie den Debug-String in DebugView++ sehen.

  5. Aktualisieren Sie LastWriteTime und CreationTime von dll_template.dll, sodass sie mit der Ziel-DLL übereinstimmen.

Weiterführende Ressourcen

  • https://hijacklibs.net/
  • https://github.com/sadreck/Spartacus

Übung 5 - Shellcode-Ausführung

  1. Kompilieren Sie das Utility-Projekt und führen Sie es aus.

    a. Ziehen Sie außerdem in Betracht, es auf Ihrem Host-System auszuführen.

  2. Kopieren Sie die identifizierte DLL in das Verzeichnis x64/{Debug,Release} und aktualisieren Sie den Loader-Code.

  3. Aktualisieren Sie execute_sc, um Ihren Shellcode mit einer anderen Funktion im API-Hashing-Framework auszuführen.

Weiterführende Ressourcen

  • https://github.com/Wra7h/FlavorTown

Übung 6 - Alles zusammenfügen

  1. Erstellen Sie ein neues DLL-Projekt und setzen Sie Folgendes zusammen: a. DLL-Sideloading b. Shellcode-Ausführung aus dem Sideloading
  2. Verifizieren Sie, dass Ihre PE-Eigenschaften den Erwartungen entsprechen.
  3. Kompilieren Sie Ihren Payload im Release-Modus und verpacken Sie ihn in einem für die Zustellung geeigneten Format.

Übung 7 - Payload-Hosting

  1. Melden Sie sich bei einem Cloud-Speicheranbieter an (z. B. AWS/CloudFlare)

  2. Verpacken Sie Ihren Payload und laden Sie ihn hoch.

    a. Untersuchen Sie außerdem Möglichkeiten, den Download-Zugriff einzuschränken/zu überwachen.

  3. Erstellen Sie einen Snapshot Ihrer VM.

  4. Stellen Sie die Basis-VM wieder her und spielen Sie Ihr vollständiges "Delivery"-Szenario durch.

    • Führen Sie z. B. einen Benutzer zur URL und bringen Sie ihn zum Download. Stellen Sie sicher, dass es funktioniert.

Übung 8 - Erstellen von Payloads mit Github Actions

  1. Erstellen Sie ein Git-Repository mit dem Inhalt dieses Projekts.
  2. Validieren Sie, dass Sie die Action ausführen können und die Artefakte funktionieren.
  3. Aktualisieren Sie .github\workflows\build.yml, um zusätzliche Vor-/Nachverarbeitung durchzuführen, die Ihnen Zeit spart. Hier sind einige Ideen:
    • Führen Sie props.py aus und validieren/inkludieren Sie die Ausgabe.
    • Automatisieren Sie die Payload-Verpackung in Python.
    • Automatisieren Sie das Aktualisieren von LastWriteTime und CreationTime, sodass sie mit einem Ziel übereinstimmen.
Tool herunterladen