
Skript zur Erstellung von Vorlagen für VirtualBox, um die VM-Erkennung zu erschweren
Ein Skript, das Ihnen hilft, Vorlagen zu erstellen, die Sie mit VirtualBox verwenden können, um die VM-Erkennung zu erschweren.
Mein erster Beitrag zu diesem Thema war 2012 und wurde danach zu unregelmäßigen Zeiten aktualisiert. Das Blog-Format war möglicherweise nicht die beste Art, die Informationen zu veröffentlichen, und einige Leute haben nette und „leicht anzuwendende“ Skripte basierend auf dem Inhalt erstellt.
Um es mir einfacher zu machen, neue Inhalte hinzuzufügen, habe ich beschlossen, genau dasselbe zu tun.
Der Zweck dieses Skripts ist es, verfügbare Einstellungen zu nutzen, ohne die VirtualBox-Basis zu modifizieren. Es gibt Leute, die wirklich tolle Dinge tun, indem sie Virtualbox patchen. Das liegt jedoch außerhalb des Rahmens dieses Skripts. Ich denke, dieser Ansatz hat einige Vorteile, da er (hoffentlich) nicht mit jeder neuen VirtualBox-Version bricht.
Im Laufe der Zeit habe ich auch „Dinge“ aufgenommen, die nicht direkt mit VMs zu tun haben, sondern eher Dinge, die Malware verwendet, um Installationen zu identifizieren. Ich hoffe, das macht nichts..
Das Hauptskript erstellt die folgenden Dateien:
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 (x64-Version).hostname > computer.lst, whoami > user.lst. Ändern Sie sie, wenn Sie verschiedene Rechnernamen und Benutzer für die VMs verwenden möchten (empfohlen wird, die Dateien mit einer langen Liste von Benutzer- und Rechnernamen zu füllen).sudo python3 antivmdetect.pysudo chmod a+x xxxxx.sh/bin/bash xxxxx.sh my-virtual-machine-nameVerschieben Sie das Batch-Skript (xxxx.ps1) auf den neu installierten Gast.
Führen Sie das Batch-Skript im Gast aus. Denken Sie daran, dass die meisten der geänderten Einstellungen nach jedem Neustart rückgängig gemacht werden. Lassen Sie es daher bei Bedarf beim Start ausführen.
Ab Version 0.1.4 erfordern einige angewendete Einstellungen einen Neustart. Führen Sie das Batch-Skript also einmal aus, der Gast wird neu gestartet. Führen Sie das Skript dann erneut aus, um die Einrichtung abzuschließen.
Bevor Sie das Batch-Skript im Gast anwenden, deaktivieren Sie bitte die UAC (Neustart erforderlich), da Sie sonst die Registrierung mit dem Skript nicht ändern können.
Für Windows 10-Benutzer: Führen Sie das PS-Skript als Administrator aus (Rechtsklick auf cmd.exe -> Als Administrator ausführen, navigieren Sie zum PS-Skript und führen Sie es aus)
Wenn richtig angewendet, führt ein Pafish-Lauf zu diesem Ergebnis (keine Notwendigkeit, Virtualbox zu modifizieren).
Bitte beachten Sie, dass dieses Skript andere Dinge tut, die nicht von Pafish abgedeckt werden (z.B. W10-Artefakte)

0.1.9:
Python3-kompatibel
Erster Versuch, die korrekte Festplatte zu extrahieren, war eine Kopfschmerzquelle für viele. (Issue #35 (und einige andere alte Issues), danke @oaustin)
Verbesserte String-Handhabung im Shell-Skript (Issue #35 und #36 und PR #44, danke @oaustin, @dashjuvi und @corownik)
Link zu einer Online-DSDT-Ressource hinzugefügt (Issue #37, danke @MasterCATZ)
README aktualisiert, um Installationsanweisungen klarer zu machen, danke @jorants (Issue #38)
Überprüfen, ob der DSDT-Dump wirklich erstellt wurde, danke @nov3mb3r (Issue #42)
Lizenzhinweis hinzugefügt. Danke @obilodeau (Issue #43)
Code-Bereinigung: RAID-Festplattenunterstützung aufgrund fehlenden Zugriffs auf Serverhardware entfernt.. und viele andere kleine Verbesserungen
0.1.8:
Verbesserte Unterstützung für Windows 10
Markup-Fix von @bryant1410 zusammengeführt (PR #14)
Problem für Benutzer von macOS + VBox/VMWare Fusion bei der Erstellung der Vorlagen gelöst.
Die Erstellung der Vorlage von einer virtuellen Maschine aus ist ohnehin nicht der beste Weg.. (Issue #12 und möglicherweise #15)
0.1.7:
Windows 10 wird jetzt unterstützt (Feedback willkommen)
Mehrere neue Artefakte für W10-Installationen "korrigiert"
Neue Abhängigkeit: mesa-utils
Bug-Fix von @Fullmetal5 zusammengeführt (#10)
Verschiedene Code-Fixes
README aktualisiert
0.1.6:
Ein Pop-up nach dem zweiten Durchlauf hinzugefügt, um deutlicher zu machen, dass Sie startklar sind
Eine Funktion hinzugefügt, die einige Instanzen von Notepad startet – diese Funktion wird in zukünftigen Versionen erweitert
Die RandomDate-Funktion überarbeitet, danke an @Antelox für den Hinweis auf das Problem mit der alten (#8)
Acpidump, das mit älteren Ubuntu-Versionen ausgeliefert wird, unterstützt den Schalter "-s" nicht. Dies wird nun mit einer Fehlermeldung behandelt. Danke an @Antelox für dieses Issue (#7)
Devmanview.exe wurde nach dem zweiten Durchlauf nicht entfernt, behoben
0.1.5:
Unterstützung für das Zuordnen und Aufheben von Dateiendungen hinzugefügt (standardmäßig deaktiviert). Referenz: https://www.proofpoint.com/us/threat-insight/post/massive-adgholas-malvertising-campaigns-use-steganography-and-file-whitelisting-to-hide-in-plain-sight
Unterstützung für benutzerdefinierten Zwischenablagepuffer hinzugefügt. Wenn nicht vorhanden, wird eine zufällige Zeichenfolge generiert. Füllen Sie die Datei mit Honeytokens Ihrer Wahl
XP-Unterstützung entfernt
Die Batch-Skriptabschnitte in Powershell konvertiert. Mehr Logik in das Gast-Skript verlagert – kurz gesagt, es gibt weniger Grund, die Vorlage häufig zu erstellen/neu zu generieren, da mehr Elemente auf dem Gast randomisiert werden.
Eine Funktion hinzugefügt, die das Desktop-Hintergrundbild randomisiert
Eine Funktion hinzugefügt, die Dokumente „aller“ Art auf dem Gast erstellt
Eine Funktion hinzugefügt, die Dokumente „aller“ Art auf dem Gast erstellt und in den Papierkorb verschiebt
Randomisierung der DigitalProductId an zwei weiteren Stellen:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Registration\DigitalProductId.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\DefaultProductKey\DigitalProductId.
Paravirtualisierungsschnittstelle: Keine verwenden (verifiziert mit VBox 5.1.4) - Prüfung aktualisiert, um diese Änderung widerzuspiegeln. Ich gehe davon aus, dass diese Änderung in VBox dank TiTi87 zustande kam, danke!
/Mikael
Feedback ist immer willkommen! =)
0.1.4:
Einen Fehler für Benutzer von python-dmidecode 3.10.13-3 behoben – das war ganz mein Fehler..
Eine Funktion hinzugefügt, die die VolumeID randomisiert (neue Voraussetzung: VolumeID.exe), diese Information wird z.B. von Rovnix gesammelt
Eine Funktion hinzugefügt, die Benutzername und Rechnernamen/Hostnamen randomisiert (neue Voraussetzungen: Listen mit Benutzernamen und Rechnernamen)
Erster Versuch, Informationen zum Zwischenablagepuffer hinzuzufügen – Idee (Befehl) stammt von einem Tweet von @shanselman. Wird im nächsten Release verbessert
README aktualisiert: neue Abhängigkeiten und neue Funktionen, die einen Neustart erfordern
0.1.3:
CPU-Brand-String kopieren und setzen.
Überprüfen, ob ein Audiogerät an den Gast angeschlossen ist. Referenz: http://www.joesecurity.org/reports/report-61f847bcb69d0fe86ad7a4ba3f057be5.html
Überprüfen der Betriebssystem-Architektur im Vergleich zur DevManView-Binärdatei.
Randomisierung der ProductId an zwei weiteren Stellen:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Registration\ProductId.
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\DefaultProductKey\ProductId.
Bereinigen des Windows-Produktschlüssels aus der Registrierung (um zu verhindern, dass ihn jemand stiehlt...).
Bearbeiten der DigitalProductId (HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\DigitalProductId) zur Übereinstimmung mit der neuen ProductId.
0.1.2:
Überprüfen, ob die Legacy-Paravirtualisierungsschnittstelle verwendet wird (Verwendung der Legacy-Schnittstelle mildert die „cpuid feature“-Erkennung).
0.1.1:
Überprüfen der CPU-Anzahl (Weniger als 2 == Alarm).
Überprüfen der Speichergröße (Weniger als 2GB == Alarm).
Überprüfen, ob die Standard-IP/IP-Bereich für vboxnet0 verwendet wird (Sie können die Benachrichtigung ignorieren, wenn Sie sie nicht verwenden).
Randomisierung der ProductId.
PR #3 von r-sierra zusammengeführt (Vielen Dank für die Hilfe!).
Einen Fehler in der AcpiCreatorId behoben (Danke @Nadacsc für die Meldung!).
Einen Fehler in der DmiBIOSReleaseDate-Parsing behoben.
Einen Fehler in DmiBIOSReleaseDate behoben, um sowohl die „Standard“-falschgeschriebene Variante als auch die korrekt geschriebene zu behandeln (Danke @WanpengQian für die Meldung!).
Die Einbindung von DevManView funktionierte nicht wie erwartet, sollte in diesem Release behoben sein.
Unterstützt auch SATA-Controller (zuvor wurden nur IDE-Einstellungen geändert)
README aktualisiert
0.1.0:
Die durch die HT berühmt gewordene WMI-Erkennung gelöst. DevManView.exe (wahlweise Architektur) zu den Voraussetzungen hinzugefügt.
< 0.1.0 Keine Versionsgeschichte vor diesem Datum geführt – musste irgendwo anfangen, nehme ich an.