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
maldev-for-dummies — Un workshop sullo sviluppo di malware. | Kitploit
Strumenti/GitHubGitHub/chvancooten/maldev-for-dummies
ExploitShellcodeAnalisi MalwareApprendimento e FormazioneRed TeamingSviluppo PayloadLab e Pratica
GitHubchvancooten/maldev-for-dummies

maldev-for-dummies

Un workshop sullo sviluppo di malware.

Vedi Repository
1.8k23573 anni 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

Sviluppo di Malware per Principianti

Nell'era degli EDR, gli operatori red team non possono più cavarsela utilizzando payload pre-compilati. Di conseguenza, lo sviluppo di malware sta diventando una competenza fondamentale per qualsiasi operatore. Iniziare con lo sviluppo di malware (maldev) può sembrare scoraggiante, ma in realtà è molto semplice. Questo workshop ti mostrerà tutto ciò che ti serve per iniziare!

Questo repository contiene le slide e gli esercizi di accompagnamento per il workshop 'MalDev for Dummies' che è stato/sarà tenuto a Hack in Paris 2022 e X33fcon 2023. Sebbene le slide siano state progettate per essere presentate 'di persona', i materiali e gli esercizi rimarranno disponibili qui per essere completati al proprio ritmo - il processo di apprendimento non dovrebbe mai essere affrettato! Issue e pull request a questo repository con domande e/o suggerimenti sono benvenuti.

⚠ Dichiarazione di non responsabilità: Lo sviluppo di malware è una competenza che può -e dovrebbe- essere usata per il bene, per far progredire il campo della sicurezza (offensiva) e mantenere affilate le nostre difese. Se mai utilizzerai queste capacità per svolgere attività per le quali non hai autorizzazione, sei un principiante più grande di quanto questo workshop sia pensato e dovresti andartene via.

Descrizione del Workshop

Con gli strumenti antivirus (AV) e Enterprise Detection and Response (EDR) che diventano sempre più maturi di minuto in minuto, il red team è costretto a stare al passo con i tempi. Sono finiti i tempi di execute-assembly e di lasciare payload non modificati su disco - se vuoi che i tuoi impegni durino più di una settimana, dovrai migliorare il tuo gioco nella creazione di payload e nello sviluppo di malware. Iniziare in questo campo può essere scoraggiante, tuttavia, e trovare le risorse giuste non è sempre facile.

Questo workshop è rivolto ai principianti del settore e ti guiderà attraverso i tuoi primi passi come sviluppatore di malware. È rivolto principalmente ai professionisti offensivi, ma anche i professionisti difensivi sono i benvenuti per partecipare e ampliare le loro competenze.

Scarica lo strumento

Durante il workshop esamineremo un po' di teoria, dopodiché ti allestiremo un ambiente di laboratorio. Ci saranno vari esercizi che potrai completare a seconda delle tue competenze attuali e del tuo livello di familiarità con l'argomento. Tuttavia, l'obiettivo del workshop è imparare, e esplicitamente non completare tutti gli esercizi. Sei libero di scegliere il tuo linguaggio di programmazione preferito per lo sviluppo di malware, ma il supporto durante il workshop è fornito principalmente per i linguaggi C# e Nim.

Durante il workshop, discuteremo gli argomenti chiave necessari per iniziare a creare il proprio malware. Questo include (ma non si limita a):

  • L'API di Windows
  • Tipi di file e metodi di esecuzione
  • Esecuzione e iniezione di shellcode
  • Metodi di evasione AV ed EDR

Per Iniziare

Per iniziare con lo sviluppo di malware, avrai bisogno di una macchina di sviluppo in modo da non essere disturbato da eventuali strumenti difensivi che potrebbero essere in esecuzione sulla tua macchina host. Preferisco Windows per lo sviluppo, ma Linux o MacOS vanno bene lo stesso. Installa il tuo editor/IDE preferito (io uso VS Code per quasi tutto tranne C#, per cui uso Visual Studio, e poi installa le toolchain necessarie per il tuo linguaggio MalDev preferito:

  • C#: Visual Studio ti darà l'opzione di includere i pacchetti .NET di cui avrai bisogno per sviluppare in C#. Se desideri sviluppare senza Visual Studio, puoi scaricare il .NET Framework separatamente.
  • Nim lang: Segui le istruzioni di download. Choosenim è un'utilità comoda che può essere utilizzata per automatizzare il processo di installazione.
  • Golang (grazie a @nodauf per la PR): Segui le istruzioni di download.
  • Rust: Rustup può essere utilizzato per installare Rust insieme alle toolchain necessarie.

Non dimenticare di disabilitare Windows Defender o aggiungere le opportune esclusioni, così il tuo duro lavoro non verrà messo in quarantena! Successivamente, possiamo testare su una macchina separata con controlli difensivi come l'AV abilitato.

ℹ Nota: Spesso, i gestori di pacchetti come apt o strumenti di gestione software come Chocolatey o Winget (ora integrato!) possono essere utilizzati per automatizzare l'installazione e la gestione delle dipendenze in modo comodo e ripetibile. Tuttavia, sii consapevole che le versioni nei gestori di pacchetti potrebbero essere indietro di qualche versione rispetto alla realtà! Di seguito è riportato un comando di esempio per installare tutti gli strumenti menzionati in una volta sola.

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

Compilazione dei programmi

I linguaggi che discuteremo durante questo workshop sono linguaggi compilati, il che significa che un compilatore viene utilizzato per tradurre il codice sorgente in eseguibili binari del formato scelto. Il processo di compilazione varia per ogni linguaggio.

C#

Il codice C# (file .cs) può essere compilato direttamente (con l'utilità csc) o tramite Visual Studio stesso. La maggior parte del codice sorgente in questo repository (tranne la soluzione dell'esercizio bonus 3) può essere compilato come segue.

ℹ Nota: Assicurati di eseguire il comando seguente in un "Prompt dei comandi per sviluppatori di Visual Studio" in modo che sappia dove trovare csc, si consiglia di utilizzare il "Prompt dei comandi degli strumenti nativi x64" per la tua versione di Visual Studio. Il flag /unsafe sarà richiesto per la maggior parte degli script in cui accediamo direttamente a funzionalità di basso livello.

root@kitploit:~
csc filename.exe

Puoi abilitare le ottimizzazioni in fase di compilazione con il flag /optimize. Puoi anche nascondere la finestra della console aggiungendo /target:winexe, o compilare come DLL con /target:library (ma assicurati che la struttura del codice sia adatta a questo).

Nim

Il codice Nim (file .nim) viene compilato con il comando nim c. Il codice sorgente in questo repository può essere compilato come segue.

root@kitploit:~
nim c filename.nim

Se vuoi ottimizzare la build per la dimensione e rimuovere le informazioni di debug (molto meglio per l'opsec!), puoi aggiungere i seguenti flag.

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

Opzionalmente puoi anche nascondere la finestra della console aggiungendo --app:gui.

Golang

Il codice Golang (file .go) viene compilato con il comando go build. Il codice sorgente in questo repository può essere compilato come segue.

root@kitploit:~
GOOS=windows go build

Se vuoi ottimizzare la build per la dimensione e rimuovere le informazioni di debug (molto meglio per l'opsec!), puoi aggiungere i seguenti flag.

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

Rust

Il codice Rust (file .rs) viene compilato tramite il comando cargo. Cargo può essere utilizzato per gestire le dipendenze e compilare il progetto. Il codice sorgente in questo repository può essere compilato navigando nella cartella del progetto ed eseguendo il seguente comando.

root@kitploit:~
cargo build

Se vuoi ottimizzare la build per la dimensione e rimuovere le informazioni di debug, puoi aggiungere i seguenti flag. Fai riferimento anche alla sezione [profile.release] in ogni file Cargo.toml per alcune opzioni di opsec in fase di compilazione.

root@kitploit:~
cargo build --release

Dipendenze

C#

La maggior parte delle soluzioni può essere compilata senza dipendenze. Nel caso siano necessarie dipendenze, viene fornito un progetto Visual Studio che collega ai pacchetti NuGet appropriati.

Nim

La maggior parte dei programmi Nim dipende da una libreria chiamata "Winim" per interfacciarsi con l'API di Windows. Puoi installare la libreria con il gestore pacchetti Nimble come segue (dopo aver installato Nim):

root@kitploit:~
nimble install winim

Golang

Nel codice sorgente di questo repository vengono utilizzate alcune dipendenze. Puoi installarle come segue (dopo aver installato Go):

root@kitploit:~
go mod tidy

Rust

Alcuni esempi dipendono dal crate windows-sys per chiamare l'API di Windows. Poiché utilizziamo Cargo, i pacchetti verranno gestiti automaticamente quando compili una build di test o release.

Risorse

Le slide del workshop fanno riferimento ad alcune risorse che puoi utilizzare per iniziare. Risorse aggiuntive, come blog pertinenti o frammenti di codice, sono elencate nei file README.md per ogni esercizio!