Skip to content
KitploitKITPLOIT
StrumentiBlog
Invia
StrumentiBlog
Invia

Strumenti di Hacking, PenTest e Cybersecurity per il tuo Arsenale di Sicurezza!

Kitploit è una directory di strumenti di hacking, cybersecurity e pentesting. Scopri gli ultimi aggiornamenti dei progetti per trovare vulnerabilità, analizzare sistemi, automatizzare i test e rafforzare la tua sicurezza.

··Feed·Contatto·Privacy·© 2026 Kitploit

Directory degli strumenti

Categorie

Vedi tutte le categorie
Loading categories
PMD — Corso pratico di sviluppo di malware per Windows: API hashing, DLL sideloading, esecuzione di shellcode, manipolazione di PE, hosting di payload e laboratori di distribuzione. | Kitploit
Strumenti/GitHubGitHub/rad9800/pmd
Reverse EngineeringShellcodeAnalisi MalwareAnalisi di BinariApprendimento e FormazioneRed TeamingGenerazione di ShellcodeSviluppo PayloadLab e Pratica
GitHubrad9800/pmd

PMD

Corso pratico di sviluppo di malware per Windows: API hashing, DLL sideloading, esecuzione di shellcode, manipolazione di PE, hosting di payload e laboratori di distribuzione.

159141 anno faRevisionato da Kitploit

Più Popolari

Vedi tutti →

Scopri gli strumenti più utilizzati dalla nostra community.

Esplora tutti gli strumenti

Sfoglia la nostra collezione di strumenti

Vedi tutti gli strumenti →
Condividi
Vedi Repository

Sviluppo Pratico di Malware

Esercizio 1 - Configurazione dell'Ambiente

  1. Prepara una macchina virtuale Windows all'interno di un hypervisor. a. Assicurati di effettuare uno snapshot dell'installazione di base.
  2. Scarica e installa Visual Studio 2022 - https://visualstudio.microsoft.com/vs/ a. Seleziona il carico di lavoro Desktop development with C++ durante l'installazione
  3. Scarica e installa:
    • 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/

Inoltre (facoltativo), per un'esperienza di reversing più completa, configura i simboli:

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

mkdir \symbols

  1. Apri PMD.sln in Visual Studio.

  2. Seleziona il progetto setup e assicurati di poter:

    a. Compilare il progetto

    b. Visualizzare l'istruzione di debug print in DebugView++.

Esercizio 2 - Comprendere le Proprietà PE

  1. Aggiorna i flag del compilatore e del linker del progetto template per manipolare le voci IAT e altre proprietà PE.

    a. Prendi familiarità con la risoluzione dinamica delle API e la documentazione MSDN.

    b. Ci sono altre proprietà che risaltano? Se esegui Strings.exe sul binario, qualche stringa risalta?

    c. Riesci a rimuoverle/aggiornarle?

Usa qualsiasi strumento tu preferisca per completare l'esercizio (ad es. dumpbin/PE Bear). È stato fornito un wrapper per pefile in scripts\props.py (assicurati di installare i requisiti).

  1. Scarica alcuni campioni di malware da VXUG

    a. Quali sono le principali differenze tra eseguibili benigni e malevoli?

    b. Quali sono le principali differenze tra il nostro binario e gli eseguibili benigni?

Ulteriori Risorse

  • 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

Esercizio 3 - API Hashing in Fase di Compilazione

L'algoritmo di hashing delle API attualmente utilizzato è fnv1a.

  1. Apri il progetto solution e chiama MessageBoxA utilizzando il framework di API hashing.
  2. Usa un algoritmo di hashing diverso e assicurati di poter chiamare ancora MessageBoxA.

Ulteriori Risorse

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

Esercizio 4 - Trovare e Sfruttare il DLL Hijacking

  1. Scarica Cisco Webex (https://www.webex.com/downloads.html)

  2. Trova CiscoCollabHost e osserva quali DLL vengono caricate

    • Usa Procmon/PE Bear/Ghidra o qualsiasi altro strumento!
  3. Apri CiscoCollabHost in Ghidra e identifica diversi modi per ottenere l'esecuzione di codice tramite sideloading

  4. Modifica il dll_template per effettuare il sideload del tuo binario target. Verifica di poter vedere la stringa di debug in DebugView++.

  5. Aggiorna LastWriteTime e CreationTime di dll_template.dll per farli corrispondere alla DLL target.

Ulteriori Risorse

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

Esercizio 5 - Esecuzione di Shellcode

  1. Compila ed esegui il progetto utility.

    a. Inoltre, valuta la possibilità di eseguirlo sul tuo sistema host.

  2. Copia la DLL identificata nella directory x64/{Debug,Release} e aggiorna il codice del loader.

  3. Aggiorna execute_sc per eseguire il tuo shellcode con una funzione diversa utilizzando il framework di API hashing.

Ulteriori Risorse

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

Esercizio 6 - Mettere Tutto Insieme

  1. Crea un nuovo progetto DLL e metti insieme: a. DLL Sideloading b. Esecuzione di Shellcode dal Sideload
  2. Verifica che le tue proprietà PE siano come previsto.
  3. Compila il payload in Release e impacchettalo in un formato adatto alla consegna.

Esercizio 7 - Hosting del Payload

  1. Crea un account presso un provider di cloud storage (ad es. AWS/CloudFlare)

  2. Impacchetta il tuo payload e caricalo

    a. Inoltre, indaga su modi per limitare/controllare l'accesso al download

  3. Effettua uno snapshot della tua VM

  4. Ripristina la VM di base ed esegui l'intero scenario di "delivery"

    • ad es. portare un utente all'URL e fargli scaricare il file. Assicurati che funzioni.

Esercizio 8 - Creare Payload con GitHub Actions

  1. Crea un repository Git con il contenuto di questo progetto
  2. Verifica che tu possa eseguire l'Action e che gli artifact funzionino
  3. Aggiorna .github\workflows\build.yml per eseguire ulteriori pre/post elaborazioni come preferisci per risparmiare tempo. Ecco alcune idee:
    • Esegui props.py e valida/includi l'output
    • Automatizza il confezionamento del payload in Python
    • Automatizza l'aggiornamento di LastWriteTime e CreationTime per corrispondere a un target
Scarica lo strumento