
Incarcero est un outil qui crée des machines virtuelles (VM) préconfigurées avec des outils d'analyse de logiciels malveillants et des paramètres de sécurité adaptés à l'analyse de logiciels malveillants sans aucune interaction de l'utilisateur.
L'analyse de logiciels malveillants, c'est comme désamorcer des bombes. L'objectif est de démonter et comprendre un programme conçu pour nuire, qui est souvent obscurci (par exemple : packé) pour compliquer l'analyse.
Incarcero est un outil qui crée des machines virtuelles (VM) préconfigurées avec des outils d'analyse de logiciels malveillants et des paramètres de sécurité adaptés à l'analyse de logiciels malveillants, sans aucune intervention de l'utilisateur.
De plus, ce dépôt inclut probablement la plus grande collection de codes source de logiciels malveillants ainsi qu'un module permettant de télécharger des échantillons de logiciels malveillants provenant de bases de données en ligne populaires.
Remarque : Les binaires avec des noms génériques tels que valeur MD5 ou smbXXX.tmp n'ont pas été détectés comme malveillants par VirusTotal au moment du téléchargement, mais cela ne signifie pas qu'il ne s'agit pas d'un échantillon de logiciel malveillant. N'hésitez pas à configurer, analyser et effectuer de l'ingénierie inverse sur tous les échantillons de ce dépôt ; si vous le faites, veuillez me communiquer les résultats de votre enquête.
dnf install ruby-devel gcc-c++ zlib-devel
vagrant plugin install winrm winrm-fs
apt install vagrant git python3-pip
apt install git python3-pip
pacman -Sy vagrant packer python-pip git
sudo pip3 install git+https://github.com/0x48piraj/incarcero.git#egg=incarcero
REMARQUE : À partir de Windows 10, Hyper-V est toujours actif sous le système d'exploitation. Comme VT-X doit être utilisé exclusivement par un seul hyperviseur, cela fait échouer VirtualBox (et incarcero). Pour désactiver Hyper-V et permettre à VirtualBox de fonctionner, exécutez la commande suivante dans une invite de commandes administrative, puis redémarrez : bcdedit /set hypervisorlaunchtype off. Depuis la version 6 de Virtualbox, il prend en charge l'utilisation d'Hyper-V comme noyau d'exécution de repli (changelog)
Les étapes suivantes supposent que vous avez installé https://chocolatey.org/[Chocolatey]. Sinon, suivez la procédure d'installation manuelle.
Installez les dépendances :
choco install python vagrant packer git virtualbox
Rafraîchissez la console :
refreshenv
Installez incarcero :
pip3 install setuptools
pip3 install -U git+https://github.com/0x48piraj/incarcero.git#egg=incarcero
C:\Windows\System32\pip3 install setuptools
pip3 install -U git+https://github.com/0x48piraj/incarcero.git#egg=incarcero
Exécutez cette commande après l'installation normale :
vagrant plugin install vagrant-aws
REMARQUE : La fonctionnalité AWS n'a été testée que sous Linux pour le moment et EC2 ne prend pas en charge la version de bureau 32 bits de Windows 10.
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 :
incarcero build <template>
Vous pouvez également lister tous les modèles pris en charge avec :
incarcero list
Cela construira une box Vagrant prête pour l'investigation de logiciels malveillants que vous pouvez désormais inclure dans un Vagrantfile par la suite.
Par exemple :
incarcero build win10_x64_analyst
La section configuration contient plus d'informations sur ce qui peut être configuré avec incarcero.
incarcero spin win10_x64_analyst <name>
Cela créera un Vagrantfile préparé pour une utilisation en 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 correspondante du Vagrantfile.
Par exemple :
incarcero spin win7_x86_analyst 20160519.cryptolocker.xyz
incarcero peut télécharger et interagir avec une VM sur Amazon Web Services. Pour ce faire, suivez ces étapes :
. incarcero 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, créez-en un maintenant.
. Votre instance nécessite également un groupe de sécurité avec au moins une règle autorisant les connexions entrantes pour WinRM (Type : WinRM-HTTP, Protocole : TCP, Plage de ports : 5985, Source : IP publique de l'hôte).
. Ensuite, vous avez besoin d'un rôle de service vmimport configuré.
Suivez la section intitulée VM Import Service Role de ce guide.
Ces étapes doivent être effectuées avec un compte disposant des autorisations iam:CreateRole et iam:PutRolePolicy.
. Si la configuration par défaut est utilisée, changez l'hyperviseur en aws et remplissez les options obligatoires liées. 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 Création de la box et Instances par analyse pour lancer votre instance !
REMARQUE : L'importation de l'AMI peut prendre beaucoup de temps (environ une heure), mais vous pouvez vérifier l'état de la tâche en faisant ceci. Pour l'instant, un seul AMI peut être construit par modèle.
Installez awscli avec pip :
pip install awscli
Configurez awscli avec :
aws configure
Puis exécutez :
aws ec2 describe-import-image-tasks
Pour vous connecter à une instance dans le cloud via RDP, exécutez cette commande au même emplacement que votre Vagrantfile :
vagrant rdp -- /cert-ignore
Pour que cela fonctionne, l'instance nécessitera un groupe de sécurité autorisant les connexions entrantes RDP (Type : RDP, Protocole : TCP, Plage de ports : 3389, Source : IP publique de l'hôte).
REMARQUE : Vous pouvez ignorer l'erreur suivante en toute sécurité 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.
Pour arrêter une instance dans le cloud, exécutez cette commande au même emplacement que votre Vagrantfile :
vagrant halt
La configuration d'incarcero se trouve dans un répertoire qui suit les conventions habituelles du système d'exploitation :
~/.config/incarcero/~/Library/Application Support/incarcero/C:\Users\<username>\AppData\Local\incarcero\incarcero\Le fichier s'appelle config.js et est copié à partir d'un fichier d'exemple lors du premier lancement.
La configuration d'exemple est documentée.
incarcero utilise virtualbox comme backend par défaut, mais depuis la version 0.3.0, la prise en charge d'ESXi / vSphere a été ajoutée. Des notes sur les étapes nécessaires pour la prise en charge 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.
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 profile-example.js pour un exemple de configuration. Cette nouvelle capacité est expérimentale et susceptible de changer au fur et à mesure de nos expérimentations.
Actuellement, incarcero 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, en utilisant la bibliothèque Boto3, il devrait y avoir un moyen d'implémenter cela.
Ce dépôt est à des fins de recherche uniquement, l'utilisation de ce code est votre responsabilité.
Je n'assume AUCUNE responsabilité et/ou obligation concernant la façon dont vous choisissez d'utiliser le code source disponible ici. En utilisant l'un des fichiers disponibles dans ce dépôt, vous comprenez que vous ACCEPTEZ DE L'UTILISER À VOS PROPRES RISQUES. Encore une fois, tous les fichiers disponibles ici sont uniquement à des fins d'ÉDUCATION et/ou de RECHERCHE.
Je ne suis l'auteur d'aucun des codes disponibles ici. Ce dépôt contient des échantillons de code source de logiciels malveillants divulgués en ligne (et trouvés dans de nombreuses autres sources), je les ai téléchargés sur GitHub pour simplifier le processus de ceux qui souhaitent analyser le code.
Toute action et/ou activité liée au matériel contenu dans ce dépôt relève de votre seule responsabilité. L'utilisation abusive des informations contenues dans ce dépôt peut entraîner des poursuites pénales à l'encontre des personnes concernées. Je ne serai pas tenu responsable en cas de poursuites pénales intentées contre des individus utilisant à mauvais escient le code de ce dépôt pour enfreindre la loi.
Ce dépôt ne promeut aucune activité liée au piratage. Toutes les informations de ce dépôt sont uniquement à des fins éducatives.
Ce projet a été relancé avec l'aide de malboxes.