Skip to content
KitploitKITPLOIT
OutilsBlog
Soumettre
OutilsBlog
Soumettre

Outils de Hacking, PenTest et Cybersécurité pour votre Arsenal de Sécurité !

Kitploit est un répertoire d'outils de hacking, de cybersécurité et de pentesting. Découvrez les dernières mises à jour des projets pour trouver des vulnérabilités, analyser des systèmes, automatiser les tests et renforcer votre sécurité.

··Flux·Contact·Confidentialité·© 2026 Kitploit

Répertoire d'outils

Catégories

Voir toutes les catégories
Loading categories
maldev-for-dummies — Un atelier sur le développement de malwares | Kitploit
Outils/GitHubGitHub/chvancooten/maldev-for-dummies
ExploitationShellcodeAnalyse de MalwareApprentissage et ÉducationRed TeamingDéveloppement de Charges UtilesLabs et Pratique
GitHubchvancooten/maldev-for-dummies

maldev-for-dummies

Un atelier sur le développement de malwares

Voir le dépôt
1.8k235il y a 3 ansVérifié par Kitploit

Populaires

Voir tout →

Découvrez les outils les plus utilisés par notre communauté.

Explorer tous les outils

Parcourez notre collection d'outils

Voir tous les outils →
Partager

Développement de malwares pour les nuls

À l'ère des EDR, les opérateurs red team ne peuvent plus se contenter d'utiliser des charges utiles pré-compilées. Par conséquent, le développement de malwares devient une compétence vitale pour tout opérateur. Se lancer dans le maldev peut sembler intimidant, mais c'est en réalité très facile. Cet atelier vous montrera tout ce dont vous avez besoin pour commencer !

Ce dépôt contient les diapositives et les exercices d'accompagnement pour l'atelier « MalDev for Dummies » qui a été / sera animé à Hack in Paris 2022 et X33fcon 2023. Bien que les diapositives aient été conçues pour être présentées « en personne », le matériel et les exercices resteront disponibles ici pour être réalisés à votre rythme – le processus d'apprentissage ne doit jamais être précipité ! Les issues et pull requests sur ce dépôt avec des questions et/ou suggestions sont les bienvenus.

⚠ Avertissement : Le développement de malwares est une compétence qui peut – et devrait – être utilisée pour le bien, afin de faire progresser le domaine de la sécurité (offensive) et de maintenir nos défenses en alerte. Si vous utilisez jamais ces compétences pour mener des activités sans autorisation, vous êtes un plus grand idiot que celui visé par cet atelier et vous devriez déguerpir d'ici.

Description de l'atelier

Avec les antivirus (AV) et les outils de détection et réponse d'entreprise (EDR) devenant de plus en plus matures chaque minute, la red team est contrainte de rester en avance sur la courbe. Fini le temps de execute-assembly et du dépôt de charges utiles non modifiées sur le disque – si vous voulez que vos engagements durent plus d'une semaine, vous devrez améliorer votre jeu de création de charges utiles et de développement de malwares. Se lancer dans ce domaine peut sembler intimidant, et trouver les bonnes ressources n'est pas toujours facile.

Cet atelier s'adresse aux débutants dans le domaine et vous guidera à travers vos premiers pas en tant que développeur de malwares. Il est principalement destiné aux praticiens offensifs, mais les praticiens défensifs sont également les bienvenus pour y assister et élargir leurs compétences.

Pendant l'atelier, nous aborderons de la théorie, après quoi nous vous installerons un environnement de laboratoire. Il y aura divers exercices que vous pourrez compléter en fonction de vos compétences actuelles et de votre niveau d'aise avec le sujet. Cependant, le but de l'atelier est d'apprendre, et explicitement pas de terminer tous les exercices. Vous êtes libre de choisir votre langage de programmation préféré pour le développement de malwares, mais le soutien pendant l'atelier est fourni principalement pour les langages C# et Nim.

Pendant l'atelier, nous discuterons des sujets clés nécessaires pour commencer à construire votre propre malware. Cela inclut (sans s'y limiter) :

  • L'API Windows
  • Types de fichiers et méthodes d'exécution
  • Exécution et injection de shellcode
  • Méthodes d'évasion AV et EDR

Pour commencer

Pour commencer avec le développement de malwares, vous aurez besoin d'une machine de développement afin de ne pas être dérangé par les outils défensifs qui pourraient tourner sur votre machine hôte. Je préfère Windows pour le développement, mais Linux ou MacOS feront tout aussi bien. Installez votre éditeur/IDE de choix (j'utilise VS Code pour presque tout sauf C#, pour lequel j'utilise Visual Studio), puis installez les chaînes d'outils nécessaires pour le langage de MalDev de votre choix :

  • C# : Visual Studio vous donnera l'option d'inclure les packages .NET dont vous aurez besoin pour développer en C#. Si vous voulez développer sans Visual Studio, vous pouvez télécharger le .NET Framework séparément.
  • Nim lang : Suivez les instructions de téléchargement. Choosenim est un utilitaire pratique qui peut être utilisé pour automatiser le processus d'installation.
  • Golang (merci à @nodauf pour la PR) : Suivez les instructions de téléchargement.
  • Rust : Rustup peut être utilisé pour installer Rust ainsi que les chaînes d'outils nécessaires.

N'oubliez pas de désactiver Windows Defender ou d'ajouter les exclusions appropriées, pour que votre dur labeur ne soit pas mis en quarantaine ! Plus tard, nous pourrons tester sur une machine séparée avec des contrôles défensifs comme l'AV activé.

ℹ Note : Souvent, les gestionnaires de paquets tels que apt ou les outils de gestion de logiciels tels que Chocolatey ou Winget (désormais intégré !) peuvent être utilisés pour automatiser l'installation et la gestion des dépendances de manière pratique et reproductible. Soyez cependant conscient que les versions dans les gestionnaires de paquets peuvent être en retard de quelques versions par rapport à la réalité ! Voici un exemple de commande pour installer tous les outils mentionnés en une seule fois.

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

Compilation des programmes

Les langages que nous aborderons pendant cet atelier sont des langages compilés, ce qui signifie qu'un compilateur est utilisé pour traduire votre code source en exécutables binaires du format choisi. Le processus de compilation diffère selon le langage.

C#

Le code C# (fichiers .cs) peut être compilé directement (avec l'utilitaire csc) ou via Visual Studio lui-même. La plupart du code source de ce dépôt (sauf la solution de l'exercice bonus 3) peut être compilé comme suit.

ℹ Note : Assurez-vous d'exécuter la commande ci-dessous dans une « Invite de commandes développeur Visual Studio » afin qu'elle sache où trouver csc ; il est recommandé d'utiliser l'« Invite de commandes d'outils natifs x64 » pour votre version de Visual Studio. Le flag /unsafe sera nécessaire pour la plupart des scripts où nous accédons directement à des fonctionnalités de bas niveau.

root@kitploit:~
csc filename.exe

Vous pouvez activer les optimisations à la compilation avec le flag /optimize. Vous pouvez également masquer la fenêtre de console en ajoutant /target:winexe, ou compiler en DLL avec /target:library (mais assurez-vous que la structure de votre code est adaptée).

Nim

Le code Nim (fichiers .nim) est compilé avec la commande nim c. Le code source de ce dépôt peut être compilé comme suit.

root@kitploit:~
nim c filename.nim

Si vous souhaitez optimiser votre build pour la taille et supprimer les informations de débogage (bien meilleur pour l'opsec !), vous pouvez ajouter les flags suivants.

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

Optionnellement, vous pouvez également masquer la fenêtre de console en ajoutant --app:gui.

Golang

Le code Golang (fichiers .go) est compilé avec la commande go build. Le code source de ce dépôt peut être compilé comme suit.

root@kitploit:~
GOOS=windows go build

Si vous souhaitez optimiser votre build pour la taille et supprimer les informations de débogage (bien meilleur pour l'opsec !), vous pouvez ajouter les flags suivants.

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

Rust

Le code Rust (fichiers .rs) est compilé via la commande cargo. Cargo peut être utilisé pour gérer vos dépendances et construire votre projet. Le code source de ce dépôt peut être compilé en naviguant dans le dossier du projet et en exécutant la commande suivante.

root@kitploit:~
cargo build

Si vous souhaitez optimiser votre build pour la taille et supprimer les informations de débogage, vous pouvez ajouter les flags suivants. Référez-vous également à la section [profile.release] de chaque fichier Cargo.toml pour quelques options d'opsec à la compilation.

root@kitploit:~
cargo build --release

Dépendances

C#

La plupart des solutions peuvent être compilées sans dépendances. Si des dépendances sont nécessaires, un projet Visual Studio est fourni qui pointe vers les packages NuGet appropriés.

Nim

La plupart des programmes Nim dépendent d'une bibliothèque appelée « Winim » pour interagir avec l'API Windows. Vous pouvez installer la bibliothèque avec le gestionnaire de paquets Nimble comme suit (après avoir installé Nim) :

root@kitploit:~
nimble install winim

Golang

Certaines dépendances sont utilisées dans le code source de ce dépôt. Vous pouvez les installer comme suit (après avoir installé Go) :

root@kitploit:~
go mod tidy

Rust

Quelques exemples dépendent de la crate windows-sys pour appeler l'API Windows. Puisque nous utilisons Cargo, les packages seront automatiquement gérés lorsque vous compilez une build de test ou de release.

Ressources

Les diapositives de l'atelier font référence à certaines ressources que vous pouvez utiliser pour commencer. Des ressources supplémentaires, comme des blogs pertinents ou des extraits de code, sont listées dans les fichiers README.md de chaque exercice !

Télécharger l’outil