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
Outils/GitHubGitHub/nsmfoo/antivmdetection
Évasion IDS/IPSAnalyse de MalwareAnti-Bot
GitHubnsmfoo/antivmdetection

antivmdetection

Script pour créer des modèles à utiliser avec VirtualBox afin de rendre la détection de VM plus difficile

Voir le dépôt
777124il 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

Antivmdetection

Contexte

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 :

  • Un script shell, qui peut être utilisé comme modèle, à exécuter depuis le système hôte et à appliquer à la machine virtuelle que vous souhaitez modifier.
  • Un dump du DSDT, qui est utilisé dans le script modèle ci-dessus.
  • Un fichier Windows PowerShell à utiliser à l'intérieur de l'invité, pour gérer les paramètres qu'il n'est pas possible de modifier depuis l'hôte. Ce script devra être exécuté deux fois : une pour les modifications nécessitant un redémarrage, et la seconde pour les éléments tenaces qui réapparaissent au redémarrage.

Utilisation

Générer le script depuis l'hôte

  • Installer les dépendances : sudo apt install python3-pip libcdio-utils acpica-tools mesa-utils smartmontools
  • Installer les modules Python : sudo pip3 install -r requirements.txt
  • Télécharger les binaires Windows suivants et les extraire dans le répertoire antivmdetection : wget https://download.sysinternals.com/files/VolumeId.zip https://www.nirsoft.net/utils/devmanview-x64.zip (version x64).
  • Créer des fichiers texte pour l'ordinateur et l'utilisateur : 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).
  • Exécuter le script Python en tant que root : sudo python3 antivmdetect.py
  • Rendre le script hôte généré exécutable pour l'utilisateur actuel : sudo chmod a+x xxxxx.sh
  • Si vous obtenez le message suivant : « ACPI tables bigger than 64KB (VERR_TOO_MUCH_DATA) », cela est dû à une limitation de VirtualBox. Pour plus de contexte, voir ce ticket : https://github.com/nsmfoo/antivmdetection/issues/37 . Non vérifié comme fonctionnel, mais https://www.tonymacx86.com/dsdt-database pourrait être une bonne ressource...

Configuration de la VM

  • Créer la VM mais ne pas la démarrer, et quitter également l'interface graphique de VirtualBox. Le script shell doit être exécuté avant l'installation !
  • Vérifier que « I/O APIC » est activé (Système > onglet Carte mère).
  • Vérifier que « Interface de paravirtualisation » est réglé sur « Aucune » (Système > onglet Accélération).
  • Modifier le nombre de CPU à 2 ou plus si possible.
  • Définir l'IP de la VM (Fichier > Gestionnaire de réseau hôte > Configurer l'adaptateur manuellement > adresse IPV4).
  • Le script s'attend à ce que la configuration de stockage ressemble à ceci : + IDE : Master primaire (Disque) et Slave primaire (CD-ROM) + * ATA : Port 0 (Disque) et Port 1 (CD-ROM)
  • Exécuter le script en tant qu'utilisateur actuel (car les VM se trouvent dans le répertoire personnel de l'utilisateur) : /bin/bash xxxxx.sh mon-nom-de-machine-virtuelle
  • Installer le système d'exploitation Windows (prend en charge W7 et W10)

Exécuter le script depuis l'intérieur de la VM

  • Dé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).

texte alternatif

Remarques

  • Lorsque le script antivmdetect ne trouve pas de valeurs appropriées à utiliser, il commente ces paramètres dans le script nouvellement créé, avec un « # ». Ceux-ci nécessitent une vérification manuelle car ils peuvent avoir un impact sur ce qui est affiché dans la VM.

Historique des versions

  • 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 ! =)

Télécharger l’outil







  • 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.