VM検出を難しくするためにVirtualBoxで使用できるテンプレートを作成するためのスクリプトです。
このテーマに関する最初の投稿は2012年であり、その後不定期に更新してきました。ブログ形式は情報を公開する最良の方法ではなかったかもしれません。また、内容に基づいた「適用しやすい」便利なスクリプトを作成してくれた方もいました。
新しいコンテンツを追加しやすくするために、私も同じことをすることにしました。
このスクリプトの目的は、VirtualBoxのベースを変更せずに利用可能な設定を使用することです。VirtualBoxにパッチを当てて非常に優れたことを行う人々もいますが、それはこのスクリプトの範囲外です。このアプローチには、VirtualBoxの新しいリリースごとに(できれば)壊れないというメリットがあると思います。 長い間に、VMに直接関係しないものの、マルウェアがインストール環境をフィンガープリントするために使用する「もの」も含めるようになりました。ご了承ください。
メインスクリプトは以下のファイルを作成します:
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版)。hostname > computer.lst、whoami > user.lst。VMに異なるマシン名とユーザーを使用したい場合は変更してください(推奨はファイルにユーザー名とコンピューター名の長いリストを入れることです)sudo python3 antivmdetect.pysudo chmod a+x xxxxx.sh/bin/bash xxxxx.sh my-virtual-machine-nameバッチスクリプト(xxxx.ps1)を新しくインストールしたゲストに移動します。
ゲスト内部でバッチスクリプトを実行します。変更される設定のほとんどは、再起動後に元に戻ることに注意してください。必要に応じて起動時に実行するように設定してください。
バージョン0.1.4以降、一部の適用された設定は再起動が必要になります。したがって、バッチスクリプトを1回実行すると、ゲストが再起動されます。その後、スクリプトをもう一度実行してセットアップを完了します。
ゲスト内部でバッチスクリプトを適用する前に、UACを無効にしてください(再起動が必要)。そうしないと、スクリプトでレジストリを変更できません。
Windows 10ユーザーへ:PSスクリプトを管理者として実行(cmd.exeを右クリック → 管理者として実行、PSスクリプトがある場所に移動して実行)
正しく適用された場合、Pafishの実行は次のようになります(Virtualboxを変更する必要はありません)。
このスクリプトは、Pafishでカバーされていない他のことも行うことに注意してください(例:W10のアーティファクト)

0.1.9:
Python3対応
正しいディスクを抽出するための最初の試み。多くの人にとって頭痛の種でした(Issue #35(およびその他いくつかの古いIssue)、@oaustinに感謝)
シェルスクリプトの文字列処理を改善(Issue #35と#36、およびPR #44、@oaustin、@dashjuvi、@corownikに感謝)
オンラインDSDTリソースへのリンクを追加(Issue #37、@MasterCATZに感謝)
インストール手順をより明確にするためにREADMEを更新、@jorantsに感謝(Issue #38)
DSDTダンプが実際に作成されたかどうかを確認、@nov3mb3rに感謝(Issue #42)
ライセンス通知を追加、@obilodeauに感謝(Issue #43)
コードのクリーンアップ:サーバーハードウェアにアクセスできないためRAIDディスクサポートを削除...およびその他多数の小さな改善
0.1.8:
Windows 10のサポートを改善
@bryant1410からのマークアップ修正をマージ(PR #14)
macOS + VBox/VMWare Fusionを使用してテンプレートを作成する人々の問題を解決
とにかく仮想マシンからテンプレートを作成するのは最善の方法ではありません...(Issue #12およびおそらく#15)
0.1.7:
Windows 10をサポート(フィードバック歓迎)
W10インストール用にいくつかの新しいアーティファクトを「修正」
新しい依存関係:mesa-utils
@Fullmetal5からのバグ修正をマージ(#10)
その他のコード修正
readmeを更新
0.1.6:
2回目の実行後にポップアップを追加し、準備ができたことを明確に
メモ帳のインスタンスをいくつか生成する関数を追加。この機能は将来のバージョンで拡張予定
RandomDate関数を再編。古い関数の問題を指摘してくれた@Anteloxに感謝(#8)
古いバージョンのUbuntuに付属するAcpidumpは「-s」スイッチをサポートしていません。これはエラーメッセージで処理されるようになりました。このIssueを報告してくれた@Anteloxに感謝(#7)
2回目の実行後にDevmanview.exeが削除されなかった問題を修正
0.1.5:
ファイル拡張子の関連付けと関連付け解除(デフォルトでは無効)のサポートを追加。参照:https://www.proofpoint.com/us/threat-insight/post/massive-adgholas-malvertising-campaigns-use-steganography-and-file-whitelisting-to-hide-in-plain-sight
ユーザー提供のクリップボードバッファのサポートを追加。存在しない場合はランダムな文字列が生成されます。お好みのハニートークンでファイルを埋めてください
XPサポートを削除
バッチスクリプトのセクションをPowershellに変換。より多くのロジックをゲストスクリプトに移動。つまり、テンプレートを頻繁に作成/再生成する理由が減りました。より多くのアイテムがゲスト上でランダム化されるためです。
デスクトップの背景画像をランダム化する関数を追加
ゲスト上に「あらゆる」種類のドキュメントを作成する関数を追加
ゲスト上に「あらゆる」種類のドキュメントを作成し、ごみ箱に移動する関数を追加
さらに2か所でDigitalProductIdをランダム化:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Registration\DigitalProductId。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\DefaultProductKey\DigitalProductId。
パラバーチャライゼーション・インターフェースの使用:なし(VBox 5.1.4で確認) - チェックはこの変更を反映するために更新。VBoxのこの変更がTiTi87のおかげであると推測します。ありがとう!
0.1.4:
python-dmidecode 3.10.13-3を使用するユーザーのバグを修正。これは完全に私のミスでした。
VolumeIDをランダム化する関数を追加(新しい前提条件:VolumeID.exe)。この情報は例えばRovnixによって収集されます
ユーザー名とコンピューター名/ホスト名をランダム化する関数を追加(新しい前提条件:ユーザー名とコンピューター名のリスト)
クリップボードバッファに情報を追加する最初の試み。(コマンドの)アイデアは@shanselmanのツイートから来ました。次のリリースで改善予定
readmeを更新:新しい依存関係と再起動が必要な新機能
0.1.3:
CPUブランド文字列をコピーして設定。
オーディオデバイスがゲストに接続されているか確認。参照:
OSアーキテクチャとDevManViewバイナリを確認。
さらに2か所でProductIdをランダム化:
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Internet Explorer\Registration\ProductId。
HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\DefaultProductKey\ProductId。
レジストリからWindowsプロダクトキーを削除(誰かに盗まれるのを防ぐため...)。
DigitalProductId(HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows NT\CurrentVersion\DigitalProductId)を新しいProductIdに合わせて編集。
/Mikael
フィードバックはいつでも歓迎です!=)
0.1.2:
レガシーパラバーチャライゼーションインターフェースが使用されているか確認(レガシーインターフェースの使用は「cpuid機能」検出を軽減します)。
0.1.1:
CPU数を確認(2未満 == アラート)。
メモリサイズを確認(2GB未満 == アラート)。
vboxnet0にデフォルトのIP/IP範囲が使用されているか確認(使用しない場合は通知を無視できます)。
ProductIdをランダム化。
r-sierraからのPR #3をマージ(協力ありがとうございます!)。
AcpiCreatorIdのバグを修正(報告してくれた@Nadacscに感謝!)。
DmiBIOSReleaseDate解析のバグを修正。
DmiBIOSReleaseDateのバグを修正し、「デフォルト」のスペルミスバリアントと正しくスペルされたバリアントの両方を処理(報告してくれた@WanpengQianに感謝!)。
DevManViewの組み込みが期待通りに機能しませんでした。このリリースで修正されるはずです。
SATAコントローラもサポート(以前はIDE設定のみ変更されていました)。
readmeを更新
0.1.0:
HTで有名になったWMI検出を解決。前提条件に
DevManView.exe(アーキテクチャは選択可能)を追加。
< 0.1.0 これ以前のバージョン履歴はありません。どこかから始める必要があります。