
Script pour créer des modèles à utiliser avec VirtualBox afin de rendre la détection de VM plus difficile
Un script pour vous aider à créer des modèles, que vous pouvez utiliser avec VirtualBox pour rendre la détection de machines virtuelles plus difficile.
Mon premier article sur le sujet date de 2012 et a été mis à jour à plusieurs reprises par la suite. Le format blog n'était peut-être pas la meilleure façon de publier l'information, et certaines personnes ont créé des scripts sympas et « faciles à appliquer » basés sur le contenu.
Pour me faciliter l'ajout de nouveau contenu, j'ai décidé de faire de même.
Le but de ce script est d'utiliser les paramètres disponibles sans modifier la base de VirtualBox. Il y a des gens qui font des choses très intéressantes en patchant VirtualBox. Mais cela dépasse le cadre de ce script. Je pense que cette approche a ses mérites car elle ne casse pas (espérons-le) à chaque nouvelle version de VirtualBox. Avec le temps, j'ai également inclus des « choses » qui ne sont pas directement liées aux machines virtuelles, mais plutôt des éléments que les logiciels malveillants utilisent pour identifier les installations. J'espère que cela ne vous dérange pas.
Le script principal créera les fichiers suivants :
sudo apt install python3-pip libcdio-utils acpica-tools mesa-utils smartmontoolssudo pip3 install -r requirements.txtwget https://download.sysinternals.com/files/VolumeId.zip https://www.nirsoft.net/utils/devmanview-x64.zip (version x64).hostname > computer.lst, whoami > user.lst. Modifiez si vous souhaitez utiliser d'autres noms de machine et d'utilisateur pour les VM (il est recommandé de remplir les fichiers avec une longue liste de noms d'utilisateur et d'ordinateur).sudo python3 antivmdetect.pysudo chmod a+x xxxxx.sh/bin/bash xxxxx.sh mon-nom-de-machine-virtuelleDéplacer le script batch (xxxx.ps1) vers l'invité nouvellement installé.
Exécuter le script batch à l'intérieur de l'invité. N'oubliez pas que la plupart des paramètres modifiés sont réinitialisés après chaque redémarrage. Faites-le donc s'exécuter au démarrage si nécessaire.
Depuis la version 0.1.4, certains paramètres appliqués nécessitent un redémarrage. Exécutez donc le script batch une fois, l'invité redémarrera. Puis exécutez à nouveau le script pour finaliser la configuration.
Avant d'appliquer le script batch à l'intérieur de l'invité, veuillez désactiver le contrôle de compte d'utilisateur (UAC) (redémarrage requis) sinon vous ne pourrez pas modifier le registre avec le script.
Pour les utilisateurs de Windows 10 : exécutez le script PS en tant qu'administrateur (clic droit sur cmd.exe -> Exécuter en tant qu'administrateur, naviguez jusqu'au script PS et exécutez-le).
Si appliqué correctement, un test Pafish donnera ce résultat (pas besoin de modifier VirtualBox).
Veuillez noter que ce script fait d'autres choses non couvertes par Pafish (par exemple les artefacts W10).

0.1.9 :
Compatibilité Python3
Première tentative d'extraction du disque correct, source de maux de tête pour beaucoup. (Problème #35 et quelques autres anciens problèmes, merci @oaustin)
Amélioration de la gestion des chaînes dans le script shell (Problèmes #35 et #36 et PR #44, merci @oaustin, @dashjuvi et @corownik)
Ajout d'un lien vers une ressource DSDT en ligne (Problème #37, merci @MasterCATZ)
Mise à jour du README pour clarifier les instructions d'installation, merci @jorants (Problème #38)
Vérification que le dump DSDT est bien créé, merci @nov3mb3r (Problème #42)
Ajout d'une notice de licence, merci @obilodeau (Problème #43)
Nettoyage du code : suppression du support des disques RAID par manque d'accès à du matériel serveur... et beaucoup d'autres petites améliorations
0.1.8 :
Meilleur support de Windows 10
Fusion du correctif de balisage de @bryant1410 (PR #14)
Résolution d'un problème pour les personnes utilisant macOS + VBox/VMWare Fusion pour créer les modèles. Créer le modèle depuis une machine virtuelle n'est de toute façon pas la meilleure méthode... (Problème #12 et peut-être #15)
0.1.7 :
Windows 10 est désormais supporté (retours bienvenus)
Plusieurs nouveaux artefacts « corrigés » pour les installations W10
Nouvelle dépendance : mesa-utils
Fusion du correctif de bogue de @Fullmetal5 (#10)
Corrections diverses du code
Mise à jour du readme
0.1.6 :
Ajout d'une pop-up après la deuxième exécution, pour clarifier que tout est bon
Ajout d'une fonction qui lance quelques instances du Bloc-notes, cette fonctionnalité sera étendue dans les versions futures
Refonte de la fonction RandomDate, merci à @Antelox de m'avoir signalé le problème avec l'ancienne (#8)
Acpidump fourni avec les anciennes versions d'Ubuntu ne supporte pas l'option « -s ». Ceci est désormais traité avec un message d'erreur. Merci à @Antelox pour ce problème (#7)
Devmanview.exe n'était pas supprimé après la deuxième exécution, corrigé
0.1.5 :
Ajout du support pour associer et dissocier (désactivé par défaut) les extensions de fichiers. Référence : https://www.proofpoint.com/us/threat-insight/post/massive-adgholas-malvertising-campaigns-use-steganography-and-file-whitelisting-to-hide-in-plain-sight
Ajout du support pour un presse-papiers fourni par l'utilisateur. Si absent, une chaîne aléatoire sera générée. Remplissez le fichier avec des honeytokens de votre choix.
Suppression du support de XP
Conversion des sections du script batch en PowerShell. Davantage de logique transférée vers le script invité, en bref, il y a moins de raisons de créer/régénérer le modèle souvent, car davantage d'éléments sont randomisés sur l'invité.
Ajout d'une fonction qui randomise l'image de fond d'écran
Ajout d'une fonction qui crée des documents de « toutes sortes » sur l'invité
Ajout d'une fonction qui crée des documents de « toutes sortes » sur l'invité et les déplace dans la corbeille
Randomisation du DigitalProductId à deux autres emplacements :
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Registration\DigitalProductId.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\DefaultProductKey\DigitalProductId.
Utiliser l'interface de paravirtualisation : Aucune (vérifié avec VBox 5.1.4) - Vérification mise à jour pour refléter ce changement. Je suppose que ce changement dans VBox est dû à TiTi87, merci !
/Mikael
Les retours sont toujours les bienvenus ! =)
0.1.4 :
Correction d'un bogue pour les utilisateurs de python-dmidecode 3.10.13-3, c'était entièrement de ma faute...
Ajout d'une fonction qui randomise le VolumeID (nouveau prérequis : VolumeID.exe), cette information est par exemple collectée par Rovnix
Ajout d'une fonction qui randomise le nom d'utilisateur et le nom d'ordinateur/hôte (nouveaux prérequis : liste de noms d'utilisateur et de noms d'ordinateur)
Première tentative pour ajouter des informations au presse-papiers, l'idée (commande) vient d'un tweet de @shanselman. Sera améliorée dans la prochaine version
Mise à jour du readme : nouvelles dépendances et nouvelles fonctionnalités nécessitant un redémarrage
0.1.3 :
Copie et définition de la chaîne du modèle de CPU.
Vérification si un périphérique audio est attaché à l'invité. Référence : http://www.joesecurity.org/reports/report-61f847bcb69d0fe86ad7a4ba3f057be5.html
Vérification de l'architecture du système d'exploitation par rapport au binaire DevManView.
Randomisation du ProductId à deux autres emplacements :
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Registration\ProductId.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\DefaultProductKey\ProductId.
Suppression de la clé de produit Windows du registre (pour empêcher quelqu'un de la voler...).
Modification du DigitalProductId (HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\DigitalProductId) pour correspondre au nouveau ProductId.
0.1.2 :
Vérification si l'ancienne interface de paravirtualisation est utilisée (l'utilisation de l'ancienne interface atténuera la détection de la « fonctionnalité cpuid »).
0.1.1 :
Vérification du nombre de CPU (Moins de 2 == alerte).
Vérification de la taille de la mémoire (Moins de 2 Go == alerte).
Vérification si l'IP/la plage IP par défaut est utilisée pour vboxnet0 (vous pouvez ignorer la notification si vous ne l'utilisez pas).
Randomisation du ProductId.
Fusion de la PR #3 de r-sierra (Merci pour votre aide !).
Correction d'un bogue dans l'AcpiCreatorId (Merci à @Nadacsc de me l'avoir signalé !).
Correction d'un bogue dans l'analyse de DmiBIOSReleaseDate.
Correction d'un bogue dans DmiBIOSReleaseDate, pour gérer à la fois la variante « mal orthographiée » par défaut et celle correctement orthographiée (Merci à @WanpengQian de me l'avoir signalé !).
L'inclusion de DevManView n'a pas fonctionné comme prévu. Cela devrait être corrigé dans cette version.
Prise en charge du contrôleur SATA également (auparavant, seuls les paramètres IDE étaient modifiés).
Mise à jour du readme
0.1.0 :
Résolution de la détection WMI rendue célèbre par HT. Ajout de DevManView.exe (architecture de votre choix) aux prérequis.
< 0.1.0 Aucun historique de version conservé avant cela, il faut bien commencer quelque part.