
Construit des machines virtuelles Windows d'analyse de malwares pour que vous n'ayez pas à le faire.
= Malboxes :toc: preamble :toclevels: 2 :twob: https://twitter.com/obilodeau :twhg: https://twitter.com/hugospns // github stuff ifdef::env-github[:github:]
ifndef::github[] // local logo image::docs/logos/main.svg[Malboxes Logo] endif::[]
ifdef::github[] // logo on github image::https://raw.githubusercontent.com/GoSecure/malboxes/master/docs/logos/main.svg?sanitize=true[Malboxes Logo]
.Santé du projet // Travis Build Status image:https://img.shields.io/travis/GoSecure/malboxes/master.svg[Build Status (Travis CI), link=https://travis-ci.org/GoSecure/malboxes] // BlackHat Arsenal 2017 image:https://raw.githubusercontent.com/toolswatch/badges/master/arsenal/usa/2017.svg?sanitize=true[Black Hat Arsenal, link=https://www.toolswatch.org/2017/06/the-black-hat-arsenal-usa-2017-phenomenal-line-up-announced/] // Gitter Chat image:https://badges.gitter.im/malboxes_/Lobby.svg[link="https://gitter.im/malboxes_/Lobby?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge"] endif::[]
Crée des machines virtuelles Windows pour l'analyse de logiciels malveillants, sans que vous ayez à le faire.
https://github.com/gosecure/malboxes
== Prérequis
=== Spécifications minimales pour la machine de construction
=== Fedora
dnf install ruby-devel gcc-c++ zlib-devel
vagrant plugin install winrm winrm-fs
=== Debian
apt install vagrant git python3-pip
=== Ubuntu
apt install git python3-pip
=== ArchLinux
pacman -Sy vagrant packer python-pip git
== Installation
=== Linux/Unix
pip install malboxes :=== Windows
NOTE : À partir de Windows 10, Hyper-V est toujours en cours d'exécution en dessous du système d'exploitation. Puisque VT-X doit être exploité exclusivement par un seul hyperviseur, https://github.com/GoSecure/malboxes/issues/39[cela entraîne l'échec de VirtualBox (et de malboxes)]. Pour désactiver Hyper-V et permettre l'exécution de VirtualBox, exécutez la commande suivante dans une invite de commande administrative, puis redémarrez : bcdedit /set hypervisorlaunchtype off
==== Avec Chocolatey
Les étapes suivantes supposent que vous avez installé https://chocolatey.org/[Chocolatey]. Sinon, suivez la <<Manually,procédure d'installation manuelle>>.
==== Manuellement
C:\Windows\System32\=== Pour déployer sur AWS (optionnel) Exécutez cette commande après l'installation normale :
vagrant plugin install vagrant-aws
NOTE : La fonctionnalité AWS n'a été testée que sur Linux pour le moment et EC2 ne prend pas en charge la version de bureau 32 bits de Windows 10.
== Utilisation
=== Création de la box
Ceci crée votre box de base qui est importée dans Vagrant. Ensuite, vous pouvez réutiliser la même box plusieurs fois par analyse d'échantillon.
Exécutez :
malboxes build <template>
Vous pouvez également lister tous les modèles pris en charge avec :
malboxes list
Ceci construira une box Vagrant prête pour l'investigation de logiciels malveillants que vous pouvez maintenant inclure dans un Vagrantfile par la suite.
Par exemple :
malboxes build win10_x64_analyst
<<_configuration,La section configuration>> contient des informations supplémentaires sur ce qui peut être configuré avec malboxes.
=== Instances par analyse
malboxes spin win10_x64_analyst <name>
Ceci créera un Vagrantfile préparé pour l'analyse de logiciels malveillants. Déplacez-le dans un répertoire de votre choix et exécutez :
vagrant up
Par défaut, le répertoire local sera partagé dans la VM sur le Bureau. Cela peut être modifié en commentant la partie pertinente du Vagrantfile.
Par exemple :
malboxes spin win7_x86_analyst 20160519.cryptolocker.xyz
=== Pour déployer sur AWS (optionnel)
Malboxes peut télécharger et interagir avec une VM sur les services Amazon Web. Pour ce faire, suivez ces étapes :
. Malboxes aura besoin d'un bucket S3 sur AWS pour télécharger la VM avant de la convertir en AMI (Amazon Machine Image). Si vous n'en avez pas, link:https://docs.aws.amazon.com/quickstarts/latest/s3backup/step-1-create-bucket.html[créez-en un maintenant.]
. Votre instance nécessite également un link:https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html#CreatingSecurityGroups[groupe de sécurité] avec au moins une règle autorisant les connexions entrantes pour WinRM (Type : WinRM-HTTP, Protocol : TCP, Port Range : 5985, Source : IP publique de l'hôte).
. Ensuite, vous devez configurer un rôle de service vmimport.
Suivez la section nommée VM Import Service Role de https://docs.aws.amazon.com/vm-import/latest/userguide/vmimport-image-import.html[ce guide].
Ces étapes doivent être effectuées avec un compte disposant des autorisations iam:CreateRole et iam:PutRolePolicy.
. Si la <<_configuration,configuration par défaut>> est utilisée, changez l'hyperviseur en aws et remplissez les options obligatoires correspondantes. Sinon, assurez-vous d'ajouter toutes les options concernant AWS à votre configuration personnalisée.
. Enfin, vous pouvez suivre les mêmes étapes décrites dans les sections <> et <> pour lancer votre instance !
NOTE : L'importation AMI peut prendre beaucoup de temps (environ une heure), mais vous pouvez vérifier l'état de la tâche en faisant <<AMI import status,ceci>>. Pour le moment, une seule AMI peut être construite par modèle.
==== Statut d'importation AMI Installez awscli avec pip :
pip install awscli
link:https://docs.aws.amazon.com/cli/latest/userguide/cli-chap-configure.html#cli-quick-configuration[Configurez] awscli avec :
aws configure
Puis exécutez :
aws ec2 describe-import-image-tasks
==== RDP
Pour vous connecter à une instance dans le cloud en utilisant RDP, exécutez cette commande au même emplacement que votre Vagrantfile :
vagrant rdp -- /cert-ignore
Pour que cela fonctionne, l'instance devra disposer d'un groupe de sécurité autorisant les connexions entrantes RDP (Type : RDP, Protocol : TCP, Port Range : 3389, Source : IP publique de l'hôte).
NOTE : Vous pouvez ignorer en toute sécurité l'erreur suivante car rsync n'est pas encore implémenté : No host IP was given to the Vagrant core NFS helper. This is an internal error that should be reported as a bug.
==== Arrêt d'une instance
Pour arrêter une instance dans le cloud, exécutez cette commande au même emplacement que votre Vagrantfile :
vagrant halt
== Configuration
La configuration de Malboxes se trouve dans un répertoire qui suit les conventions habituelles du système d'exploitation :
~/.config/malboxes/~/Library/Application Support/malboxes/C:\Users\<username>\AppData\Local\malboxes\malboxes\Le fichier est nommé config.js et est copié à partir d'un fichier exemple lors de la première exécution.
link:malboxes/config-example.js[Le fichier de configuration exemple] est documenté.
=== Support d'ESXi / vSphere
Malboxes utilise VirtualBox comme backend par défaut mais depuis la version 0.3.0, le support d'ESXi / vSphere a été ajouté. Des notes sur les link:docs/esx-setup.adoc[étapes requises pour le support d'ESXi / vSphere sont disponibles]. Comme la configuration de chacun est un peu différente, n'hésitez pas à ouvrir un ticket si vous rencontrez un problème ou à améliorer notre documentation via une pull request.
=== Profils
Nous explorons le concept de profils qui sont stockés séparément de la configuration et peuvent être utilisés pour créer des fichiers, modifier le registre ou installer des paquets supplémentaires. Voir link:malboxes/profile-example.js[profile-example.js] pour un exemple de configuration. Cette nouvelle capacité est expérimentale et susceptible de changer à mesure que nous expérimentons.
=== Groupes de sécurité AWS
Actuellement, Malboxes ne prend pas en charge la création automatique des groupes de sécurité, vous devrez donc utiliser la console AWS pour créer les vôtres. Cependant, avec la bibliothèque link:https://boto3.amazonaws.com/v1/documentation/api/latest/index.html[Boto3], il devrait être possible de l'implémenter.
== Plus d'informations
=== Vidéos
Vidéo d'introduction
image::https://img.youtube.com/vi/oq6N3WLAoe8/0.jpg[link="https://www.youtube.com/watch?v=oq6N3WLAoe8"]
=== Articles de blog
=== Présentations
malboxes a été présenté à https://www.nsec.io/2016/01/applying-devops-principles-for-better-malware-analysis/[NorthSec 2016] lors d'une conférence intitulée Applying DevOps Principles for Better Malware Analysis donnée par link:{twob}[Olivier Bilodeau] et link:{twhg}[Hugo Genesse]
== Licence
Le code est sous licence GPLv3+, voir LICENSE pour plus de détails. La documentation
et le matériel de présentation sont sous licence Creative Commons
Attribution-ShareAlike 4.0, voir docs/LICENSE pour plus de détails.
== Crédits
Après avoir eu l'idée d'un flux de travail amélioré pour l'analyste de malware basé sur ce que j'utilisais pour le développement sur des serveurs Linux (Vagrant), j'ai rapidement cherché sur Google si quelqu'un faisait déjà quelque chose dans ce sens.
J'ai trouvé le dépôt https://github.com/m-dwyer/packer-malware[packer-malware] sur github par Mark Andrew Dwyer. Malboxes a été amorcé grâce à son travail qui m'a particulièrement aidé dans les domaines des fichiers Autounattend.xml.